From 0be92c859769f56cdbf54197a32837142ed70aa6 Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sat, 24 Oct 2026 23:55:35 -0400 Subject: [PATCH 1/7] Shift an index output by its own name, not its function's The generators added begidx to every integer output of a function whose name contains INDEX. TA-Lib C 0.8.3's ZIGZAG returns a bar index in outPivotIdx next to a trend direction in outTrend, so the shift is now chosen per output: every output of the *INDEX functions, as before, and any integer output whose C name ends in Idx. The generated code of MAXINDEX, MININDEX and MINMAXINDEX is unchanged. --- tools/generate_func.py | 27 ++++++++++++++------------- tools/generate_stream.py | 22 +++++++++++++++++----- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/tools/generate_func.py b/tools/generate_func.py index 486e0cbd8..b3e2146fc 100644 --- a/tools/generate_func.py +++ b/tools/generate_func.py @@ -425,19 +425,20 @@ def cleanup(name): print(' with nogil:') print(' _ta_end_read()') print(' _ta_check_success("%s", retCode)' % name) - if 'INDEX' in f: - for arg in args: - var = arg.split()[-1] - - if 'out' not in var: - continue - - if var.endswith('[]'): - var = cleanup(var[:-2]) - print(' %s_data = %s.data' % (var, var)) - print(' with nogil:') - print(' for i from lookback <= i < length:') - print(' %s_data[i] += begidx' % var) + # An index output counts from begidx; shift it back to the caller's coordinates. + for arg in args: + var = arg.split()[-1] + + if 'out' not in var: + continue + + if (var.endswith('[]') and arg.split()[0] == 'int' + and ('INDEX' in name or var[:-2].endswith('Idx'))): + var = cleanup(var[:-2]) + print(' %s_data = %s.data' % (var, var)) + print(' with nogil:') + print(' for i from lookback <= i < length:') + print(' %s_data[i] += begidx' % var) print(' return ', end='') i = 0 for arg in args: diff --git a/tools/generate_stream.py b/tools/generate_stream.py index 6247a0728..f63d7abf1 100644 --- a/tools/generate_stream.py +++ b/tools/generate_stream.py @@ -89,10 +89,15 @@ def declare(name, decls): yield ' TA_RetCode TA_%s_%s(%s)' % (name, verb, ', '.join(args)) +def is_index_output(name, ctype, var): + """An output holding a bar index, which the caller reads in its own coordinates.""" + return ctype == 'int' and ('INDEX' in name or var.endswith('Idx')) + + def parse(name, decls, defaults, output_names): open_args = decls['Open'] history = open_args.index('int historyLen') - inputs, params, outputs = [], [], [] + inputs, params, outputs, indexes = [], [], [], set() for arg in open_args[1:history]: ctype, var, stars, array = split_arg(arg) assert (ctype, array) == ('const double', True), arg @@ -103,6 +108,8 @@ def parse(name, decls, defaults, output_names): spelled = (output_names[len(outputs)] if output_names else cleanup(var)[len('out'):]) outputs.append((ctype, 'out%s' % spelled)) + if is_index_output(name, ctype, var): + indexes.add('out%s' % spelled) continue key = var[len('optIn'):] key = key[0].lower() + key[1:] @@ -118,7 +125,8 @@ def parse(name, decls, defaults, output_names): params.append(('double' if ctype == 'double' else 'int', cleanup(var), default)) assert output_names is None or len(outputs) == len(output_names), name - return {'name': name, 'inputs': inputs, 'params': params, 'outputs': outputs} + return {'name': name, 'inputs': inputs, 'params': params, 'outputs': outputs, + 'indexes': indexes} PREAMBLE = '''\ @@ -274,9 +282,11 @@ def emit(func, docstring): out_ptrs = ['&%s' % py for _, py in outputs] # An index output counts from the first bar the stream opened on; the batch # tier reports it in the caller's coordinates, so shift it back the same way. - shift = ' + begidx' if 'INDEX' in name else '' - value = (outputs[0][1] + shift if len(outputs) == 1 - else '(%s)' % ', '.join(py + shift for _, py in outputs)) + indexes = func['indexes'] + shift = bool(indexes) + shifted = [py + (' + begidx' if py in indexes else '') for _, py in outputs] + value = (shifted[0] if len(outputs) == 1 + else '(%s)' % ', '.join(shifted)) live = '<%s*>self._handle' % handle lookback_args = ', '.join(py for _, py, _ in params) out = [] @@ -380,6 +390,8 @@ def opened(*tail): if shift: out.append(' cdef np.npy_intp i') for ctype, py in outputs: + if py not in indexes: + continue out.append(' cdef %s* %s_data = <%s*>%s.data' % (ctype, py, ctype, py)) out.append(' for i in range(lookback, length):') out.append(' %s_data[i] += begidx' % py) From ee32f5124cbaebed3391e957f4f6c9d86d1c4774 Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sat, 24 Oct 2026 23:55:35 -0400 Subject: [PATCH 2/7] Support the functions, moving averages and unstable periods of TA-Lib C 0.8.3 TA-Lib C 0.8.3 adds 36 functions (ALMA, ASI, BBW, CG, CHOP, CHOPTR, CKSP, CRSI, CTI, DOSC, EMV, FISHER, FRAMA, IBS, ICHIMOKU, KST, KSTEXT, KURTOSIS, KVO, MCGD, MEDIAN, PERCENTB, PSO, ROGERSSATCHELL, RVIR, SI, SQZMOM, STC, SWAK_2PHP, SWAK_BP, SWAK_BUTTER, SWAK_GAUSS, SWAK_HP, VIDYA, WAVETREND, ZIGZAG), the moving averages MA_Type.VIDYA and MA_Type.ALMA, and ten unstable-period ids. PERCENTILE's default period is now 100. - _ta_lib.pxd declares the new functions, ids and moving averages. - MA_Type, the unstable-period table, the function groups, _ta_lib.pyi and the docs list them. docs/funcs.md now lists every function: it also gains the 43 it was missing from earlier releases. The MINMAXINDEX stub returns int32. - TA_LIB_C_REQUIRED is 0.8.3, which the bindings now need. - _func.pxi, _stream.pxi, abstract.pyi and stream.pyi are regenerated. - Tests: the new unstable ids move their own function; under 'ALL' a function built on another unstable one (STC on EMA) grows by both; MA dispatches to VIDYA and ALMA; ZIGZAG's pivot index counts from the caller's first bar. --- docs/func_groups/cycle_indicators.md | 18 + docs/func_groups/momentum_indicators.md | 82 + docs/func_groups/overlap_studies.md | 50 + docs/func_groups/statistic_functions.md | 12 +- docs/func_groups/volatility_indicators.md | 20 + docs/func_groups/volume_indicators.md | 10 + docs/funcs.md | 79 + talib/__init__.py | 38 +- talib/_common.pxi | 16 +- talib/_func.pxi | 1960 ++- talib/_stream.pxi | 13647 ++++++++++++++------ talib/_ta_lib.pxd | 84 + talib/_ta_lib.pyi | 271 +- talib/abstract.pyi | 609 +- talib/deprecated.py | 2 +- talib/stream.pyi | 364 +- tests/test_func.py | 60 +- 17 files changed, 13081 insertions(+), 4241 deletions(-) diff --git a/docs/func_groups/cycle_indicators.md b/docs/func_groups/cycle_indicators.md index 2ed18806a..c3ea9586b 100644 --- a/docs/func_groups/cycle_indicators.md +++ b/docs/func_groups/cycle_indicators.md @@ -29,6 +29,24 @@ NOTE: The ``HT_TRENDMODE`` function has an unstable period. integer = HT_TRENDMODE(close) ``` +### SWAK_2PHP - Swiss Army Knife - Two-Pole High-Pass Filter +NOTE: The ``SWAK_2PHP`` function has an unstable period. +```python +real = SWAK_2PHP(close, timeperiod=20) +``` + +### SWAK_BP - Swiss Army Knife - Band-Pass Filter +NOTE: The ``SWAK_BP`` function has an unstable period. +```python +real = SWAK_BP(close, timeperiod=20, delta=0.1) +``` + +### SWAK_HP - Swiss Army Knife - High-Pass Filter +NOTE: The ``SWAK_HP`` function has an unstable period. +```python +real = SWAK_HP(close, timeperiod=20) +``` + [Documentation Index](../doc_index.md) [FLOAT_RIGHTAll Function Groups](../funcs.md) diff --git a/docs/func_groups/momentum_indicators.md b/docs/func_groups/momentum_indicators.md index adb48718f..a7708c39c 100644 --- a/docs/func_groups/momentum_indicators.md +++ b/docs/func_groups/momentum_indicators.md @@ -35,6 +35,11 @@ aroondown, aroonup = AROON(high, low, timeperiod=14) real = AROONOSC(high, low, timeperiod=14) ``` +### ASI - Wilder Accumulative Swing Index +```python +real = ASI(open, high, low, close, limitmove=3) +``` + ### BOP - Balance Of Power ```python real = BOP(open, high, low, close) @@ -45,6 +50,21 @@ real = BOP(open, high, low, close) real = CCI(high, low, close, timeperiod=14) ``` +### CG - Center of Gravity Oscillator +```python +real = CG(close, timeperiod=10) +``` + +### CHOP - Choppiness Index +```python +real = CHOP(high, low, close, timeperiod=14) +``` + +### CHOPTR - Choppiness Index (True Range Box) +```python +real = CHOPTR(high, low, close, timeperiod=14) +``` + ### CMO - Chande Momentum Oscillator NOTE: The ``CMO`` function has an unstable period. ```python @@ -61,6 +81,21 @@ real = CMOU(close, timeperiod=14) real = COPPOCK(close, wmaperiod=10, roc1period=11, roc2period=14) ``` +### CRSI - Connors Relative Strength Index +```python +real = CRSI(close, timeperiod=3, streakperiod=2, rankperiod=100) +``` + +### CTI - Correlation Trend Indicator +```python +real = CTI(close, timeperiod=20) +``` + +### DOSC - Derivative Oscillator +```python +real = DOSC(close, timeperiod=14, firstperiod=5, secondperiod=3, signalperiod=9) +``` + ### DPO - Detrended Price Oscillator ```python real = DPO(close, timeperiod=20) @@ -82,6 +117,12 @@ real = ER(close, timeperiod=10) bullpower, bearpower = ERI(high, low, close, timeperiod=13) ``` +### FISHER - Fisher Transform +NOTE: The ``FISHER`` function has an unstable period. +```python +fisher, trigger = FISHER(high, low, timeperiod=10) +``` + ### FOSC - Forecast Oscillator ```python real = FOSC(close, timeperiod=5) @@ -92,6 +133,11 @@ real = FOSC(close, timeperiod=5) swinghigh, swinglow = FRACTAL(high, low, leftbars=2, rightbars=2) ``` +### IBS - Internal Bar Strength +```python +real = IBS(high, low, close) +``` + ### IMI - Intraday Momentum Index ```python real = IMI(open, close, timeperiod=14) @@ -102,6 +148,16 @@ real = IMI(open, close, timeperiod=14) k, d, j = KDJ(high, low, close, fastk_period=9, slowk_period=3, slowk_matype=13, slowd_period=3, slowd_matype=13) ``` +### KST - Know Sure Thing (Pring) +```python +kst, kstsignal = KST(close, roc1period=10, roc2period=15, roc3period=20, roc4period=30, sma1period=10, sma2period=10, sma3period=10, sma4period=15, signalperiod=9) +``` + +### KSTEXT - Know Sure Thing with controllable MA type +```python +kst, kstsignal = KSTEXT(close, roc1period=10, roc2period=15, roc3period=20, roc4period=30, ma1period=10, ma2period=10, ma3period=10, ma4period=15, signalperiod=9, rocmatype=0, signalmatype=0) +``` + ### MACD - Moving Average Convergence/Divergence ```python macd, macdsignal, macdhist = MACD(close, fastperiod=12, slowperiod=26, signalperiod=9) @@ -156,6 +212,11 @@ real = PLUS_DM(high, low, timeperiod=14) real = PPO(close, fastperiod=12, slowperiod=26, matype=1) ``` +### PSO - Premier Stochastic Oscillator +```python +real = PSO(high, low, close, fastk_period=8, emaperiod=5) +``` + ### QSTICK - Qstick ```python real = QSTICK(open, close, timeperiod=10) @@ -187,11 +248,27 @@ NOTE: The ``RSI`` function has an unstable period. real = RSI(close, timeperiod=14) ``` +### SI - Wilder Swing Index +```python +real = SI(open, high, low, close, limitmove=3) +``` + ### SMI - Stochastic Momentum Index ```python smi, smisignal = SMI(high, low, close, timeperiod=13, fastperiod=2, slowperiod=25, signalperiod=9) ``` +### SQZMOM - Squeeze Momentum and Level +```python +momentum, squeeze = SQZMOM(high, low, close, bbperiod=20, nbdev=2, kcperiod=20, factorwide=2, factornormal=1.5, factornarrow=1) +``` + +### STC - Schaff Trend Cycle +NOTE: The ``STC`` function has an unstable period. +```python +real = STC(close, fastperiod=23, slowperiod=50, cycleperiod=10) +``` + ### STOCH - Stochastic NOTE: `slowk_matype` and `slowd_matype` take an `MA_Type` value. See [STOCH](https://ta-lib.org/functions/stoch) for the formula. ```python @@ -238,6 +315,11 @@ plusvi, minusvi = VORTEX(high, low, close, timeperiod=14) real = WAD(high, low, close) ``` +### WAVETREND - WaveTrend Oscillator +```python +wt1, wt2 = WAVETREND(high, low, close, channelperiod=10, averageperiod=21, signalperiod=4) +``` + ### WILLR - Williams' %R ```python real = WILLR(high, low, close, timeperiod=14) diff --git a/docs/func_groups/overlap_studies.md b/docs/func_groups/overlap_studies.md index 45c86ad5d..2748e360e 100644 --- a/docs/func_groups/overlap_studies.md +++ b/docs/func_groups/overlap_studies.md @@ -4,11 +4,21 @@ upperband, middleband, lowerband = ACCBANDS(high, low, close, timeperiod=20) ``` +### ALMA - Arnaud Legoux Moving Average +```python +real = ALMA(close, timeperiod=9, sigma=6, offset=0.85) +``` + ### BBANDS - Bollinger Bands ```python upperband, middleband, lowerband = BBANDS(close, timeperiod=20, nbdevup=2, nbdevdn=2, matype=0) ``` +### CKSP - Chande Kroll Stop +```python +highstop, lowstop = CKSP(high, low, close, timeperiod=10, multiplier=1, stopperiod=9) +``` + ### DEMA - Double Exponential Moving Average ```python real = DEMA(close, timeperiod=30) @@ -25,6 +35,12 @@ NOTE: The ``EMA`` function has an unstable period. real = EMA(close, timeperiod=30) ``` +### FRAMA - Fractal Adaptive Moving Average +NOTE: The ``FRAMA`` function has an unstable period. +```python +real = FRAMA(high, low, timeperiod=16) +``` + ### HMA - Hull Moving Average ```python real = HMA(close, timeperiod=20) @@ -36,6 +52,11 @@ NOTE: The ``HT_TRENDLINE`` function has an unstable period. real = HT_TRENDLINE(close) ``` +### ICHIMOKU - Ichimoku Kinko Hyo +```python +tenkansen, kijunsen, senkouspana, senkouspanb = ICHIMOKU(high, low, tenkanperiod=9, kijunperiod=26, senkoubperiod=52) +``` + ### KAMA - Kaufman Adaptive Moving Average NOTE: The ``KAMA`` function has an unstable period. ```python @@ -63,6 +84,12 @@ mama, fama = MAMA(close, fastlimit=0, slowlimit=0) real = MAVP(close, periods, minperiod=2, maxperiod=30, matype=0) ``` +### MCGD - McGinley Dynamic +NOTE: The ``MCGD`` function has an unstable period. +```python +real = MCGD(close, timeperiod=14) +``` + ### MIDPOINT - MidPoint over period ```python real = MIDPOINT(close, timeperiod=14) @@ -99,6 +126,18 @@ real = SMA(close, timeperiod=30) supertrend, trend = SUPERTREND(high, low, close, timeperiod=10, multiplier=3) ``` +### SWAK_BUTTER - Swiss Army Knife - Butterworth Filter +NOTE: The ``SWAK_BUTTER`` function has an unstable period. +```python +real = SWAK_BUTTER(close, timeperiod=20) +``` + +### SWAK_GAUSS - Swiss Army Knife - Gaussian Filter +NOTE: The ``SWAK_GAUSS`` function has an unstable period. +```python +real = SWAK_GAUSS(close, timeperiod=20) +``` + ### T3 - Triple Exponential Moving Average (T3) NOTE: The ``T3`` function has an unstable period. ```python @@ -115,6 +154,12 @@ real = TEMA(close, timeperiod=30) real = TRIMA(close, timeperiod=30) ``` +### VIDYA - Variable Index Dynamic Average +NOTE: The ``VIDYA`` function has an unstable period. +```python +real = VIDYA(close, timeperiod=12, cmoperiod=9) +``` + ### VWMA - Volume Weighted Moving Average ```python real = VWMA(close, volume, timeperiod=30) @@ -125,6 +170,11 @@ real = VWMA(close, volume, timeperiod=30) real = WMA(close, timeperiod=30) ``` +### ZIGZAG - Zig Zag +```python +zigzag, trend, pivotidx = ZIGZAG(high, low, sensitivity=5, mintrendlength=1) +``` + ### ZLEMA - Zero-Lag Exponential Moving Average ```python real = ZLEMA(close, timeperiod=30) diff --git a/docs/func_groups/statistic_functions.md b/docs/func_groups/statistic_functions.md index d3cbecc2b..b55533ae7 100644 --- a/docs/func_groups/statistic_functions.md +++ b/docs/func_groups/statistic_functions.md @@ -9,6 +9,11 @@ real = BETA(high, low, timeperiod=5) real = CORREL(high, low, timeperiod=30) ``` +### KURTOSIS - Rolling Excess Kurtosis +```python +real = KURTOSIS(close, timeperiod=30) +``` + ### LINEARREG - Linear Regression ```python real = LINEARREG(close, timeperiod=14) @@ -29,9 +34,14 @@ real = LINEARREG_INTERCEPT(close, timeperiod=14) real = LINEARREG_SLOPE(close, timeperiod=14) ``` +### MEDIAN - Rolling Median +```python +real = MEDIAN(close, timeperiod=30) +``` + ### PERCENTILE - Percentile (nearest rank) ```python -real = PERCENTILE(close, timeperiod=30, percentile=50) +real = PERCENTILE(close, timeperiod=100, percentile=50) ``` ### PERCENTRANK - Percent Rank diff --git a/docs/func_groups/volatility_indicators.md b/docs/func_groups/volatility_indicators.md index 477016f6b..1e0cc3b24 100644 --- a/docs/func_groups/volatility_indicators.md +++ b/docs/func_groups/volatility_indicators.md @@ -10,6 +10,11 @@ NOTE: The ``ATR`` function has an unstable period. real = ATR(high, low, close, timeperiod=14) ``` +### BBW - Bollinger BandWidth +```python +real = BBW(close, timeperiod=20, nbdevup=2, nbdevdn=2, matype=0) +``` + ### CVI - Chaikin's Volatility ```python real = CVI(high, low, timeperiod=10, rocperiod=10) @@ -26,12 +31,27 @@ NOTE: The ``NATR`` function has an unstable period. real = NATR(high, low, close, timeperiod=14) ``` +### PERCENTB - Bollinger Bands %B +```python +real = PERCENTB(close, timeperiod=20, nbdevup=2, nbdevdn=2, matype=0) +``` + +### ROGERSSATCHELL - Rogers-Satchell Volatility +```python +real = ROGERSSATCHELL(open, high, low, close, timeperiod=10, annualization=252) +``` + ### RVI - Relative Volatility Index NOTE: The ``RVI`` function has an unstable period. ```python real = RVI(close, timeperiod=14, stddevperiod=10) ``` +### RVIR - Relative Volatility Index, refined high/low form +```python +real = RVIR(high, low, timeperiod=14, stddevperiod=10) +``` + ### TRANGE - True Range ```python real = TRANGE(high, low, close) diff --git a/docs/func_groups/volume_indicators.md b/docs/func_groups/volume_indicators.md index 16f2f47d0..2dd8ff24e 100644 --- a/docs/func_groups/volume_indicators.md +++ b/docs/func_groups/volume_indicators.md @@ -19,6 +19,16 @@ real = CMF(high, low, close, volume, timeperiod=20) real = EFI(close, volume, timeperiod=13) ``` +### EMV - Arms Ease of Movement +```python +real = EMV(high, low, volume, timeperiod=14, volumedivisor=10000) +``` + +### KVO - Klinger Volume Oscillator +```python +kvo, kvosignal = KVO(high, low, close, volume, fastperiod=34, slowperiod=55, signalperiod=13) +``` + ### MARKETFI - Market Facilitation Index ```python real = MARKETFI(high, low, volume) diff --git a/docs/funcs.md b/docs/funcs.md index 14ab13776..ee08a749d 100644 --- a/docs/funcs.md +++ b/docs/funcs.md @@ -14,37 +14,76 @@ #### [Overlap Studies](func_groups/overlap_studies.md) ``` +ACCBANDS Acceleration Bands +ALMA Arnaud Legoux Moving Average BBANDS Bollinger Bands +CKSP Chande Kroll Stop DEMA Double Exponential Moving Average +DONCHIAN Donchian Channels EMA Exponential Moving Average +FRAMA Fractal Adaptive Moving Average +HMA Hull Moving Average HT_TRENDLINE Hilbert Transform - Instantaneous Trendline +ICHIMOKU Ichimoku Kinko Hyo KAMA Kaufman Adaptive Moving Average +KC Keltner Channels MA Moving average MAMA MESA Adaptive Moving Average MAVP Moving average with variable period +MCGD McGinley Dynamic MIDPOINT MidPoint over period MIDPRICE Midpoint Price over period +RMA Wilder's Smoothed Moving Average SAR Parabolic SAR SAREXT Parabolic SAR - Extended SMA Simple Moving Average +SUPERTREND SuperTrend +SWAK_BUTTER Swiss Army Knife - Butterworth Filter +SWAK_GAUSS Swiss Army Knife - Gaussian Filter T3 Triple Exponential Moving Average (T3) TEMA Triple Exponential Moving Average TRIMA Triangular Moving Average +VIDYA Variable Index Dynamic Average +VWMA Volume Weighted Moving Average WMA Weighted Moving Average +ZIGZAG Zig Zag +ZLEMA Zero-Lag Exponential Moving Average ``` #### [Momentum Indicators](func_groups/momentum_indicators.md) ``` +AC Accelerator/Decelerator Oscillator ADX Average Directional Movement Index ADXR Average Directional Movement Index Rating +AO Awesome Oscillator APO Absolute Price Oscillator AROON Aroon AROONOSC Aroon Oscillator +ASI Wilder Accumulative Swing Index BOP Balance Of Power CCI Commodity Channel Index +CG Center of Gravity Oscillator +CHOP Choppiness Index +CHOPTR Choppiness Index (True Range Box) CMO Chande Momentum Oscillator +CMOU Chande Momentum Oscillator (Unsmoothed) +COPPOCK Coppock Curve +CRSI Connors Relative Strength Index +CTI Correlation Trend Indicator +DOSC Derivative Oscillator +DPO Detrended Price Oscillator DX Directional Movement Index +ER Kaufman Efficiency Ratio +ERI Elder Ray Index (Bull Power / Bear Power) +FISHER Fisher Transform +FOSC Forecast Oscillator +FRACTAL Williams Fractal +IBS Internal Bar Strength +IMI Intraday Momentum Index +KDJ KDJ Stochastic +KST Know Sure Thing (Pring) +KSTEXT Know Sure Thing with controllable MA type MACD Moving Average Convergence/Divergence MACDEXT MACD with controllable MA type MACDFIX Moving Average Convergence/Divergence Fix 12/26 @@ -55,16 +94,27 @@ MOM Momentum PLUS_DI Plus Directional Indicator PLUS_DM Plus Directional Movement PPO Percentage Price Oscillator +PSO Premier Stochastic Oscillator +QSTICK Qstick ROC Rate of change : ((price/prevPrice)-1)*100 ROCP Rate of change Percentage: (price-prevPrice)/prevPrice ROCR Rate of change ratio: (price/prevPrice) ROCR100 Rate of change ratio 100 scale: (price/prevPrice)*100 RSI Relative Strength Index +SI Wilder Swing Index +SMI Stochastic Momentum Index +SQZMOM Squeeze Momentum and Level +STC Schaff Trend Cycle STOCH Stochastic STOCHF Stochastic Fast STOCHRSI Stochastic Relative Strength Index TRIX 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA +TSI True Strength Index ULTOSC Ultimate Oscillator +VHF Vertical Horizontal Filter +VORTEX Vortex Indicator +WAD Williams' Accumulation/Distribution +WAVETREND WaveTrend Oscillator WILLR Williams' %R ``` @@ -73,7 +123,18 @@ WILLR Williams' %R ``` AD Chaikin A/D Line ADOSC Chaikin A/D Oscillator +CMF Chaikin Money Flow +EFI Elder's Force Index +EMV Arms Ease of Movement +KVO Klinger Volume Oscillator +MARKETFI Market Facilitation Index +NVI Negative Volume Index OBV On Balance Volume +PVI Positive Volume Index +PVO Percentage Volume Oscillator +PVT Price Volume Trend +RVOL Relative Volume +VWAP Volume Weighted Average Price ``` #### [Cycle Indicators](func_groups/cycle_indicators.md) @@ -84,12 +145,17 @@ HT_DCPHASE Hilbert Transform - Dominant Cycle Phase HT_PHASOR Hilbert Transform - Phasor Components HT_SINE Hilbert Transform - SineWave HT_TRENDMODE Hilbert Transform - Trend vs Cycle Mode +SWAK_2PHP Swiss Army Knife - Two-Pole High-Pass Filter +SWAK_BP Swiss Army Knife - Band-Pass Filter +SWAK_HP Swiss Army Knife - High-Pass Filter ``` #### [Price Transform](func_groups/price_transform.md) ``` +AVGDEV Average Deviation AVGPRICE Average Price +HA Heikin-Ashi Candles MEDPRICE Median Price TYPPRICE Typical Price WCLPRICE Weighted Close Price @@ -98,8 +164,16 @@ WCLPRICE Weighted Close Price #### [Volatility Indicators](func_groups/volatility_indicators.md) ``` +ADR Average Day Range ATR Average True Range +BBW Bollinger BandWidth +CVI Chaikin's Volatility +MASSI Mass Index NATR Normalized Average True Range +PERCENTB Bollinger Bands %B +ROGERSSATCHELL Rogers-Satchell Volatility +RVI Relative Volatility Index +RVIR Relative Volatility Index, refined high/low form TRANGE True Range ``` @@ -174,10 +248,14 @@ CDLXSIDEGAP3METHODS Upside/Downside Gap Three Methods ``` BETA Beta CORREL Pearson's Correlation Coefficient (r) +KURTOSIS Rolling Excess Kurtosis LINEARREG Linear Regression LINEARREG_ANGLE Linear Regression Angle LINEARREG_INTERCEPT Linear Regression Intercept LINEARREG_SLOPE Linear Regression Slope +MEDIAN Rolling Median +PERCENTILE Percentile (nearest rank) +PERCENTRANK Percent Rank STDDEV Standard Deviation TSF Time Series Forecast VAR Variance @@ -207,6 +285,7 @@ TANH Vector Trigonometric Tanh ``` ADD Vector Arithmetic Add +CUMSUM Cumulative Sum DIV Vector Arithmetic Div MAX Highest value over a specified period MAXINDEX Index of highest value over a specified period diff --git a/talib/__init__.py b/talib/__init__.py index 72893bbdf..d27d5991f 100644 --- a/talib/__init__.py +++ b/talib/__init__.py @@ -101,7 +101,7 @@ def wrapper(*args, **kwds): # The TA-Lib C library this wrapper is built against -TA_LIB_C_REQUIRED = '0.8.1' +TA_LIB_C_REQUIRED = '0.8.3' try: from ._ta_lib import ( @@ -157,6 +157,9 @@ def wrapper(*args, **kwds): 'HT_PHASOR', 'HT_SINE', 'HT_TRENDMODE', + 'SWAK_2PHP', + 'SWAK_BP', + 'SWAK_HP', ], 'Math Operators': [ 'ADD', @@ -197,19 +200,30 @@ def wrapper(*args, **kwds): 'APO', 'AROON', 'AROONOSC', + 'ASI', 'BOP', 'CCI', + 'CG', + 'CHOP', + 'CHOPTR', 'CMO', 'CMOU', 'COPPOCK', + 'CRSI', + 'CTI', + 'DOSC', 'DPO', 'DX', 'ER', 'ERI', + 'FISHER', 'FOSC', 'FRACTAL', + 'IBS', 'IMI', 'KDJ', + 'KST', + 'KSTEXT', 'MACD', 'MACDEXT', 'MACDFIX', @@ -220,13 +234,17 @@ def wrapper(*args, **kwds): 'PLUS_DI', 'PLUS_DM', 'PPO', + 'PSO', 'QSTICK', 'ROC', 'ROCP', 'ROCR', 'ROCR100', 'RSI', + 'SI', 'SMI', + 'SQZMOM', + 'STC', 'STOCH', 'STOCHF', 'STOCHRSI', @@ -236,21 +254,27 @@ def wrapper(*args, **kwds): 'VHF', 'VORTEX', 'WAD', + 'WAVETREND', 'WILLR', ], 'Overlap Studies': [ 'ACCBANDS', + 'ALMA', 'BBANDS', + 'CKSP', 'DEMA', 'DONCHIAN', 'EMA', + 'FRAMA', 'HMA', 'HT_TRENDLINE', + 'ICHIMOKU', 'KAMA', 'KC', 'MA', 'MAMA', 'MAVP', + 'MCGD', 'MIDPOINT', 'MIDPRICE', 'RMA', @@ -258,11 +282,15 @@ def wrapper(*args, **kwds): 'SAREXT', 'SMA', 'SUPERTREND', + 'SWAK_BUTTER', + 'SWAK_GAUSS', 'T3', 'TEMA', 'TRIMA', + 'VIDYA', 'VWMA', 'WMA', + 'ZIGZAG', 'ZLEMA', ], 'Pattern Recognition': [ @@ -339,10 +367,12 @@ def wrapper(*args, **kwds): 'Statistic Functions': [ 'BETA', 'CORREL', + 'KURTOSIS', 'LINEARREG', 'LINEARREG_ANGLE', 'LINEARREG_INTERCEPT', 'LINEARREG_SLOPE', + 'MEDIAN', 'PERCENTILE', 'PERCENTRANK', 'STDDEV', @@ -352,10 +382,14 @@ def wrapper(*args, **kwds): 'Volatility Indicators': [ 'ADR', 'ATR', + 'BBW', 'CVI', 'MASSI', 'NATR', + 'PERCENTB', + 'ROGERSSATCHELL', 'RVI', + 'RVIR', 'TRANGE', ], 'Volume Indicators': [ @@ -363,6 +397,8 @@ def wrapper(*args, **kwds): 'ADOSC', 'CMF', 'EFI', + 'EMV', + 'KVO', 'MARKETFI', 'NVI', 'OBV', diff --git a/talib/_common.pxi b/talib/_common.pxi index b41820ac9..e8595beff 100644 --- a/talib/_common.pxi +++ b/talib/_common.pxi @@ -166,7 +166,7 @@ def _ta_shutdown(bint at_exit=False): class MA_Type(object): SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3, HMA, DISABLED, DEFAULT, \ - ZLEMA, RMA = range(14) + ZLEMA, RMA, VIDYA, ALMA = range(16) def __init__(self): self._lookup = { @@ -184,6 +184,8 @@ class MA_Type(object): MA_Type.DEFAULT: "The Function's Own Default Moving Average", MA_Type.ZLEMA: 'Zero-Lag Exponential Moving Average', MA_Type.RMA: "Wilder's Smoothed Moving Average", + MA_Type.VIDYA: 'Variable Index Dynamic Average', + MA_Type.ALMA: 'Arnaud Legoux Moving Average', } def __getitem__(self, type_): @@ -193,7 +195,7 @@ MA_Type = MA_Type() # Take every id straight from the C header instead of hardcoding a list. # Cython resolves each `lib.TA_FUNC_UNST_*` at build time from the ta_defs.h -# it compiles against, so this one table is correct for every TA-Lib release. +# it compiles against, so the numbers always match the TA-Lib C it links. _ta_func_unst_ids = { # Not sourced from the header: TA_FUNC_UNST_NONE does not exist in newer # ta-lib releases, and -1 is a Python-side sentinel anyway. @@ -221,6 +223,16 @@ _ta_func_unst_ids = { 'RMA': lib.TA_FUNC_UNST_RMA, 'HA': lib.TA_FUNC_UNST_HA, 'RVI': lib.TA_FUNC_UNST_RVI, + 'FRAMA': lib.TA_FUNC_UNST_FRAMA, + 'MCGD': lib.TA_FUNC_UNST_MCGD, + 'VIDYA': lib.TA_FUNC_UNST_VIDYA, + 'STC': lib.TA_FUNC_UNST_STC, + 'SWAK_GAUSS': lib.TA_FUNC_UNST_SWAK_GAUSS, + 'SWAK_BUTTER': lib.TA_FUNC_UNST_SWAK_BUTTER, + 'SWAK_HP': lib.TA_FUNC_UNST_SWAK_HP, + 'SWAK_2PHP': lib.TA_FUNC_UNST_SWAK_2PHP, + 'SWAK_BP': lib.TA_FUNC_UNST_SWAK_BP, + 'FISHER': lib.TA_FUNC_UNST_FISHER, 'ALL': lib.TA_FUNC_UNST_ALL, } diff --git a/talib/_func.pxi b/talib/_func.pxi index 767596454..7cd03c262 100644 --- a/talib/_func.pxi +++ b/talib/_func.pxi @@ -529,6 +529,49 @@ def ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close _ta_check_success("TA_ADXR", retCode) return outreal +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def ALMA( np.ndarray real not None , int timeperiod=-2**31 , double sigma=6.0 , double offset=0.85 ): + """ ALMA(real[, timeperiod=?, sigma=?, offset=?]) + + Arnaud Legoux Moving Average (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 9 + sigma: 6.0 + offset: 0.85 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_ALMA_Lookback( timeperiod , sigma , offset ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_ALMA( 0 , endidx , (real.data)+begidx , timeperiod , sigma , offset , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_ALMA", retCode) + return outreal + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def AO( np.ndarray high not None , np.ndarray low not None , int fastperiod=-2**31 , int slowperiod=-2**31 ): @@ -702,6 +745,50 @@ def AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperio _ta_check_success("TA_AROONOSC", retCode) return outreal +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def ASI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double limitmove=-4e37 ): + """ ASI(open, high, low, close[, limitmove=?]) + + Wilder Accumulative Swing Index (Momentum Indicators) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Parameters: + limitmove: 3.0 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + open = check_array(open) + high = check_array(high) + low = check_array(low) + close = check_array(close) + length = check_length4(open, high, low, close) + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_ASI_Lookback( limitmove ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_ASI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , limitmove , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_ASI", retCode) + return outreal + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def ASIN( np.ndarray real not None ): @@ -956,6 +1043,50 @@ def BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4 _ta_check_success("TA_BBANDS", retCode) return outrealupperband , outrealmiddleband , outreallowerband +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def BBW( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + """ BBW(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) + + Bollinger BandWidth (Volatility Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 20 + nbdevup: 2.0 + nbdevdn: 2.0 + matype: 0 (Simple Moving Average) + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_BBW_Lookback( timeperiod , nbdevup , nbdevdn , matype ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_BBW( 0 , endidx , (real.data)+begidx , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_BBW", retCode) + return outreal + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def BETA( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): @@ -3699,6 +3830,181 @@ def CEIL( np.ndarray real not None ): _ta_check_success("TA_CEIL", retCode) return outreal +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def CG( np.ndarray real not None , int timeperiod=-2**31 ): + """ CG(real[, timeperiod=?]) + + Center of Gravity Oscillator (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 10 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_CG_Lookback( timeperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_CG( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_CG", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def CHOP( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + """ CHOP(high, low, close[, timeperiod=?]) + + Choppiness Index (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + high = check_array(high) + low = check_array(low) + close = check_array(close) + length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_CHOP_Lookback( timeperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_CHOP( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_CHOP", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def CHOPTR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + """ CHOPTR(high, low, close[, timeperiod=?]) + + Choppiness Index (True Range Box) (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + high = check_array(high) + low = check_array(low) + close = check_array(close) + length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_CHOPTR_Lookback( timeperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_CHOPTR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_CHOPTR", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def CKSP( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 , double multiplier=1.0 , int stopperiod=-2**31 ): + """ CKSP(high, low, close[, timeperiod=?, multiplier=?, stopperiod=?]) + + Chande Kroll Stop (Overlap Studies) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 10 + multiplier: 1.0 + stopperiod: 9 + Outputs: + highstop + lowstop + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outhighstop + np.ndarray outlowstop + high = check_array(high) + low = check_array(low) + close = check_array(close) + length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) + with nogil: + begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_CKSP_Lookback( timeperiod , multiplier , stopperiod ) + outhighstop = make_double_array(length, lookback) + outlowstop = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_CKSP( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , multiplier , stopperiod , &outbegidx , &outnbelement , (outhighstop.data)+lookback , (outlowstop.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_CKSP", retCode) + return outhighstop , outlowstop + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def CMF( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None , int timeperiod=-2**31 ): @@ -3991,13 +4297,17 @@ def COSH( np.ndarray real not None ): @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def CUMSUM( np.ndarray real not None ): - """ CUMSUM(real) +def CRSI( np.ndarray real not None , int timeperiod=-2**31 , int streakperiod=-2**31 , int rankperiod=-2**31 ): + """ CRSI(real[, timeperiod=?, streakperiod=?, rankperiod=?]) - Cumulative Sum (Math Operators) + Connors Relative Strength Index (Momentum Indicators) Inputs: real: (any ndarray) + Parameters: + timeperiod: 3 + streakperiod: 2 + rankperiod: 100 Outputs: real """ @@ -4018,7 +4328,87 @@ def CUMSUM( np.ndarray real not None ): _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_CUMSUM_Lookback( ) + lookback = begidx + lib.TA_CRSI_Lookback( timeperiod , streakperiod , rankperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_CRSI( 0 , endidx , (real.data)+begidx , timeperiod , streakperiod , rankperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_CRSI", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def CTI( np.ndarray real not None , int timeperiod=-2**31 ): + """ CTI(real[, timeperiod=?]) + + Correlation Trend Indicator (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 20 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_CTI_Lookback( timeperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_CTI( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_CTI", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def CUMSUM( np.ndarray real not None ): + """ CUMSUM(real) + + Cumulative Sum (Math Operators) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_CUMSUM_Lookback( ) outreal = make_double_array(length, lookback) with nogil: retCode = lib.TA_CUMSUM( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) @@ -4201,6 +4591,50 @@ def DONCHIAN( np.ndarray high not None , np.ndarray low not None , int timeperio _ta_check_success("TA_DONCHIAN", retCode) return outrealupperband , outrealmiddleband , outreallowerband +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def DOSC( np.ndarray real not None , int timeperiod=-2**31 , int firstperiod=-2**31 , int secondperiod=-2**31 , int signalperiod=-2**31 ): + """ DOSC(real[, timeperiod=?, firstperiod=?, secondperiod=?, signalperiod=?]) + + Derivative Oscillator (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 14 + firstperiod: 5 + secondperiod: 3 + signalperiod: 9 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_DOSC_Lookback( timeperiod , firstperiod , secondperiod , signalperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_DOSC( 0 , endidx , (real.data)+begidx , timeperiod , firstperiod , secondperiod , signalperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_DOSC", retCode) + return outreal + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def DPO( np.ndarray real not None , int timeperiod=-2**31 ): @@ -4368,6 +4802,50 @@ def EMA( np.ndarray real not None , int timeperiod=-2**31 ): _ta_check_success("TA_EMA", retCode) return outreal +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def EMV( np.ndarray high not None , np.ndarray low not None , np.ndarray volume not None , int timeperiod=-2**31 , double volumedivisor=-4e37 ): + """ EMV(high, low, volume[, timeperiod=?, volumedivisor=?]) + + Arms Ease of Movement (Volume Indicators) + + Inputs: + prices: ['high', 'low', 'volume'] + Parameters: + timeperiod: 14 + volumedivisor: 10000.0 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + high = check_array(high) + low = check_array(low) + volume = check_array(volume) + length = check_length3(high, low, volume) + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx3(length, (high.data), (low.data), (volume.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_EMV_Lookback( timeperiod , volumedivisor ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_EMV( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (volume.data)+begidx , timeperiod , volumedivisor , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_EMV", retCode) + return outreal + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def ER( np.ndarray real not None , int timeperiod=-2**31 ): @@ -4494,6 +4972,51 @@ def EXP( np.ndarray real not None ): _ta_check_success("TA_EXP", retCode) return outreal +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def FISHER( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + """ FISHER(high, low[, timeperiod=?]) + + Fisher Transform (Momentum Indicators) + + Inputs: + prices: ['high', 'low'] + Parameters: + timeperiod: 10 + Outputs: + fisher + trigger + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outfisher + np.ndarray outtrigger + high = check_array(high) + low = check_array(low) + length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) + with nogil: + begidx = check_begidx2(length, (high.data), (low.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_FISHER_Lookback( timeperiod ) + outfisher = make_double_array(length, lookback) + outtrigger = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_FISHER( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outfisher.data)+lookback , (outtrigger.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_FISHER", retCode) + return outfisher , outtrigger + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def FLOOR( np.ndarray real not None ): @@ -4620,6 +5143,48 @@ def FRACTAL( np.ndarray high not None , np.ndarray low not None , int leftbars=- _ta_check_success("TA_FRACTAL", retCode) return outswinghigh , outswinglow +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def FRAMA( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + """ FRAMA(high, low[, timeperiod=?]) + + Fractal Adaptive Moving Average (Overlap Studies) + + Inputs: + prices: ['high', 'low'] + Parameters: + timeperiod: 16 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + high = check_array(high) + low = check_array(low) + length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx2(length, (high.data), (low.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_FRAMA_Lookback( timeperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_FRAMA( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_FRAMA", retCode) + return outreal + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def HA( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): @@ -4954,15 +5519,13 @@ def HT_TRENDMODE( np.ndarray real not None ): @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ): - """ IMI(open, close[, timeperiod=?]) +def IBS( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ IBS(high, low, close) - Intraday Momentum Index (Momentum Indicators) + Internal Bar Strength (Momentum Indicators) Inputs: - prices: ['open', 'close'] - Parameters: - timeperiod: 14 + prices: ['high', 'low', 'close'] Outputs: real """ @@ -4973,40 +5536,46 @@ def IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=- int outbegidx int outnbelement np.ndarray outreal - open = check_array(open) + high = check_array(high) + low = check_array(low) close = check_array(close) - length = check_length2(open, close) + length = check_length3(high, low, close) if length == 0: return make_double_array(0, 0) with nogil: - begidx = check_begidx2(length, (open.data), (close.data)) + begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_IMI_Lookback( timeperiod ) + lookback = begidx + lib.TA_IBS_Lookback( ) outreal = make_double_array(length, lookback) with nogil: - retCode = lib.TA_IMI( 0 , endidx , (open.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + retCode = lib.TA_IBS( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) finally: with nogil: _ta_end_read() - _ta_check_success("TA_IMI", retCode) + _ta_check_success("TA_IBS", retCode) return outreal @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def KAMA( np.ndarray real not None , int timeperiod=-2**31 ): - """ KAMA(real[, timeperiod=?]) +def ICHIMOKU( np.ndarray high not None , np.ndarray low not None , int tenkanperiod=-2**31 , int kijunperiod=-2**31 , int senkoubperiod=-2**31 ): + """ ICHIMOKU(high, low[, tenkanperiod=?, kijunperiod=?, senkoubperiod=?]) - Kaufman Adaptive Moving Average (Overlap Studies) + Ichimoku Kinko Hyo (Overlap Studies) Inputs: - real: (any ndarray) + prices: ['high', 'low'] Parameters: - timeperiod: 30 + tenkanperiod: 9 + kijunperiod: 26 + senkoubperiod: 52 Outputs: - real + tenkansen + kijunsen + senkouspana + senkouspanb """ cdef: np.npy_intp length @@ -5014,33 +5583,123 @@ def KAMA( np.ndarray real not None , int timeperiod=-2**31 ): TA_RetCode retCode int outbegidx int outnbelement - np.ndarray outreal - real = check_array(real) - length = real.shape[0] + np.ndarray outtenkansen + np.ndarray outkijunsen + np.ndarray outsenkouspana + np.ndarray outsenkouspanb + high = check_array(high) + low = check_array(low) + length = check_length2(high, low) if length == 0: - return make_double_array(0, 0) + return make_double_array(0, 0), make_double_array(0, 0), make_double_array(0, 0), make_double_array(0, 0) with nogil: - begidx = check_begidx1(length, (real.data)) + begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_KAMA_Lookback( timeperiod ) - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_ICHIMOKU_Lookback( tenkanperiod , kijunperiod , senkoubperiod ) + outtenkansen = make_double_array(length, lookback) + outkijunsen = make_double_array(length, lookback) + outsenkouspana = make_double_array(length, lookback) + outsenkouspanb = make_double_array(length, lookback) with nogil: - retCode = lib.TA_KAMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + retCode = lib.TA_ICHIMOKU( 0 , endidx , (high.data)+begidx , (low.data)+begidx , tenkanperiod , kijunperiod , senkoubperiod , &outbegidx , &outnbelement , (outtenkansen.data)+lookback , (outkijunsen.data)+lookback , (outsenkouspana.data)+lookback , (outsenkouspanb.data)+lookback ) finally: with nogil: _ta_end_read() - _ta_check_success("TA_KAMA", retCode) - return outreal + _ta_check_success("TA_ICHIMOKU", retCode) + return outtenkansen , outkijunsen , outsenkouspana , outsenkouspanb @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def KC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 , int atrperiod=-2**31 , double nbdev=-4e37 ): - """ KC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?]) +def IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ): + """ IMI(open, close[, timeperiod=?]) - Keltner Channels (Overlap Studies) + Intraday Momentum Index (Momentum Indicators) + + Inputs: + prices: ['open', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + open = check_array(open) + close = check_array(close) + length = check_length2(open, close) + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx2(length, (open.data), (close.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_IMI_Lookback( timeperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_IMI( 0 , endidx , (open.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_IMI", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def KAMA( np.ndarray real not None , int timeperiod=-2**31 ): + """ KAMA(real[, timeperiod=?]) + + Kaufman Adaptive Moving Average (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_KAMA_Lookback( timeperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_KAMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_KAMA", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def KC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 , int atrperiod=-2**31 , double nbdev=-4e37 ): + """ KC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?]) + + Keltner Channels (Overlap Studies) Inputs: prices: ['high', 'low', 'close'] @@ -5139,6 +5798,202 @@ def KDJ( np.ndarray high not None , np.ndarray low not None , np.ndarray close n _ta_check_success("TA_KDJ", retCode) return outk , outd , outj +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def KST( np.ndarray real not None , int roc1period=-2**31 , int roc2period=-2**31 , int roc3period=-2**31 , int roc4period=-2**31 , int sma1period=-2**31 , int sma2period=-2**31 , int sma3period=-2**31 , int sma4period=-2**31 , int signalperiod=-2**31 ): + """ KST(real[, roc1period=?, roc2period=?, roc3period=?, roc4period=?, sma1period=?, sma2period=?, sma3period=?, sma4period=?, signalperiod=?]) + + Know Sure Thing (Pring) (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + roc1period: 10 + roc2period: 15 + roc3period: 20 + roc4period: 30 + sma1period: 10 + sma2period: 10 + sma3period: 10 + sma4period: 15 + signalperiod: 9 + Outputs: + kst + kstsignal + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outkst + np.ndarray outkstsignal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_KST_Lookback( roc1period , roc2period , roc3period , roc4period , sma1period , sma2period , sma3period , sma4period , signalperiod ) + outkst = make_double_array(length, lookback) + outkstsignal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_KST( 0 , endidx , (real.data)+begidx , roc1period , roc2period , roc3period , roc4period , sma1period , sma2period , sma3period , sma4period , signalperiod , &outbegidx , &outnbelement , (outkst.data)+lookback , (outkstsignal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_KST", retCode) + return outkst , outkstsignal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def KSTEXT( np.ndarray real not None , int roc1period=-2**31 , int roc2period=-2**31 , int roc3period=-2**31 , int roc4period=-2**31 , int ma1period=-2**31 , int ma2period=-2**31 , int ma3period=-2**31 , int ma4period=-2**31 , int signalperiod=-2**31 , int rocmatype=0 , int signalmatype=0 ): + """ KSTEXT(real[, roc1period=?, roc2period=?, roc3period=?, roc4period=?, ma1period=?, ma2period=?, ma3period=?, ma4period=?, signalperiod=?, rocmatype=?, signalmatype=?]) + + Know Sure Thing with controllable MA type (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + roc1period: 10 + roc2period: 15 + roc3period: 20 + roc4period: 30 + ma1period: 10 + ma2period: 10 + ma3period: 10 + ma4period: 15 + signalperiod: 9 + rocmatype: 0 (Simple Moving Average) + signalmatype: 0 (Simple Moving Average) + Outputs: + kst + kstsignal + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outkst + np.ndarray outkstsignal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_KSTEXT_Lookback( roc1period , roc2period , roc3period , roc4period , ma1period , ma2period , ma3period , ma4period , signalperiod , rocmatype , signalmatype ) + outkst = make_double_array(length, lookback) + outkstsignal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_KSTEXT( 0 , endidx , (real.data)+begidx , roc1period , roc2period , roc3period , roc4period , ma1period , ma2period , ma3period , ma4period , signalperiod , rocmatype , signalmatype , &outbegidx , &outnbelement , (outkst.data)+lookback , (outkstsignal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_KSTEXT", retCode) + return outkst , outkstsignal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def KURTOSIS( np.ndarray real not None , int timeperiod=-2**31 ): + """ KURTOSIS(real[, timeperiod=?]) + + Rolling Excess Kurtosis (Statistic Functions) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_KURTOSIS_Lookback( timeperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_KURTOSIS( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_KURTOSIS", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def KVO( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + """ KVO(high, low, close, volume[, fastperiod=?, slowperiod=?, signalperiod=?]) + + Klinger Volume Oscillator (Volume Indicators) + + Inputs: + prices: ['high', 'low', 'close', 'volume'] + Parameters: + fastperiod: 34 + slowperiod: 55 + signalperiod: 13 + Outputs: + kvo + kvosignal + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outkvo + np.ndarray outkvosignal + high = check_array(high) + low = check_array(low) + close = check_array(close) + volume = check_array(volume) + length = check_length4(high, low, close, volume) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) + with nogil: + begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_KVO_Lookback( fastperiod , slowperiod , signalperiod ) + outkvo = make_double_array(length, lookback) + outkvosignal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_KVO( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , (outkvo.data)+lookback , (outkvosignal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_KVO", retCode) + return outkvo , outkvosignal + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def LINEARREG( np.ndarray real not None , int timeperiod=-2**31 ): @@ -5833,13 +6688,15 @@ def MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def MEDPRICE( np.ndarray high not None , np.ndarray low not None ): - """ MEDPRICE(high, low) +def MCGD( np.ndarray real not None , int timeperiod=-2**31 ): + """ MCGD(real[, timeperiod=?]) - Median Price (Price Transform) + McGinley Dynamic (Overlap Studies) Inputs: - prices: ['high', 'low'] + real: (any ndarray) + Parameters: + timeperiod: 14 Outputs: real """ @@ -5850,38 +6707,37 @@ def MEDPRICE( np.ndarray high not None , np.ndarray low not None ): int outbegidx int outnbelement np.ndarray outreal - high = check_array(high) - low = check_array(low) - length = check_length2(high, low) + real = check_array(real) + length = real.shape[0] if length == 0: return make_double_array(0, 0) with nogil: - begidx = check_begidx2(length, (high.data), (low.data)) + begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MEDPRICE_Lookback( ) + lookback = begidx + lib.TA_MCGD_Lookback( timeperiod ) outreal = make_double_array(length, lookback) with nogil: - retCode = lib.TA_MEDPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + retCode = lib.TA_MCGD( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) finally: with nogil: _ta_end_read() - _ta_check_success("TA_MEDPRICE", retCode) + _ta_check_success("TA_MCGD", retCode) return outreal @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def MFI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None , int timeperiod=-2**31 ): - """ MFI(high, low, close, volume[, timeperiod=?]) +def MEDIAN( np.ndarray real not None , int timeperiod=-2**31 ): + """ MEDIAN(real[, timeperiod=?]) - Money Flow Index (Momentum Indicators) + Rolling Median (Statistic Functions) Inputs: - prices: ['high', 'low', 'close', 'volume'] + real: (any ndarray) Parameters: - timeperiod: 14 + timeperiod: 30 Outputs: real """ @@ -5892,35 +6748,116 @@ def MFI( np.ndarray high not None , np.ndarray low not None , np.ndarray close n int outbegidx int outnbelement np.ndarray outreal - high = check_array(high) - low = check_array(low) - close = check_array(close) - volume = check_array(volume) - length = check_length4(high, low, close, volume) + real = check_array(real) + length = real.shape[0] if length == 0: return make_double_array(0, 0) with nogil: - begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MFI_Lookback( timeperiod ) + lookback = begidx + lib.TA_MEDIAN_Lookback( timeperiod ) outreal = make_double_array(length, lookback) with nogil: - retCode = lib.TA_MFI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + retCode = lib.TA_MEDIAN( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) finally: with nogil: _ta_end_read() - _ta_check_success("TA_MFI", retCode) + _ta_check_success("TA_MEDIAN", retCode) return outreal @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ): - """ MIDPOINT(real[, timeperiod=?]) +def MEDPRICE( np.ndarray high not None , np.ndarray low not None ): + """ MEDPRICE(high, low) - MidPoint over period (Overlap Studies) + Median Price (Price Transform) + + Inputs: + prices: ['high', 'low'] + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + high = check_array(high) + low = check_array(low) + length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx2(length, (high.data), (low.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MEDPRICE_Lookback( ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_MEDPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_MEDPRICE", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def MFI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None , int timeperiod=-2**31 ): + """ MFI(high, low, close, volume[, timeperiod=?]) + + Money Flow Index (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close', 'volume'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + high = check_array(high) + low = check_array(low) + close = check_array(close) + volume = check_array(volume) + length = check_length4(high, low, close, volume) + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MFI_Lookback( timeperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_MFI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_MFI", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ): + """ MIDPOINT(real[, timeperiod=?]) + + MidPoint over period (Overlap Studies) Inputs: real: (any ndarray) @@ -6471,6 +7408,50 @@ def OBV( np.ndarray real not None , np.ndarray volume not None ): _ta_check_success("TA_OBV", retCode) return outreal +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def PERCENTB( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + """ PERCENTB(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) + + Bollinger Bands %B (Volatility Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 20 + nbdevup: 2.0 + nbdevdn: 2.0 + matype: 0 (Simple Moving Average) + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_PERCENTB_Lookback( timeperiod , nbdevup , nbdevdn , matype ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_PERCENTB( 0 , endidx , (real.data)+begidx , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_PERCENTB", retCode) + return outreal + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def PERCENTILE( np.ndarray real not None , int timeperiod=-2**31 , double percentile=50.0 ): @@ -6481,7 +7462,7 @@ def PERCENTILE( np.ndarray real not None , int timeperiod=-2**31 , double percen Inputs: real: (any ndarray) Parameters: - timeperiod: 30 + timeperiod: 100 percentile: 50.0 Outputs: real @@ -6682,6 +7663,50 @@ def PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**3 _ta_check_success("TA_PPO", retCode) return outreal +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def PSO( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int fastk_period=-2**31 , int emaperiod=-2**31 ): + """ PSO(high, low, close[, fastk_period=?, emaperiod=?]) + + Premier Stochastic Oscillator (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + fastk_period: 8 + emaperiod: 5 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + high = check_array(high) + low = check_array(low) + close = check_array(close) + length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_PSO_Lookback( fastk_period , emaperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_PSO( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , fastk_period , emaperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_PSO", retCode) + return outreal + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def PVI( np.ndarray close not None , np.ndarray volume not None ): @@ -7052,6 +8077,51 @@ def ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): _ta_check_success("TA_ROCR100", retCode) return outreal +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def ROGERSSATCHELL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 , double annualization=252.0 ): + """ ROGERSSATCHELL(open, high, low, close[, timeperiod=?, annualization=?]) + + Rogers-Satchell Volatility (Volatility Indicators) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Parameters: + timeperiod: 10 + annualization: 252.0 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + open = check_array(open) + high = check_array(high) + low = check_array(low) + close = check_array(close) + length = check_length4(open, high, low, close) + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_ROGERSSATCHELL_Lookback( timeperiod , annualization ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_ROGERSSATCHELL( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , annualization , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_ROGERSSATCHELL", retCode) + return outreal + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def RSI( np.ndarray real not None , int timeperiod=-2**31 ): @@ -7135,6 +8205,49 @@ def RVI( np.ndarray real not None , int timeperiod=-2**31 , int stddevperiod=-2* _ta_check_success("TA_RVI", retCode) return outreal +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def RVIR( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 , int stddevperiod=-2**31 ): + """ RVIR(high, low[, timeperiod=?, stddevperiod=?]) + + Relative Volatility Index, refined high/low form (Volatility Indicators) + + Inputs: + prices: ['high', 'low'] + Parameters: + timeperiod: 14 + stddevperiod: 10 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + high = check_array(high) + low = check_array(low) + length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx2(length, (high.data), (low.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_RVIR_Lookback( timeperiod , stddevperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_RVIR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , stddevperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_RVIR", retCode) + return outreal + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def RVOL( np.ndarray volume not None , int timeperiod=-2**31 ): @@ -7270,13 +8383,15 @@ def SAREXT( np.ndarray high not None , np.ndarray low not None , double startval @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def SIN( np.ndarray real not None ): - """ SIN(real) +def SI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double limitmove=-4e37 ): + """ SI(open, high, low, close[, limitmove=?]) - Vector Trigonometric Sin (Math Transform) + Wilder Swing Index (Momentum Indicators) Inputs: - real: (any ndarray) + prices: ['open', 'high', 'low', 'close'] + Parameters: + limitmove: 3.0 Outputs: real """ @@ -7287,30 +8402,72 @@ def SIN( np.ndarray real not None ): int outbegidx int outnbelement np.ndarray outreal - real = check_array(real) - length = real.shape[0] + open = check_array(open) + high = check_array(high) + low = check_array(low) + close = check_array(close) + length = check_length4(open, high, low, close) if length == 0: return make_double_array(0, 0) with nogil: - begidx = check_begidx1(length, (real.data)) + begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SIN_Lookback( ) + lookback = begidx + lib.TA_SI_Lookback( limitmove ) outreal = make_double_array(length, lookback) with nogil: - retCode = lib.TA_SIN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + retCode = lib.TA_SI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , limitmove , &outbegidx , &outnbelement , (outreal.data)+lookback ) finally: with nogil: _ta_end_read() - _ta_check_success("TA_SIN", retCode) + _ta_check_success("TA_SI", retCode) return outreal @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def SINH( np.ndarray real not None ): - """ SINH(real) +def SIN( np.ndarray real not None ): + """ SIN(real) + + Vector Trigonometric Sin (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_SIN_Lookback( ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_SIN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_SIN", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def SINH( np.ndarray real not None ): + """ SINH(real) Vector Trigonometric Sinh (Math Transform) @@ -7475,6 +8632,100 @@ def SQRT( np.ndarray real not None ): _ta_check_success("TA_SQRT", retCode) return outreal +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def SQZMOM( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int bbperiod=-2**31 , double nbdev=-4e37 , int kcperiod=-2**31 , double factorwide=-4e37 , double factornormal=-4e37 , double factornarrow=-4e37 ): + """ SQZMOM(high, low, close[, bbperiod=?, nbdev=?, kcperiod=?, factorwide=?, factornormal=?, factornarrow=?]) + + Squeeze Momentum and Level (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + bbperiod: 20 + nbdev: 2.0 + kcperiod: 20 + factorwide: 2.0 + factornormal: 1.5 + factornarrow: 1.0 + Outputs: + momentum + squeeze + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outmomentum + np.ndarray outsqueeze + high = check_array(high) + low = check_array(low) + close = check_array(close) + length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_int_array(0, 0) + with nogil: + begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_SQZMOM_Lookback( bbperiod , nbdev , kcperiod , factorwide , factornormal , factornarrow ) + outmomentum = make_double_array(length, lookback) + outsqueeze = make_int_array(length, lookback) + with nogil: + retCode = lib.TA_SQZMOM( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , bbperiod , nbdev , kcperiod , factorwide , factornormal , factornarrow , &outbegidx , &outnbelement , (outmomentum.data)+lookback , (outsqueeze.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_SQZMOM", retCode) + return outmomentum , outsqueeze + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def STC( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int cycleperiod=-2**31 ): + """ STC(real[, fastperiod=?, slowperiod=?, cycleperiod=?]) + + Schaff Trend Cycle (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + fastperiod: 23 + slowperiod: 50 + cycleperiod: 10 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_STC_Lookback( fastperiod , slowperiod , cycleperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_STC( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , cycleperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_STC", retCode) + return outreal + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): @@ -7510,31 +8761,255 @@ def STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e3 lookback = begidx + lib.TA_STDDEV_Lookback( timeperiod , nbdev ) outreal = make_double_array(length, lookback) with nogil: - retCode = lib.TA_STDDEV( 0 , endidx , (real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , (outreal.data)+lookback ) + retCode = lib.TA_STDDEV( 0 , endidx , (real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_STDDEV", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def STOCH( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int fastk_period=-2**31 , int slowk_period=-2**31 , int slowk_matype=0 , int slowd_period=-2**31 , int slowd_matype=0 ): + """ STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?]) + + Stochastic (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + fastk_period: 5 + slowk_period: 3 + slowk_matype: 0 (Simple Moving Average) + slowd_period: 3 + slowd_matype: 0 (Simple Moving Average) + Outputs: + slowk + slowd + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outslowk + np.ndarray outslowd + high = check_array(high) + low = check_array(low) + close = check_array(close) + length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) + with nogil: + begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_STOCH_Lookback( fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype ) + outslowk = make_double_array(length, lookback) + outslowd = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_STOCH( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype , &outbegidx , &outnbelement , (outslowk.data)+lookback , (outslowd.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_STOCH", retCode) + return outslowk , outslowd + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def STOCHF( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ): + """ STOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?]) + + Stochastic Fast (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + fastk_period: 5 + fastd_period: 3 + fastd_matype: 0 (Simple Moving Average) + Outputs: + fastk + fastd + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outfastk + np.ndarray outfastd + high = check_array(high) + low = check_array(low) + close = check_array(close) + length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) + with nogil: + begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_STOCHF_Lookback( fastk_period , fastd_period , fastd_matype ) + outfastk = make_double_array(length, lookback) + outfastd = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_STOCHF( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , (outfastk.data)+lookback , (outfastd.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_STOCHF", retCode) + return outfastk , outfastd + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def STOCHRSI( np.ndarray real not None , int timeperiod=-2**31 , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ): + """ STOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?]) + + Stochastic Relative Strength Index (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 14 + fastk_period: 5 + fastd_period: 3 + fastd_matype: 0 (Simple Moving Average) + Outputs: + fastk + fastd + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outfastk + np.ndarray outfastd + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_STOCHRSI_Lookback( timeperiod , fastk_period , fastd_period , fastd_matype ) + outfastk = make_double_array(length, lookback) + outfastd = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_STOCHRSI( 0 , endidx , (real.data)+begidx , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , (outfastk.data)+lookback , (outfastd.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_STOCHRSI", retCode) + return outfastk , outfastd + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def SUB( np.ndarray real0 not None , np.ndarray real1 not None ): + """ SUB(real0, real1) + + Vector Arithmetic Subtraction (Math Operators) + + Inputs: + real0: (any ndarray) + real1: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real0 = check_array(real0) + real1 = check_array(real1) + length = check_length2(real0, real1) + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx2(length, (real0.data), (real1.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_SUB_Lookback( ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_SUB( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_SUB", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def SUM( np.ndarray real not None , int timeperiod=-2**31 ): + """ SUM(real[, timeperiod=?]) + + Summation (Math Operators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_SUM_Lookback( timeperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_SUM( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) finally: with nogil: _ta_end_read() - _ta_check_success("TA_STDDEV", retCode) + _ta_check_success("TA_SUM", retCode) return outreal @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def STOCH( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int fastk_period=-2**31 , int slowk_period=-2**31 , int slowk_matype=0 , int slowd_period=-2**31 , int slowd_matype=0 ): - """ STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?]) +def SUPERTREND( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 , double multiplier=3.0 ): + """ SUPERTREND(high, low, close[, timeperiod=?, multiplier=?]) - Stochastic (Momentum Indicators) + SuperTrend (Overlap Studies) Inputs: prices: ['high', 'low', 'close'] Parameters: - fastk_period: 5 - slowk_period: 3 - slowk_matype: 0 (Simple Moving Average) - slowd_period: 3 - slowd_matype: 0 (Simple Moving Average) + timeperiod: 10 + multiplier: 3.0 Outputs: - slowk - slowd + supertrend + trend """ cdef: np.npy_intp length @@ -7542,47 +9017,44 @@ def STOCH( np.ndarray high not None , np.ndarray low not None , np.ndarray close TA_RetCode retCode int outbegidx int outnbelement - np.ndarray outslowk - np.ndarray outslowd + np.ndarray outsupertrend + np.ndarray outtrend high = check_array(high) low = check_array(low) close = check_array(close) length = check_length3(high, low, close) if length == 0: - return make_double_array(0, 0), make_double_array(0, 0) + return make_double_array(0, 0), make_int_array(0, 0) with nogil: begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_STOCH_Lookback( fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype ) - outslowk = make_double_array(length, lookback) - outslowd = make_double_array(length, lookback) + lookback = begidx + lib.TA_SUPERTREND_Lookback( timeperiod , multiplier ) + outsupertrend = make_double_array(length, lookback) + outtrend = make_int_array(length, lookback) with nogil: - retCode = lib.TA_STOCH( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype , &outbegidx , &outnbelement , (outslowk.data)+lookback , (outslowd.data)+lookback ) + retCode = lib.TA_SUPERTREND( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , multiplier , &outbegidx , &outnbelement , (outsupertrend.data)+lookback , (outtrend.data)+lookback ) finally: with nogil: _ta_end_read() - _ta_check_success("TA_STOCH", retCode) - return outslowk , outslowd + _ta_check_success("TA_SUPERTREND", retCode) + return outsupertrend , outtrend @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def STOCHF( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ): - """ STOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?]) +def SWAK_2PHP( np.ndarray real not None , int timeperiod=-2**31 ): + """ SWAK_2PHP(real[, timeperiod=?]) - Stochastic Fast (Momentum Indicators) + Swiss Army Knife - Two-Pole High-Pass Filter (Cycle Indicators) Inputs: - prices: ['high', 'low', 'close'] + real: (any ndarray) Parameters: - fastk_period: 5 - fastd_period: 3 - fastd_matype: 0 (Simple Moving Average) + timeperiod: 20 Outputs: - fastk - fastd + real """ cdef: np.npy_intp length @@ -7590,48 +9062,41 @@ def STOCHF( np.ndarray high not None , np.ndarray low not None , np.ndarray clos TA_RetCode retCode int outbegidx int outnbelement - np.ndarray outfastk - np.ndarray outfastd - high = check_array(high) - low = check_array(low) - close = check_array(close) - length = check_length3(high, low, close) + np.ndarray outreal + real = check_array(real) + length = real.shape[0] if length == 0: - return make_double_array(0, 0), make_double_array(0, 0) + return make_double_array(0, 0) with nogil: - begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_STOCHF_Lookback( fastk_period , fastd_period , fastd_matype ) - outfastk = make_double_array(length, lookback) - outfastd = make_double_array(length, lookback) + lookback = begidx + lib.TA_SWAK_2PHP_Lookback( timeperiod ) + outreal = make_double_array(length, lookback) with nogil: - retCode = lib.TA_STOCHF( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , (outfastk.data)+lookback , (outfastd.data)+lookback ) + retCode = lib.TA_SWAK_2PHP( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) finally: with nogil: _ta_end_read() - _ta_check_success("TA_STOCHF", retCode) - return outfastk , outfastd + _ta_check_success("TA_SWAK_2PHP", retCode) + return outreal @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def STOCHRSI( np.ndarray real not None , int timeperiod=-2**31 , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ): - """ STOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?]) +def SWAK_BP( np.ndarray real not None , int timeperiod=-2**31 , double delta=0.1 ): + """ SWAK_BP(real[, timeperiod=?, delta=?]) - Stochastic Relative Strength Index (Momentum Indicators) + Swiss Army Knife - Band-Pass Filter (Cycle Indicators) Inputs: real: (any ndarray) Parameters: - timeperiod: 14 - fastk_period: 5 - fastd_period: 3 - fastd_matype: 0 (Simple Moving Average) + timeperiod: 20 + delta: 0.1 Outputs: - fastk - fastd + real """ cdef: np.npy_intp length @@ -7639,39 +9104,38 @@ def STOCHRSI( np.ndarray real not None , int timeperiod=-2**31 , int fastk_perio TA_RetCode retCode int outbegidx int outnbelement - np.ndarray outfastk - np.ndarray outfastd + np.ndarray outreal real = check_array(real) length = real.shape[0] if length == 0: - return make_double_array(0, 0), make_double_array(0, 0) + return make_double_array(0, 0) with nogil: begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_STOCHRSI_Lookback( timeperiod , fastk_period , fastd_period , fastd_matype ) - outfastk = make_double_array(length, lookback) - outfastd = make_double_array(length, lookback) + lookback = begidx + lib.TA_SWAK_BP_Lookback( timeperiod , delta ) + outreal = make_double_array(length, lookback) with nogil: - retCode = lib.TA_STOCHRSI( 0 , endidx , (real.data)+begidx , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , (outfastk.data)+lookback , (outfastd.data)+lookback ) + retCode = lib.TA_SWAK_BP( 0 , endidx , (real.data)+begidx , timeperiod , delta , &outbegidx , &outnbelement , (outreal.data)+lookback ) finally: with nogil: _ta_end_read() - _ta_check_success("TA_STOCHRSI", retCode) - return outfastk , outfastd + _ta_check_success("TA_SWAK_BP", retCode) + return outreal @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def SUB( np.ndarray real0 not None , np.ndarray real1 not None ): - """ SUB(real0, real1) +def SWAK_BUTTER( np.ndarray real not None , int timeperiod=-2**31 ): + """ SWAK_BUTTER(real[, timeperiod=?]) - Vector Arithmetic Subtraction (Math Operators) + Swiss Army Knife - Butterworth Filter (Overlap Studies) Inputs: - real0: (any ndarray) - real1: (any ndarray) + real: (any ndarray) + Parameters: + timeperiod: 20 Outputs: real """ @@ -7682,38 +9146,37 @@ def SUB( np.ndarray real0 not None , np.ndarray real1 not None ): int outbegidx int outnbelement np.ndarray outreal - real0 = check_array(real0) - real1 = check_array(real1) - length = check_length2(real0, real1) + real = check_array(real) + length = real.shape[0] if length == 0: return make_double_array(0, 0) with nogil: - begidx = check_begidx2(length, (real0.data), (real1.data)) + begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SUB_Lookback( ) + lookback = begidx + lib.TA_SWAK_BUTTER_Lookback( timeperiod ) outreal = make_double_array(length, lookback) with nogil: - retCode = lib.TA_SUB( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + retCode = lib.TA_SWAK_BUTTER( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) finally: with nogil: _ta_end_read() - _ta_check_success("TA_SUB", retCode) + _ta_check_success("TA_SWAK_BUTTER", retCode) return outreal @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def SUM( np.ndarray real not None , int timeperiod=-2**31 ): - """ SUM(real[, timeperiod=?]) +def SWAK_GAUSS( np.ndarray real not None , int timeperiod=-2**31 ): + """ SWAK_GAUSS(real[, timeperiod=?]) - Summation (Math Operators) + Swiss Army Knife - Gaussian Filter (Overlap Studies) Inputs: real: (any ndarray) Parameters: - timeperiod: 30 + timeperiod: 20 Outputs: real """ @@ -7734,31 +9197,29 @@ def SUM( np.ndarray real not None , int timeperiod=-2**31 ): _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SUM_Lookback( timeperiod ) + lookback = begidx + lib.TA_SWAK_GAUSS_Lookback( timeperiod ) outreal = make_double_array(length, lookback) with nogil: - retCode = lib.TA_SUM( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + retCode = lib.TA_SWAK_GAUSS( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) finally: with nogil: _ta_end_read() - _ta_check_success("TA_SUM", retCode) + _ta_check_success("TA_SWAK_GAUSS", retCode) return outreal @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function -def SUPERTREND( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 , double multiplier=3.0 ): - """ SUPERTREND(high, low, close[, timeperiod=?, multiplier=?]) +def SWAK_HP( np.ndarray real not None , int timeperiod=-2**31 ): + """ SWAK_HP(real[, timeperiod=?]) - SuperTrend (Overlap Studies) + Swiss Army Knife - High-Pass Filter (Cycle Indicators) Inputs: - prices: ['high', 'low', 'close'] + real: (any ndarray) Parameters: - timeperiod: 10 - multiplier: 3.0 + timeperiod: 20 Outputs: - supertrend - trend + real """ cdef: np.npy_intp length @@ -7766,30 +9227,26 @@ def SUPERTREND( np.ndarray high not None , np.ndarray low not None , np.ndarray TA_RetCode retCode int outbegidx int outnbelement - np.ndarray outsupertrend - np.ndarray outtrend - high = check_array(high) - low = check_array(low) - close = check_array(close) - length = check_length3(high, low, close) + np.ndarray outreal + real = check_array(real) + length = real.shape[0] if length == 0: - return make_double_array(0, 0), make_int_array(0, 0) + return make_double_array(0, 0) with nogil: - begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SUPERTREND_Lookback( timeperiod , multiplier ) - outsupertrend = make_double_array(length, lookback) - outtrend = make_int_array(length, lookback) + lookback = begidx + lib.TA_SWAK_HP_Lookback( timeperiod ) + outreal = make_double_array(length, lookback) with nogil: - retCode = lib.TA_SUPERTREND( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , multiplier , &outbegidx , &outnbelement , (outsupertrend.data)+lookback , (outtrend.data)+lookback ) + retCode = lib.TA_SWAK_HP( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) finally: with nogil: _ta_end_read() - _ta_check_success("TA_SUPERTREND", retCode) - return outsupertrend , outtrend + _ta_check_success("TA_SWAK_HP", retCode) + return outreal @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function @@ -8327,6 +9784,48 @@ def VHF( np.ndarray real not None , int timeperiod=-2**31 ): _ta_check_success("TA_VHF", retCode) return outreal +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def VIDYA( np.ndarray real not None , int timeperiod=-2**31 , int cmoperiod=-2**31 ): + """ VIDYA(real[, timeperiod=?, cmoperiod=?]) + + Variable Index Dynamic Average (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 12 + cmoperiod: 9 + Outputs: + real + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outreal + real = check_array(real) + length = real.shape[0] + if length == 0: + return make_double_array(0, 0) + with nogil: + begidx = check_begidx1(length, (real.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_VIDYA_Lookback( timeperiod , cmoperiod ) + outreal = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_VIDYA( 0 , endidx , (real.data)+begidx , timeperiod , cmoperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_VIDYA", retCode) + return outreal + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def VORTEX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): @@ -8499,6 +9998,54 @@ def WAD( np.ndarray high not None , np.ndarray low not None , np.ndarray close n _ta_check_success("TA_WAD", retCode) return outreal +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def WAVETREND( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int channelperiod=-2**31 , int averageperiod=-2**31 , int signalperiod=-2**31 ): + """ WAVETREND(high, low, close[, channelperiod=?, averageperiod=?, signalperiod=?]) + + WaveTrend Oscillator (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + channelperiod: 10 + averageperiod: 21 + signalperiod: 4 + Outputs: + wt1 + wt2 + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outwt1 + np.ndarray outwt2 + high = check_array(high) + low = check_array(low) + close = check_array(close) + length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) + with nogil: + begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_WAVETREND_Lookback( channelperiod , averageperiod , signalperiod ) + outwt1 = make_double_array(length, lookback) + outwt2 = make_double_array(length, lookback) + with nogil: + retCode = lib.TA_WAVETREND( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , channelperiod , averageperiod , signalperiod , &outbegidx , &outnbelement , (outwt1.data)+lookback , (outwt2.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_WAVETREND", retCode) + return outwt1 , outwt2 + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def WCLPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): @@ -8624,6 +10171,59 @@ def WMA( np.ndarray real not None , int timeperiod=-2**31 ): _ta_check_success("TA_WMA", retCode) return outreal +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def ZIGZAG( np.ndarray high not None , np.ndarray low not None , double sensitivity=5.0 , int mintrendlength=-2**31 ): + """ ZIGZAG(high, low[, sensitivity=?, mintrendlength=?]) + + Zig Zag (Overlap Studies) + + Inputs: + prices: ['high', 'low'] + Parameters: + sensitivity: 5.0 + mintrendlength: 1 + Outputs: + zigzag + trend + pivotidx + """ + cdef: + np.npy_intp length + int begidx, endidx, lookback + TA_RetCode retCode + int outbegidx + int outnbelement + np.ndarray outzigzag + np.ndarray outtrend + np.ndarray outpivotidx + high = check_array(high) + low = check_array(low) + length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0), make_int_array(0, 0), make_int_array(0, 0) + with nogil: + begidx = check_begidx2(length, (high.data), (low.data)) + endidx = length - begidx - 1 + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_ZIGZAG_Lookback( sensitivity , mintrendlength ) + outzigzag = make_double_array(length, lookback) + outtrend = make_int_array(length, lookback) + outpivotidx = make_int_array(length, lookback) + with nogil: + retCode = lib.TA_ZIGZAG( 0 , endidx , (high.data)+begidx , (low.data)+begidx , sensitivity , mintrendlength , &outbegidx , &outnbelement , (outzigzag.data)+lookback , (outtrend.data)+lookback , (outpivotidx.data)+lookback ) + finally: + with nogil: + _ta_end_read() + _ta_check_success("TA_ZIGZAG", retCode) + outpivotidx_data = outpivotidx.data + with nogil: + for i from lookback <= i < length: + outpivotidx_data[i] += begidx + return outzigzag , outtrend , outpivotidx + @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function def ZLEMA( np.ndarray real not None , int timeperiod=-2**31 ): @@ -8665,4 +10265,4 @@ def ZLEMA( np.ndarray real not None , int timeperiod=-2**31 ): _ta_check_success("TA_ZLEMA", retCode) return outreal -__TA_FUNCTION_NAMES__ = ["AC","ACCBANDS","ACOS","AD","ADD","ADOSC","ADR","ADX","ADXR","AO","APO","AROON","AROONOSC","ASIN","ATAN","ATR","AVGDEV","AVGPRICE","BBANDS","BETA","BOP","CCI","CDL2CROWS","CDL3BLACKCROWS","CDL3INSIDE","CDL3LINESTRIKE","CDL3OUTSIDE","CDL3STARSINSOUTH","CDL3WHITESOLDIERS","CDLABANDONEDBABY","CDLADVANCEBLOCK","CDLBELTHOLD","CDLBREAKAWAY","CDLCLOSINGMARUBOZU","CDLCONCEALBABYSWALL","CDLCOUNTERATTACK","CDLDARKCLOUDCOVER","CDLDOJI","CDLDOJISTAR","CDLDRAGONFLYDOJI","CDLENGULFING","CDLEVENINGDOJISTAR","CDLEVENINGSTAR","CDLGAPSIDESIDEWHITE","CDLGRAVESTONEDOJI","CDLHAMMER","CDLHANGINGMAN","CDLHARAMI","CDLHARAMICROSS","CDLHIGHWAVE","CDLHIKKAKE","CDLHIKKAKEMOD","CDLHOMINGPIGEON","CDLIDENTICAL3CROWS","CDLINNECK","CDLINVERTEDHAMMER","CDLKICKING","CDLKICKINGBYLENGTH","CDLLADDERBOTTOM","CDLLONGLEGGEDDOJI","CDLLONGLINE","CDLMARUBOZU","CDLMATCHINGLOW","CDLMATHOLD","CDLMORNINGDOJISTAR","CDLMORNINGSTAR","CDLONNECK","CDLPIERCING","CDLRICKSHAWMAN","CDLRISEFALL3METHODS","CDLSEPARATINGLINES","CDLSHOOTINGSTAR","CDLSHORTLINE","CDLSPINNINGTOP","CDLSTALLEDPATTERN","CDLSTICKSANDWICH","CDLTAKURI","CDLTASUKIGAP","CDLTHRUSTING","CDLTRISTAR","CDLUNIQUE3RIVER","CDLUPSIDEGAP2CROWS","CDLXSIDEGAP3METHODS","CEIL","CMF","CMO","CMOU","COPPOCK","CORREL","COS","COSH","CUMSUM","CVI","DEMA","DIV","DONCHIAN","DPO","DX","EFI","EMA","ER","ERI","EXP","FLOOR","FOSC","FRACTAL","HA","HMA","HT_DCPERIOD","HT_DCPHASE","HT_PHASOR","HT_SINE","HT_TRENDLINE","HT_TRENDMODE","IMI","KAMA","KC","KDJ","LINEARREG","LINEARREG_ANGLE","LINEARREG_INTERCEPT","LINEARREG_SLOPE","LN","LOG10","MA","MACD","MACDEXT","MACDFIX","MAMA","MARKETFI","MASSI","MAVP","MAX","MAXINDEX","MEDPRICE","MFI","MIDPOINT","MIDPRICE","MIN","MININDEX","MINMAX","MINMAXINDEX","MINUS_DI","MINUS_DM","MOM","MULT","NATR","NVI","OBV","PERCENTILE","PERCENTRANK","PLUS_DI","PLUS_DM","PPO","PVI","PVO","PVT","QSTICK","RMA","ROC","ROCP","ROCR","ROCR100","RSI","RVI","RVOL","SAR","SAREXT","SIN","SINH","SMA","SMI","SQRT","STDDEV","STOCH","STOCHF","STOCHRSI","SUB","SUM","SUPERTREND","T3","TAN","TANH","TEMA","TRANGE","TRIMA","TRIX","TSF","TSI","TYPPRICE","ULTOSC","VAR","VHF","VORTEX","VWAP","VWMA","WAD","WCLPRICE","WILLR","WMA","ZLEMA"] +__TA_FUNCTION_NAMES__ = ["AC","ACCBANDS","ACOS","AD","ADD","ADOSC","ADR","ADX","ADXR","ALMA","AO","APO","AROON","AROONOSC","ASI","ASIN","ATAN","ATR","AVGDEV","AVGPRICE","BBANDS","BBW","BETA","BOP","CCI","CDL2CROWS","CDL3BLACKCROWS","CDL3INSIDE","CDL3LINESTRIKE","CDL3OUTSIDE","CDL3STARSINSOUTH","CDL3WHITESOLDIERS","CDLABANDONEDBABY","CDLADVANCEBLOCK","CDLBELTHOLD","CDLBREAKAWAY","CDLCLOSINGMARUBOZU","CDLCONCEALBABYSWALL","CDLCOUNTERATTACK","CDLDARKCLOUDCOVER","CDLDOJI","CDLDOJISTAR","CDLDRAGONFLYDOJI","CDLENGULFING","CDLEVENINGDOJISTAR","CDLEVENINGSTAR","CDLGAPSIDESIDEWHITE","CDLGRAVESTONEDOJI","CDLHAMMER","CDLHANGINGMAN","CDLHARAMI","CDLHARAMICROSS","CDLHIGHWAVE","CDLHIKKAKE","CDLHIKKAKEMOD","CDLHOMINGPIGEON","CDLIDENTICAL3CROWS","CDLINNECK","CDLINVERTEDHAMMER","CDLKICKING","CDLKICKINGBYLENGTH","CDLLADDERBOTTOM","CDLLONGLEGGEDDOJI","CDLLONGLINE","CDLMARUBOZU","CDLMATCHINGLOW","CDLMATHOLD","CDLMORNINGDOJISTAR","CDLMORNINGSTAR","CDLONNECK","CDLPIERCING","CDLRICKSHAWMAN","CDLRISEFALL3METHODS","CDLSEPARATINGLINES","CDLSHOOTINGSTAR","CDLSHORTLINE","CDLSPINNINGTOP","CDLSTALLEDPATTERN","CDLSTICKSANDWICH","CDLTAKURI","CDLTASUKIGAP","CDLTHRUSTING","CDLTRISTAR","CDLUNIQUE3RIVER","CDLUPSIDEGAP2CROWS","CDLXSIDEGAP3METHODS","CEIL","CG","CHOP","CHOPTR","CKSP","CMF","CMO","CMOU","COPPOCK","CORREL","COS","COSH","CRSI","CTI","CUMSUM","CVI","DEMA","DIV","DONCHIAN","DOSC","DPO","DX","EFI","EMA","EMV","ER","ERI","EXP","FISHER","FLOOR","FOSC","FRACTAL","FRAMA","HA","HMA","HT_DCPERIOD","HT_DCPHASE","HT_PHASOR","HT_SINE","HT_TRENDLINE","HT_TRENDMODE","IBS","ICHIMOKU","IMI","KAMA","KC","KDJ","KST","KSTEXT","KURTOSIS","KVO","LINEARREG","LINEARREG_ANGLE","LINEARREG_INTERCEPT","LINEARREG_SLOPE","LN","LOG10","MA","MACD","MACDEXT","MACDFIX","MAMA","MARKETFI","MASSI","MAVP","MAX","MAXINDEX","MCGD","MEDIAN","MEDPRICE","MFI","MIDPOINT","MIDPRICE","MIN","MININDEX","MINMAX","MINMAXINDEX","MINUS_DI","MINUS_DM","MOM","MULT","NATR","NVI","OBV","PERCENTB","PERCENTILE","PERCENTRANK","PLUS_DI","PLUS_DM","PPO","PSO","PVI","PVO","PVT","QSTICK","RMA","ROC","ROCP","ROCR","ROCR100","ROGERSSATCHELL","RSI","RVI","RVIR","RVOL","SAR","SAREXT","SI","SIN","SINH","SMA","SMI","SQRT","SQZMOM","STC","STDDEV","STOCH","STOCHF","STOCHRSI","SUB","SUM","SUPERTREND","SWAK_2PHP","SWAK_BP","SWAK_BUTTER","SWAK_GAUSS","SWAK_HP","T3","TAN","TANH","TEMA","TRANGE","TRIMA","TRIX","TSF","TSI","TYPPRICE","ULTOSC","VAR","VHF","VIDYA","VORTEX","VWAP","VWMA","WAD","WAVETREND","WCLPRICE","WILLR","WMA","ZIGZAG","ZLEMA"] diff --git a/talib/_stream.pxi b/talib/_stream.pxi index 1720a0047..677cb8a79 100644 --- a/talib/_stream.pxi +++ b/talib/_stream.pxi @@ -121,6 +121,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_ADXR_OutRange(const TA_ADXR_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_ADXR_Advance(TA_ADXR_Stream* stream) + ctypedef struct TA_ALMA_Stream: + pass + TA_RetCode TA_ALMA_OpenAndFill(TA_ALMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInSigma, double optInOffset, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ALMA_Open(TA_ALMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInSigma, double optInOffset, double* outReal) + TA_RetCode TA_ALMA_Update(TA_ALMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ALMA_Peek(const TA_ALMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ALMA_Value(const TA_ALMA_Stream* stream, double* outReal) + TA_RetCode TA_ALMA_Clone(const TA_ALMA_Stream* stream, TA_ALMA_Stream** clone) + TA_RetCode TA_ALMA_Close(TA_ALMA_Stream* stream) + TA_RetCode TA_ALMA_OutRange(const TA_ALMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ALMA_Advance(TA_ALMA_Stream* stream) + ctypedef struct TA_AO_Stream: pass TA_RetCode TA_AO_OpenAndFill(TA_AO_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInFastPeriod, int optInSlowPeriod, int* outBegIdx, int* outNBElement, double* outReal) @@ -169,6 +181,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_AROONOSC_OutRange(const TA_AROONOSC_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_AROONOSC_Advance(TA_AROONOSC_Stream* stream) + ctypedef struct TA_ASI_Stream: + pass + TA_RetCode TA_ASI_OpenAndFill(TA_ASI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInLimitMove, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ASI_Open(TA_ASI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInLimitMove, double* outReal) + TA_RetCode TA_ASI_Update(TA_ASI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_ASI_Peek(const TA_ASI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_ASI_Value(const TA_ASI_Stream* stream, double* outReal) + TA_RetCode TA_ASI_Clone(const TA_ASI_Stream* stream, TA_ASI_Stream** clone) + TA_RetCode TA_ASI_Close(TA_ASI_Stream* stream) + TA_RetCode TA_ASI_OutRange(const TA_ASI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ASI_Advance(TA_ASI_Stream* stream) + ctypedef struct TA_ASIN_Stream: pass TA_RetCode TA_ASIN_OpenAndFill(TA_ASIN_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) @@ -241,6 +265,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_BBANDS_OutRange(const TA_BBANDS_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_BBANDS_Advance(TA_BBANDS_Stream* stream) + ctypedef struct TA_BBW_Stream: + pass + TA_RetCode TA_BBW_OpenAndFill(TA_BBW_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_BBW_Open(TA_BBW_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType, double* outReal) + TA_RetCode TA_BBW_Update(TA_BBW_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_BBW_Peek(const TA_BBW_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_BBW_Value(const TA_BBW_Stream* stream, double* outReal) + TA_RetCode TA_BBW_Clone(const TA_BBW_Stream* stream, TA_BBW_Stream** clone) + TA_RetCode TA_BBW_Close(TA_BBW_Stream* stream) + TA_RetCode TA_BBW_OutRange(const TA_BBW_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_BBW_Advance(TA_BBW_Stream* stream) + ctypedef struct TA_BETA_Stream: pass TA_RetCode TA_BETA_OpenAndFill(TA_BETA_Stream** stream, const double* inReal0, const double* inReal1, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) @@ -1021,6 +1057,54 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_CEIL_OutRange(const TA_CEIL_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_CEIL_Advance(TA_CEIL_Stream* stream) + ctypedef struct TA_CG_Stream: + pass + TA_RetCode TA_CG_OpenAndFill(TA_CG_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_CG_Open(TA_CG_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_CG_Update(TA_CG_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CG_Peek(const TA_CG_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CG_Value(const TA_CG_Stream* stream, double* outReal) + TA_RetCode TA_CG_Clone(const TA_CG_Stream* stream, TA_CG_Stream** clone) + TA_RetCode TA_CG_Close(TA_CG_Stream* stream) + TA_RetCode TA_CG_OutRange(const TA_CG_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CG_Advance(TA_CG_Stream* stream) + + ctypedef struct TA_CHOP_Stream: + pass + TA_RetCode TA_CHOP_OpenAndFill(TA_CHOP_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_CHOP_Open(TA_CHOP_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_CHOP_Update(TA_CHOP_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_CHOP_Peek(const TA_CHOP_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_CHOP_Value(const TA_CHOP_Stream* stream, double* outReal) + TA_RetCode TA_CHOP_Clone(const TA_CHOP_Stream* stream, TA_CHOP_Stream** clone) + TA_RetCode TA_CHOP_Close(TA_CHOP_Stream* stream) + TA_RetCode TA_CHOP_OutRange(const TA_CHOP_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CHOP_Advance(TA_CHOP_Stream* stream) + + ctypedef struct TA_CHOPTR_Stream: + pass + TA_RetCode TA_CHOPTR_OpenAndFill(TA_CHOPTR_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_CHOPTR_Open(TA_CHOPTR_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_CHOPTR_Update(TA_CHOPTR_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_CHOPTR_Peek(const TA_CHOPTR_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_CHOPTR_Value(const TA_CHOPTR_Stream* stream, double* outReal) + TA_RetCode TA_CHOPTR_Clone(const TA_CHOPTR_Stream* stream, TA_CHOPTR_Stream** clone) + TA_RetCode TA_CHOPTR_Close(TA_CHOPTR_Stream* stream) + TA_RetCode TA_CHOPTR_OutRange(const TA_CHOPTR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CHOPTR_Advance(TA_CHOPTR_Stream* stream) + + ctypedef struct TA_CKSP_Stream: + pass + TA_RetCode TA_CKSP_OpenAndFill(TA_CKSP_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double optInMultiplier, int optInStopPeriod, int* outBegIdx, int* outNBElement, double* outHighStop, double* outLowStop) + TA_RetCode TA_CKSP_Open(TA_CKSP_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double optInMultiplier, int optInStopPeriod, double* outHighStop, double* outLowStop) + TA_RetCode TA_CKSP_Update(TA_CKSP_Stream* stream, double inHigh, double inLow, double inClose, double* outHighStop, double* outLowStop) + TA_RetCode TA_CKSP_Peek(const TA_CKSP_Stream* stream, double inHigh, double inLow, double inClose, double* outHighStop, double* outLowStop) + TA_RetCode TA_CKSP_Value(const TA_CKSP_Stream* stream, double* outHighStop, double* outLowStop) + TA_RetCode TA_CKSP_Clone(const TA_CKSP_Stream* stream, TA_CKSP_Stream** clone) + TA_RetCode TA_CKSP_Close(TA_CKSP_Stream* stream) + TA_RetCode TA_CKSP_OutRange(const TA_CKSP_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CKSP_Advance(TA_CKSP_Stream* stream) + ctypedef struct TA_CMF_Stream: pass TA_RetCode TA_CMF_OpenAndFill(TA_CMF_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, const double* inVolume, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) @@ -1105,6 +1189,30 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_COSH_OutRange(const TA_COSH_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_COSH_Advance(TA_COSH_Stream* stream) + ctypedef struct TA_CRSI_Stream: + pass + TA_RetCode TA_CRSI_OpenAndFill(TA_CRSI_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int optInStreakPeriod, int optInRankPeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_CRSI_Open(TA_CRSI_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int optInStreakPeriod, int optInRankPeriod, double* outReal) + TA_RetCode TA_CRSI_Update(TA_CRSI_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CRSI_Peek(const TA_CRSI_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CRSI_Value(const TA_CRSI_Stream* stream, double* outReal) + TA_RetCode TA_CRSI_Clone(const TA_CRSI_Stream* stream, TA_CRSI_Stream** clone) + TA_RetCode TA_CRSI_Close(TA_CRSI_Stream* stream) + TA_RetCode TA_CRSI_OutRange(const TA_CRSI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CRSI_Advance(TA_CRSI_Stream* stream) + + ctypedef struct TA_CTI_Stream: + pass + TA_RetCode TA_CTI_OpenAndFill(TA_CTI_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_CTI_Open(TA_CTI_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_CTI_Update(TA_CTI_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CTI_Peek(const TA_CTI_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CTI_Value(const TA_CTI_Stream* stream, double* outReal) + TA_RetCode TA_CTI_Clone(const TA_CTI_Stream* stream, TA_CTI_Stream** clone) + TA_RetCode TA_CTI_Close(TA_CTI_Stream* stream) + TA_RetCode TA_CTI_OutRange(const TA_CTI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CTI_Advance(TA_CTI_Stream* stream) + ctypedef struct TA_CUMSUM_Stream: pass TA_RetCode TA_CUMSUM_OpenAndFill(TA_CUMSUM_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) @@ -1165,6 +1273,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_DONCHIAN_OutRange(const TA_DONCHIAN_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_DONCHIAN_Advance(TA_DONCHIAN_Stream* stream) + ctypedef struct TA_DOSC_Stream: + pass + TA_RetCode TA_DOSC_OpenAndFill(TA_DOSC_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int optInFirstPeriod, int optInSecondPeriod, int optInSignalPeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_DOSC_Open(TA_DOSC_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int optInFirstPeriod, int optInSecondPeriod, int optInSignalPeriod, double* outReal) + TA_RetCode TA_DOSC_Update(TA_DOSC_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_DOSC_Peek(const TA_DOSC_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_DOSC_Value(const TA_DOSC_Stream* stream, double* outReal) + TA_RetCode TA_DOSC_Clone(const TA_DOSC_Stream* stream, TA_DOSC_Stream** clone) + TA_RetCode TA_DOSC_Close(TA_DOSC_Stream* stream) + TA_RetCode TA_DOSC_OutRange(const TA_DOSC_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_DOSC_Advance(TA_DOSC_Stream* stream) + ctypedef struct TA_DPO_Stream: pass TA_RetCode TA_DPO_OpenAndFill(TA_DPO_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) @@ -1213,6 +1333,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_EMA_OutRange(const TA_EMA_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_EMA_Advance(TA_EMA_Stream* stream) + ctypedef struct TA_EMV_Stream: + pass + TA_RetCode TA_EMV_OpenAndFill(TA_EMV_Stream** stream, const double* inHigh, const double* inLow, const double* inVolume, int historyLen, int optInTimePeriod, double optInVolumeDivisor, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_EMV_Open(TA_EMV_Stream** stream, const double* inHigh, const double* inLow, const double* inVolume, int historyLen, int optInTimePeriod, double optInVolumeDivisor, double* outReal) + TA_RetCode TA_EMV_Update(TA_EMV_Stream* stream, double inHigh, double inLow, double inVolume, double* outReal) + TA_RetCode TA_EMV_Peek(const TA_EMV_Stream* stream, double inHigh, double inLow, double inVolume, double* outReal) + TA_RetCode TA_EMV_Value(const TA_EMV_Stream* stream, double* outReal) + TA_RetCode TA_EMV_Clone(const TA_EMV_Stream* stream, TA_EMV_Stream** clone) + TA_RetCode TA_EMV_Close(TA_EMV_Stream* stream) + TA_RetCode TA_EMV_OutRange(const TA_EMV_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_EMV_Advance(TA_EMV_Stream* stream) + ctypedef struct TA_ER_Stream: pass TA_RetCode TA_ER_OpenAndFill(TA_ER_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) @@ -1249,6 +1381,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_EXP_OutRange(const TA_EXP_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_EXP_Advance(TA_EXP_Stream* stream) + ctypedef struct TA_FISHER_Stream: + pass + TA_RetCode TA_FISHER_OpenAndFill(TA_FISHER_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outFisher, double* outTrigger) + TA_RetCode TA_FISHER_Open(TA_FISHER_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, double* outFisher, double* outTrigger) + TA_RetCode TA_FISHER_Update(TA_FISHER_Stream* stream, double inHigh, double inLow, double* outFisher, double* outTrigger) + TA_RetCode TA_FISHER_Peek(const TA_FISHER_Stream* stream, double inHigh, double inLow, double* outFisher, double* outTrigger) + TA_RetCode TA_FISHER_Value(const TA_FISHER_Stream* stream, double* outFisher, double* outTrigger) + TA_RetCode TA_FISHER_Clone(const TA_FISHER_Stream* stream, TA_FISHER_Stream** clone) + TA_RetCode TA_FISHER_Close(TA_FISHER_Stream* stream) + TA_RetCode TA_FISHER_OutRange(const TA_FISHER_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_FISHER_Advance(TA_FISHER_Stream* stream) + ctypedef struct TA_FLOOR_Stream: pass TA_RetCode TA_FLOOR_OpenAndFill(TA_FLOOR_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) @@ -1285,6 +1429,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_FRACTAL_OutRange(const TA_FRACTAL_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_FRACTAL_Advance(TA_FRACTAL_Stream* stream) + ctypedef struct TA_FRAMA_Stream: + pass + TA_RetCode TA_FRAMA_OpenAndFill(TA_FRAMA_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_FRAMA_Open(TA_FRAMA_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_FRAMA_Update(TA_FRAMA_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_FRAMA_Peek(const TA_FRAMA_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_FRAMA_Value(const TA_FRAMA_Stream* stream, double* outReal) + TA_RetCode TA_FRAMA_Clone(const TA_FRAMA_Stream* stream, TA_FRAMA_Stream** clone) + TA_RetCode TA_FRAMA_Close(TA_FRAMA_Stream* stream) + TA_RetCode TA_FRAMA_OutRange(const TA_FRAMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_FRAMA_Advance(TA_FRAMA_Stream* stream) + ctypedef struct TA_HA_Stream: pass TA_RetCode TA_HA_OpenAndFill(TA_HA_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, double* outHAOpen, double* outHAHigh, double* outHALow, double* outHAClose) @@ -1381,6 +1537,30 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_HT_TRENDMODE_OutRange(const TA_HT_TRENDMODE_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_HT_TRENDMODE_Advance(TA_HT_TRENDMODE_Stream* stream) + ctypedef struct TA_IBS_Stream: + pass + TA_RetCode TA_IBS_OpenAndFill(TA_IBS_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_IBS_Open(TA_IBS_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double* outReal) + TA_RetCode TA_IBS_Update(TA_IBS_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_IBS_Peek(const TA_IBS_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_IBS_Value(const TA_IBS_Stream* stream, double* outReal) + TA_RetCode TA_IBS_Clone(const TA_IBS_Stream* stream, TA_IBS_Stream** clone) + TA_RetCode TA_IBS_Close(TA_IBS_Stream* stream) + TA_RetCode TA_IBS_OutRange(const TA_IBS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_IBS_Advance(TA_IBS_Stream* stream) + + ctypedef struct TA_ICHIMOKU_Stream: + pass + TA_RetCode TA_ICHIMOKU_OpenAndFill(TA_ICHIMOKU_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTenkanPeriod, int optInKijunPeriod, int optInSenkouBPeriod, int* outBegIdx, int* outNBElement, double* outTenkanSen, double* outKijunSen, double* outSenkouSpanA, double* outSenkouSpanB) + TA_RetCode TA_ICHIMOKU_Open(TA_ICHIMOKU_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTenkanPeriod, int optInKijunPeriod, int optInSenkouBPeriod, double* outTenkanSen, double* outKijunSen, double* outSenkouSpanA, double* outSenkouSpanB) + TA_RetCode TA_ICHIMOKU_Update(TA_ICHIMOKU_Stream* stream, double inHigh, double inLow, double* outTenkanSen, double* outKijunSen, double* outSenkouSpanA, double* outSenkouSpanB) + TA_RetCode TA_ICHIMOKU_Peek(const TA_ICHIMOKU_Stream* stream, double inHigh, double inLow, double* outTenkanSen, double* outKijunSen, double* outSenkouSpanA, double* outSenkouSpanB) + TA_RetCode TA_ICHIMOKU_Value(const TA_ICHIMOKU_Stream* stream, double* outTenkanSen, double* outKijunSen, double* outSenkouSpanA, double* outSenkouSpanB) + TA_RetCode TA_ICHIMOKU_Clone(const TA_ICHIMOKU_Stream* stream, TA_ICHIMOKU_Stream** clone) + TA_RetCode TA_ICHIMOKU_Close(TA_ICHIMOKU_Stream* stream) + TA_RetCode TA_ICHIMOKU_OutRange(const TA_ICHIMOKU_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ICHIMOKU_Advance(TA_ICHIMOKU_Stream* stream) + ctypedef struct TA_IMI_Stream: pass TA_RetCode TA_IMI_OpenAndFill(TA_IMI_Stream** stream, const double* inOpen, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) @@ -1429,6 +1609,54 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_KDJ_OutRange(const TA_KDJ_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_KDJ_Advance(TA_KDJ_Stream* stream) + ctypedef struct TA_KST_Stream: + pass + TA_RetCode TA_KST_OpenAndFill(TA_KST_Stream** stream, const double* inReal, int historyLen, int optInROC1Period, int optInROC2Period, int optInROC3Period, int optInROC4Period, int optInSMA1Period, int optInSMA2Period, int optInSMA3Period, int optInSMA4Period, int optInSignalPeriod, int* outBegIdx, int* outNBElement, double* outKST, double* outKSTSignal) + TA_RetCode TA_KST_Open(TA_KST_Stream** stream, const double* inReal, int historyLen, int optInROC1Period, int optInROC2Period, int optInROC3Period, int optInROC4Period, int optInSMA1Period, int optInSMA2Period, int optInSMA3Period, int optInSMA4Period, int optInSignalPeriod, double* outKST, double* outKSTSignal) + TA_RetCode TA_KST_Update(TA_KST_Stream* stream, double inReal, double* outKST, double* outKSTSignal) + TA_RetCode TA_KST_Peek(const TA_KST_Stream* stream, double inReal, double* outKST, double* outKSTSignal) + TA_RetCode TA_KST_Value(const TA_KST_Stream* stream, double* outKST, double* outKSTSignal) + TA_RetCode TA_KST_Clone(const TA_KST_Stream* stream, TA_KST_Stream** clone) + TA_RetCode TA_KST_Close(TA_KST_Stream* stream) + TA_RetCode TA_KST_OutRange(const TA_KST_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_KST_Advance(TA_KST_Stream* stream) + + ctypedef struct TA_KSTEXT_Stream: + pass + TA_RetCode TA_KSTEXT_OpenAndFill(TA_KSTEXT_Stream** stream, const double* inReal, int historyLen, int optInROC1Period, int optInROC2Period, int optInROC3Period, int optInROC4Period, int optInMA1Period, int optInMA2Period, int optInMA3Period, int optInMA4Period, int optInSignalPeriod, TA_MAType optInROCMAType, TA_MAType optInSignalMAType, int* outBegIdx, int* outNBElement, double* outKST, double* outKSTSignal) + TA_RetCode TA_KSTEXT_Open(TA_KSTEXT_Stream** stream, const double* inReal, int historyLen, int optInROC1Period, int optInROC2Period, int optInROC3Period, int optInROC4Period, int optInMA1Period, int optInMA2Period, int optInMA3Period, int optInMA4Period, int optInSignalPeriod, TA_MAType optInROCMAType, TA_MAType optInSignalMAType, double* outKST, double* outKSTSignal) + TA_RetCode TA_KSTEXT_Update(TA_KSTEXT_Stream* stream, double inReal, double* outKST, double* outKSTSignal) + TA_RetCode TA_KSTEXT_Peek(const TA_KSTEXT_Stream* stream, double inReal, double* outKST, double* outKSTSignal) + TA_RetCode TA_KSTEXT_Value(const TA_KSTEXT_Stream* stream, double* outKST, double* outKSTSignal) + TA_RetCode TA_KSTEXT_Clone(const TA_KSTEXT_Stream* stream, TA_KSTEXT_Stream** clone) + TA_RetCode TA_KSTEXT_Close(TA_KSTEXT_Stream* stream) + TA_RetCode TA_KSTEXT_OutRange(const TA_KSTEXT_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_KSTEXT_Advance(TA_KSTEXT_Stream* stream) + + ctypedef struct TA_KURTOSIS_Stream: + pass + TA_RetCode TA_KURTOSIS_OpenAndFill(TA_KURTOSIS_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_KURTOSIS_Open(TA_KURTOSIS_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_KURTOSIS_Update(TA_KURTOSIS_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_KURTOSIS_Peek(const TA_KURTOSIS_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_KURTOSIS_Value(const TA_KURTOSIS_Stream* stream, double* outReal) + TA_RetCode TA_KURTOSIS_Clone(const TA_KURTOSIS_Stream* stream, TA_KURTOSIS_Stream** clone) + TA_RetCode TA_KURTOSIS_Close(TA_KURTOSIS_Stream* stream) + TA_RetCode TA_KURTOSIS_OutRange(const TA_KURTOSIS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_KURTOSIS_Advance(TA_KURTOSIS_Stream* stream) + + ctypedef struct TA_KVO_Stream: + pass + TA_RetCode TA_KVO_OpenAndFill(TA_KVO_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, const double* inVolume, int historyLen, int optInFastPeriod, int optInSlowPeriod, int optInSignalPeriod, int* outBegIdx, int* outNBElement, double* outKVO, double* outKVOSignal) + TA_RetCode TA_KVO_Open(TA_KVO_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, const double* inVolume, int historyLen, int optInFastPeriod, int optInSlowPeriod, int optInSignalPeriod, double* outKVO, double* outKVOSignal) + TA_RetCode TA_KVO_Update(TA_KVO_Stream* stream, double inHigh, double inLow, double inClose, double inVolume, double* outKVO, double* outKVOSignal) + TA_RetCode TA_KVO_Peek(const TA_KVO_Stream* stream, double inHigh, double inLow, double inClose, double inVolume, double* outKVO, double* outKVOSignal) + TA_RetCode TA_KVO_Value(const TA_KVO_Stream* stream, double* outKVO, double* outKVOSignal) + TA_RetCode TA_KVO_Clone(const TA_KVO_Stream* stream, TA_KVO_Stream** clone) + TA_RetCode TA_KVO_Close(TA_KVO_Stream* stream) + TA_RetCode TA_KVO_OutRange(const TA_KVO_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_KVO_Advance(TA_KVO_Stream* stream) + ctypedef struct TA_LINEARREG_Stream: pass TA_RetCode TA_LINEARREG_OpenAndFill(TA_LINEARREG_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) @@ -1621,6 +1849,30 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_MAXINDEX_OutRange(const TA_MAXINDEX_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_MAXINDEX_Advance(TA_MAXINDEX_Stream* stream) + ctypedef struct TA_MCGD_Stream: + pass + TA_RetCode TA_MCGD_OpenAndFill(TA_MCGD_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MCGD_Open(TA_MCGD_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_MCGD_Update(TA_MCGD_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MCGD_Peek(const TA_MCGD_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MCGD_Value(const TA_MCGD_Stream* stream, double* outReal) + TA_RetCode TA_MCGD_Clone(const TA_MCGD_Stream* stream, TA_MCGD_Stream** clone) + TA_RetCode TA_MCGD_Close(TA_MCGD_Stream* stream) + TA_RetCode TA_MCGD_OutRange(const TA_MCGD_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MCGD_Advance(TA_MCGD_Stream* stream) + + ctypedef struct TA_MEDIAN_Stream: + pass + TA_RetCode TA_MEDIAN_OpenAndFill(TA_MEDIAN_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MEDIAN_Open(TA_MEDIAN_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_MEDIAN_Update(TA_MEDIAN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MEDIAN_Peek(const TA_MEDIAN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MEDIAN_Value(const TA_MEDIAN_Stream* stream, double* outReal) + TA_RetCode TA_MEDIAN_Clone(const TA_MEDIAN_Stream* stream, TA_MEDIAN_Stream** clone) + TA_RetCode TA_MEDIAN_Close(TA_MEDIAN_Stream* stream) + TA_RetCode TA_MEDIAN_OutRange(const TA_MEDIAN_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MEDIAN_Advance(TA_MEDIAN_Stream* stream) + ctypedef struct TA_MEDPRICE_Stream: pass TA_RetCode TA_MEDPRICE_OpenAndFill(TA_MEDPRICE_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) @@ -1801,6 +2053,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_OBV_OutRange(const TA_OBV_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_OBV_Advance(TA_OBV_Stream* stream) + ctypedef struct TA_PERCENTB_Stream: + pass + TA_RetCode TA_PERCENTB_OpenAndFill(TA_PERCENTB_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_PERCENTB_Open(TA_PERCENTB_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType, double* outReal) + TA_RetCode TA_PERCENTB_Update(TA_PERCENTB_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_PERCENTB_Peek(const TA_PERCENTB_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_PERCENTB_Value(const TA_PERCENTB_Stream* stream, double* outReal) + TA_RetCode TA_PERCENTB_Clone(const TA_PERCENTB_Stream* stream, TA_PERCENTB_Stream** clone) + TA_RetCode TA_PERCENTB_Close(TA_PERCENTB_Stream* stream) + TA_RetCode TA_PERCENTB_OutRange(const TA_PERCENTB_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_PERCENTB_Advance(TA_PERCENTB_Stream* stream) + ctypedef struct TA_PERCENTILE_Stream: pass TA_RetCode TA_PERCENTILE_OpenAndFill(TA_PERCENTILE_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInPercentile, int* outBegIdx, int* outNBElement, double* outReal) @@ -1861,6 +2125,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_PPO_OutRange(const TA_PPO_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_PPO_Advance(TA_PPO_Stream* stream) + ctypedef struct TA_PSO_Stream: + pass + TA_RetCode TA_PSO_OpenAndFill(TA_PSO_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInFastK_Period, int optInEMAPeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_PSO_Open(TA_PSO_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInFastK_Period, int optInEMAPeriod, double* outReal) + TA_RetCode TA_PSO_Update(TA_PSO_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_PSO_Peek(const TA_PSO_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_PSO_Value(const TA_PSO_Stream* stream, double* outReal) + TA_RetCode TA_PSO_Clone(const TA_PSO_Stream* stream, TA_PSO_Stream** clone) + TA_RetCode TA_PSO_Close(TA_PSO_Stream* stream) + TA_RetCode TA_PSO_OutRange(const TA_PSO_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_PSO_Advance(TA_PSO_Stream* stream) + ctypedef struct TA_PVI_Stream: pass TA_RetCode TA_PVI_OpenAndFill(TA_PVI_Stream** stream, const double* inClose, const double* inVolume, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) @@ -1969,6 +2245,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_ROCR100_OutRange(const TA_ROCR100_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_ROCR100_Advance(TA_ROCR100_Stream* stream) + ctypedef struct TA_ROGERSSATCHELL_Stream: + pass + TA_RetCode TA_ROGERSSATCHELL_OpenAndFill(TA_ROGERSSATCHELL_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double optInAnnualization, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ROGERSSATCHELL_Open(TA_ROGERSSATCHELL_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double optInAnnualization, double* outReal) + TA_RetCode TA_ROGERSSATCHELL_Update(TA_ROGERSSATCHELL_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_ROGERSSATCHELL_Peek(const TA_ROGERSSATCHELL_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_ROGERSSATCHELL_Value(const TA_ROGERSSATCHELL_Stream* stream, double* outReal) + TA_RetCode TA_ROGERSSATCHELL_Clone(const TA_ROGERSSATCHELL_Stream* stream, TA_ROGERSSATCHELL_Stream** clone) + TA_RetCode TA_ROGERSSATCHELL_Close(TA_ROGERSSATCHELL_Stream* stream) + TA_RetCode TA_ROGERSSATCHELL_OutRange(const TA_ROGERSSATCHELL_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ROGERSSATCHELL_Advance(TA_ROGERSSATCHELL_Stream* stream) + ctypedef struct TA_RSI_Stream: pass TA_RetCode TA_RSI_OpenAndFill(TA_RSI_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) @@ -1993,6 +2281,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_RVI_OutRange(const TA_RVI_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_RVI_Advance(TA_RVI_Stream* stream) + ctypedef struct TA_RVIR_Stream: + pass + TA_RetCode TA_RVIR_OpenAndFill(TA_RVIR_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, int optInStdDevPeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_RVIR_Open(TA_RVIR_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, int optInStdDevPeriod, double* outReal) + TA_RetCode TA_RVIR_Update(TA_RVIR_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_RVIR_Peek(const TA_RVIR_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_RVIR_Value(const TA_RVIR_Stream* stream, double* outReal) + TA_RetCode TA_RVIR_Clone(const TA_RVIR_Stream* stream, TA_RVIR_Stream** clone) + TA_RetCode TA_RVIR_Close(TA_RVIR_Stream* stream) + TA_RetCode TA_RVIR_OutRange(const TA_RVIR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_RVIR_Advance(TA_RVIR_Stream* stream) + ctypedef struct TA_RVOL_Stream: pass TA_RetCode TA_RVOL_OpenAndFill(TA_RVOL_Stream** stream, const double* inVolume, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) @@ -2029,6 +2329,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_SAREXT_OutRange(const TA_SAREXT_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_SAREXT_Advance(TA_SAREXT_Stream* stream) + ctypedef struct TA_SI_Stream: + pass + TA_RetCode TA_SI_OpenAndFill(TA_SI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInLimitMove, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SI_Open(TA_SI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInLimitMove, double* outReal) + TA_RetCode TA_SI_Update(TA_SI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_SI_Peek(const TA_SI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_SI_Value(const TA_SI_Stream* stream, double* outReal) + TA_RetCode TA_SI_Clone(const TA_SI_Stream* stream, TA_SI_Stream** clone) + TA_RetCode TA_SI_Close(TA_SI_Stream* stream) + TA_RetCode TA_SI_OutRange(const TA_SI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SI_Advance(TA_SI_Stream* stream) + ctypedef struct TA_SIN_Stream: pass TA_RetCode TA_SIN_OpenAndFill(TA_SIN_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) @@ -2089,6 +2401,30 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_SQRT_OutRange(const TA_SQRT_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_SQRT_Advance(TA_SQRT_Stream* stream) + ctypedef struct TA_SQZMOM_Stream: + pass + TA_RetCode TA_SQZMOM_OpenAndFill(TA_SQZMOM_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInBBPeriod, double optInNbDev, int optInKCPeriod, double optInFactorWide, double optInFactorNormal, double optInFactorNarrow, int* outBegIdx, int* outNBElement, double* outMomentum, int* outSqueeze) + TA_RetCode TA_SQZMOM_Open(TA_SQZMOM_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInBBPeriod, double optInNbDev, int optInKCPeriod, double optInFactorWide, double optInFactorNormal, double optInFactorNarrow, double* outMomentum, int* outSqueeze) + TA_RetCode TA_SQZMOM_Update(TA_SQZMOM_Stream* stream, double inHigh, double inLow, double inClose, double* outMomentum, int* outSqueeze) + TA_RetCode TA_SQZMOM_Peek(const TA_SQZMOM_Stream* stream, double inHigh, double inLow, double inClose, double* outMomentum, int* outSqueeze) + TA_RetCode TA_SQZMOM_Value(const TA_SQZMOM_Stream* stream, double* outMomentum, int* outSqueeze) + TA_RetCode TA_SQZMOM_Clone(const TA_SQZMOM_Stream* stream, TA_SQZMOM_Stream** clone) + TA_RetCode TA_SQZMOM_Close(TA_SQZMOM_Stream* stream) + TA_RetCode TA_SQZMOM_OutRange(const TA_SQZMOM_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SQZMOM_Advance(TA_SQZMOM_Stream* stream) + + ctypedef struct TA_STC_Stream: + pass + TA_RetCode TA_STC_OpenAndFill(TA_STC_Stream** stream, const double* inReal, int historyLen, int optInFastPeriod, int optInSlowPeriod, int optInCyclePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_STC_Open(TA_STC_Stream** stream, const double* inReal, int historyLen, int optInFastPeriod, int optInSlowPeriod, int optInCyclePeriod, double* outReal) + TA_RetCode TA_STC_Update(TA_STC_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_STC_Peek(const TA_STC_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_STC_Value(const TA_STC_Stream* stream, double* outReal) + TA_RetCode TA_STC_Clone(const TA_STC_Stream* stream, TA_STC_Stream** clone) + TA_RetCode TA_STC_Close(TA_STC_Stream* stream) + TA_RetCode TA_STC_OutRange(const TA_STC_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_STC_Advance(TA_STC_Stream* stream) + ctypedef struct TA_STDDEV_Stream: pass TA_RetCode TA_STDDEV_OpenAndFill(TA_STDDEV_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInNbDev, int* outBegIdx, int* outNBElement, double* outReal) @@ -2173,6 +2509,66 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_SUPERTREND_OutRange(const TA_SUPERTREND_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_SUPERTREND_Advance(TA_SUPERTREND_Stream* stream) + ctypedef struct TA_SWAK_2PHP_Stream: + pass + TA_RetCode TA_SWAK_2PHP_OpenAndFill(TA_SWAK_2PHP_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SWAK_2PHP_Open(TA_SWAK_2PHP_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_SWAK_2PHP_Update(TA_SWAK_2PHP_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SWAK_2PHP_Peek(const TA_SWAK_2PHP_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SWAK_2PHP_Value(const TA_SWAK_2PHP_Stream* stream, double* outReal) + TA_RetCode TA_SWAK_2PHP_Clone(const TA_SWAK_2PHP_Stream* stream, TA_SWAK_2PHP_Stream** clone) + TA_RetCode TA_SWAK_2PHP_Close(TA_SWAK_2PHP_Stream* stream) + TA_RetCode TA_SWAK_2PHP_OutRange(const TA_SWAK_2PHP_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SWAK_2PHP_Advance(TA_SWAK_2PHP_Stream* stream) + + ctypedef struct TA_SWAK_BP_Stream: + pass + TA_RetCode TA_SWAK_BP_OpenAndFill(TA_SWAK_BP_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInDelta, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SWAK_BP_Open(TA_SWAK_BP_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInDelta, double* outReal) + TA_RetCode TA_SWAK_BP_Update(TA_SWAK_BP_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SWAK_BP_Peek(const TA_SWAK_BP_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SWAK_BP_Value(const TA_SWAK_BP_Stream* stream, double* outReal) + TA_RetCode TA_SWAK_BP_Clone(const TA_SWAK_BP_Stream* stream, TA_SWAK_BP_Stream** clone) + TA_RetCode TA_SWAK_BP_Close(TA_SWAK_BP_Stream* stream) + TA_RetCode TA_SWAK_BP_OutRange(const TA_SWAK_BP_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SWAK_BP_Advance(TA_SWAK_BP_Stream* stream) + + ctypedef struct TA_SWAK_BUTTER_Stream: + pass + TA_RetCode TA_SWAK_BUTTER_OpenAndFill(TA_SWAK_BUTTER_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SWAK_BUTTER_Open(TA_SWAK_BUTTER_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_SWAK_BUTTER_Update(TA_SWAK_BUTTER_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SWAK_BUTTER_Peek(const TA_SWAK_BUTTER_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SWAK_BUTTER_Value(const TA_SWAK_BUTTER_Stream* stream, double* outReal) + TA_RetCode TA_SWAK_BUTTER_Clone(const TA_SWAK_BUTTER_Stream* stream, TA_SWAK_BUTTER_Stream** clone) + TA_RetCode TA_SWAK_BUTTER_Close(TA_SWAK_BUTTER_Stream* stream) + TA_RetCode TA_SWAK_BUTTER_OutRange(const TA_SWAK_BUTTER_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SWAK_BUTTER_Advance(TA_SWAK_BUTTER_Stream* stream) + + ctypedef struct TA_SWAK_GAUSS_Stream: + pass + TA_RetCode TA_SWAK_GAUSS_OpenAndFill(TA_SWAK_GAUSS_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SWAK_GAUSS_Open(TA_SWAK_GAUSS_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_SWAK_GAUSS_Update(TA_SWAK_GAUSS_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SWAK_GAUSS_Peek(const TA_SWAK_GAUSS_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SWAK_GAUSS_Value(const TA_SWAK_GAUSS_Stream* stream, double* outReal) + TA_RetCode TA_SWAK_GAUSS_Clone(const TA_SWAK_GAUSS_Stream* stream, TA_SWAK_GAUSS_Stream** clone) + TA_RetCode TA_SWAK_GAUSS_Close(TA_SWAK_GAUSS_Stream* stream) + TA_RetCode TA_SWAK_GAUSS_OutRange(const TA_SWAK_GAUSS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SWAK_GAUSS_Advance(TA_SWAK_GAUSS_Stream* stream) + + ctypedef struct TA_SWAK_HP_Stream: + pass + TA_RetCode TA_SWAK_HP_OpenAndFill(TA_SWAK_HP_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SWAK_HP_Open(TA_SWAK_HP_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_SWAK_HP_Update(TA_SWAK_HP_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SWAK_HP_Peek(const TA_SWAK_HP_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SWAK_HP_Value(const TA_SWAK_HP_Stream* stream, double* outReal) + TA_RetCode TA_SWAK_HP_Clone(const TA_SWAK_HP_Stream* stream, TA_SWAK_HP_Stream** clone) + TA_RetCode TA_SWAK_HP_Close(TA_SWAK_HP_Stream* stream) + TA_RetCode TA_SWAK_HP_OutRange(const TA_SWAK_HP_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SWAK_HP_Advance(TA_SWAK_HP_Stream* stream) + ctypedef struct TA_T3_Stream: pass TA_RetCode TA_T3_OpenAndFill(TA_T3_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInVFactor, int* outBegIdx, int* outNBElement, double* outReal) @@ -2329,6 +2725,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_VHF_OutRange(const TA_VHF_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_VHF_Advance(TA_VHF_Stream* stream) + ctypedef struct TA_VIDYA_Stream: + pass + TA_RetCode TA_VIDYA_OpenAndFill(TA_VIDYA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int optInCMOPeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_VIDYA_Open(TA_VIDYA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int optInCMOPeriod, double* outReal) + TA_RetCode TA_VIDYA_Update(TA_VIDYA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_VIDYA_Peek(const TA_VIDYA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_VIDYA_Value(const TA_VIDYA_Stream* stream, double* outReal) + TA_RetCode TA_VIDYA_Clone(const TA_VIDYA_Stream* stream, TA_VIDYA_Stream** clone) + TA_RetCode TA_VIDYA_Close(TA_VIDYA_Stream* stream) + TA_RetCode TA_VIDYA_OutRange(const TA_VIDYA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_VIDYA_Advance(TA_VIDYA_Stream* stream) + ctypedef struct TA_VORTEX_Stream: pass TA_RetCode TA_VORTEX_OpenAndFill(TA_VORTEX_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outPlusVI, double* outMinusVI) @@ -2377,6 +2785,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_WAD_OutRange(const TA_WAD_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_WAD_Advance(TA_WAD_Stream* stream) + ctypedef struct TA_WAVETREND_Stream: + pass + TA_RetCode TA_WAVETREND_OpenAndFill(TA_WAVETREND_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInChannelPeriod, int optInAveragePeriod, int optInSignalPeriod, int* outBegIdx, int* outNBElement, double* outWT1, double* outWT2) + TA_RetCode TA_WAVETREND_Open(TA_WAVETREND_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInChannelPeriod, int optInAveragePeriod, int optInSignalPeriod, double* outWT1, double* outWT2) + TA_RetCode TA_WAVETREND_Update(TA_WAVETREND_Stream* stream, double inHigh, double inLow, double inClose, double* outWT1, double* outWT2) + TA_RetCode TA_WAVETREND_Peek(const TA_WAVETREND_Stream* stream, double inHigh, double inLow, double inClose, double* outWT1, double* outWT2) + TA_RetCode TA_WAVETREND_Value(const TA_WAVETREND_Stream* stream, double* outWT1, double* outWT2) + TA_RetCode TA_WAVETREND_Clone(const TA_WAVETREND_Stream* stream, TA_WAVETREND_Stream** clone) + TA_RetCode TA_WAVETREND_Close(TA_WAVETREND_Stream* stream) + TA_RetCode TA_WAVETREND_OutRange(const TA_WAVETREND_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_WAVETREND_Advance(TA_WAVETREND_Stream* stream) + ctypedef struct TA_WCLPRICE_Stream: pass TA_RetCode TA_WCLPRICE_OpenAndFill(TA_WCLPRICE_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) @@ -2413,6 +2833,18 @@ cdef extern from "ta-lib/ta_func.h" nogil: TA_RetCode TA_WMA_OutRange(const TA_WMA_Stream* stream, int* outBegIdx, int* outNBElement) TA_RetCode TA_WMA_Advance(TA_WMA_Stream* stream) + ctypedef struct TA_ZIGZAG_Stream: + pass + TA_RetCode TA_ZIGZAG_OpenAndFill(TA_ZIGZAG_Stream** stream, const double* inHigh, const double* inLow, int historyLen, double optInSensitivity, int optInMinTrendLength, int* outBegIdx, int* outNBElement, double* outZigZag, int* outTrend, int* outPivotIdx) + TA_RetCode TA_ZIGZAG_Open(TA_ZIGZAG_Stream** stream, const double* inHigh, const double* inLow, int historyLen, double optInSensitivity, int optInMinTrendLength, double* outZigZag, int* outTrend, int* outPivotIdx) + TA_RetCode TA_ZIGZAG_Update(TA_ZIGZAG_Stream* stream, double inHigh, double inLow, double* outZigZag, int* outTrend, int* outPivotIdx) + TA_RetCode TA_ZIGZAG_Peek(const TA_ZIGZAG_Stream* stream, double inHigh, double inLow, double* outZigZag, int* outTrend, int* outPivotIdx) + TA_RetCode TA_ZIGZAG_Value(const TA_ZIGZAG_Stream* stream, double* outZigZag, int* outTrend, int* outPivotIdx) + TA_RetCode TA_ZIGZAG_Clone(const TA_ZIGZAG_Stream* stream, TA_ZIGZAG_Stream** clone) + TA_RetCode TA_ZIGZAG_Close(TA_ZIGZAG_Stream* stream) + TA_RetCode TA_ZIGZAG_OutRange(const TA_ZIGZAG_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ZIGZAG_Advance(TA_ZIGZAG_Stream* stream) + ctypedef struct TA_ZLEMA_Stream: pass TA_RetCode TA_ZLEMA_OpenAndFill(TA_ZLEMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) @@ -3826,6 +4258,145 @@ cdef class ADXR_Stream(Stream): return stream +cdef class ALMA_Stream(Stream): + """ ALMA(real[, timeperiod=?, sigma=?, offset=?]) + + Arnaud Legoux Moving Average (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 9 + sigma: 6.0 + offset: 0.85 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_ALMA_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31, double sigma=6.0, double offset=0.85): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ALMA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_ALMA_Lookback(timeperiod, sigma, offset) + 1 + retCode = TA_ALMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, sigma, offset, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_ALMA_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_ALMA_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31, double sigma=6.0, double offset=0.85): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_ALMA_Stream* handle = NULL + cdef ALMA_Stream stream = ALMA_Stream.__new__(ALMA_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_ALMA_Lookback(timeperiod, sigma, offset) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_ALMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, sigma, offset, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_ALMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_ALMA_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ALMA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_ALMA_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ALMA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_ALMA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ALMA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_ALMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_ALMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ALMA_Stream* clone = NULL + cdef ALMA_Stream stream = ALMA_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_ALMA_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_ALMA_Clone", retCode) + return stream + + cdef class AO_Stream(Stream): """ AO(high, low[, fastperiod=?, slowperiod=?]) @@ -4390,13 +4961,15 @@ cdef class AROONOSC_Stream(Stream): return stream -cdef class ASIN_Stream(Stream): - """ ASIN(real) +cdef class ASI_Stream(Stream): + """ ASI(open, high, low, close[, limitmove=?]) - Vector Trigonometric ASin (Math Transform) + Wilder Accumulative Swing Index (Momentum Indicators) Inputs: - real: (any ndarray) + prices: ['open', 'high', 'low', 'close'] + Parameters: + limitmove: 3.0 Outputs: real """ @@ -4404,29 +4977,32 @@ cdef class ASIN_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_ASIN_Close(self._handle) + TA_ASI_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, open, high, low, close, double limitmove=-4e37): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_ASIN_Stream* handle = NULL + cdef TA_ASI_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_ASIN_Lookback() + 1 - retCode = TA_ASIN_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_ASI_Lookback(limitmove) + 1 + retCode = TA_ASI_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, limitmove, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_ASIN_Close(self._handle) + TA_ASI_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -4435,12 +5011,15 @@ cdef class ASIN_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ASIN_Open", retCode, historylen, need) + _stream_open_failed("TA_ASI_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(open, high, low, close, double limitmove=-4e37): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -4448,16 +5027,16 @@ cdef class ASIN_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_ASIN_Stream* handle = NULL - cdef ASIN_Stream stream = ASIN_Stream.__new__(ASIN_Stream) + cdef TA_ASI_Stream* handle = NULL + cdef ASI_Stream stream = ASI_Stream.__new__(ASI_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_ASIN_Lookback() + lookback = begidx + lib.TA_ASI_Lookback(limitmove) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_ASIN_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_ASI_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, limitmove, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -4466,29 +5045,29 @@ cdef class ASIN_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ASIN_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_ASI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((open, high, low, close,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double open, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ASIN_Update(self._handle, real, &outreal) + retCode = TA_ASI_Update(self._handle, open, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_ASIN_Update", retCode) + _ta_check_success("TA_ASI_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double open, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ASIN_Peek(self._handle, real, &outreal) + retCode = TA_ASI_Peek(self._handle, open, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_ASIN_Peek", retCode) + _ta_check_success("TA_ASI_Peek", retCode) return outreal @property @@ -4497,38 +5076,38 @@ cdef class ASIN_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ASIN_Value(self._handle, &outreal) + retCode = TA_ASI_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_ASIN_Value", retCode) + _ta_check_success("TA_ASI_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_ASIN_OutRange(self._handle, outbegidx, outnbelement) + return TA_ASI_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_ASIN_Advance(self._handle) + return TA_ASI_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_ASIN_Stream* clone = NULL - cdef ASIN_Stream stream = ASIN_Stream.__new__(type(self)) + cdef TA_ASI_Stream* clone = NULL + cdef ASI_Stream stream = ASI_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ASIN_Clone(self._handle, &clone) + retCode = TA_ASI_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_ASIN_Clone", retCode) + _ta_check_success("TA_ASI_Clone", retCode) return stream -cdef class ATAN_Stream(Stream): - """ ATAN(real) +cdef class ASIN_Stream(Stream): + """ ASIN(real) - Vector Trigonometric ATan (Math Transform) + Vector Trigonometric ASin (Math Transform) Inputs: real: (any ndarray) @@ -4539,7 +5118,7 @@ cdef class ATAN_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_ATAN_Close(self._handle) + TA_ASIN_Close(self._handle) self._handle = NULL _ta_stream_closed() @@ -4549,19 +5128,19 @@ cdef class ATAN_Stream(Stream): cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_ATAN_Stream* handle = NULL + cdef TA_ASIN_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_ATAN_Lookback() + 1 - retCode = TA_ATAN_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_ASIN_Lookback() + 1 + retCode = TA_ASIN_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_ATAN_Close(self._handle) + TA_ASIN_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -4570,7 +5149,7 @@ cdef class ATAN_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ATAN_Open", retCode, historylen, need) + _stream_open_failed("TA_ASIN_Open", retCode, historylen, need) @staticmethod def open_and_fill(real): @@ -4583,16 +5162,16 @@ cdef class ATAN_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_ATAN_Stream* handle = NULL - cdef ATAN_Stream stream = ATAN_Stream.__new__(ATAN_Stream) + cdef TA_ASIN_Stream* handle = NULL + cdef ASIN_Stream stream = ASIN_Stream.__new__(ASIN_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_ATAN_Lookback() + lookback = begidx + lib.TA_ASIN_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_ATAN_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_ASIN_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -4601,7 +5180,7 @@ cdef class ATAN_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ATAN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_ASIN_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -4610,9 +5189,9 @@ cdef class ATAN_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ATAN_Update(self._handle, real, &outreal) + retCode = TA_ASIN_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_ATAN_Update", retCode) + _ta_check_success("TA_ASIN_Update", retCode) return outreal @cython.binding(False) @@ -4621,9 +5200,9 @@ cdef class ATAN_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ATAN_Peek(self._handle, real, &outreal) + retCode = TA_ASIN_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_ATAN_Peek", retCode) + _ta_check_success("TA_ASIN_Peek", retCode) return outreal @property @@ -4632,9 +5211,144 @@ cdef class ATAN_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ATAN_Value(self._handle, &outreal) + retCode = TA_ASIN_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_ATAN_Value", retCode) + _ta_check_success("TA_ASIN_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_ASIN_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_ASIN_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ASIN_Stream* clone = NULL + cdef ASIN_Stream stream = ASIN_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_ASIN_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_ASIN_Clone", retCode) + return stream + + +cdef class ATAN_Stream(Stream): + """ ATAN(real) + + Vector Trigonometric ATan (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_ATAN_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ATAN_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_ATAN_Lookback() + 1 + retCode = TA_ATAN_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_ATAN_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_ATAN_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_ATAN_Stream* handle = NULL + cdef ATAN_Stream stream = ATAN_Stream.__new__(ATAN_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_ATAN_Lookback() + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_ATAN_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_ATAN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_ATAN_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ATAN_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_ATAN_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ATAN_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_ATAN_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ATAN_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: @@ -5233,6 +5947,146 @@ cdef class BBANDS_Stream(Stream): return stream +cdef class BBW_Stream(Stream): + """ BBW(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) + + Bollinger BandWidth (Volatility Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 20 + nbdevup: 2.0 + nbdevdn: 2.0 + matype: 0 (Simple Moving Average) + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_BBW_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_BBW_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_BBW_Lookback(timeperiod, nbdevup, nbdevdn, matype) + 1 + retCode = TA_BBW_Open(&handle, a_real.data + begidx, historylen, timeperiod, nbdevup, nbdevdn, matype, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_BBW_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_BBW_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_BBW_Stream* handle = NULL + cdef BBW_Stream stream = BBW_Stream.__new__(BBW_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_BBW_Lookback(timeperiod, nbdevup, nbdevdn, matype) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_BBW_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, nbdevup, nbdevdn, matype, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_BBW_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_BBW_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_BBW_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_BBW_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_BBW_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_BBW_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_BBW_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_BBW_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_BBW_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_BBW_Stream* clone = NULL + cdef BBW_Stream stream = BBW_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_BBW_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_BBW_Clone", retCode) + return stream + + cdef class BETA_Stream(Stream): """ BETA(real0, real1[, timeperiod=?]) @@ -14405,15 +15259,15 @@ cdef class CEIL_Stream(Stream): return stream -cdef class CMF_Stream(Stream): - """ CMF(high, low, close, volume[, timeperiod=?]) +cdef class CG_Stream(Stream): + """ CG(real[, timeperiod=?]) - Chaikin Money Flow (Volume Indicators) + Center of Gravity Oscillator (Momentum Indicators) Inputs: - prices: ['high', 'low', 'close', 'volume'] + real: (any ndarray) Parameters: - timeperiod: 20 + timeperiod: 10 Outputs: real """ @@ -14421,32 +15275,29 @@ cdef class CMF_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_CMF_Close(self._handle) + TA_CG_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, close, volume, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_CMF_Stream* handle = NULL + cdef TA_CG_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_CMF_Lookback(timeperiod) + 1 - retCode = TA_CMF_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_CG_Lookback(timeperiod) + 1 + retCode = TA_CG_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_CMF_Close(self._handle) + TA_CG_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -14455,15 +15306,12 @@ cdef class CMF_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_CMF_Open", retCode, historylen, need) + _stream_open_failed("TA_CG_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, close, volume, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -14471,16 +15319,16 @@ cdef class CMF_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_CMF_Stream* handle = NULL - cdef CMF_Stream stream = CMF_Stream.__new__(CMF_Stream) + cdef TA_CG_Stream* handle = NULL + cdef CG_Stream stream = CG_Stream.__new__(CG_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_CMF_Lookback(timeperiod) + lookback = begidx + lib.TA_CG_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_CMF_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_CG_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -14489,29 +15337,29 @@ cdef class CMF_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_CMF_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low, close, volume,), outreal) + _stream_open_failed("TA_CG_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double high, double low, double close, double volume): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CMF_Update(self._handle, high, low, close, volume, &outreal) + retCode = TA_CG_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_CMF_Update", retCode) + _ta_check_success("TA_CG_Update", retCode) return outreal @cython.binding(False) - def peek(self, double high, double low, double close, double volume): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CMF_Peek(self._handle, high, low, close, volume, &outreal) + retCode = TA_CG_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_CMF_Peek", retCode) + _ta_check_success("TA_CG_Peek", retCode) return outreal @property @@ -14520,41 +15368,41 @@ cdef class CMF_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CMF_Value(self._handle, &outreal) + retCode = TA_CG_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_CMF_Value", retCode) + _ta_check_success("TA_CG_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_CMF_OutRange(self._handle, outbegidx, outnbelement) + return TA_CG_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_CMF_Advance(self._handle) + return TA_CG_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_CMF_Stream* clone = NULL - cdef CMF_Stream stream = CMF_Stream.__new__(type(self)) + cdef TA_CG_Stream* clone = NULL + cdef CG_Stream stream = CG_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CMF_Clone(self._handle, &clone) + retCode = TA_CG_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_CMF_Clone", retCode) + _ta_check_success("TA_CG_Clone", retCode) return stream -cdef class CMO_Stream(Stream): - """ CMO(real[, timeperiod=?]) +cdef class CHOP_Stream(Stream): + """ CHOP(high, low, close[, timeperiod=?]) - Chande Momentum Oscillator (Momentum Indicators) + Choppiness Index (Momentum Indicators) Inputs: - real: (any ndarray) + prices: ['high', 'low', 'close'] Parameters: timeperiod: 14 Outputs: @@ -14564,29 +15412,31 @@ cdef class CMO_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_CMO_Close(self._handle) + TA_CHOP_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_CMO_Stream* handle = NULL + cdef TA_CHOP_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_CMO_Lookback(timeperiod) + 1 - retCode = TA_CMO_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_CHOP_Lookback(timeperiod) + 1 + retCode = TA_CHOP_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_CMO_Close(self._handle) + TA_CHOP_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -14595,12 +15445,14 @@ cdef class CMO_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_CMO_Open", retCode, historylen, need) + _stream_open_failed("TA_CHOP_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -14608,16 +15460,16 @@ cdef class CMO_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_CMO_Stream* handle = NULL - cdef CMO_Stream stream = CMO_Stream.__new__(CMO_Stream) + cdef TA_CHOP_Stream* handle = NULL + cdef CHOP_Stream stream = CHOP_Stream.__new__(CHOP_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_CMO_Lookback(timeperiod) + lookback = begidx + lib.TA_CHOP_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_CMO_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_CHOP_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -14626,29 +15478,29 @@ cdef class CMO_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_CMO_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_CHOP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low, close,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CMO_Update(self._handle, real, &outreal) + retCode = TA_CHOP_Update(self._handle, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_CMO_Update", retCode) + _ta_check_success("TA_CHOP_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CMO_Peek(self._handle, real, &outreal) + retCode = TA_CHOP_Peek(self._handle, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_CMO_Peek", retCode) + _ta_check_success("TA_CHOP_Peek", retCode) return outreal @property @@ -14657,41 +15509,41 @@ cdef class CMO_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CMO_Value(self._handle, &outreal) + retCode = TA_CHOP_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_CMO_Value", retCode) + _ta_check_success("TA_CHOP_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_CMO_OutRange(self._handle, outbegidx, outnbelement) + return TA_CHOP_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_CMO_Advance(self._handle) + return TA_CHOP_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_CMO_Stream* clone = NULL - cdef CMO_Stream stream = CMO_Stream.__new__(type(self)) + cdef TA_CHOP_Stream* clone = NULL + cdef CHOP_Stream stream = CHOP_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CMO_Clone(self._handle, &clone) + retCode = TA_CHOP_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_CMO_Clone", retCode) + _ta_check_success("TA_CHOP_Clone", retCode) return stream -cdef class CMOU_Stream(Stream): - """ CMOU(real[, timeperiod=?]) +cdef class CHOPTR_Stream(Stream): + """ CHOPTR(high, low, close[, timeperiod=?]) - Chande Momentum Oscillator (Unsmoothed) (Momentum Indicators) + Choppiness Index (True Range Box) (Momentum Indicators) Inputs: - real: (any ndarray) + prices: ['high', 'low', 'close'] Parameters: timeperiod: 14 Outputs: @@ -14701,29 +15553,31 @@ cdef class CMOU_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_CMOU_Close(self._handle) + TA_CHOPTR_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_CMOU_Stream* handle = NULL + cdef TA_CHOPTR_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_CMOU_Lookback(timeperiod) + 1 - retCode = TA_CMOU_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_CHOPTR_Lookback(timeperiod) + 1 + retCode = TA_CHOPTR_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_CMOU_Close(self._handle) + TA_CHOPTR_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -14732,12 +15586,14 @@ cdef class CMOU_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_CMOU_Open", retCode, historylen, need) + _stream_open_failed("TA_CHOPTR_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -14745,16 +15601,16 @@ cdef class CMOU_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_CMOU_Stream* handle = NULL - cdef CMOU_Stream stream = CMOU_Stream.__new__(CMOU_Stream) + cdef TA_CHOPTR_Stream* handle = NULL + cdef CHOPTR_Stream stream = CHOPTR_Stream.__new__(CHOPTR_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_CMOU_Lookback(timeperiod) + lookback = begidx + lib.TA_CHOPTR_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_CMOU_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_CHOPTR_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -14763,29 +15619,29 @@ cdef class CMOU_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_CMOU_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_CHOPTR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low, close,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CMOU_Update(self._handle, real, &outreal) + retCode = TA_CHOPTR_Update(self._handle, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_CMOU_Update", retCode) + _ta_check_success("TA_CHOPTR_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CMOU_Peek(self._handle, real, &outreal) + retCode = TA_CHOPTR_Peek(self._handle, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_CMOU_Peek", retCode) + _ta_check_success("TA_CHOPTR_Peek", retCode) return outreal @property @@ -14794,75 +15650,79 @@ cdef class CMOU_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CMOU_Value(self._handle, &outreal) + retCode = TA_CHOPTR_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_CMOU_Value", retCode) + _ta_check_success("TA_CHOPTR_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_CMOU_OutRange(self._handle, outbegidx, outnbelement) + return TA_CHOPTR_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_CMOU_Advance(self._handle) + return TA_CHOPTR_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_CMOU_Stream* clone = NULL - cdef CMOU_Stream stream = CMOU_Stream.__new__(type(self)) + cdef TA_CHOPTR_Stream* clone = NULL + cdef CHOPTR_Stream stream = CHOPTR_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CMOU_Clone(self._handle, &clone) + retCode = TA_CHOPTR_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_CMOU_Clone", retCode) + _ta_check_success("TA_CHOPTR_Clone", retCode) return stream -cdef class COPPOCK_Stream(Stream): - """ COPPOCK(real[, wmaperiod=?, roc1period=?, roc2period=?]) +cdef class CKSP_Stream(Stream): + """ CKSP(high, low, close[, timeperiod=?, multiplier=?, stopperiod=?]) - Coppock Curve (Momentum Indicators) + Chande Kroll Stop (Overlap Studies) Inputs: - real: (any ndarray) + prices: ['high', 'low', 'close'] Parameters: - wmaperiod: 10 - roc1period: 11 - roc2period: 14 + timeperiod: 10 + multiplier: 1.0 + stopperiod: 9 Outputs: - real + highstop + lowstop """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_COPPOCK_Close(self._handle) + TA_CKSP_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int wmaperiod=-2**31, int roc1period=-2**31, int roc2period=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, close, int timeperiod=-2**31, double multiplier=1.0, int stopperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_COPPOCK_Stream* handle = NULL - cdef double outreal + cdef TA_CKSP_Stream* handle = NULL + cdef double outhighstop + cdef double outlowstop cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_COPPOCK_Lookback(wmaperiod, roc1period, roc2period) + 1 - retCode = TA_COPPOCK_Open(&handle, a_real.data + begidx, historylen, wmaperiod, roc1period, roc2period, &outreal) + need = lib.TA_CKSP_Lookback(timeperiod, multiplier, stopperiod) + 1 + retCode = TA_CKSP_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, multiplier, stopperiod, &outhighstop, &outlowstop) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_COPPOCK_Close(self._handle) + TA_CKSP_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -14871,29 +15731,33 @@ cdef class COPPOCK_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_COPPOCK_Open", retCode, historylen, need) + _stream_open_failed("TA_CKSP_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int wmaperiod=-2**31, int roc1period=-2**31, int roc2period=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, close, int timeperiod=-2**31, double multiplier=1.0, int stopperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outreal + cdef np.ndarray outhighstop + cdef np.ndarray outlowstop cdef int outbegidx cdef int outnbelement - cdef TA_COPPOCK_Stream* handle = NULL - cdef COPPOCK_Stream stream = COPPOCK_Stream.__new__(COPPOCK_Stream) + cdef TA_CKSP_Stream* handle = NULL + cdef CKSP_Stream stream = CKSP_Stream.__new__(CKSP_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_COPPOCK_Lookback(wmaperiod, roc1period, roc2period) - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_CKSP_Lookback(timeperiod, multiplier, stopperiod) + outhighstop = make_double_array(length, lookback) + outlowstop = make_double_array(length, lookback) with nogil: - retCode = TA_COPPOCK_OpenAndFill(&handle, a_real.data + begidx, historylen, wmaperiod, roc1period, roc2period, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_CKSP_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, multiplier, stopperiod, &outbegidx, &outnbelement, outhighstop.data + lookback, outlowstop.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -14902,75 +15766,77 @@ cdef class COPPOCK_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_COPPOCK_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_CKSP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low, close,), outhighstop), _stream_like((high, low, close,), outlowstop)) @cython.binding(False) - def update(self, double real): - cdef double outreal + def update(self, double high, double low, double close): + cdef double outhighstop + cdef double outlowstop cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_COPPOCK_Update(self._handle, real, &outreal) + retCode = TA_CKSP_Update(self._handle, high, low, close, &outhighstop, &outlowstop) if retCode != 0: - _ta_check_success("TA_COPPOCK_Update", retCode) - return outreal + _ta_check_success("TA_CKSP_Update", retCode) + return (outhighstop, outlowstop) @cython.binding(False) - def peek(self, double real): - cdef double outreal + def peek(self, double high, double low, double close): + cdef double outhighstop + cdef double outlowstop cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_COPPOCK_Peek(self._handle, real, &outreal) + retCode = TA_CKSP_Peek(self._handle, high, low, close, &outhighstop, &outlowstop) if retCode != 0: - _ta_check_success("TA_COPPOCK_Peek", retCode) - return outreal + _ta_check_success("TA_CKSP_Peek", retCode) + return (outhighstop, outlowstop) @property def value(self): - cdef double outreal + cdef double outhighstop + cdef double outlowstop cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_COPPOCK_Value(self._handle, &outreal) + retCode = TA_CKSP_Value(self._handle, &outhighstop, &outlowstop) if retCode != 0: - _ta_check_success("TA_COPPOCK_Value", retCode) - return outreal + _ta_check_success("TA_CKSP_Value", retCode) + return (outhighstop, outlowstop) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_COPPOCK_OutRange(self._handle, outbegidx, outnbelement) + return TA_CKSP_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_COPPOCK_Advance(self._handle) + return TA_CKSP_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_COPPOCK_Stream* clone = NULL - cdef COPPOCK_Stream stream = COPPOCK_Stream.__new__(type(self)) + cdef TA_CKSP_Stream* clone = NULL + cdef CKSP_Stream stream = CKSP_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_COPPOCK_Clone(self._handle, &clone) + retCode = TA_CKSP_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_COPPOCK_Clone", retCode) + _ta_check_success("TA_CKSP_Clone", retCode) return stream -cdef class CORREL_Stream(Stream): - """ CORREL(real0, real1[, timeperiod=?]) +cdef class CMF_Stream(Stream): + """ CMF(high, low, close, volume[, timeperiod=?]) - Pearson's Correlation Coefficient (r) (Statistic Functions) + Chaikin Money Flow (Volume Indicators) Inputs: - real0: (any ndarray) - real1: (any ndarray) + prices: ['high', 'low', 'close', 'volume'] Parameters: - timeperiod: 30 + timeperiod: 20 Outputs: real """ @@ -14978,30 +15844,32 @@ cdef class CORREL_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_CORREL_Close(self._handle) + TA_CMF_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real0, real1, int timeperiod=-2**31): - cdef np.ndarray a_real0 = _stream_input(real0) - cdef np.ndarray a_real1 = _stream_input(real1) - cdef tuple arrays = (a_real0, a_real1,) + def __init__(self, high, low, close, volume, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_CORREL_Stream* handle = NULL + cdef TA_CMF_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_CORREL_Lookback(timeperiod) + 1 - retCode = TA_CORREL_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_CMF_Lookback(timeperiod) + 1 + retCode = TA_CMF_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_CORREL_Close(self._handle) + TA_CMF_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -15010,13 +15878,15 @@ cdef class CORREL_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_CORREL_Open", retCode, historylen, need) + _stream_open_failed("TA_CMF_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real0, real1, int timeperiod=-2**31): - cdef np.ndarray a_real0 = _stream_input(real0) - cdef np.ndarray a_real1 = _stream_input(real1) - cdef tuple arrays = (a_real0, a_real1,) + def open_and_fill(high, low, close, volume, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -15024,16 +15894,16 @@ cdef class CORREL_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_CORREL_Stream* handle = NULL - cdef CORREL_Stream stream = CORREL_Stream.__new__(CORREL_Stream) + cdef TA_CMF_Stream* handle = NULL + cdef CMF_Stream stream = CMF_Stream.__new__(CMF_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_CORREL_Lookback(timeperiod) + lookback = begidx + lib.TA_CMF_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_CORREL_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_CMF_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -15042,29 +15912,29 @@ cdef class CORREL_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_CORREL_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real0, real1,), outreal) + _stream_open_failed("TA_CMF_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low, close, volume,), outreal) @cython.binding(False) - def update(self, double real0, double real1): + def update(self, double high, double low, double close, double volume): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CORREL_Update(self._handle, real0, real1, &outreal) + retCode = TA_CMF_Update(self._handle, high, low, close, volume, &outreal) if retCode != 0: - _ta_check_success("TA_CORREL_Update", retCode) + _ta_check_success("TA_CMF_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real0, double real1): + def peek(self, double high, double low, double close, double volume): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CORREL_Peek(self._handle, real0, real1, &outreal) + retCode = TA_CMF_Peek(self._handle, high, low, close, volume, &outreal) if retCode != 0: - _ta_check_success("TA_CORREL_Peek", retCode) + _ta_check_success("TA_CMF_Peek", retCode) return outreal @property @@ -15073,41 +15943,43 @@ cdef class CORREL_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CORREL_Value(self._handle, &outreal) + retCode = TA_CMF_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_CORREL_Value", retCode) + _ta_check_success("TA_CMF_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_CORREL_OutRange(self._handle, outbegidx, outnbelement) + return TA_CMF_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_CORREL_Advance(self._handle) + return TA_CMF_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_CORREL_Stream* clone = NULL - cdef CORREL_Stream stream = CORREL_Stream.__new__(type(self)) + cdef TA_CMF_Stream* clone = NULL + cdef CMF_Stream stream = CMF_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CORREL_Clone(self._handle, &clone) + retCode = TA_CMF_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_CORREL_Clone", retCode) + _ta_check_success("TA_CMF_Clone", retCode) return stream -cdef class COS_Stream(Stream): - """ COS(real) +cdef class CMO_Stream(Stream): + """ CMO(real[, timeperiod=?]) - Vector Trigonometric Cos (Math Transform) + Chande Momentum Oscillator (Momentum Indicators) Inputs: real: (any ndarray) + Parameters: + timeperiod: 14 Outputs: real """ @@ -15115,29 +15987,29 @@ cdef class COS_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_COS_Close(self._handle) + TA_CMO_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real): + def __init__(self, real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_COS_Stream* handle = NULL + cdef TA_CMO_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_COS_Lookback() + 1 - retCode = TA_COS_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_CMO_Lookback(timeperiod) + 1 + retCode = TA_CMO_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_COS_Close(self._handle) + TA_CMO_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -15146,10 +16018,10 @@ cdef class COS_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_COS_Open", retCode, historylen, need) + _stream_open_failed("TA_CMO_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real): + def open_and_fill(real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -15159,16 +16031,16 @@ cdef class COS_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_COS_Stream* handle = NULL - cdef COS_Stream stream = COS_Stream.__new__(COS_Stream) + cdef TA_CMO_Stream* handle = NULL + cdef CMO_Stream stream = CMO_Stream.__new__(CMO_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_COS_Lookback() + lookback = begidx + lib.TA_CMO_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_COS_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_CMO_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -15177,7 +16049,7 @@ cdef class COS_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_COS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_CMO_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -15186,9 +16058,9 @@ cdef class COS_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_COS_Update(self._handle, real, &outreal) + retCode = TA_CMO_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_COS_Update", retCode) + _ta_check_success("TA_CMO_Update", retCode) return outreal @cython.binding(False) @@ -15197,9 +16069,9 @@ cdef class COS_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_COS_Peek(self._handle, real, &outreal) + retCode = TA_CMO_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_COS_Peek", retCode) + _ta_check_success("TA_CMO_Peek", retCode) return outreal @property @@ -15208,41 +16080,43 @@ cdef class COS_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_COS_Value(self._handle, &outreal) + retCode = TA_CMO_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_COS_Value", retCode) + _ta_check_success("TA_CMO_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_COS_OutRange(self._handle, outbegidx, outnbelement) + return TA_CMO_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_COS_Advance(self._handle) + return TA_CMO_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_COS_Stream* clone = NULL - cdef COS_Stream stream = COS_Stream.__new__(type(self)) + cdef TA_CMO_Stream* clone = NULL + cdef CMO_Stream stream = CMO_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_COS_Clone(self._handle, &clone) + retCode = TA_CMO_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_COS_Clone", retCode) + _ta_check_success("TA_CMO_Clone", retCode) return stream -cdef class COSH_Stream(Stream): - """ COSH(real) +cdef class CMOU_Stream(Stream): + """ CMOU(real[, timeperiod=?]) - Vector Trigonometric Cosh (Math Transform) + Chande Momentum Oscillator (Unsmoothed) (Momentum Indicators) Inputs: real: (any ndarray) + Parameters: + timeperiod: 14 Outputs: real """ @@ -15250,29 +16124,29 @@ cdef class COSH_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_COSH_Close(self._handle) + TA_CMOU_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real): + def __init__(self, real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_COSH_Stream* handle = NULL + cdef TA_CMOU_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_COSH_Lookback() + 1 - retCode = TA_COSH_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_CMOU_Lookback(timeperiod) + 1 + retCode = TA_CMOU_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_COSH_Close(self._handle) + TA_CMOU_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -15281,10 +16155,10 @@ cdef class COSH_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_COSH_Open", retCode, historylen, need) + _stream_open_failed("TA_CMOU_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real): + def open_and_fill(real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -15294,16 +16168,16 @@ cdef class COSH_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_COSH_Stream* handle = NULL - cdef COSH_Stream stream = COSH_Stream.__new__(COSH_Stream) + cdef TA_CMOU_Stream* handle = NULL + cdef CMOU_Stream stream = CMOU_Stream.__new__(CMOU_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_COSH_Lookback() + lookback = begidx + lib.TA_CMOU_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_COSH_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_CMOU_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -15312,7 +16186,7 @@ cdef class COSH_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_COSH_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_CMOU_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -15321,9 +16195,9 @@ cdef class COSH_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_COSH_Update(self._handle, real, &outreal) + retCode = TA_CMOU_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_COSH_Update", retCode) + _ta_check_success("TA_CMOU_Update", retCode) return outreal @cython.binding(False) @@ -15332,9 +16206,9 @@ cdef class COSH_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_COSH_Peek(self._handle, real, &outreal) + retCode = TA_CMOU_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_COSH_Peek", retCode) + _ta_check_success("TA_CMOU_Peek", retCode) return outreal @property @@ -15343,41 +16217,45 @@ cdef class COSH_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_COSH_Value(self._handle, &outreal) + retCode = TA_CMOU_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_COSH_Value", retCode) + _ta_check_success("TA_CMOU_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_COSH_OutRange(self._handle, outbegidx, outnbelement) + return TA_CMOU_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_COSH_Advance(self._handle) + return TA_CMOU_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_COSH_Stream* clone = NULL - cdef COSH_Stream stream = COSH_Stream.__new__(type(self)) + cdef TA_CMOU_Stream* clone = NULL + cdef CMOU_Stream stream = CMOU_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_COSH_Clone(self._handle, &clone) + retCode = TA_CMOU_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_COSH_Clone", retCode) + _ta_check_success("TA_CMOU_Clone", retCode) return stream -cdef class CUMSUM_Stream(Stream): - """ CUMSUM(real) +cdef class COPPOCK_Stream(Stream): + """ COPPOCK(real[, wmaperiod=?, roc1period=?, roc2period=?]) - Cumulative Sum (Math Operators) + Coppock Curve (Momentum Indicators) Inputs: real: (any ndarray) + Parameters: + wmaperiod: 10 + roc1period: 11 + roc2period: 14 Outputs: real """ @@ -15385,29 +16263,29 @@ cdef class CUMSUM_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_CUMSUM_Close(self._handle) + TA_COPPOCK_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real): + def __init__(self, real, int wmaperiod=-2**31, int roc1period=-2**31, int roc2period=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_CUMSUM_Stream* handle = NULL + cdef TA_COPPOCK_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_CUMSUM_Lookback() + 1 - retCode = TA_CUMSUM_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_COPPOCK_Lookback(wmaperiod, roc1period, roc2period) + 1 + retCode = TA_COPPOCK_Open(&handle, a_real.data + begidx, historylen, wmaperiod, roc1period, roc2period, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_CUMSUM_Close(self._handle) + TA_COPPOCK_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -15416,10 +16294,10 @@ cdef class CUMSUM_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_CUMSUM_Open", retCode, historylen, need) + _stream_open_failed("TA_COPPOCK_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real): + def open_and_fill(real, int wmaperiod=-2**31, int roc1period=-2**31, int roc2period=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -15429,16 +16307,16 @@ cdef class CUMSUM_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_CUMSUM_Stream* handle = NULL - cdef CUMSUM_Stream stream = CUMSUM_Stream.__new__(CUMSUM_Stream) + cdef TA_COPPOCK_Stream* handle = NULL + cdef COPPOCK_Stream stream = COPPOCK_Stream.__new__(COPPOCK_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_CUMSUM_Lookback() + lookback = begidx + lib.TA_COPPOCK_Lookback(wmaperiod, roc1period, roc2period) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_CUMSUM_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_COPPOCK_OpenAndFill(&handle, a_real.data + begidx, historylen, wmaperiod, roc1period, roc2period, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -15447,7 +16325,7 @@ cdef class CUMSUM_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_CUMSUM_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_COPPOCK_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -15456,9 +16334,9 @@ cdef class CUMSUM_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CUMSUM_Update(self._handle, real, &outreal) + retCode = TA_COPPOCK_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_CUMSUM_Update", retCode) + _ta_check_success("TA_COPPOCK_Update", retCode) return outreal @cython.binding(False) @@ -15467,9 +16345,9 @@ cdef class CUMSUM_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CUMSUM_Peek(self._handle, real, &outreal) + retCode = TA_COPPOCK_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_CUMSUM_Peek", retCode) + _ta_check_success("TA_COPPOCK_Peek", retCode) return outreal @property @@ -15478,44 +16356,44 @@ cdef class CUMSUM_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CUMSUM_Value(self._handle, &outreal) + retCode = TA_COPPOCK_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_CUMSUM_Value", retCode) + _ta_check_success("TA_COPPOCK_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_CUMSUM_OutRange(self._handle, outbegidx, outnbelement) + return TA_COPPOCK_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_CUMSUM_Advance(self._handle) + return TA_COPPOCK_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_CUMSUM_Stream* clone = NULL - cdef CUMSUM_Stream stream = CUMSUM_Stream.__new__(type(self)) + cdef TA_COPPOCK_Stream* clone = NULL + cdef COPPOCK_Stream stream = COPPOCK_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CUMSUM_Clone(self._handle, &clone) + retCode = TA_COPPOCK_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_CUMSUM_Clone", retCode) + _ta_check_success("TA_COPPOCK_Clone", retCode) return stream -cdef class CVI_Stream(Stream): - """ CVI(high, low[, timeperiod=?, rocperiod=?]) +cdef class CORREL_Stream(Stream): + """ CORREL(real0, real1[, timeperiod=?]) - Chaikin's Volatility (Volatility Indicators) + Pearson's Correlation Coefficient (r) (Statistic Functions) Inputs: - prices: ['high', 'low'] + real0: (any ndarray) + real1: (any ndarray) Parameters: - timeperiod: 10 - rocperiod: 10 + timeperiod: 30 Outputs: real """ @@ -15523,30 +16401,30 @@ cdef class CVI_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_CVI_Close(self._handle) + TA_CORREL_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, int timeperiod=-2**31, int rocperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def __init__(self, real0, real1, int timeperiod=-2**31): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_CVI_Stream* handle = NULL + cdef TA_CORREL_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_CVI_Lookback(timeperiod, rocperiod) + 1 - retCode = TA_CVI_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, rocperiod, &outreal) + need = lib.TA_CORREL_Lookback(timeperiod) + 1 + retCode = TA_CORREL_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_CVI_Close(self._handle) + TA_CORREL_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -15555,13 +16433,13 @@ cdef class CVI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_CVI_Open", retCode, historylen, need) + _stream_open_failed("TA_CORREL_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, int timeperiod=-2**31, int rocperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def open_and_fill(real0, real1, int timeperiod=-2**31): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -15569,16 +16447,16 @@ cdef class CVI_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_CVI_Stream* handle = NULL - cdef CVI_Stream stream = CVI_Stream.__new__(CVI_Stream) + cdef TA_CORREL_Stream* handle = NULL + cdef CORREL_Stream stream = CORREL_Stream.__new__(CORREL_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_CVI_Lookback(timeperiod, rocperiod) + lookback = begidx + lib.TA_CORREL_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_CVI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, rocperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_CORREL_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -15587,29 +16465,29 @@ cdef class CVI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_CVI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low,), outreal) + _stream_open_failed("TA_CORREL_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real0, real1,), outreal) @cython.binding(False) - def update(self, double high, double low): + def update(self, double real0, double real1): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CVI_Update(self._handle, high, low, &outreal) + retCode = TA_CORREL_Update(self._handle, real0, real1, &outreal) if retCode != 0: - _ta_check_success("TA_CVI_Update", retCode) + _ta_check_success("TA_CORREL_Update", retCode) return outreal @cython.binding(False) - def peek(self, double high, double low): + def peek(self, double real0, double real1): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CVI_Peek(self._handle, high, low, &outreal) + retCode = TA_CORREL_Peek(self._handle, real0, real1, &outreal) if retCode != 0: - _ta_check_success("TA_CVI_Peek", retCode) + _ta_check_success("TA_CORREL_Peek", retCode) return outreal @property @@ -15618,43 +16496,41 @@ cdef class CVI_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CVI_Value(self._handle, &outreal) + retCode = TA_CORREL_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_CVI_Value", retCode) + _ta_check_success("TA_CORREL_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_CVI_OutRange(self._handle, outbegidx, outnbelement) + return TA_CORREL_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_CVI_Advance(self._handle) + return TA_CORREL_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_CVI_Stream* clone = NULL - cdef CVI_Stream stream = CVI_Stream.__new__(type(self)) + cdef TA_CORREL_Stream* clone = NULL + cdef CORREL_Stream stream = CORREL_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_CVI_Clone(self._handle, &clone) + retCode = TA_CORREL_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_CVI_Clone", retCode) + _ta_check_success("TA_CORREL_Clone", retCode) return stream -cdef class DEMA_Stream(Stream): - """ DEMA(real[, timeperiod=?]) +cdef class COS_Stream(Stream): + """ COS(real) - Double Exponential Moving Average (Overlap Studies) + Vector Trigonometric Cos (Math Transform) Inputs: real: (any ndarray) - Parameters: - timeperiod: 30 Outputs: real """ @@ -15662,29 +16538,29 @@ cdef class DEMA_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_DEMA_Close(self._handle) + TA_COS_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): + def __init__(self, real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_DEMA_Stream* handle = NULL + cdef TA_COS_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_DEMA_Lookback(timeperiod) + 1 - retCode = TA_DEMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_COS_Lookback() + 1 + retCode = TA_COS_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_DEMA_Close(self._handle) + TA_COS_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -15693,10 +16569,10 @@ cdef class DEMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_DEMA_Open", retCode, historylen, need) + _stream_open_failed("TA_COS_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): + def open_and_fill(real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -15706,16 +16582,16 @@ cdef class DEMA_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_DEMA_Stream* handle = NULL - cdef DEMA_Stream stream = DEMA_Stream.__new__(DEMA_Stream) + cdef TA_COS_Stream* handle = NULL + cdef COS_Stream stream = COS_Stream.__new__(COS_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_DEMA_Lookback(timeperiod) + lookback = begidx + lib.TA_COS_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_DEMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_COS_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -15724,7 +16600,7 @@ cdef class DEMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_DEMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_COS_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -15733,9 +16609,9 @@ cdef class DEMA_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DEMA_Update(self._handle, real, &outreal) + retCode = TA_COS_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_DEMA_Update", retCode) + _ta_check_success("TA_COS_Update", retCode) return outreal @cython.binding(False) @@ -15744,9 +16620,9 @@ cdef class DEMA_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DEMA_Peek(self._handle, real, &outreal) + retCode = TA_COS_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_DEMA_Peek", retCode) + _ta_check_success("TA_COS_Peek", retCode) return outreal @property @@ -15755,42 +16631,41 @@ cdef class DEMA_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DEMA_Value(self._handle, &outreal) + retCode = TA_COS_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_DEMA_Value", retCode) + _ta_check_success("TA_COS_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_DEMA_OutRange(self._handle, outbegidx, outnbelement) + return TA_COS_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_DEMA_Advance(self._handle) + return TA_COS_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_DEMA_Stream* clone = NULL - cdef DEMA_Stream stream = DEMA_Stream.__new__(type(self)) + cdef TA_COS_Stream* clone = NULL + cdef COS_Stream stream = COS_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DEMA_Clone(self._handle, &clone) + retCode = TA_COS_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_DEMA_Clone", retCode) + _ta_check_success("TA_COS_Clone", retCode) return stream -cdef class DIV_Stream(Stream): - """ DIV(real0, real1) +cdef class COSH_Stream(Stream): + """ COSH(real) - Vector Arithmetic Div (Math Operators) + Vector Trigonometric Cosh (Math Transform) Inputs: - real0: (any ndarray) - real1: (any ndarray) + real: (any ndarray) Outputs: real """ @@ -15798,30 +16673,29 @@ cdef class DIV_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_DIV_Close(self._handle) + TA_COSH_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real0, real1): - cdef np.ndarray a_real0 = _stream_input(real0) - cdef np.ndarray a_real1 = _stream_input(real1) - cdef tuple arrays = (a_real0, a_real1,) + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_DIV_Stream* handle = NULL + cdef TA_COSH_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_DIV_Lookback() + 1 - retCode = TA_DIV_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outreal) + need = lib.TA_COSH_Lookback() + 1 + retCode = TA_COSH_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_DIV_Close(self._handle) + TA_COSH_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -15830,13 +16704,12 @@ cdef class DIV_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_DIV_Open", retCode, historylen, need) + _stream_open_failed("TA_COSH_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real0, real1): - cdef np.ndarray a_real0 = _stream_input(real0) - cdef np.ndarray a_real1 = _stream_input(real1) - cdef tuple arrays = (a_real0, a_real1,) + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -15844,16 +16717,16 @@ cdef class DIV_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_DIV_Stream* handle = NULL - cdef DIV_Stream stream = DIV_Stream.__new__(DIV_Stream) + cdef TA_COSH_Stream* handle = NULL + cdef COSH_Stream stream = COSH_Stream.__new__(COSH_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_DIV_Lookback() + lookback = begidx + lib.TA_COSH_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_DIV_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_COSH_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -15862,29 +16735,29 @@ cdef class DIV_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_DIV_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real0, real1,), outreal) + _stream_open_failed("TA_COSH_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double real0, double real1): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DIV_Update(self._handle, real0, real1, &outreal) + retCode = TA_COSH_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_DIV_Update", retCode) + _ta_check_success("TA_COSH_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real0, double real1): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DIV_Peek(self._handle, real0, real1, &outreal) + retCode = TA_COSH_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_DIV_Peek", retCode) + _ta_check_success("TA_COSH_Peek", retCode) return outreal @property @@ -15893,78 +16766,75 @@ cdef class DIV_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DIV_Value(self._handle, &outreal) + retCode = TA_COSH_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_DIV_Value", retCode) + _ta_check_success("TA_COSH_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_DIV_OutRange(self._handle, outbegidx, outnbelement) + return TA_COSH_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_DIV_Advance(self._handle) + return TA_COSH_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_DIV_Stream* clone = NULL - cdef DIV_Stream stream = DIV_Stream.__new__(type(self)) + cdef TA_COSH_Stream* clone = NULL + cdef COSH_Stream stream = COSH_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DIV_Clone(self._handle, &clone) + retCode = TA_COSH_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_DIV_Clone", retCode) + _ta_check_success("TA_COSH_Clone", retCode) return stream -cdef class DONCHIAN_Stream(Stream): - """ DONCHIAN(high, low[, timeperiod=?]) +cdef class CRSI_Stream(Stream): + """ CRSI(real[, timeperiod=?, streakperiod=?, rankperiod=?]) - Donchian Channels (Overlap Studies) + Connors Relative Strength Index (Momentum Indicators) Inputs: - prices: ['high', 'low'] + real: (any ndarray) Parameters: - timeperiod: 20 + timeperiod: 3 + streakperiod: 2 + rankperiod: 100 Outputs: - upperband - middleband - lowerband + real """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_DONCHIAN_Close(self._handle) + TA_CRSI_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def __init__(self, real, int timeperiod=-2**31, int streakperiod=-2**31, int rankperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_DONCHIAN_Stream* handle = NULL - cdef double outupperband - cdef double outmiddleband - cdef double outlowerband + cdef TA_CRSI_Stream* handle = NULL + cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_DONCHIAN_Lookback(timeperiod) + 1 - retCode = TA_DONCHIAN_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outupperband, &outmiddleband, &outlowerband) + need = lib.TA_CRSI_Lookback(timeperiod, streakperiod, rankperiod) + 1 + retCode = TA_CRSI_Open(&handle, a_real.data + begidx, historylen, timeperiod, streakperiod, rankperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_DONCHIAN_Close(self._handle) + TA_CRSI_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -15973,34 +16843,29 @@ cdef class DONCHIAN_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_DONCHIAN_Open", retCode, historylen, need) + _stream_open_failed("TA_CRSI_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def open_and_fill(real, int timeperiod=-2**31, int streakperiod=-2**31, int rankperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outupperband - cdef np.ndarray outmiddleband - cdef np.ndarray outlowerband + cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_DONCHIAN_Stream* handle = NULL - cdef DONCHIAN_Stream stream = DONCHIAN_Stream.__new__(DONCHIAN_Stream) + cdef TA_CRSI_Stream* handle = NULL + cdef CRSI_Stream stream = CRSI_Stream.__new__(CRSI_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_DONCHIAN_Lookback(timeperiod) - outupperband = make_double_array(length, lookback) - outmiddleband = make_double_array(length, lookback) - outlowerband = make_double_array(length, lookback) + lookback = begidx + lib.TA_CRSI_Lookback(timeperiod, streakperiod, rankperiod) + outreal = make_double_array(length, lookback) with nogil: - retCode = TA_DONCHIAN_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outupperband.data + lookback, outmiddleband.data + lookback, outlowerband.data + lookback) + retCode = TA_CRSI_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, streakperiod, rankperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -16009,75 +16874,69 @@ cdef class DONCHIAN_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_DONCHIAN_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((high, low,), outupperband), _stream_like((high, low,), outmiddleband), _stream_like((high, low,), outlowerband)) + _stream_open_failed("TA_CRSI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double high, double low): - cdef double outupperband - cdef double outmiddleband - cdef double outlowerband + def update(self, double real): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DONCHIAN_Update(self._handle, high, low, &outupperband, &outmiddleband, &outlowerband) + retCode = TA_CRSI_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_DONCHIAN_Update", retCode) - return (outupperband, outmiddleband, outlowerband) + _ta_check_success("TA_CRSI_Update", retCode) + return outreal @cython.binding(False) - def peek(self, double high, double low): - cdef double outupperband - cdef double outmiddleband - cdef double outlowerband + def peek(self, double real): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DONCHIAN_Peek(self._handle, high, low, &outupperband, &outmiddleband, &outlowerband) + retCode = TA_CRSI_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_DONCHIAN_Peek", retCode) - return (outupperband, outmiddleband, outlowerband) + _ta_check_success("TA_CRSI_Peek", retCode) + return outreal @property def value(self): - cdef double outupperband - cdef double outmiddleband - cdef double outlowerband + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DONCHIAN_Value(self._handle, &outupperband, &outmiddleband, &outlowerband) + retCode = TA_CRSI_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_DONCHIAN_Value", retCode) - return (outupperband, outmiddleband, outlowerband) + _ta_check_success("TA_CRSI_Value", retCode) + return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_DONCHIAN_OutRange(self._handle, outbegidx, outnbelement) + return TA_CRSI_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_DONCHIAN_Advance(self._handle) + return TA_CRSI_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_DONCHIAN_Stream* clone = NULL - cdef DONCHIAN_Stream stream = DONCHIAN_Stream.__new__(type(self)) + cdef TA_CRSI_Stream* clone = NULL + cdef CRSI_Stream stream = CRSI_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DONCHIAN_Clone(self._handle, &clone) + retCode = TA_CRSI_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_DONCHIAN_Clone", retCode) + _ta_check_success("TA_CRSI_Clone", retCode) return stream -cdef class DPO_Stream(Stream): - """ DPO(real[, timeperiod=?]) +cdef class CTI_Stream(Stream): + """ CTI(real[, timeperiod=?]) - Detrended Price Oscillator (Momentum Indicators) + Correlation Trend Indicator (Momentum Indicators) Inputs: real: (any ndarray) @@ -16090,7 +16949,7 @@ cdef class DPO_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_DPO_Close(self._handle) + TA_CTI_Close(self._handle) self._handle = NULL _ta_stream_closed() @@ -16100,19 +16959,19 @@ cdef class DPO_Stream(Stream): cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_DPO_Stream* handle = NULL + cdef TA_CTI_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_DPO_Lookback(timeperiod) + 1 - retCode = TA_DPO_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_CTI_Lookback(timeperiod) + 1 + retCode = TA_CTI_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_DPO_Close(self._handle) + TA_CTI_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -16121,7 +16980,7 @@ cdef class DPO_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_DPO_Open", retCode, historylen, need) + _stream_open_failed("TA_CTI_Open", retCode, historylen, need) @staticmethod def open_and_fill(real, int timeperiod=-2**31): @@ -16134,16 +16993,16 @@ cdef class DPO_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_DPO_Stream* handle = NULL - cdef DPO_Stream stream = DPO_Stream.__new__(DPO_Stream) + cdef TA_CTI_Stream* handle = NULL + cdef CTI_Stream stream = CTI_Stream.__new__(CTI_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_DPO_Lookback(timeperiod) + lookback = begidx + lib.TA_CTI_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_DPO_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_CTI_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -16152,7 +17011,7 @@ cdef class DPO_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_DPO_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_CTI_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -16161,9 +17020,9 @@ cdef class DPO_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DPO_Update(self._handle, real, &outreal) + retCode = TA_CTI_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_DPO_Update", retCode) + _ta_check_success("TA_CTI_Update", retCode) return outreal @cython.binding(False) @@ -16172,9 +17031,9 @@ cdef class DPO_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DPO_Peek(self._handle, real, &outreal) + retCode = TA_CTI_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_DPO_Peek", retCode) + _ta_check_success("TA_CTI_Peek", retCode) return outreal @property @@ -16183,43 +17042,41 @@ cdef class DPO_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DPO_Value(self._handle, &outreal) + retCode = TA_CTI_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_DPO_Value", retCode) + _ta_check_success("TA_CTI_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_DPO_OutRange(self._handle, outbegidx, outnbelement) + return TA_CTI_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_DPO_Advance(self._handle) + return TA_CTI_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_DPO_Stream* clone = NULL - cdef DPO_Stream stream = DPO_Stream.__new__(type(self)) + cdef TA_CTI_Stream* clone = NULL + cdef CTI_Stream stream = CTI_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DPO_Clone(self._handle, &clone) + retCode = TA_CTI_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_DPO_Clone", retCode) + _ta_check_success("TA_CTI_Clone", retCode) return stream -cdef class DX_Stream(Stream): - """ DX(high, low, close[, timeperiod=?]) +cdef class CUMSUM_Stream(Stream): + """ CUMSUM(real) - Directional Movement Index (Momentum Indicators) + Cumulative Sum (Math Operators) Inputs: - prices: ['high', 'low', 'close'] - Parameters: - timeperiod: 14 + real: (any ndarray) Outputs: real """ @@ -16227,31 +17084,29 @@ cdef class DX_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_DX_Close(self._handle) + TA_CUMSUM_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, close, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_DX_Stream* handle = NULL + cdef TA_CUMSUM_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_DX_Lookback(timeperiod) + 1 - retCode = TA_DX_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_CUMSUM_Lookback() + 1 + retCode = TA_CUMSUM_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_DX_Close(self._handle) + TA_CUMSUM_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -16260,14 +17115,12 @@ cdef class DX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_DX_Open", retCode, historylen, need) + _stream_open_failed("TA_CUMSUM_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, close, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -16275,16 +17128,16 @@ cdef class DX_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_DX_Stream* handle = NULL - cdef DX_Stream stream = DX_Stream.__new__(DX_Stream) + cdef TA_CUMSUM_Stream* handle = NULL + cdef CUMSUM_Stream stream = CUMSUM_Stream.__new__(CUMSUM_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_DX_Lookback(timeperiod) + lookback = begidx + lib.TA_CUMSUM_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_DX_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_CUMSUM_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -16293,29 +17146,29 @@ cdef class DX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_DX_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low, close,), outreal) + _stream_open_failed("TA_CUMSUM_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double high, double low, double close): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DX_Update(self._handle, high, low, close, &outreal) + retCode = TA_CUMSUM_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_DX_Update", retCode) + _ta_check_success("TA_CUMSUM_Update", retCode) return outreal @cython.binding(False) - def peek(self, double high, double low, double close): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DX_Peek(self._handle, high, low, close, &outreal) + retCode = TA_CUMSUM_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_DX_Peek", retCode) + _ta_check_success("TA_CUMSUM_Peek", retCode) return outreal @property @@ -16324,43 +17177,44 @@ cdef class DX_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DX_Value(self._handle, &outreal) + retCode = TA_CUMSUM_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_DX_Value", retCode) + _ta_check_success("TA_CUMSUM_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_DX_OutRange(self._handle, outbegidx, outnbelement) + return TA_CUMSUM_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_DX_Advance(self._handle) + return TA_CUMSUM_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_DX_Stream* clone = NULL - cdef DX_Stream stream = DX_Stream.__new__(type(self)) + cdef TA_CUMSUM_Stream* clone = NULL + cdef CUMSUM_Stream stream = CUMSUM_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_DX_Clone(self._handle, &clone) + retCode = TA_CUMSUM_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_DX_Clone", retCode) + _ta_check_success("TA_CUMSUM_Clone", retCode) return stream -cdef class EFI_Stream(Stream): - """ EFI(close, volume[, timeperiod=?]) +cdef class CVI_Stream(Stream): + """ CVI(high, low[, timeperiod=?, rocperiod=?]) - Elder's Force Index (Volume Indicators) + Chaikin's Volatility (Volatility Indicators) Inputs: - prices: ['close', 'volume'] + prices: ['high', 'low'] Parameters: - timeperiod: 13 + timeperiod: 10 + rocperiod: 10 Outputs: real """ @@ -16368,30 +17222,30 @@ cdef class EFI_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_EFI_Close(self._handle) + TA_CVI_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, close, volume, int timeperiod=-2**31): - cdef np.ndarray a_close = _stream_input(close) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_close, a_volume,) + def __init__(self, high, low, int timeperiod=-2**31, int rocperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_EFI_Stream* handle = NULL + cdef TA_CVI_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_EFI_Lookback(timeperiod) + 1 - retCode = TA_EFI_Open(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_CVI_Lookback(timeperiod, rocperiod) + 1 + retCode = TA_CVI_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, rocperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_EFI_Close(self._handle) + TA_CVI_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -16400,13 +17254,13 @@ cdef class EFI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_EFI_Open", retCode, historylen, need) + _stream_open_failed("TA_CVI_Open", retCode, historylen, need) @staticmethod - def open_and_fill(close, volume, int timeperiod=-2**31): - cdef np.ndarray a_close = _stream_input(close) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_close, a_volume,) + def open_and_fill(high, low, int timeperiod=-2**31, int rocperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -16414,16 +17268,16 @@ cdef class EFI_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_EFI_Stream* handle = NULL - cdef EFI_Stream stream = EFI_Stream.__new__(EFI_Stream) + cdef TA_CVI_Stream* handle = NULL + cdef CVI_Stream stream = CVI_Stream.__new__(CVI_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_EFI_Lookback(timeperiod) + lookback = begidx + lib.TA_CVI_Lookback(timeperiod, rocperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_EFI_OpenAndFill(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_CVI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, rocperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -16432,29 +17286,29 @@ cdef class EFI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_EFI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((close, volume,), outreal) + _stream_open_failed("TA_CVI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low,), outreal) @cython.binding(False) - def update(self, double close, double volume): + def update(self, double high, double low): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_EFI_Update(self._handle, close, volume, &outreal) + retCode = TA_CVI_Update(self._handle, high, low, &outreal) if retCode != 0: - _ta_check_success("TA_EFI_Update", retCode) + _ta_check_success("TA_CVI_Update", retCode) return outreal @cython.binding(False) - def peek(self, double close, double volume): + def peek(self, double high, double low): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_EFI_Peek(self._handle, close, volume, &outreal) + retCode = TA_CVI_Peek(self._handle, high, low, &outreal) if retCode != 0: - _ta_check_success("TA_EFI_Peek", retCode) + _ta_check_success("TA_CVI_Peek", retCode) return outreal @property @@ -16463,38 +17317,38 @@ cdef class EFI_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_EFI_Value(self._handle, &outreal) + retCode = TA_CVI_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_EFI_Value", retCode) + _ta_check_success("TA_CVI_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_EFI_OutRange(self._handle, outbegidx, outnbelement) + return TA_CVI_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_EFI_Advance(self._handle) + return TA_CVI_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_EFI_Stream* clone = NULL - cdef EFI_Stream stream = EFI_Stream.__new__(type(self)) + cdef TA_CVI_Stream* clone = NULL + cdef CVI_Stream stream = CVI_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_EFI_Clone(self._handle, &clone) + retCode = TA_CVI_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_EFI_Clone", retCode) + _ta_check_success("TA_CVI_Clone", retCode) return stream -cdef class EMA_Stream(Stream): - """ EMA(real[, timeperiod=?]) +cdef class DEMA_Stream(Stream): + """ DEMA(real[, timeperiod=?]) - Exponential Moving Average (Overlap Studies) + Double Exponential Moving Average (Overlap Studies) Inputs: real: (any ndarray) @@ -16507,7 +17361,7 @@ cdef class EMA_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_EMA_Close(self._handle) + TA_DEMA_Close(self._handle) self._handle = NULL _ta_stream_closed() @@ -16517,19 +17371,19 @@ cdef class EMA_Stream(Stream): cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_EMA_Stream* handle = NULL + cdef TA_DEMA_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_EMA_Lookback(timeperiod) + 1 - retCode = TA_EMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_DEMA_Lookback(timeperiod) + 1 + retCode = TA_DEMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_EMA_Close(self._handle) + TA_DEMA_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -16538,7 +17392,7 @@ cdef class EMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_EMA_Open", retCode, historylen, need) + _stream_open_failed("TA_DEMA_Open", retCode, historylen, need) @staticmethod def open_and_fill(real, int timeperiod=-2**31): @@ -16551,16 +17405,16 @@ cdef class EMA_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_EMA_Stream* handle = NULL - cdef EMA_Stream stream = EMA_Stream.__new__(EMA_Stream) + cdef TA_DEMA_Stream* handle = NULL + cdef DEMA_Stream stream = DEMA_Stream.__new__(DEMA_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_EMA_Lookback(timeperiod) + lookback = begidx + lib.TA_DEMA_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_EMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_DEMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -16569,7 +17423,7 @@ cdef class EMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_EMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_DEMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -16578,9 +17432,9 @@ cdef class EMA_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_EMA_Update(self._handle, real, &outreal) + retCode = TA_DEMA_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_EMA_Update", retCode) + _ta_check_success("TA_DEMA_Update", retCode) return outreal @cython.binding(False) @@ -16589,9 +17443,9 @@ cdef class EMA_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_EMA_Peek(self._handle, real, &outreal) + retCode = TA_DEMA_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_EMA_Peek", retCode) + _ta_check_success("TA_DEMA_Peek", retCode) return outreal @property @@ -16600,43 +17454,42 @@ cdef class EMA_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_EMA_Value(self._handle, &outreal) + retCode = TA_DEMA_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_EMA_Value", retCode) + _ta_check_success("TA_DEMA_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_EMA_OutRange(self._handle, outbegidx, outnbelement) + return TA_DEMA_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_EMA_Advance(self._handle) + return TA_DEMA_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_EMA_Stream* clone = NULL - cdef EMA_Stream stream = EMA_Stream.__new__(type(self)) + cdef TA_DEMA_Stream* clone = NULL + cdef DEMA_Stream stream = DEMA_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_EMA_Clone(self._handle, &clone) + retCode = TA_DEMA_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_EMA_Clone", retCode) + _ta_check_success("TA_DEMA_Clone", retCode) return stream -cdef class ER_Stream(Stream): - """ ER(real[, timeperiod=?]) +cdef class DIV_Stream(Stream): + """ DIV(real0, real1) - Kaufman Efficiency Ratio (Momentum Indicators) + Vector Arithmetic Div (Math Operators) Inputs: - real: (any ndarray) - Parameters: - timeperiod: 10 + real0: (any ndarray) + real1: (any ndarray) Outputs: real """ @@ -16644,29 +17497,30 @@ cdef class ER_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_ER_Close(self._handle) + TA_DIV_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_ER_Stream* handle = NULL + cdef TA_DIV_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_ER_Lookback(timeperiod) + 1 - retCode = TA_ER_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_DIV_Lookback() + 1 + retCode = TA_DIV_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_ER_Close(self._handle) + TA_DIV_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -16675,12 +17529,13 @@ cdef class ER_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ER_Open", retCode, historylen, need) + _stream_open_failed("TA_DIV_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -16688,16 +17543,16 @@ cdef class ER_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_ER_Stream* handle = NULL - cdef ER_Stream stream = ER_Stream.__new__(ER_Stream) + cdef TA_DIV_Stream* handle = NULL + cdef DIV_Stream stream = DIV_Stream.__new__(DIV_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_ER_Lookback(timeperiod) + lookback = begidx + lib.TA_DIV_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_ER_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_DIV_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -16706,29 +17561,29 @@ cdef class ER_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ER_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_DIV_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real0, real1,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double real0, double real1): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ER_Update(self._handle, real, &outreal) + retCode = TA_DIV_Update(self._handle, real0, real1, &outreal) if retCode != 0: - _ta_check_success("TA_ER_Update", retCode) + _ta_check_success("TA_DIV_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double real0, double real1): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ER_Peek(self._handle, real, &outreal) + retCode = TA_DIV_Peek(self._handle, real0, real1, &outreal) if retCode != 0: - _ta_check_success("TA_ER_Peek", retCode) + _ta_check_success("TA_DIV_Peek", retCode) return outreal @property @@ -16737,77 +17592,78 @@ cdef class ER_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ER_Value(self._handle, &outreal) + retCode = TA_DIV_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_ER_Value", retCode) + _ta_check_success("TA_DIV_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_ER_OutRange(self._handle, outbegidx, outnbelement) + return TA_DIV_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_ER_Advance(self._handle) + return TA_DIV_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_ER_Stream* clone = NULL - cdef ER_Stream stream = ER_Stream.__new__(type(self)) + cdef TA_DIV_Stream* clone = NULL + cdef DIV_Stream stream = DIV_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ER_Clone(self._handle, &clone) + retCode = TA_DIV_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_ER_Clone", retCode) + _ta_check_success("TA_DIV_Clone", retCode) return stream -cdef class ERI_Stream(Stream): - """ ERI(high, low, close[, timeperiod=?]) +cdef class DONCHIAN_Stream(Stream): + """ DONCHIAN(high, low[, timeperiod=?]) - Elder Ray Index (Bull Power / Bear Power) (Momentum Indicators) + Donchian Channels (Overlap Studies) Inputs: - prices: ['high', 'low', 'close'] + prices: ['high', 'low'] Parameters: - timeperiod: 13 + timeperiod: 20 Outputs: - bullpower - bearpower + upperband + middleband + lowerband """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_ERI_Close(self._handle) + TA_DONCHIAN_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, close, int timeperiod=-2**31): + def __init__(self, high, low, int timeperiod=-2**31): cdef np.ndarray a_high = _stream_input(high) cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_ERI_Stream* handle = NULL - cdef double outbullpower - cdef double outbearpower + cdef TA_DONCHIAN_Stream* handle = NULL + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_ERI_Lookback(timeperiod) + 1 - retCode = TA_ERI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbullpower, &outbearpower) + need = lib.TA_DONCHIAN_Lookback(timeperiod) + 1 + retCode = TA_DONCHIAN_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outupperband, &outmiddleband, &outlowerband) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_ERI_Close(self._handle) + TA_DONCHIAN_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -16816,33 +17672,34 @@ cdef class ERI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ERI_Open", retCode, historylen, need) + _stream_open_failed("TA_DONCHIAN_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, close, int timeperiod=-2**31): + def open_and_fill(high, low, int timeperiod=-2**31): cdef np.ndarray a_high = _stream_input(high) cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outbullpower - cdef np.ndarray outbearpower + cdef np.ndarray outupperband + cdef np.ndarray outmiddleband + cdef np.ndarray outlowerband cdef int outbegidx cdef int outnbelement - cdef TA_ERI_Stream* handle = NULL - cdef ERI_Stream stream = ERI_Stream.__new__(ERI_Stream) + cdef TA_DONCHIAN_Stream* handle = NULL + cdef DONCHIAN_Stream stream = DONCHIAN_Stream.__new__(DONCHIAN_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_ERI_Lookback(timeperiod) - outbullpower = make_double_array(length, lookback) - outbearpower = make_double_array(length, lookback) + lookback = begidx + lib.TA_DONCHIAN_Lookback(timeperiod) + outupperband = make_double_array(length, lookback) + outmiddleband = make_double_array(length, lookback) + outlowerband = make_double_array(length, lookback) with nogil: - retCode = TA_ERI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outbullpower.data + lookback, outbearpower.data + lookback) + retCode = TA_DONCHIAN_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outupperband.data + lookback, outmiddleband.data + lookback, outlowerband.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -16851,75 +17708,83 @@ cdef class ERI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ERI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((high, low, close,), outbullpower), _stream_like((high, low, close,), outbearpower)) + _stream_open_failed("TA_DONCHIAN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low,), outupperband), _stream_like((high, low,), outmiddleband), _stream_like((high, low,), outlowerband)) @cython.binding(False) - def update(self, double high, double low, double close): - cdef double outbullpower - cdef double outbearpower + def update(self, double high, double low): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ERI_Update(self._handle, high, low, close, &outbullpower, &outbearpower) + retCode = TA_DONCHIAN_Update(self._handle, high, low, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: - _ta_check_success("TA_ERI_Update", retCode) - return (outbullpower, outbearpower) + _ta_check_success("TA_DONCHIAN_Update", retCode) + return (outupperband, outmiddleband, outlowerband) @cython.binding(False) - def peek(self, double high, double low, double close): - cdef double outbullpower - cdef double outbearpower + def peek(self, double high, double low): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ERI_Peek(self._handle, high, low, close, &outbullpower, &outbearpower) + retCode = TA_DONCHIAN_Peek(self._handle, high, low, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: - _ta_check_success("TA_ERI_Peek", retCode) - return (outbullpower, outbearpower) + _ta_check_success("TA_DONCHIAN_Peek", retCode) + return (outupperband, outmiddleband, outlowerband) @property def value(self): - cdef double outbullpower - cdef double outbearpower + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ERI_Value(self._handle, &outbullpower, &outbearpower) + retCode = TA_DONCHIAN_Value(self._handle, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: - _ta_check_success("TA_ERI_Value", retCode) - return (outbullpower, outbearpower) + _ta_check_success("TA_DONCHIAN_Value", retCode) + return (outupperband, outmiddleband, outlowerband) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_ERI_OutRange(self._handle, outbegidx, outnbelement) + return TA_DONCHIAN_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_ERI_Advance(self._handle) + return TA_DONCHIAN_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_ERI_Stream* clone = NULL - cdef ERI_Stream stream = ERI_Stream.__new__(type(self)) + cdef TA_DONCHIAN_Stream* clone = NULL + cdef DONCHIAN_Stream stream = DONCHIAN_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ERI_Clone(self._handle, &clone) + retCode = TA_DONCHIAN_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_ERI_Clone", retCode) + _ta_check_success("TA_DONCHIAN_Clone", retCode) return stream -cdef class EXP_Stream(Stream): - """ EXP(real) +cdef class DOSC_Stream(Stream): + """ DOSC(real[, timeperiod=?, firstperiod=?, secondperiod=?, signalperiod=?]) - Vector Arithmetic Exp (Math Transform) + Derivative Oscillator (Momentum Indicators) Inputs: real: (any ndarray) + Parameters: + timeperiod: 14 + firstperiod: 5 + secondperiod: 3 + signalperiod: 9 Outputs: real """ @@ -16927,29 +17792,29 @@ cdef class EXP_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_EXP_Close(self._handle) + TA_DOSC_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real): + def __init__(self, real, int timeperiod=-2**31, int firstperiod=-2**31, int secondperiod=-2**31, int signalperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_EXP_Stream* handle = NULL + cdef TA_DOSC_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_EXP_Lookback() + 1 - retCode = TA_EXP_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_DOSC_Lookback(timeperiod, firstperiod, secondperiod, signalperiod) + 1 + retCode = TA_DOSC_Open(&handle, a_real.data + begidx, historylen, timeperiod, firstperiod, secondperiod, signalperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_EXP_Close(self._handle) + TA_DOSC_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -16958,10 +17823,10 @@ cdef class EXP_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_EXP_Open", retCode, historylen, need) + _stream_open_failed("TA_DOSC_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real): + def open_and_fill(real, int timeperiod=-2**31, int firstperiod=-2**31, int secondperiod=-2**31, int signalperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -16971,16 +17836,16 @@ cdef class EXP_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_EXP_Stream* handle = NULL - cdef EXP_Stream stream = EXP_Stream.__new__(EXP_Stream) + cdef TA_DOSC_Stream* handle = NULL + cdef DOSC_Stream stream = DOSC_Stream.__new__(DOSC_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_EXP_Lookback() + lookback = begidx + lib.TA_DOSC_Lookback(timeperiod, firstperiod, secondperiod, signalperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_EXP_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_DOSC_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, firstperiod, secondperiod, signalperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -16989,7 +17854,7 @@ cdef class EXP_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_EXP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_DOSC_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -16998,9 +17863,9 @@ cdef class EXP_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_EXP_Update(self._handle, real, &outreal) + retCode = TA_DOSC_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_EXP_Update", retCode) + _ta_check_success("TA_DOSC_Update", retCode) return outreal @cython.binding(False) @@ -17009,9 +17874,9 @@ cdef class EXP_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_EXP_Peek(self._handle, real, &outreal) + retCode = TA_DOSC_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_EXP_Peek", retCode) + _ta_check_success("TA_DOSC_Peek", retCode) return outreal @property @@ -17020,41 +17885,43 @@ cdef class EXP_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_EXP_Value(self._handle, &outreal) + retCode = TA_DOSC_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_EXP_Value", retCode) + _ta_check_success("TA_DOSC_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_EXP_OutRange(self._handle, outbegidx, outnbelement) + return TA_DOSC_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_EXP_Advance(self._handle) + return TA_DOSC_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_EXP_Stream* clone = NULL - cdef EXP_Stream stream = EXP_Stream.__new__(type(self)) + cdef TA_DOSC_Stream* clone = NULL + cdef DOSC_Stream stream = DOSC_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_EXP_Clone(self._handle, &clone) + retCode = TA_DOSC_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_EXP_Clone", retCode) + _ta_check_success("TA_DOSC_Clone", retCode) return stream -cdef class FLOOR_Stream(Stream): - """ FLOOR(real) +cdef class DPO_Stream(Stream): + """ DPO(real[, timeperiod=?]) - Vector Floor (Math Transform) + Detrended Price Oscillator (Momentum Indicators) Inputs: real: (any ndarray) + Parameters: + timeperiod: 20 Outputs: real """ @@ -17062,29 +17929,29 @@ cdef class FLOOR_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_FLOOR_Close(self._handle) + TA_DPO_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real): + def __init__(self, real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_FLOOR_Stream* handle = NULL + cdef TA_DPO_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_FLOOR_Lookback() + 1 - retCode = TA_FLOOR_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_DPO_Lookback(timeperiod) + 1 + retCode = TA_DPO_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_FLOOR_Close(self._handle) + TA_DPO_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -17093,10 +17960,10 @@ cdef class FLOOR_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_FLOOR_Open", retCode, historylen, need) + _stream_open_failed("TA_DPO_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real): + def open_and_fill(real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -17106,16 +17973,16 @@ cdef class FLOOR_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_FLOOR_Stream* handle = NULL - cdef FLOOR_Stream stream = FLOOR_Stream.__new__(FLOOR_Stream) + cdef TA_DPO_Stream* handle = NULL + cdef DPO_Stream stream = DPO_Stream.__new__(DPO_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_FLOOR_Lookback() + lookback = begidx + lib.TA_DPO_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_FLOOR_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_DPO_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -17124,7 +17991,7 @@ cdef class FLOOR_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_FLOOR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_DPO_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -17133,9 +18000,9 @@ cdef class FLOOR_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_FLOOR_Update(self._handle, real, &outreal) + retCode = TA_DPO_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_FLOOR_Update", retCode) + _ta_check_success("TA_DPO_Update", retCode) return outreal @cython.binding(False) @@ -17144,9 +18011,9 @@ cdef class FLOOR_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_FLOOR_Peek(self._handle, real, &outreal) + retCode = TA_DPO_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_FLOOR_Peek", retCode) + _ta_check_success("TA_DPO_Peek", retCode) return outreal @property @@ -17155,43 +18022,43 @@ cdef class FLOOR_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_FLOOR_Value(self._handle, &outreal) + retCode = TA_DPO_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_FLOOR_Value", retCode) + _ta_check_success("TA_DPO_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_FLOOR_OutRange(self._handle, outbegidx, outnbelement) + return TA_DPO_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_FLOOR_Advance(self._handle) + return TA_DPO_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_FLOOR_Stream* clone = NULL - cdef FLOOR_Stream stream = FLOOR_Stream.__new__(type(self)) + cdef TA_DPO_Stream* clone = NULL + cdef DPO_Stream stream = DPO_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_FLOOR_Clone(self._handle, &clone) + retCode = TA_DPO_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_FLOOR_Clone", retCode) + _ta_check_success("TA_DPO_Clone", retCode) return stream -cdef class FOSC_Stream(Stream): - """ FOSC(real[, timeperiod=?]) +cdef class DX_Stream(Stream): + """ DX(high, low, close[, timeperiod=?]) - Forecast Oscillator (Momentum Indicators) + Directional Movement Index (Momentum Indicators) Inputs: - real: (any ndarray) + prices: ['high', 'low', 'close'] Parameters: - timeperiod: 5 + timeperiod: 14 Outputs: real """ @@ -17199,29 +18066,31 @@ cdef class FOSC_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_FOSC_Close(self._handle) + TA_DX_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_FOSC_Stream* handle = NULL + cdef TA_DX_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_FOSC_Lookback(timeperiod) + 1 - retCode = TA_FOSC_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_DX_Lookback(timeperiod) + 1 + retCode = TA_DX_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_FOSC_Close(self._handle) + TA_DX_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -17230,12 +18099,14 @@ cdef class FOSC_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_FOSC_Open", retCode, historylen, need) + _stream_open_failed("TA_DX_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -17243,16 +18114,16 @@ cdef class FOSC_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_FOSC_Stream* handle = NULL - cdef FOSC_Stream stream = FOSC_Stream.__new__(FOSC_Stream) + cdef TA_DX_Stream* handle = NULL + cdef DX_Stream stream = DX_Stream.__new__(DX_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_FOSC_Lookback(timeperiod) + lookback = begidx + lib.TA_DX_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_FOSC_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_DX_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -17261,29 +18132,29 @@ cdef class FOSC_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_FOSC_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_DX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low, close,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_FOSC_Update(self._handle, real, &outreal) + retCode = TA_DX_Update(self._handle, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_FOSC_Update", retCode) + _ta_check_success("TA_DX_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_FOSC_Peek(self._handle, real, &outreal) + retCode = TA_DX_Peek(self._handle, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_FOSC_Peek", retCode) + _ta_check_success("TA_DX_Peek", retCode) return outreal @property @@ -17292,77 +18163,74 @@ cdef class FOSC_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_FOSC_Value(self._handle, &outreal) + retCode = TA_DX_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_FOSC_Value", retCode) + _ta_check_success("TA_DX_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_FOSC_OutRange(self._handle, outbegidx, outnbelement) + return TA_DX_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_FOSC_Advance(self._handle) + return TA_DX_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_FOSC_Stream* clone = NULL - cdef FOSC_Stream stream = FOSC_Stream.__new__(type(self)) + cdef TA_DX_Stream* clone = NULL + cdef DX_Stream stream = DX_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_FOSC_Clone(self._handle, &clone) + retCode = TA_DX_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_FOSC_Clone", retCode) + _ta_check_success("TA_DX_Clone", retCode) return stream -cdef class FRACTAL_Stream(Stream): - """ FRACTAL(high, low[, leftbars=?, rightbars=?]) +cdef class EFI_Stream(Stream): + """ EFI(close, volume[, timeperiod=?]) - Williams Fractal (Momentum Indicators) + Elder's Force Index (Volume Indicators) Inputs: - prices: ['high', 'low'] + prices: ['close', 'volume'] Parameters: - leftbars: 2 - rightbars: 2 + timeperiod: 13 Outputs: - swinghigh - swinglow + real """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_FRACTAL_Close(self._handle) + TA_EFI_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, int leftbars=-2**31, int rightbars=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def __init__(self, close, volume, int timeperiod=-2**31): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_FRACTAL_Stream* handle = NULL - cdef int outswinghigh - cdef int outswinglow + cdef TA_EFI_Stream* handle = NULL + cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_FRACTAL_Lookback(leftbars, rightbars) + 1 - retCode = TA_FRACTAL_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, leftbars, rightbars, &outswinghigh, &outswinglow) + need = lib.TA_EFI_Lookback(timeperiod) + 1 + retCode = TA_EFI_Open(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_FRACTAL_Close(self._handle) + TA_EFI_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -17371,32 +18239,30 @@ cdef class FRACTAL_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_FRACTAL_Open", retCode, historylen, need) + _stream_open_failed("TA_EFI_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, int leftbars=-2**31, int rightbars=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def open_and_fill(close, volume, int timeperiod=-2**31): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outswinghigh - cdef np.ndarray outswinglow + cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_FRACTAL_Stream* handle = NULL - cdef FRACTAL_Stream stream = FRACTAL_Stream.__new__(FRACTAL_Stream) + cdef TA_EFI_Stream* handle = NULL + cdef EFI_Stream stream = EFI_Stream.__new__(EFI_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_FRACTAL_Lookback(leftbars, rightbars) - outswinghigh = make_int_array(length, lookback) - outswinglow = make_int_array(length, lookback) + lookback = begidx + lib.TA_EFI_Lookback(timeperiod) + outreal = make_double_array(length, lookback) with nogil: - retCode = TA_FRACTAL_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, leftbars, rightbars, &outbegidx, &outnbelement, outswinghigh.data + lookback, outswinglow.data + lookback) + retCode = TA_EFI_OpenAndFill(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -17405,114 +18271,104 @@ cdef class FRACTAL_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_FRACTAL_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((high, low,), outswinghigh), _stream_like((high, low,), outswinglow)) + _stream_open_failed("TA_EFI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((close, volume,), outreal) @cython.binding(False) - def update(self, double high, double low): - cdef int outswinghigh - cdef int outswinglow + def update(self, double close, double volume): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_FRACTAL_Update(self._handle, high, low, &outswinghigh, &outswinglow) + retCode = TA_EFI_Update(self._handle, close, volume, &outreal) if retCode != 0: - _ta_check_success("TA_FRACTAL_Update", retCode) - return (outswinghigh, outswinglow) + _ta_check_success("TA_EFI_Update", retCode) + return outreal @cython.binding(False) - def peek(self, double high, double low): - cdef int outswinghigh - cdef int outswinglow + def peek(self, double close, double volume): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_FRACTAL_Peek(self._handle, high, low, &outswinghigh, &outswinglow) + retCode = TA_EFI_Peek(self._handle, close, volume, &outreal) if retCode != 0: - _ta_check_success("TA_FRACTAL_Peek", retCode) - return (outswinghigh, outswinglow) + _ta_check_success("TA_EFI_Peek", retCode) + return outreal @property def value(self): - cdef int outswinghigh - cdef int outswinglow + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_FRACTAL_Value(self._handle, &outswinghigh, &outswinglow) + retCode = TA_EFI_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_FRACTAL_Value", retCode) - return (outswinghigh, outswinglow) + _ta_check_success("TA_EFI_Value", retCode) + return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_FRACTAL_OutRange(self._handle, outbegidx, outnbelement) + return TA_EFI_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_FRACTAL_Advance(self._handle) + return TA_EFI_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_FRACTAL_Stream* clone = NULL - cdef FRACTAL_Stream stream = FRACTAL_Stream.__new__(type(self)) + cdef TA_EFI_Stream* clone = NULL + cdef EFI_Stream stream = EFI_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_FRACTAL_Clone(self._handle, &clone) + retCode = TA_EFI_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_FRACTAL_Clone", retCode) + _ta_check_success("TA_EFI_Clone", retCode) return stream -cdef class HA_Stream(Stream): - """ HA(open, high, low, close) +cdef class EMA_Stream(Stream): + """ EMA(real[, timeperiod=?]) - Heikin-Ashi Candles (Price Transform) + Exponential Moving Average (Overlap Studies) Inputs: - prices: ['open', 'high', 'low', 'close'] + real: (any ndarray) + Parameters: + timeperiod: 30 Outputs: - haopen - hahigh - halow - haclose + real """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_HA_Close(self._handle) + TA_EMA_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, open, high, low, close): - cdef np.ndarray a_open = _stream_input(open) - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_open, a_high, a_low, a_close,) + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_HA_Stream* handle = NULL - cdef double outhaopen - cdef double outhahigh - cdef double outhalow - cdef double outhaclose + cdef TA_EMA_Stream* handle = NULL + cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_HA_Lookback() + 1 - retCode = TA_HA_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outhaopen, &outhahigh, &outhalow, &outhaclose) + need = lib.TA_EMA_Lookback(timeperiod) + 1 + retCode = TA_EMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_HA_Close(self._handle) + TA_EMA_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -17521,38 +18377,29 @@ cdef class HA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HA_Open", retCode, historylen, need) + _stream_open_failed("TA_EMA_Open", retCode, historylen, need) @staticmethod - def open_and_fill(open, high, low, close): - cdef np.ndarray a_open = _stream_input(open) - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_open, a_high, a_low, a_close,) + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outhaopen - cdef np.ndarray outhahigh - cdef np.ndarray outhalow - cdef np.ndarray outhaclose + cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_HA_Stream* handle = NULL - cdef HA_Stream stream = HA_Stream.__new__(HA_Stream) + cdef TA_EMA_Stream* handle = NULL + cdef EMA_Stream stream = EMA_Stream.__new__(EMA_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_HA_Lookback() - outhaopen = make_double_array(length, lookback) - outhahigh = make_double_array(length, lookback) - outhalow = make_double_array(length, lookback) - outhaclose = make_double_array(length, lookback) + lookback = begidx + lib.TA_EMA_Lookback(timeperiod) + outreal = make_double_array(length, lookback) with nogil: - retCode = TA_HA_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outhaopen.data + lookback, outhahigh.data + lookback, outhalow.data + lookback, outhaclose.data + lookback) + retCode = TA_EMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -17561,83 +18408,75 @@ cdef class HA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HA_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((open, high, low, close,), outhaopen), _stream_like((open, high, low, close,), outhahigh), _stream_like((open, high, low, close,), outhalow), _stream_like((open, high, low, close,), outhaclose)) + _stream_open_failed("TA_EMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double open, double high, double low, double close): - cdef double outhaopen - cdef double outhahigh - cdef double outhalow - cdef double outhaclose + def update(self, double real): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HA_Update(self._handle, open, high, low, close, &outhaopen, &outhahigh, &outhalow, &outhaclose) + retCode = TA_EMA_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_HA_Update", retCode) - return (outhaopen, outhahigh, outhalow, outhaclose) + _ta_check_success("TA_EMA_Update", retCode) + return outreal @cython.binding(False) - def peek(self, double open, double high, double low, double close): - cdef double outhaopen - cdef double outhahigh - cdef double outhalow - cdef double outhaclose + def peek(self, double real): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HA_Peek(self._handle, open, high, low, close, &outhaopen, &outhahigh, &outhalow, &outhaclose) + retCode = TA_EMA_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_HA_Peek", retCode) - return (outhaopen, outhahigh, outhalow, outhaclose) + _ta_check_success("TA_EMA_Peek", retCode) + return outreal @property def value(self): - cdef double outhaopen - cdef double outhahigh - cdef double outhalow - cdef double outhaclose + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HA_Value(self._handle, &outhaopen, &outhahigh, &outhalow, &outhaclose) + retCode = TA_EMA_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_HA_Value", retCode) - return (outhaopen, outhahigh, outhalow, outhaclose) + _ta_check_success("TA_EMA_Value", retCode) + return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_HA_OutRange(self._handle, outbegidx, outnbelement) + return TA_EMA_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_HA_Advance(self._handle) + return TA_EMA_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_HA_Stream* clone = NULL - cdef HA_Stream stream = HA_Stream.__new__(type(self)) + cdef TA_EMA_Stream* clone = NULL + cdef EMA_Stream stream = EMA_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HA_Clone(self._handle, &clone) + retCode = TA_EMA_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_HA_Clone", retCode) + _ta_check_success("TA_EMA_Clone", retCode) return stream -cdef class HMA_Stream(Stream): - """ HMA(real[, timeperiod=?]) +cdef class EMV_Stream(Stream): + """ EMV(high, low, volume[, timeperiod=?, volumedivisor=?]) - Hull Moving Average (Overlap Studies) + Arms Ease of Movement (Volume Indicators) Inputs: - real: (any ndarray) + prices: ['high', 'low', 'volume'] Parameters: - timeperiod: 20 + timeperiod: 14 + volumedivisor: 10000.0 Outputs: real """ @@ -17645,29 +18484,31 @@ cdef class HMA_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_HMA_Close(self._handle) + TA_EMV_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, volume, int timeperiod=-2**31, double volumedivisor=-4e37): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_HMA_Stream* handle = NULL + cdef TA_EMV_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_HMA_Lookback(timeperiod) + 1 - retCode = TA_HMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_EMV_Lookback(timeperiod, volumedivisor) + 1 + retCode = TA_EMV_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_volume.data + begidx, historylen, timeperiod, volumedivisor, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_HMA_Close(self._handle) + TA_EMV_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -17676,12 +18517,14 @@ cdef class HMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HMA_Open", retCode, historylen, need) + _stream_open_failed("TA_EMV_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, volume, int timeperiod=-2**31, double volumedivisor=-4e37): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -17689,16 +18532,16 @@ cdef class HMA_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_HMA_Stream* handle = NULL - cdef HMA_Stream stream = HMA_Stream.__new__(HMA_Stream) + cdef TA_EMV_Stream* handle = NULL + cdef EMV_Stream stream = EMV_Stream.__new__(EMV_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_HMA_Lookback(timeperiod) + lookback = begidx + lib.TA_EMV_Lookback(timeperiod, volumedivisor) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_HMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_EMV_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_volume.data + begidx, historylen, timeperiod, volumedivisor, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -17707,29 +18550,29 @@ cdef class HMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_EMV_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low, volume,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double high, double low, double volume): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HMA_Update(self._handle, real, &outreal) + retCode = TA_EMV_Update(self._handle, high, low, volume, &outreal) if retCode != 0: - _ta_check_success("TA_HMA_Update", retCode) + _ta_check_success("TA_EMV_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double high, double low, double volume): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HMA_Peek(self._handle, real, &outreal) + retCode = TA_EMV_Peek(self._handle, high, low, volume, &outreal) if retCode != 0: - _ta_check_success("TA_HMA_Peek", retCode) + _ta_check_success("TA_EMV_Peek", retCode) return outreal @property @@ -17738,41 +18581,43 @@ cdef class HMA_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HMA_Value(self._handle, &outreal) + retCode = TA_EMV_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_HMA_Value", retCode) + _ta_check_success("TA_EMV_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_HMA_OutRange(self._handle, outbegidx, outnbelement) + return TA_EMV_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_HMA_Advance(self._handle) + return TA_EMV_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_HMA_Stream* clone = NULL - cdef HMA_Stream stream = HMA_Stream.__new__(type(self)) + cdef TA_EMV_Stream* clone = NULL + cdef EMV_Stream stream = EMV_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HMA_Clone(self._handle, &clone) + retCode = TA_EMV_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_HMA_Clone", retCode) + _ta_check_success("TA_EMV_Clone", retCode) return stream -cdef class HT_DCPERIOD_Stream(Stream): - """ HT_DCPERIOD(real) +cdef class ER_Stream(Stream): + """ ER(real[, timeperiod=?]) - Hilbert Transform - Dominant Cycle Period (Cycle Indicators) + Kaufman Efficiency Ratio (Momentum Indicators) Inputs: real: (any ndarray) + Parameters: + timeperiod: 10 Outputs: real """ @@ -17780,29 +18625,29 @@ cdef class HT_DCPERIOD_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_HT_DCPERIOD_Close(self._handle) + TA_ER_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real): + def __init__(self, real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_HT_DCPERIOD_Stream* handle = NULL + cdef TA_ER_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_HT_DCPERIOD_Lookback() + 1 - retCode = TA_HT_DCPERIOD_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_ER_Lookback(timeperiod) + 1 + retCode = TA_ER_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_HT_DCPERIOD_Close(self._handle) + TA_ER_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -17811,10 +18656,10 @@ cdef class HT_DCPERIOD_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HT_DCPERIOD_Open", retCode, historylen, need) + _stream_open_failed("TA_ER_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real): + def open_and_fill(real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -17824,16 +18669,16 @@ cdef class HT_DCPERIOD_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_HT_DCPERIOD_Stream* handle = NULL - cdef HT_DCPERIOD_Stream stream = HT_DCPERIOD_Stream.__new__(HT_DCPERIOD_Stream) + cdef TA_ER_Stream* handle = NULL + cdef ER_Stream stream = ER_Stream.__new__(ER_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_HT_DCPERIOD_Lookback() + lookback = begidx + lib.TA_ER_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_HT_DCPERIOD_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_ER_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -17842,7 +18687,7 @@ cdef class HT_DCPERIOD_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HT_DCPERIOD_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_ER_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -17851,9 +18696,9 @@ cdef class HT_DCPERIOD_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_DCPERIOD_Update(self._handle, real, &outreal) + retCode = TA_ER_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_HT_DCPERIOD_Update", retCode) + _ta_check_success("TA_ER_Update", retCode) return outreal @cython.binding(False) @@ -17862,9 +18707,9 @@ cdef class HT_DCPERIOD_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_DCPERIOD_Peek(self._handle, real, &outreal) + retCode = TA_ER_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_HT_DCPERIOD_Peek", retCode) + _ta_check_success("TA_ER_Peek", retCode) return outreal @property @@ -17873,71 +18718,77 @@ cdef class HT_DCPERIOD_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_DCPERIOD_Value(self._handle, &outreal) + retCode = TA_ER_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_HT_DCPERIOD_Value", retCode) + _ta_check_success("TA_ER_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_HT_DCPERIOD_OutRange(self._handle, outbegidx, outnbelement) + return TA_ER_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_HT_DCPERIOD_Advance(self._handle) + return TA_ER_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_HT_DCPERIOD_Stream* clone = NULL - cdef HT_DCPERIOD_Stream stream = HT_DCPERIOD_Stream.__new__(type(self)) + cdef TA_ER_Stream* clone = NULL + cdef ER_Stream stream = ER_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_DCPERIOD_Clone(self._handle, &clone) + retCode = TA_ER_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_HT_DCPERIOD_Clone", retCode) + _ta_check_success("TA_ER_Clone", retCode) return stream -cdef class HT_DCPHASE_Stream(Stream): - """ HT_DCPHASE(real) +cdef class ERI_Stream(Stream): + """ ERI(high, low, close[, timeperiod=?]) - Hilbert Transform - Dominant Cycle Phase (Cycle Indicators) + Elder Ray Index (Bull Power / Bear Power) (Momentum Indicators) Inputs: - real: (any ndarray) + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 13 Outputs: - real + bullpower + bearpower """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_HT_DCPHASE_Close(self._handle) + TA_ERI_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_HT_DCPHASE_Stream* handle = NULL - cdef double outreal + cdef TA_ERI_Stream* handle = NULL + cdef double outbullpower + cdef double outbearpower cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_HT_DCPHASE_Lookback() + 1 - retCode = TA_HT_DCPHASE_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_ERI_Lookback(timeperiod) + 1 + retCode = TA_ERI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbullpower, &outbearpower) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_HT_DCPHASE_Close(self._handle) + TA_ERI_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -17946,29 +18797,33 @@ cdef class HT_DCPHASE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HT_DCPHASE_Open", retCode, historylen, need) + _stream_open_failed("TA_ERI_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outreal + cdef np.ndarray outbullpower + cdef np.ndarray outbearpower cdef int outbegidx cdef int outnbelement - cdef TA_HT_DCPHASE_Stream* handle = NULL - cdef HT_DCPHASE_Stream stream = HT_DCPHASE_Stream.__new__(HT_DCPHASE_Stream) + cdef TA_ERI_Stream* handle = NULL + cdef ERI_Stream stream = ERI_Stream.__new__(ERI_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_HT_DCPHASE_Lookback() - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_ERI_Lookback(timeperiod) + outbullpower = make_double_array(length, lookback) + outbearpower = make_double_array(length, lookback) with nogil: - retCode = TA_HT_DCPHASE_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_ERI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outbullpower.data + lookback, outbearpower.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -17977,81 +18832,83 @@ cdef class HT_DCPHASE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HT_DCPHASE_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_ERI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low, close,), outbullpower), _stream_like((high, low, close,), outbearpower)) @cython.binding(False) - def update(self, double real): - cdef double outreal + def update(self, double high, double low, double close): + cdef double outbullpower + cdef double outbearpower cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_DCPHASE_Update(self._handle, real, &outreal) + retCode = TA_ERI_Update(self._handle, high, low, close, &outbullpower, &outbearpower) if retCode != 0: - _ta_check_success("TA_HT_DCPHASE_Update", retCode) - return outreal + _ta_check_success("TA_ERI_Update", retCode) + return (outbullpower, outbearpower) @cython.binding(False) - def peek(self, double real): - cdef double outreal + def peek(self, double high, double low, double close): + cdef double outbullpower + cdef double outbearpower cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_DCPHASE_Peek(self._handle, real, &outreal) + retCode = TA_ERI_Peek(self._handle, high, low, close, &outbullpower, &outbearpower) if retCode != 0: - _ta_check_success("TA_HT_DCPHASE_Peek", retCode) - return outreal + _ta_check_success("TA_ERI_Peek", retCode) + return (outbullpower, outbearpower) @property def value(self): - cdef double outreal + cdef double outbullpower + cdef double outbearpower cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_DCPHASE_Value(self._handle, &outreal) + retCode = TA_ERI_Value(self._handle, &outbullpower, &outbearpower) if retCode != 0: - _ta_check_success("TA_HT_DCPHASE_Value", retCode) - return outreal + _ta_check_success("TA_ERI_Value", retCode) + return (outbullpower, outbearpower) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_HT_DCPHASE_OutRange(self._handle, outbegidx, outnbelement) + return TA_ERI_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_HT_DCPHASE_Advance(self._handle) + return TA_ERI_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_HT_DCPHASE_Stream* clone = NULL - cdef HT_DCPHASE_Stream stream = HT_DCPHASE_Stream.__new__(type(self)) + cdef TA_ERI_Stream* clone = NULL + cdef ERI_Stream stream = ERI_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_DCPHASE_Clone(self._handle, &clone) + retCode = TA_ERI_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_HT_DCPHASE_Clone", retCode) + _ta_check_success("TA_ERI_Clone", retCode) return stream -cdef class HT_PHASOR_Stream(Stream): - """ HT_PHASOR(real) +cdef class EXP_Stream(Stream): + """ EXP(real) - Hilbert Transform - Phasor Components (Cycle Indicators) + Vector Arithmetic Exp (Math Transform) Inputs: real: (any ndarray) Outputs: - inphase - quadrature + real """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_HT_PHASOR_Close(self._handle) + TA_EXP_Close(self._handle) self._handle = NULL _ta_stream_closed() @@ -18061,20 +18918,19 @@ cdef class HT_PHASOR_Stream(Stream): cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_HT_PHASOR_Stream* handle = NULL - cdef double outinphase - cdef double outquadrature + cdef TA_EXP_Stream* handle = NULL + cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_HT_PHASOR_Lookback() + 1 - retCode = TA_HT_PHASOR_Open(&handle, a_real.data + begidx, historylen, &outinphase, &outquadrature) + need = lib.TA_EXP_Lookback() + 1 + retCode = TA_EXP_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_HT_PHASOR_Close(self._handle) + TA_EXP_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -18083,7 +18939,7 @@ cdef class HT_PHASOR_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HT_PHASOR_Open", retCode, historylen, need) + _stream_open_failed("TA_EXP_Open", retCode, historylen, need) @staticmethod def open_and_fill(real): @@ -18093,21 +18949,19 @@ cdef class HT_PHASOR_Stream(Stream): cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outinphase - cdef np.ndarray outquadrature + cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_HT_PHASOR_Stream* handle = NULL - cdef HT_PHASOR_Stream stream = HT_PHASOR_Stream.__new__(HT_PHASOR_Stream) + cdef TA_EXP_Stream* handle = NULL + cdef EXP_Stream stream = EXP_Stream.__new__(EXP_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_HT_PHASOR_Lookback() - outinphase = make_double_array(length, lookback) - outquadrature = make_double_array(length, lookback) + lookback = begidx + lib.TA_EXP_Lookback() + outreal = make_double_array(length, lookback) with nogil: - retCode = TA_HT_PHASOR_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outinphase.data + lookback, outquadrature.data + lookback) + retCode = TA_EXP_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -18116,107 +18970,107 @@ cdef class HT_PHASOR_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HT_PHASOR_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((real,), outinphase), _stream_like((real,), outquadrature)) + _stream_open_failed("TA_EXP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) def update(self, double real): - cdef double outinphase - cdef double outquadrature + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_PHASOR_Update(self._handle, real, &outinphase, &outquadrature) + retCode = TA_EXP_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_HT_PHASOR_Update", retCode) - return (outinphase, outquadrature) + _ta_check_success("TA_EXP_Update", retCode) + return outreal @cython.binding(False) def peek(self, double real): - cdef double outinphase - cdef double outquadrature + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_PHASOR_Peek(self._handle, real, &outinphase, &outquadrature) + retCode = TA_EXP_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_HT_PHASOR_Peek", retCode) - return (outinphase, outquadrature) + _ta_check_success("TA_EXP_Peek", retCode) + return outreal @property def value(self): - cdef double outinphase - cdef double outquadrature + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_PHASOR_Value(self._handle, &outinphase, &outquadrature) + retCode = TA_EXP_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_HT_PHASOR_Value", retCode) - return (outinphase, outquadrature) + _ta_check_success("TA_EXP_Value", retCode) + return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_HT_PHASOR_OutRange(self._handle, outbegidx, outnbelement) + return TA_EXP_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_HT_PHASOR_Advance(self._handle) + return TA_EXP_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_HT_PHASOR_Stream* clone = NULL - cdef HT_PHASOR_Stream stream = HT_PHASOR_Stream.__new__(type(self)) + cdef TA_EXP_Stream* clone = NULL + cdef EXP_Stream stream = EXP_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_PHASOR_Clone(self._handle, &clone) + retCode = TA_EXP_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_HT_PHASOR_Clone", retCode) + _ta_check_success("TA_EXP_Clone", retCode) return stream -cdef class HT_SINE_Stream(Stream): - """ HT_SINE(real) +cdef class FISHER_Stream(Stream): + """ FISHER(high, low[, timeperiod=?]) - Hilbert Transform - SineWave (Cycle Indicators) + Fisher Transform (Momentum Indicators) Inputs: - real: (any ndarray) + prices: ['high', 'low'] + Parameters: + timeperiod: 10 Outputs: - sine - leadsine + fisher + trigger """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_HT_SINE_Close(self._handle) + TA_FISHER_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_HT_SINE_Stream* handle = NULL - cdef double outsine - cdef double outleadsine + cdef TA_FISHER_Stream* handle = NULL + cdef double outfisher + cdef double outtrigger cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_HT_SINE_Lookback() + 1 - retCode = TA_HT_SINE_Open(&handle, a_real.data + begidx, historylen, &outsine, &outleadsine) + need = lib.TA_FISHER_Lookback(timeperiod) + 1 + retCode = TA_FISHER_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outfisher, &outtrigger) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_HT_SINE_Close(self._handle) + TA_FISHER_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -18225,31 +19079,32 @@ cdef class HT_SINE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HT_SINE_Open", retCode, historylen, need) + _stream_open_failed("TA_FISHER_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outsine - cdef np.ndarray outleadsine + cdef np.ndarray outfisher + cdef np.ndarray outtrigger cdef int outbegidx cdef int outnbelement - cdef TA_HT_SINE_Stream* handle = NULL - cdef HT_SINE_Stream stream = HT_SINE_Stream.__new__(HT_SINE_Stream) + cdef TA_FISHER_Stream* handle = NULL + cdef FISHER_Stream stream = FISHER_Stream.__new__(FISHER_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_HT_SINE_Lookback() - outsine = make_double_array(length, lookback) - outleadsine = make_double_array(length, lookback) + lookback = begidx + lib.TA_FISHER_Lookback(timeperiod) + outfisher = make_double_array(length, lookback) + outtrigger = make_double_array(length, lookback) with nogil: - retCode = TA_HT_SINE_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outsine.data + lookback, outleadsine.data + lookback) + retCode = TA_FISHER_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outfisher.data + lookback, outtrigger.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -18258,72 +19113,72 @@ cdef class HT_SINE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HT_SINE_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((real,), outsine), _stream_like((real,), outleadsine)) + _stream_open_failed("TA_FISHER_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low,), outfisher), _stream_like((high, low,), outtrigger)) @cython.binding(False) - def update(self, double real): - cdef double outsine - cdef double outleadsine + def update(self, double high, double low): + cdef double outfisher + cdef double outtrigger cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_SINE_Update(self._handle, real, &outsine, &outleadsine) + retCode = TA_FISHER_Update(self._handle, high, low, &outfisher, &outtrigger) if retCode != 0: - _ta_check_success("TA_HT_SINE_Update", retCode) - return (outsine, outleadsine) + _ta_check_success("TA_FISHER_Update", retCode) + return (outfisher, outtrigger) @cython.binding(False) - def peek(self, double real): - cdef double outsine - cdef double outleadsine + def peek(self, double high, double low): + cdef double outfisher + cdef double outtrigger cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_SINE_Peek(self._handle, real, &outsine, &outleadsine) + retCode = TA_FISHER_Peek(self._handle, high, low, &outfisher, &outtrigger) if retCode != 0: - _ta_check_success("TA_HT_SINE_Peek", retCode) - return (outsine, outleadsine) + _ta_check_success("TA_FISHER_Peek", retCode) + return (outfisher, outtrigger) @property def value(self): - cdef double outsine - cdef double outleadsine + cdef double outfisher + cdef double outtrigger cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_SINE_Value(self._handle, &outsine, &outleadsine) + retCode = TA_FISHER_Value(self._handle, &outfisher, &outtrigger) if retCode != 0: - _ta_check_success("TA_HT_SINE_Value", retCode) - return (outsine, outleadsine) + _ta_check_success("TA_FISHER_Value", retCode) + return (outfisher, outtrigger) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_HT_SINE_OutRange(self._handle, outbegidx, outnbelement) + return TA_FISHER_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_HT_SINE_Advance(self._handle) + return TA_FISHER_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_HT_SINE_Stream* clone = NULL - cdef HT_SINE_Stream stream = HT_SINE_Stream.__new__(type(self)) + cdef TA_FISHER_Stream* clone = NULL + cdef FISHER_Stream stream = FISHER_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_SINE_Clone(self._handle, &clone) + retCode = TA_FISHER_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_HT_SINE_Clone", retCode) + _ta_check_success("TA_FISHER_Clone", retCode) return stream -cdef class HT_TRENDLINE_Stream(Stream): - """ HT_TRENDLINE(real) +cdef class FLOOR_Stream(Stream): + """ FLOOR(real) - Hilbert Transform - Instantaneous Trendline (Overlap Studies) + Vector Floor (Math Transform) Inputs: real: (any ndarray) @@ -18334,7 +19189,7 @@ cdef class HT_TRENDLINE_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_HT_TRENDLINE_Close(self._handle) + TA_FLOOR_Close(self._handle) self._handle = NULL _ta_stream_closed() @@ -18344,19 +19199,19 @@ cdef class HT_TRENDLINE_Stream(Stream): cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_HT_TRENDLINE_Stream* handle = NULL + cdef TA_FLOOR_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_HT_TRENDLINE_Lookback() + 1 - retCode = TA_HT_TRENDLINE_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_FLOOR_Lookback() + 1 + retCode = TA_FLOOR_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_HT_TRENDLINE_Close(self._handle) + TA_FLOOR_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -18365,7 +19220,7 @@ cdef class HT_TRENDLINE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HT_TRENDLINE_Open", retCode, historylen, need) + _stream_open_failed("TA_FLOOR_Open", retCode, historylen, need) @staticmethod def open_and_fill(real): @@ -18378,16 +19233,16 @@ cdef class HT_TRENDLINE_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_HT_TRENDLINE_Stream* handle = NULL - cdef HT_TRENDLINE_Stream stream = HT_TRENDLINE_Stream.__new__(HT_TRENDLINE_Stream) + cdef TA_FLOOR_Stream* handle = NULL + cdef FLOOR_Stream stream = FLOOR_Stream.__new__(FLOOR_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_HT_TRENDLINE_Lookback() + lookback = begidx + lib.TA_FLOOR_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_HT_TRENDLINE_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_FLOOR_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -18396,7 +19251,7 @@ cdef class HT_TRENDLINE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HT_TRENDLINE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_FLOOR_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -18405,9 +19260,9 @@ cdef class HT_TRENDLINE_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_TRENDLINE_Update(self._handle, real, &outreal) + retCode = TA_FLOOR_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_HT_TRENDLINE_Update", retCode) + _ta_check_success("TA_FLOOR_Update", retCode) return outreal @cython.binding(False) @@ -18416,9 +19271,9 @@ cdef class HT_TRENDLINE_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_TRENDLINE_Peek(self._handle, real, &outreal) + retCode = TA_FLOOR_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_HT_TRENDLINE_Peek", retCode) + _ta_check_success("TA_FLOOR_Peek", retCode) return outreal @property @@ -18427,71 +19282,73 @@ cdef class HT_TRENDLINE_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_TRENDLINE_Value(self._handle, &outreal) + retCode = TA_FLOOR_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_HT_TRENDLINE_Value", retCode) + _ta_check_success("TA_FLOOR_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_HT_TRENDLINE_OutRange(self._handle, outbegidx, outnbelement) + return TA_FLOOR_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_HT_TRENDLINE_Advance(self._handle) + return TA_FLOOR_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_HT_TRENDLINE_Stream* clone = NULL - cdef HT_TRENDLINE_Stream stream = HT_TRENDLINE_Stream.__new__(type(self)) + cdef TA_FLOOR_Stream* clone = NULL + cdef FLOOR_Stream stream = FLOOR_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_TRENDLINE_Clone(self._handle, &clone) + retCode = TA_FLOOR_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_HT_TRENDLINE_Clone", retCode) + _ta_check_success("TA_FLOOR_Clone", retCode) return stream -cdef class HT_TRENDMODE_Stream(Stream): - """ HT_TRENDMODE(real) +cdef class FOSC_Stream(Stream): + """ FOSC(real[, timeperiod=?]) - Hilbert Transform - Trend vs Cycle Mode (Cycle Indicators) + Forecast Oscillator (Momentum Indicators) Inputs: real: (any ndarray) + Parameters: + timeperiod: 5 Outputs: - integer + real """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_HT_TRENDMODE_Close(self._handle) + TA_FOSC_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real): + def __init__(self, real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_HT_TRENDMODE_Stream* handle = NULL - cdef int outinteger + cdef TA_FOSC_Stream* handle = NULL + cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_HT_TRENDMODE_Lookback() + 1 - retCode = TA_HT_TRENDMODE_Open(&handle, a_real.data + begidx, historylen, &outinteger) + need = lib.TA_FOSC_Lookback(timeperiod) + 1 + retCode = TA_FOSC_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_HT_TRENDMODE_Close(self._handle) + TA_FOSC_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -18500,29 +19357,29 @@ cdef class HT_TRENDMODE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HT_TRENDMODE_Open", retCode, historylen, need) + _stream_open_failed("TA_FOSC_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real): + def open_and_fill(real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outinteger + cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_HT_TRENDMODE_Stream* handle = NULL - cdef HT_TRENDMODE_Stream stream = HT_TRENDMODE_Stream.__new__(HT_TRENDMODE_Stream) + cdef TA_FOSC_Stream* handle = NULL + cdef FOSC_Stream stream = FOSC_Stream.__new__(FOSC_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_HT_TRENDMODE_Lookback() - outinteger = make_int_array(length, lookback) + lookback = begidx + lib.TA_FOSC_Lookback(timeperiod) + outreal = make_double_array(length, lookback) with nogil: - retCode = TA_HT_TRENDMODE_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + retCode = TA_FOSC_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -18531,105 +19388,108 @@ cdef class HT_TRENDMODE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_HT_TRENDMODE_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outinteger) + _stream_open_failed("TA_FOSC_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) def update(self, double real): - cdef int outinteger + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_TRENDMODE_Update(self._handle, real, &outinteger) + retCode = TA_FOSC_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_HT_TRENDMODE_Update", retCode) - return outinteger + _ta_check_success("TA_FOSC_Update", retCode) + return outreal @cython.binding(False) def peek(self, double real): - cdef int outinteger + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_TRENDMODE_Peek(self._handle, real, &outinteger) + retCode = TA_FOSC_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_HT_TRENDMODE_Peek", retCode) - return outinteger + _ta_check_success("TA_FOSC_Peek", retCode) + return outreal @property def value(self): - cdef int outinteger + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_TRENDMODE_Value(self._handle, &outinteger) + retCode = TA_FOSC_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_HT_TRENDMODE_Value", retCode) - return outinteger + _ta_check_success("TA_FOSC_Value", retCode) + return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_HT_TRENDMODE_OutRange(self._handle, outbegidx, outnbelement) + return TA_FOSC_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_HT_TRENDMODE_Advance(self._handle) + return TA_FOSC_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_HT_TRENDMODE_Stream* clone = NULL - cdef HT_TRENDMODE_Stream stream = HT_TRENDMODE_Stream.__new__(type(self)) + cdef TA_FOSC_Stream* clone = NULL + cdef FOSC_Stream stream = FOSC_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_HT_TRENDMODE_Clone(self._handle, &clone) + retCode = TA_FOSC_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_HT_TRENDMODE_Clone", retCode) + _ta_check_success("TA_FOSC_Clone", retCode) return stream -cdef class IMI_Stream(Stream): - """ IMI(open, close[, timeperiod=?]) +cdef class FRACTAL_Stream(Stream): + """ FRACTAL(high, low[, leftbars=?, rightbars=?]) - Intraday Momentum Index (Momentum Indicators) + Williams Fractal (Momentum Indicators) Inputs: - prices: ['open', 'close'] + prices: ['high', 'low'] Parameters: - timeperiod: 14 + leftbars: 2 + rightbars: 2 Outputs: - real + swinghigh + swinglow """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_IMI_Close(self._handle) + TA_FRACTAL_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, open, close, int timeperiod=-2**31): - cdef np.ndarray a_open = _stream_input(open) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_open, a_close,) + def __init__(self, high, low, int leftbars=-2**31, int rightbars=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_IMI_Stream* handle = NULL - cdef double outreal + cdef TA_FRACTAL_Stream* handle = NULL + cdef int outswinghigh + cdef int outswinglow cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_IMI_Lookback(timeperiod) + 1 - retCode = TA_IMI_Open(&handle, a_open.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_FRACTAL_Lookback(leftbars, rightbars) + 1 + retCode = TA_FRACTAL_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, leftbars, rightbars, &outswinghigh, &outswinglow) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_IMI_Close(self._handle) + TA_FRACTAL_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -18638,30 +19498,32 @@ cdef class IMI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_IMI_Open", retCode, historylen, need) + _stream_open_failed("TA_FRACTAL_Open", retCode, historylen, need) @staticmethod - def open_and_fill(open, close, int timeperiod=-2**31): - cdef np.ndarray a_open = _stream_input(open) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_open, a_close,) + def open_and_fill(high, low, int leftbars=-2**31, int rightbars=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outreal + cdef np.ndarray outswinghigh + cdef np.ndarray outswinglow cdef int outbegidx cdef int outnbelement - cdef TA_IMI_Stream* handle = NULL - cdef IMI_Stream stream = IMI_Stream.__new__(IMI_Stream) + cdef TA_FRACTAL_Stream* handle = NULL + cdef FRACTAL_Stream stream = FRACTAL_Stream.__new__(FRACTAL_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_IMI_Lookback(timeperiod) - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_FRACTAL_Lookback(leftbars, rightbars) + outswinghigh = make_int_array(length, lookback) + outswinglow = make_int_array(length, lookback) with nogil: - retCode = TA_IMI_OpenAndFill(&handle, a_open.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_FRACTAL_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, leftbars, rightbars, &outbegidx, &outnbelement, outswinghigh.data + lookback, outswinglow.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -18670,74 +19532,77 @@ cdef class IMI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_IMI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((open, close,), outreal) + _stream_open_failed("TA_FRACTAL_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low,), outswinghigh), _stream_like((high, low,), outswinglow)) @cython.binding(False) - def update(self, double open, double close): - cdef double outreal + def update(self, double high, double low): + cdef int outswinghigh + cdef int outswinglow cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_IMI_Update(self._handle, open, close, &outreal) + retCode = TA_FRACTAL_Update(self._handle, high, low, &outswinghigh, &outswinglow) if retCode != 0: - _ta_check_success("TA_IMI_Update", retCode) - return outreal + _ta_check_success("TA_FRACTAL_Update", retCode) + return (outswinghigh, outswinglow) @cython.binding(False) - def peek(self, double open, double close): - cdef double outreal + def peek(self, double high, double low): + cdef int outswinghigh + cdef int outswinglow cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_IMI_Peek(self._handle, open, close, &outreal) + retCode = TA_FRACTAL_Peek(self._handle, high, low, &outswinghigh, &outswinglow) if retCode != 0: - _ta_check_success("TA_IMI_Peek", retCode) - return outreal + _ta_check_success("TA_FRACTAL_Peek", retCode) + return (outswinghigh, outswinglow) @property def value(self): - cdef double outreal + cdef int outswinghigh + cdef int outswinglow cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_IMI_Value(self._handle, &outreal) + retCode = TA_FRACTAL_Value(self._handle, &outswinghigh, &outswinglow) if retCode != 0: - _ta_check_success("TA_IMI_Value", retCode) - return outreal + _ta_check_success("TA_FRACTAL_Value", retCode) + return (outswinghigh, outswinglow) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_IMI_OutRange(self._handle, outbegidx, outnbelement) + return TA_FRACTAL_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_IMI_Advance(self._handle) + return TA_FRACTAL_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_IMI_Stream* clone = NULL - cdef IMI_Stream stream = IMI_Stream.__new__(type(self)) + cdef TA_FRACTAL_Stream* clone = NULL + cdef FRACTAL_Stream stream = FRACTAL_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_IMI_Clone(self._handle, &clone) + retCode = TA_FRACTAL_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_IMI_Clone", retCode) + _ta_check_success("TA_FRACTAL_Clone", retCode) return stream -cdef class KAMA_Stream(Stream): - """ KAMA(real[, timeperiod=?]) +cdef class FRAMA_Stream(Stream): + """ FRAMA(high, low[, timeperiod=?]) - Kaufman Adaptive Moving Average (Overlap Studies) + Fractal Adaptive Moving Average (Overlap Studies) Inputs: - real: (any ndarray) + prices: ['high', 'low'] Parameters: - timeperiod: 30 + timeperiod: 16 Outputs: real """ @@ -18745,29 +19610,30 @@ cdef class KAMA_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_KAMA_Close(self._handle) + TA_FRAMA_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_KAMA_Stream* handle = NULL + cdef TA_FRAMA_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_KAMA_Lookback(timeperiod) + 1 - retCode = TA_KAMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_FRAMA_Lookback(timeperiod) + 1 + retCode = TA_FRAMA_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_KAMA_Close(self._handle) + TA_FRAMA_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -18776,12 +19642,13 @@ cdef class KAMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_KAMA_Open", retCode, historylen, need) + _stream_open_failed("TA_FRAMA_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -18789,16 +19656,16 @@ cdef class KAMA_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_KAMA_Stream* handle = NULL - cdef KAMA_Stream stream = KAMA_Stream.__new__(KAMA_Stream) + cdef TA_FRAMA_Stream* handle = NULL + cdef FRAMA_Stream stream = FRAMA_Stream.__new__(FRAMA_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_KAMA_Lookback(timeperiod) + lookback = begidx + lib.TA_FRAMA_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_KAMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_FRAMA_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -18807,29 +19674,29 @@ cdef class KAMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_KAMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_FRAMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double high, double low): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_KAMA_Update(self._handle, real, &outreal) + retCode = TA_FRAMA_Update(self._handle, high, low, &outreal) if retCode != 0: - _ta_check_success("TA_KAMA_Update", retCode) + _ta_check_success("TA_FRAMA_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double high, double low): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_KAMA_Peek(self._handle, real, &outreal) + retCode = TA_FRAMA_Peek(self._handle, high, low, &outreal) if retCode != 0: - _ta_check_success("TA_KAMA_Peek", retCode) + _ta_check_success("TA_FRAMA_Peek", retCode) return outreal @property @@ -18838,81 +19705,80 @@ cdef class KAMA_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_KAMA_Value(self._handle, &outreal) + retCode = TA_FRAMA_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_KAMA_Value", retCode) + _ta_check_success("TA_FRAMA_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_KAMA_OutRange(self._handle, outbegidx, outnbelement) + return TA_FRAMA_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_KAMA_Advance(self._handle) + return TA_FRAMA_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_KAMA_Stream* clone = NULL - cdef KAMA_Stream stream = KAMA_Stream.__new__(type(self)) + cdef TA_FRAMA_Stream* clone = NULL + cdef FRAMA_Stream stream = FRAMA_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_KAMA_Clone(self._handle, &clone) + retCode = TA_FRAMA_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_KAMA_Clone", retCode) + _ta_check_success("TA_FRAMA_Clone", retCode) return stream -cdef class KC_Stream(Stream): - """ KC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?]) +cdef class HA_Stream(Stream): + """ HA(open, high, low, close) - Keltner Channels (Overlap Studies) + Heikin-Ashi Candles (Price Transform) Inputs: - prices: ['high', 'low', 'close'] - Parameters: - timeperiod: 20 - atrperiod: 10 - nbdev: 2.0 + prices: ['open', 'high', 'low', 'close'] Outputs: - upperband - middleband - lowerband + haopen + hahigh + halow + haclose """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_KC_Close(self._handle) + TA_HA_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, close, int timeperiod=-2**31, int atrperiod=-2**31, double nbdev=-4e37): + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) cdef np.ndarray a_high = _stream_input(high) cdef np.ndarray a_low = _stream_input(low) cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_KC_Stream* handle = NULL - cdef double outupperband - cdef double outmiddleband - cdef double outlowerband + cdef TA_HA_Stream* handle = NULL + cdef double outhaopen + cdef double outhahigh + cdef double outhalow + cdef double outhaclose cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_KC_Lookback(timeperiod, atrperiod, nbdev) + 1 - retCode = TA_KC_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, atrperiod, nbdev, &outupperband, &outmiddleband, &outlowerband) + need = lib.TA_HA_Lookback() + 1 + retCode = TA_HA_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outhaopen, &outhahigh, &outhalow, &outhaclose) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_KC_Close(self._handle) + TA_HA_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -18921,35 +19787,38 @@ cdef class KC_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_KC_Open", retCode, historylen, need) + _stream_open_failed("TA_HA_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, close, int timeperiod=-2**31, int atrperiod=-2**31, double nbdev=-4e37): + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) cdef np.ndarray a_high = _stream_input(high) cdef np.ndarray a_low = _stream_input(low) cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outupperband - cdef np.ndarray outmiddleband - cdef np.ndarray outlowerband + cdef np.ndarray outhaopen + cdef np.ndarray outhahigh + cdef np.ndarray outhalow + cdef np.ndarray outhaclose cdef int outbegidx cdef int outnbelement - cdef TA_KC_Stream* handle = NULL - cdef KC_Stream stream = KC_Stream.__new__(KC_Stream) + cdef TA_HA_Stream* handle = NULL + cdef HA_Stream stream = HA_Stream.__new__(HA_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_KC_Lookback(timeperiod, atrperiod, nbdev) - outupperband = make_double_array(length, lookback) - outmiddleband = make_double_array(length, lookback) - outlowerband = make_double_array(length, lookback) + lookback = begidx + lib.TA_HA_Lookback() + outhaopen = make_double_array(length, lookback) + outhahigh = make_double_array(length, lookback) + outhalow = make_double_array(length, lookback) + outhaclose = make_double_array(length, lookback) with nogil: - retCode = TA_KC_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, atrperiod, nbdev, &outbegidx, &outnbelement, outupperband.data + lookback, outmiddleband.data + lookback, outlowerband.data + lookback) + retCode = TA_HA_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outhaopen.data + lookback, outhahigh.data + lookback, outhalow.data + lookback, outhaclose.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -18958,120 +19827,113 @@ cdef class KC_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_KC_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((high, low, close,), outupperband), _stream_like((high, low, close,), outmiddleband), _stream_like((high, low, close,), outlowerband)) + _stream_open_failed("TA_HA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((open, high, low, close,), outhaopen), _stream_like((open, high, low, close,), outhahigh), _stream_like((open, high, low, close,), outhalow), _stream_like((open, high, low, close,), outhaclose)) @cython.binding(False) - def update(self, double high, double low, double close): - cdef double outupperband - cdef double outmiddleband - cdef double outlowerband + def update(self, double open, double high, double low, double close): + cdef double outhaopen + cdef double outhahigh + cdef double outhalow + cdef double outhaclose cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_KC_Update(self._handle, high, low, close, &outupperband, &outmiddleband, &outlowerband) + retCode = TA_HA_Update(self._handle, open, high, low, close, &outhaopen, &outhahigh, &outhalow, &outhaclose) if retCode != 0: - _ta_check_success("TA_KC_Update", retCode) - return (outupperband, outmiddleband, outlowerband) + _ta_check_success("TA_HA_Update", retCode) + return (outhaopen, outhahigh, outhalow, outhaclose) @cython.binding(False) - def peek(self, double high, double low, double close): - cdef double outupperband - cdef double outmiddleband - cdef double outlowerband + def peek(self, double open, double high, double low, double close): + cdef double outhaopen + cdef double outhahigh + cdef double outhalow + cdef double outhaclose cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_KC_Peek(self._handle, high, low, close, &outupperband, &outmiddleband, &outlowerband) + retCode = TA_HA_Peek(self._handle, open, high, low, close, &outhaopen, &outhahigh, &outhalow, &outhaclose) if retCode != 0: - _ta_check_success("TA_KC_Peek", retCode) - return (outupperband, outmiddleband, outlowerband) + _ta_check_success("TA_HA_Peek", retCode) + return (outhaopen, outhahigh, outhalow, outhaclose) @property def value(self): - cdef double outupperband - cdef double outmiddleband - cdef double outlowerband + cdef double outhaopen + cdef double outhahigh + cdef double outhalow + cdef double outhaclose cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_KC_Value(self._handle, &outupperband, &outmiddleband, &outlowerband) + retCode = TA_HA_Value(self._handle, &outhaopen, &outhahigh, &outhalow, &outhaclose) if retCode != 0: - _ta_check_success("TA_KC_Value", retCode) - return (outupperband, outmiddleband, outlowerband) + _ta_check_success("TA_HA_Value", retCode) + return (outhaopen, outhahigh, outhalow, outhaclose) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_KC_OutRange(self._handle, outbegidx, outnbelement) + return TA_HA_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_KC_Advance(self._handle) + return TA_HA_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_KC_Stream* clone = NULL - cdef KC_Stream stream = KC_Stream.__new__(type(self)) + cdef TA_HA_Stream* clone = NULL + cdef HA_Stream stream = HA_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_KC_Clone(self._handle, &clone) + retCode = TA_HA_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_KC_Clone", retCode) + _ta_check_success("TA_HA_Clone", retCode) return stream -cdef class KDJ_Stream(Stream): - """ KDJ(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?]) +cdef class HMA_Stream(Stream): + """ HMA(real[, timeperiod=?]) - KDJ Stochastic (Momentum Indicators) + Hull Moving Average (Overlap Studies) Inputs: - prices: ['high', 'low', 'close'] + real: (any ndarray) Parameters: - fastk_period: 9 - slowk_period: 3 - slowk_matype: 13 (Wilder's Smoothed Moving Average) - slowd_period: 3 - slowd_matype: 13 (Wilder's Smoothed Moving Average) + timeperiod: 20 Outputs: - k - d - j + real """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_KDJ_Close(self._handle) + TA_HMA_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, close, int fastk_period=-2**31, int slowk_period=-2**31, int slowk_matype=13, int slowd_period=-2**31, int slowd_matype=13): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_KDJ_Stream* handle = NULL - cdef double outk - cdef double outd - cdef double outj + cdef TA_HMA_Stream* handle = NULL + cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_KDJ_Lookback(fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype) + 1 - retCode = TA_KDJ_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype, &outk, &outd, &outj) + need = lib.TA_HMA_Lookback(timeperiod) + 1 + retCode = TA_HMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_KDJ_Close(self._handle) + TA_HMA_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -19080,35 +19942,29 @@ cdef class KDJ_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_KDJ_Open", retCode, historylen, need) + _stream_open_failed("TA_HMA_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, close, int fastk_period=-2**31, int slowk_period=-2**31, int slowk_matype=13, int slowd_period=-2**31, int slowd_matype=13): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outk - cdef np.ndarray outd - cdef np.ndarray outj + cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_KDJ_Stream* handle = NULL - cdef KDJ_Stream stream = KDJ_Stream.__new__(KDJ_Stream) + cdef TA_HMA_Stream* handle = NULL + cdef HMA_Stream stream = HMA_Stream.__new__(HMA_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_KDJ_Lookback(fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype) - outk = make_double_array(length, lookback) - outd = make_double_array(length, lookback) - outj = make_double_array(length, lookback) + lookback = begidx + lib.TA_HMA_Lookback(timeperiod) + outreal = make_double_array(length, lookback) with nogil: - retCode = TA_KDJ_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype, &outbegidx, &outnbelement, outk.data + lookback, outd.data + lookback, outj.data + lookback) + retCode = TA_HMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -19117,80 +19973,72 @@ cdef class KDJ_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_KDJ_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((high, low, close,), outk), _stream_like((high, low, close,), outd), _stream_like((high, low, close,), outj)) + _stream_open_failed("TA_HMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double high, double low, double close): - cdef double outk - cdef double outd - cdef double outj + def update(self, double real): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_KDJ_Update(self._handle, high, low, close, &outk, &outd, &outj) + retCode = TA_HMA_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_KDJ_Update", retCode) - return (outk, outd, outj) + _ta_check_success("TA_HMA_Update", retCode) + return outreal @cython.binding(False) - def peek(self, double high, double low, double close): - cdef double outk - cdef double outd - cdef double outj + def peek(self, double real): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_KDJ_Peek(self._handle, high, low, close, &outk, &outd, &outj) + retCode = TA_HMA_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_KDJ_Peek", retCode) - return (outk, outd, outj) + _ta_check_success("TA_HMA_Peek", retCode) + return outreal @property def value(self): - cdef double outk - cdef double outd - cdef double outj + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_KDJ_Value(self._handle, &outk, &outd, &outj) + retCode = TA_HMA_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_KDJ_Value", retCode) - return (outk, outd, outj) + _ta_check_success("TA_HMA_Value", retCode) + return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_KDJ_OutRange(self._handle, outbegidx, outnbelement) + return TA_HMA_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_KDJ_Advance(self._handle) + return TA_HMA_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_KDJ_Stream* clone = NULL - cdef KDJ_Stream stream = KDJ_Stream.__new__(type(self)) + cdef TA_HMA_Stream* clone = NULL + cdef HMA_Stream stream = HMA_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_KDJ_Clone(self._handle, &clone) + retCode = TA_HMA_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_KDJ_Clone", retCode) + _ta_check_success("TA_HMA_Clone", retCode) return stream -cdef class LINEARREG_Stream(Stream): - """ LINEARREG(real[, timeperiod=?]) +cdef class HT_DCPERIOD_Stream(Stream): + """ HT_DCPERIOD(real) - Linear Regression (Statistic Functions) + Hilbert Transform - Dominant Cycle Period (Cycle Indicators) Inputs: real: (any ndarray) - Parameters: - timeperiod: 14 Outputs: real """ @@ -19198,29 +20046,29 @@ cdef class LINEARREG_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_LINEARREG_Close(self._handle) + TA_HT_DCPERIOD_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): + def __init__(self, real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_LINEARREG_Stream* handle = NULL + cdef TA_HT_DCPERIOD_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_LINEARREG_Lookback(timeperiod) + 1 - retCode = TA_LINEARREG_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_HT_DCPERIOD_Lookback() + 1 + retCode = TA_HT_DCPERIOD_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_LINEARREG_Close(self._handle) + TA_HT_DCPERIOD_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -19229,10 +20077,10 @@ cdef class LINEARREG_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_LINEARREG_Open", retCode, historylen, need) + _stream_open_failed("TA_HT_DCPERIOD_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): + def open_and_fill(real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -19242,16 +20090,16 @@ cdef class LINEARREG_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_LINEARREG_Stream* handle = NULL - cdef LINEARREG_Stream stream = LINEARREG_Stream.__new__(LINEARREG_Stream) + cdef TA_HT_DCPERIOD_Stream* handle = NULL + cdef HT_DCPERIOD_Stream stream = HT_DCPERIOD_Stream.__new__(HT_DCPERIOD_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_LINEARREG_Lookback(timeperiod) + lookback = begidx + lib.TA_HT_DCPERIOD_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_LINEARREG_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_HT_DCPERIOD_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -19260,7 +20108,7 @@ cdef class LINEARREG_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_LINEARREG_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_HT_DCPERIOD_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -19269,9 +20117,9 @@ cdef class LINEARREG_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_Update(self._handle, real, &outreal) + retCode = TA_HT_DCPERIOD_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_LINEARREG_Update", retCode) + _ta_check_success("TA_HT_DCPERIOD_Update", retCode) return outreal @cython.binding(False) @@ -19280,9 +20128,9 @@ cdef class LINEARREG_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_Peek(self._handle, real, &outreal) + retCode = TA_HT_DCPERIOD_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_LINEARREG_Peek", retCode) + _ta_check_success("TA_HT_DCPERIOD_Peek", retCode) return outreal @property @@ -19291,43 +20139,41 @@ cdef class LINEARREG_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_Value(self._handle, &outreal) + retCode = TA_HT_DCPERIOD_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_LINEARREG_Value", retCode) + _ta_check_success("TA_HT_DCPERIOD_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_LINEARREG_OutRange(self._handle, outbegidx, outnbelement) + return TA_HT_DCPERIOD_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_LINEARREG_Advance(self._handle) + return TA_HT_DCPERIOD_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_LINEARREG_Stream* clone = NULL - cdef LINEARREG_Stream stream = LINEARREG_Stream.__new__(type(self)) + cdef TA_HT_DCPERIOD_Stream* clone = NULL + cdef HT_DCPERIOD_Stream stream = HT_DCPERIOD_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_Clone(self._handle, &clone) + retCode = TA_HT_DCPERIOD_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_LINEARREG_Clone", retCode) + _ta_check_success("TA_HT_DCPERIOD_Clone", retCode) return stream -cdef class LINEARREG_ANGLE_Stream(Stream): - """ LINEARREG_ANGLE(real[, timeperiod=?]) +cdef class HT_DCPHASE_Stream(Stream): + """ HT_DCPHASE(real) - Linear Regression Angle (Statistic Functions) + Hilbert Transform - Dominant Cycle Phase (Cycle Indicators) Inputs: real: (any ndarray) - Parameters: - timeperiod: 14 Outputs: real """ @@ -19335,29 +20181,29 @@ cdef class LINEARREG_ANGLE_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_LINEARREG_ANGLE_Close(self._handle) + TA_HT_DCPHASE_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): + def __init__(self, real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_LINEARREG_ANGLE_Stream* handle = NULL + cdef TA_HT_DCPHASE_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_LINEARREG_ANGLE_Lookback(timeperiod) + 1 - retCode = TA_LINEARREG_ANGLE_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_HT_DCPHASE_Lookback() + 1 + retCode = TA_HT_DCPHASE_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_LINEARREG_ANGLE_Close(self._handle) + TA_HT_DCPHASE_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -19366,10 +20212,10 @@ cdef class LINEARREG_ANGLE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_LINEARREG_ANGLE_Open", retCode, historylen, need) + _stream_open_failed("TA_HT_DCPHASE_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): + def open_and_fill(real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -19379,16 +20225,16 @@ cdef class LINEARREG_ANGLE_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_LINEARREG_ANGLE_Stream* handle = NULL - cdef LINEARREG_ANGLE_Stream stream = LINEARREG_ANGLE_Stream.__new__(LINEARREG_ANGLE_Stream) + cdef TA_HT_DCPHASE_Stream* handle = NULL + cdef HT_DCPHASE_Stream stream = HT_DCPHASE_Stream.__new__(HT_DCPHASE_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_LINEARREG_ANGLE_Lookback(timeperiod) + lookback = begidx + lib.TA_HT_DCPHASE_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_LINEARREG_ANGLE_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_HT_DCPHASE_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -19397,7 +20243,7 @@ cdef class LINEARREG_ANGLE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_LINEARREG_ANGLE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_HT_DCPHASE_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -19406,9 +20252,9 @@ cdef class LINEARREG_ANGLE_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_ANGLE_Update(self._handle, real, &outreal) + retCode = TA_HT_DCPHASE_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_LINEARREG_ANGLE_Update", retCode) + _ta_check_success("TA_HT_DCPHASE_Update", retCode) return outreal @cython.binding(False) @@ -19417,9 +20263,9 @@ cdef class LINEARREG_ANGLE_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_ANGLE_Peek(self._handle, real, &outreal) + retCode = TA_HT_DCPHASE_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_LINEARREG_ANGLE_Peek", retCode) + _ta_check_success("TA_HT_DCPHASE_Peek", retCode) return outreal @property @@ -19428,73 +20274,73 @@ cdef class LINEARREG_ANGLE_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_ANGLE_Value(self._handle, &outreal) + retCode = TA_HT_DCPHASE_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_LINEARREG_ANGLE_Value", retCode) + _ta_check_success("TA_HT_DCPHASE_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_LINEARREG_ANGLE_OutRange(self._handle, outbegidx, outnbelement) + return TA_HT_DCPHASE_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_LINEARREG_ANGLE_Advance(self._handle) + return TA_HT_DCPHASE_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_LINEARREG_ANGLE_Stream* clone = NULL - cdef LINEARREG_ANGLE_Stream stream = LINEARREG_ANGLE_Stream.__new__(type(self)) + cdef TA_HT_DCPHASE_Stream* clone = NULL + cdef HT_DCPHASE_Stream stream = HT_DCPHASE_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_ANGLE_Clone(self._handle, &clone) + retCode = TA_HT_DCPHASE_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_LINEARREG_ANGLE_Clone", retCode) + _ta_check_success("TA_HT_DCPHASE_Clone", retCode) return stream -cdef class LINEARREG_INTERCEPT_Stream(Stream): - """ LINEARREG_INTERCEPT(real[, timeperiod=?]) +cdef class HT_PHASOR_Stream(Stream): + """ HT_PHASOR(real) - Linear Regression Intercept (Statistic Functions) + Hilbert Transform - Phasor Components (Cycle Indicators) Inputs: real: (any ndarray) - Parameters: - timeperiod: 14 Outputs: - real + inphase + quadrature """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_LINEARREG_INTERCEPT_Close(self._handle) + TA_HT_PHASOR_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): + def __init__(self, real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_LINEARREG_INTERCEPT_Stream* handle = NULL - cdef double outreal + cdef TA_HT_PHASOR_Stream* handle = NULL + cdef double outinphase + cdef double outquadrature cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_LINEARREG_INTERCEPT_Lookback(timeperiod) + 1 - retCode = TA_LINEARREG_INTERCEPT_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_HT_PHASOR_Lookback() + 1 + retCode = TA_HT_PHASOR_Open(&handle, a_real.data + begidx, historylen, &outinphase, &outquadrature) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_LINEARREG_INTERCEPT_Close(self._handle) + TA_HT_PHASOR_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -19503,29 +20349,31 @@ cdef class LINEARREG_INTERCEPT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_LINEARREG_INTERCEPT_Open", retCode, historylen, need) + _stream_open_failed("TA_HT_PHASOR_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): + def open_and_fill(real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outreal + cdef np.ndarray outinphase + cdef np.ndarray outquadrature cdef int outbegidx cdef int outnbelement - cdef TA_LINEARREG_INTERCEPT_Stream* handle = NULL - cdef LINEARREG_INTERCEPT_Stream stream = LINEARREG_INTERCEPT_Stream.__new__(LINEARREG_INTERCEPT_Stream) + cdef TA_HT_PHASOR_Stream* handle = NULL + cdef HT_PHASOR_Stream stream = HT_PHASOR_Stream.__new__(HT_PHASOR_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_LINEARREG_INTERCEPT_Lookback(timeperiod) - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_HT_PHASOR_Lookback() + outinphase = make_double_array(length, lookback) + outquadrature = make_double_array(length, lookback) with nogil: - retCode = TA_LINEARREG_INTERCEPT_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_HT_PHASOR_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outinphase.data + lookback, outquadrature.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -19534,104 +20382,107 @@ cdef class LINEARREG_INTERCEPT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_LINEARREG_INTERCEPT_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_HT_PHASOR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((real,), outinphase), _stream_like((real,), outquadrature)) @cython.binding(False) def update(self, double real): - cdef double outreal + cdef double outinphase + cdef double outquadrature cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_INTERCEPT_Update(self._handle, real, &outreal) + retCode = TA_HT_PHASOR_Update(self._handle, real, &outinphase, &outquadrature) if retCode != 0: - _ta_check_success("TA_LINEARREG_INTERCEPT_Update", retCode) - return outreal + _ta_check_success("TA_HT_PHASOR_Update", retCode) + return (outinphase, outquadrature) @cython.binding(False) def peek(self, double real): - cdef double outreal + cdef double outinphase + cdef double outquadrature cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_INTERCEPT_Peek(self._handle, real, &outreal) + retCode = TA_HT_PHASOR_Peek(self._handle, real, &outinphase, &outquadrature) if retCode != 0: - _ta_check_success("TA_LINEARREG_INTERCEPT_Peek", retCode) - return outreal + _ta_check_success("TA_HT_PHASOR_Peek", retCode) + return (outinphase, outquadrature) @property def value(self): - cdef double outreal + cdef double outinphase + cdef double outquadrature cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_INTERCEPT_Value(self._handle, &outreal) + retCode = TA_HT_PHASOR_Value(self._handle, &outinphase, &outquadrature) if retCode != 0: - _ta_check_success("TA_LINEARREG_INTERCEPT_Value", retCode) - return outreal + _ta_check_success("TA_HT_PHASOR_Value", retCode) + return (outinphase, outquadrature) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_LINEARREG_INTERCEPT_OutRange(self._handle, outbegidx, outnbelement) + return TA_HT_PHASOR_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_LINEARREG_INTERCEPT_Advance(self._handle) + return TA_HT_PHASOR_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_LINEARREG_INTERCEPT_Stream* clone = NULL - cdef LINEARREG_INTERCEPT_Stream stream = LINEARREG_INTERCEPT_Stream.__new__(type(self)) + cdef TA_HT_PHASOR_Stream* clone = NULL + cdef HT_PHASOR_Stream stream = HT_PHASOR_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_INTERCEPT_Clone(self._handle, &clone) + retCode = TA_HT_PHASOR_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_LINEARREG_INTERCEPT_Clone", retCode) + _ta_check_success("TA_HT_PHASOR_Clone", retCode) return stream -cdef class LINEARREG_SLOPE_Stream(Stream): - """ LINEARREG_SLOPE(real[, timeperiod=?]) +cdef class HT_SINE_Stream(Stream): + """ HT_SINE(real) - Linear Regression Slope (Statistic Functions) + Hilbert Transform - SineWave (Cycle Indicators) Inputs: real: (any ndarray) - Parameters: - timeperiod: 14 Outputs: - real + sine + leadsine """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_LINEARREG_SLOPE_Close(self._handle) + TA_HT_SINE_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): + def __init__(self, real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_LINEARREG_SLOPE_Stream* handle = NULL - cdef double outreal + cdef TA_HT_SINE_Stream* handle = NULL + cdef double outsine + cdef double outleadsine cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_LINEARREG_SLOPE_Lookback(timeperiod) + 1 - retCode = TA_LINEARREG_SLOPE_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_HT_SINE_Lookback() + 1 + retCode = TA_HT_SINE_Open(&handle, a_real.data + begidx, historylen, &outsine, &outleadsine) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_LINEARREG_SLOPE_Close(self._handle) + TA_HT_SINE_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -19640,29 +20491,31 @@ cdef class LINEARREG_SLOPE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_LINEARREG_SLOPE_Open", retCode, historylen, need) + _stream_open_failed("TA_HT_SINE_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): + def open_and_fill(real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outreal + cdef np.ndarray outsine + cdef np.ndarray outleadsine cdef int outbegidx cdef int outnbelement - cdef TA_LINEARREG_SLOPE_Stream* handle = NULL - cdef LINEARREG_SLOPE_Stream stream = LINEARREG_SLOPE_Stream.__new__(LINEARREG_SLOPE_Stream) + cdef TA_HT_SINE_Stream* handle = NULL + cdef HT_SINE_Stream stream = HT_SINE_Stream.__new__(HT_SINE_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_LINEARREG_SLOPE_Lookback(timeperiod) - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_HT_SINE_Lookback() + outsine = make_double_array(length, lookback) + outleadsine = make_double_array(length, lookback) with nogil: - retCode = TA_LINEARREG_SLOPE_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_HT_SINE_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outsine.data + lookback, outleadsine.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -19671,69 +20524,72 @@ cdef class LINEARREG_SLOPE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_LINEARREG_SLOPE_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_HT_SINE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((real,), outsine), _stream_like((real,), outleadsine)) @cython.binding(False) def update(self, double real): - cdef double outreal + cdef double outsine + cdef double outleadsine cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_SLOPE_Update(self._handle, real, &outreal) + retCode = TA_HT_SINE_Update(self._handle, real, &outsine, &outleadsine) if retCode != 0: - _ta_check_success("TA_LINEARREG_SLOPE_Update", retCode) - return outreal + _ta_check_success("TA_HT_SINE_Update", retCode) + return (outsine, outleadsine) @cython.binding(False) def peek(self, double real): - cdef double outreal + cdef double outsine + cdef double outleadsine cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_SLOPE_Peek(self._handle, real, &outreal) + retCode = TA_HT_SINE_Peek(self._handle, real, &outsine, &outleadsine) if retCode != 0: - _ta_check_success("TA_LINEARREG_SLOPE_Peek", retCode) - return outreal + _ta_check_success("TA_HT_SINE_Peek", retCode) + return (outsine, outleadsine) @property def value(self): - cdef double outreal + cdef double outsine + cdef double outleadsine cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_SLOPE_Value(self._handle, &outreal) + retCode = TA_HT_SINE_Value(self._handle, &outsine, &outleadsine) if retCode != 0: - _ta_check_success("TA_LINEARREG_SLOPE_Value", retCode) - return outreal + _ta_check_success("TA_HT_SINE_Value", retCode) + return (outsine, outleadsine) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_LINEARREG_SLOPE_OutRange(self._handle, outbegidx, outnbelement) + return TA_HT_SINE_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_LINEARREG_SLOPE_Advance(self._handle) + return TA_HT_SINE_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_LINEARREG_SLOPE_Stream* clone = NULL - cdef LINEARREG_SLOPE_Stream stream = LINEARREG_SLOPE_Stream.__new__(type(self)) + cdef TA_HT_SINE_Stream* clone = NULL + cdef HT_SINE_Stream stream = HT_SINE_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LINEARREG_SLOPE_Clone(self._handle, &clone) + retCode = TA_HT_SINE_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_LINEARREG_SLOPE_Clone", retCode) + _ta_check_success("TA_HT_SINE_Clone", retCode) return stream -cdef class LN_Stream(Stream): - """ LN(real) +cdef class HT_TRENDLINE_Stream(Stream): + """ HT_TRENDLINE(real) - Vector Log Natural (Math Transform) + Hilbert Transform - Instantaneous Trendline (Overlap Studies) Inputs: real: (any ndarray) @@ -19744,7 +20600,7 @@ cdef class LN_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_LN_Close(self._handle) + TA_HT_TRENDLINE_Close(self._handle) self._handle = NULL _ta_stream_closed() @@ -19754,19 +20610,19 @@ cdef class LN_Stream(Stream): cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_LN_Stream* handle = NULL + cdef TA_HT_TRENDLINE_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_LN_Lookback() + 1 - retCode = TA_LN_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_HT_TRENDLINE_Lookback() + 1 + retCode = TA_HT_TRENDLINE_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_LN_Close(self._handle) + TA_HT_TRENDLINE_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -19775,7 +20631,7 @@ cdef class LN_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_LN_Open", retCode, historylen, need) + _stream_open_failed("TA_HT_TRENDLINE_Open", retCode, historylen, need) @staticmethod def open_and_fill(real): @@ -19788,16 +20644,16 @@ cdef class LN_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_LN_Stream* handle = NULL - cdef LN_Stream stream = LN_Stream.__new__(LN_Stream) + cdef TA_HT_TRENDLINE_Stream* handle = NULL + cdef HT_TRENDLINE_Stream stream = HT_TRENDLINE_Stream.__new__(HT_TRENDLINE_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_LN_Lookback() + lookback = begidx + lib.TA_HT_TRENDLINE_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_LN_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_HT_TRENDLINE_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -19806,7 +20662,7 @@ cdef class LN_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_LN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_HT_TRENDLINE_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -19815,9 +20671,9 @@ cdef class LN_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LN_Update(self._handle, real, &outreal) + retCode = TA_HT_TRENDLINE_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_LN_Update", retCode) + _ta_check_success("TA_HT_TRENDLINE_Update", retCode) return outreal @cython.binding(False) @@ -19826,9 +20682,9 @@ cdef class LN_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LN_Peek(self._handle, real, &outreal) + retCode = TA_HT_TRENDLINE_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_LN_Peek", retCode) + _ta_check_success("TA_HT_TRENDLINE_Peek", retCode) return outreal @property @@ -19837,49 +20693,49 @@ cdef class LN_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LN_Value(self._handle, &outreal) + retCode = TA_HT_TRENDLINE_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_LN_Value", retCode) + _ta_check_success("TA_HT_TRENDLINE_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_LN_OutRange(self._handle, outbegidx, outnbelement) + return TA_HT_TRENDLINE_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_LN_Advance(self._handle) + return TA_HT_TRENDLINE_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_LN_Stream* clone = NULL - cdef LN_Stream stream = LN_Stream.__new__(type(self)) + cdef TA_HT_TRENDLINE_Stream* clone = NULL + cdef HT_TRENDLINE_Stream stream = HT_TRENDLINE_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LN_Clone(self._handle, &clone) + retCode = TA_HT_TRENDLINE_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_LN_Clone", retCode) + _ta_check_success("TA_HT_TRENDLINE_Clone", retCode) return stream -cdef class LOG10_Stream(Stream): - """ LOG10(real) +cdef class HT_TRENDMODE_Stream(Stream): + """ HT_TRENDMODE(real) - Vector Log10 (Math Transform) + Hilbert Transform - Trend vs Cycle Mode (Cycle Indicators) Inputs: real: (any ndarray) Outputs: - real + integer """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_LOG10_Close(self._handle) + TA_HT_TRENDMODE_Close(self._handle) self._handle = NULL _ta_stream_closed() @@ -19889,19 +20745,19 @@ cdef class LOG10_Stream(Stream): cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_LOG10_Stream* handle = NULL - cdef double outreal + cdef TA_HT_TRENDMODE_Stream* handle = NULL + cdef int outinteger cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_LOG10_Lookback() + 1 - retCode = TA_LOG10_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_HT_TRENDMODE_Lookback() + 1 + retCode = TA_HT_TRENDMODE_Open(&handle, a_real.data + begidx, historylen, &outinteger) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_LOG10_Close(self._handle) + TA_HT_TRENDMODE_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -19910,7 +20766,7 @@ cdef class LOG10_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_LOG10_Open", retCode, historylen, need) + _stream_open_failed("TA_HT_TRENDMODE_Open", retCode, historylen, need) @staticmethod def open_and_fill(real): @@ -19920,19 +20776,19 @@ cdef class LOG10_Stream(Stream): cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outreal + cdef np.ndarray outinteger cdef int outbegidx cdef int outnbelement - cdef TA_LOG10_Stream* handle = NULL - cdef LOG10_Stream stream = LOG10_Stream.__new__(LOG10_Stream) + cdef TA_HT_TRENDMODE_Stream* handle = NULL + cdef HT_TRENDMODE_Stream stream = HT_TRENDMODE_Stream.__new__(HT_TRENDMODE_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_LOG10_Lookback() - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_HT_TRENDMODE_Lookback() + outinteger = make_int_array(length, lookback) with nogil: - retCode = TA_LOG10_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_HT_TRENDMODE_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -19941,75 +20797,72 @@ cdef class LOG10_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_LOG10_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_HT_TRENDMODE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outinteger) @cython.binding(False) def update(self, double real): - cdef double outreal + cdef int outinteger cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LOG10_Update(self._handle, real, &outreal) + retCode = TA_HT_TRENDMODE_Update(self._handle, real, &outinteger) if retCode != 0: - _ta_check_success("TA_LOG10_Update", retCode) - return outreal + _ta_check_success("TA_HT_TRENDMODE_Update", retCode) + return outinteger @cython.binding(False) def peek(self, double real): - cdef double outreal + cdef int outinteger cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LOG10_Peek(self._handle, real, &outreal) + retCode = TA_HT_TRENDMODE_Peek(self._handle, real, &outinteger) if retCode != 0: - _ta_check_success("TA_LOG10_Peek", retCode) - return outreal + _ta_check_success("TA_HT_TRENDMODE_Peek", retCode) + return outinteger @property def value(self): - cdef double outreal + cdef int outinteger cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LOG10_Value(self._handle, &outreal) + retCode = TA_HT_TRENDMODE_Value(self._handle, &outinteger) if retCode != 0: - _ta_check_success("TA_LOG10_Value", retCode) - return outreal + _ta_check_success("TA_HT_TRENDMODE_Value", retCode) + return outinteger cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_LOG10_OutRange(self._handle, outbegidx, outnbelement) + return TA_HT_TRENDMODE_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_LOG10_Advance(self._handle) + return TA_HT_TRENDMODE_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_LOG10_Stream* clone = NULL - cdef LOG10_Stream stream = LOG10_Stream.__new__(type(self)) + cdef TA_HT_TRENDMODE_Stream* clone = NULL + cdef HT_TRENDMODE_Stream stream = HT_TRENDMODE_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_LOG10_Clone(self._handle, &clone) + retCode = TA_HT_TRENDMODE_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_LOG10_Clone", retCode) + _ta_check_success("TA_HT_TRENDMODE_Clone", retCode) return stream -cdef class MA_Stream(Stream): - """ MA(real[, timeperiod=?, matype=?]) +cdef class IBS_Stream(Stream): + """ IBS(high, low, close) - Moving average (Overlap Studies) + Internal Bar Strength (Momentum Indicators) Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - matype: 0 (Simple Moving Average) + prices: ['high', 'low', 'close'] Outputs: real """ @@ -20017,29 +20870,31 @@ cdef class MA_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MA_Close(self._handle) + TA_IBS_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31, int matype=0): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, close): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MA_Stream* handle = NULL + cdef TA_IBS_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MA_Lookback(timeperiod, matype) + 1 - retCode = TA_MA_Open(&handle, a_real.data + begidx, historylen, timeperiod, matype, &outreal) + need = lib.TA_IBS_Lookback() + 1 + retCode = TA_IBS_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MA_Close(self._handle) + TA_IBS_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -20048,12 +20903,14 @@ cdef class MA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MA_Open", retCode, historylen, need) + _stream_open_failed("TA_IBS_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31, int matype=0): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, close): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -20061,16 +20918,16 @@ cdef class MA_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MA_Stream* handle = NULL - cdef MA_Stream stream = MA_Stream.__new__(MA_Stream) + cdef TA_IBS_Stream* handle = NULL + cdef IBS_Stream stream = IBS_Stream.__new__(IBS_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MA_Lookback(timeperiod, matype) + lookback = begidx + lib.TA_IBS_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, matype, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_IBS_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -20079,29 +20936,29 @@ cdef class MA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MA_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_IBS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low, close,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MA_Update(self._handle, real, &outreal) + retCode = TA_IBS_Update(self._handle, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_MA_Update", retCode) + _ta_check_success("TA_IBS_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MA_Peek(self._handle, real, &outreal) + retCode = TA_IBS_Peek(self._handle, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_MA_Peek", retCode) + _ta_check_success("TA_IBS_Peek", retCode) return outreal @property @@ -20110,79 +20967,82 @@ cdef class MA_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MA_Value(self._handle, &outreal) + retCode = TA_IBS_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MA_Value", retCode) + _ta_check_success("TA_IBS_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MA_OutRange(self._handle, outbegidx, outnbelement) + return TA_IBS_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MA_Advance(self._handle) + return TA_IBS_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MA_Stream* clone = NULL - cdef MA_Stream stream = MA_Stream.__new__(type(self)) + cdef TA_IBS_Stream* clone = NULL + cdef IBS_Stream stream = IBS_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MA_Clone(self._handle, &clone) + retCode = TA_IBS_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MA_Clone", retCode) + _ta_check_success("TA_IBS_Clone", retCode) return stream -cdef class MACD_Stream(Stream): - """ MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?]) +cdef class ICHIMOKU_Stream(Stream): + """ ICHIMOKU(high, low[, tenkanperiod=?, kijunperiod=?, senkoubperiod=?]) - Moving Average Convergence/Divergence (Momentum Indicators) + Ichimoku Kinko Hyo (Overlap Studies) Inputs: - real: (any ndarray) + prices: ['high', 'low'] Parameters: - fastperiod: 12 - slowperiod: 26 - signalperiod: 9 + tenkanperiod: 9 + kijunperiod: 26 + senkoubperiod: 52 Outputs: - macd - macdsignal - macdhist + tenkansen + kijunsen + senkouspana + senkouspanb """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MACD_Close(self._handle) + TA_ICHIMOKU_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, int tenkanperiod=-2**31, int kijunperiod=-2**31, int senkoubperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MACD_Stream* handle = NULL - cdef double outmacd - cdef double outmacdsignal - cdef double outmacdhist + cdef TA_ICHIMOKU_Stream* handle = NULL + cdef double outtenkansen + cdef double outkijunsen + cdef double outsenkouspana + cdef double outsenkouspanb cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MACD_Lookback(fastperiod, slowperiod, signalperiod) + 1 - retCode = TA_MACD_Open(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, signalperiod, &outmacd, &outmacdsignal, &outmacdhist) + need = lib.TA_ICHIMOKU_Lookback(tenkanperiod, kijunperiod, senkoubperiod) + 1 + retCode = TA_ICHIMOKU_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, tenkanperiod, kijunperiod, senkoubperiod, &outtenkansen, &outkijunsen, &outsenkouspana, &outsenkouspanb) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MACD_Close(self._handle) + TA_ICHIMOKU_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -20191,33 +21051,36 @@ cdef class MACD_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MACD_Open", retCode, historylen, need) + _stream_open_failed("TA_ICHIMOKU_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, int tenkanperiod=-2**31, int kijunperiod=-2**31, int senkoubperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outmacd - cdef np.ndarray outmacdsignal - cdef np.ndarray outmacdhist + cdef np.ndarray outtenkansen + cdef np.ndarray outkijunsen + cdef np.ndarray outsenkouspana + cdef np.ndarray outsenkouspanb cdef int outbegidx cdef int outnbelement - cdef TA_MACD_Stream* handle = NULL - cdef MACD_Stream stream = MACD_Stream.__new__(MACD_Stream) + cdef TA_ICHIMOKU_Stream* handle = NULL + cdef ICHIMOKU_Stream stream = ICHIMOKU_Stream.__new__(ICHIMOKU_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MACD_Lookback(fastperiod, slowperiod, signalperiod) - outmacd = make_double_array(length, lookback) - outmacdsignal = make_double_array(length, lookback) - outmacdhist = make_double_array(length, lookback) + lookback = begidx + lib.TA_ICHIMOKU_Lookback(tenkanperiod, kijunperiod, senkoubperiod) + outtenkansen = make_double_array(length, lookback) + outkijunsen = make_double_array(length, lookback) + outsenkouspana = make_double_array(length, lookback) + outsenkouspanb = make_double_array(length, lookback) with nogil: - retCode = TA_MACD_OpenAndFill(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, signalperiod, &outbegidx, &outnbelement, outmacd.data + lookback, outmacdsignal.data + lookback, outmacdhist.data + lookback) + retCode = TA_ICHIMOKU_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, tenkanperiod, kijunperiod, senkoubperiod, &outbegidx, &outnbelement, outtenkansen.data + lookback, outkijunsen.data + lookback, outsenkouspana.data + lookback, outsenkouspanb.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -20226,119 +21089,114 @@ cdef class MACD_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MACD_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) + _stream_open_failed("TA_ICHIMOKU_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low,), outtenkansen), _stream_like((high, low,), outkijunsen), _stream_like((high, low,), outsenkouspana), _stream_like((high, low,), outsenkouspanb)) @cython.binding(False) - def update(self, double real): - cdef double outmacd - cdef double outmacdsignal - cdef double outmacdhist + def update(self, double high, double low): + cdef double outtenkansen + cdef double outkijunsen + cdef double outsenkouspana + cdef double outsenkouspanb cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MACD_Update(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + retCode = TA_ICHIMOKU_Update(self._handle, high, low, &outtenkansen, &outkijunsen, &outsenkouspana, &outsenkouspanb) if retCode != 0: - _ta_check_success("TA_MACD_Update", retCode) - return (outmacd, outmacdsignal, outmacdhist) + _ta_check_success("TA_ICHIMOKU_Update", retCode) + return (outtenkansen, outkijunsen, outsenkouspana, outsenkouspanb) @cython.binding(False) - def peek(self, double real): - cdef double outmacd - cdef double outmacdsignal - cdef double outmacdhist + def peek(self, double high, double low): + cdef double outtenkansen + cdef double outkijunsen + cdef double outsenkouspana + cdef double outsenkouspanb cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MACD_Peek(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + retCode = TA_ICHIMOKU_Peek(self._handle, high, low, &outtenkansen, &outkijunsen, &outsenkouspana, &outsenkouspanb) if retCode != 0: - _ta_check_success("TA_MACD_Peek", retCode) - return (outmacd, outmacdsignal, outmacdhist) + _ta_check_success("TA_ICHIMOKU_Peek", retCode) + return (outtenkansen, outkijunsen, outsenkouspana, outsenkouspanb) @property def value(self): - cdef double outmacd - cdef double outmacdsignal - cdef double outmacdhist + cdef double outtenkansen + cdef double outkijunsen + cdef double outsenkouspana + cdef double outsenkouspanb cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MACD_Value(self._handle, &outmacd, &outmacdsignal, &outmacdhist) + retCode = TA_ICHIMOKU_Value(self._handle, &outtenkansen, &outkijunsen, &outsenkouspana, &outsenkouspanb) if retCode != 0: - _ta_check_success("TA_MACD_Value", retCode) - return (outmacd, outmacdsignal, outmacdhist) + _ta_check_success("TA_ICHIMOKU_Value", retCode) + return (outtenkansen, outkijunsen, outsenkouspana, outsenkouspanb) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MACD_OutRange(self._handle, outbegidx, outnbelement) + return TA_ICHIMOKU_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MACD_Advance(self._handle) + return TA_ICHIMOKU_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MACD_Stream* clone = NULL - cdef MACD_Stream stream = MACD_Stream.__new__(type(self)) + cdef TA_ICHIMOKU_Stream* clone = NULL + cdef ICHIMOKU_Stream stream = ICHIMOKU_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MACD_Clone(self._handle, &clone) + retCode = TA_ICHIMOKU_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MACD_Clone", retCode) + _ta_check_success("TA_ICHIMOKU_Clone", retCode) return stream -cdef class MACDEXT_Stream(Stream): - """ MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?]) +cdef class IMI_Stream(Stream): + """ IMI(open, close[, timeperiod=?]) - MACD with controllable MA type (Momentum Indicators) + Intraday Momentum Index (Momentum Indicators) Inputs: - real: (any ndarray) + prices: ['open', 'close'] Parameters: - fastperiod: 12 - fastmatype: 0 (Simple Moving Average) - slowperiod: 26 - slowmatype: 0 (Simple Moving Average) - signalperiod: 9 - signalmatype: 0 (Simple Moving Average) + timeperiod: 14 Outputs: - macd - macdsignal - macdhist + real """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MACDEXT_Close(self._handle) + TA_IMI_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int fastperiod=-2**31, int fastmatype=0, int slowperiod=-2**31, int slowmatype=0, int signalperiod=-2**31, int signalmatype=0): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, open, close, int timeperiod=-2**31): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MACDEXT_Stream* handle = NULL - cdef double outmacd - cdef double outmacdsignal - cdef double outmacdhist + cdef TA_IMI_Stream* handle = NULL + cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MACDEXT_Lookback(fastperiod, fastmatype, slowperiod, slowmatype, signalperiod, signalmatype) + 1 - retCode = TA_MACDEXT_Open(&handle, a_real.data + begidx, historylen, fastperiod, fastmatype, slowperiod, slowmatype, signalperiod, signalmatype, &outmacd, &outmacdsignal, &outmacdhist) + need = lib.TA_IMI_Lookback(timeperiod) + 1 + retCode = TA_IMI_Open(&handle, a_open.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MACDEXT_Close(self._handle) + TA_IMI_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -20347,33 +21205,30 @@ cdef class MACDEXT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MACDEXT_Open", retCode, historylen, need) + _stream_open_failed("TA_IMI_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int fastperiod=-2**31, int fastmatype=0, int slowperiod=-2**31, int slowmatype=0, int signalperiod=-2**31, int signalmatype=0): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(open, close, int timeperiod=-2**31): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outmacd - cdef np.ndarray outmacdsignal - cdef np.ndarray outmacdhist + cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MACDEXT_Stream* handle = NULL - cdef MACDEXT_Stream stream = MACDEXT_Stream.__new__(MACDEXT_Stream) + cdef TA_IMI_Stream* handle = NULL + cdef IMI_Stream stream = IMI_Stream.__new__(IMI_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MACDEXT_Lookback(fastperiod, fastmatype, slowperiod, slowmatype, signalperiod, signalmatype) - outmacd = make_double_array(length, lookback) - outmacdsignal = make_double_array(length, lookback) - outmacdhist = make_double_array(length, lookback) + lookback = begidx + lib.TA_IMI_Lookback(timeperiod) + outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MACDEXT_OpenAndFill(&handle, a_real.data + begidx, historylen, fastperiod, fastmatype, slowperiod, slowmatype, signalperiod, signalmatype, &outbegidx, &outnbelement, outmacd.data + lookback, outmacdsignal.data + lookback, outmacdhist.data + lookback) + retCode = TA_IMI_OpenAndFill(&handle, a_open.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -20382,114 +21237,104 @@ cdef class MACDEXT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MACDEXT_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) + _stream_open_failed("TA_IMI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((open, close,), outreal) @cython.binding(False) - def update(self, double real): - cdef double outmacd - cdef double outmacdsignal - cdef double outmacdhist + def update(self, double open, double close): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MACDEXT_Update(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + retCode = TA_IMI_Update(self._handle, open, close, &outreal) if retCode != 0: - _ta_check_success("TA_MACDEXT_Update", retCode) - return (outmacd, outmacdsignal, outmacdhist) + _ta_check_success("TA_IMI_Update", retCode) + return outreal @cython.binding(False) - def peek(self, double real): - cdef double outmacd - cdef double outmacdsignal - cdef double outmacdhist + def peek(self, double open, double close): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MACDEXT_Peek(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + retCode = TA_IMI_Peek(self._handle, open, close, &outreal) if retCode != 0: - _ta_check_success("TA_MACDEXT_Peek", retCode) - return (outmacd, outmacdsignal, outmacdhist) + _ta_check_success("TA_IMI_Peek", retCode) + return outreal @property def value(self): - cdef double outmacd - cdef double outmacdsignal - cdef double outmacdhist + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MACDEXT_Value(self._handle, &outmacd, &outmacdsignal, &outmacdhist) + retCode = TA_IMI_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MACDEXT_Value", retCode) - return (outmacd, outmacdsignal, outmacdhist) + _ta_check_success("TA_IMI_Value", retCode) + return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MACDEXT_OutRange(self._handle, outbegidx, outnbelement) + return TA_IMI_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MACDEXT_Advance(self._handle) + return TA_IMI_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MACDEXT_Stream* clone = NULL - cdef MACDEXT_Stream stream = MACDEXT_Stream.__new__(type(self)) + cdef TA_IMI_Stream* clone = NULL + cdef IMI_Stream stream = IMI_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MACDEXT_Clone(self._handle, &clone) + retCode = TA_IMI_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MACDEXT_Clone", retCode) + _ta_check_success("TA_IMI_Clone", retCode) return stream -cdef class MACDFIX_Stream(Stream): - """ MACDFIX(real[, signalperiod=?]) +cdef class KAMA_Stream(Stream): + """ KAMA(real[, timeperiod=?]) - Moving Average Convergence/Divergence Fix 12/26 (Momentum Indicators) + Kaufman Adaptive Moving Average (Overlap Studies) Inputs: real: (any ndarray) Parameters: - signalperiod: 9 + timeperiod: 30 Outputs: - macd - macdsignal - macdhist + real """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MACDFIX_Close(self._handle) + TA_KAMA_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int signalperiod=-2**31): + def __init__(self, real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MACDFIX_Stream* handle = NULL - cdef double outmacd - cdef double outmacdsignal - cdef double outmacdhist + cdef TA_KAMA_Stream* handle = NULL + cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MACDFIX_Lookback(signalperiod) + 1 - retCode = TA_MACDFIX_Open(&handle, a_real.data + begidx, historylen, signalperiod, &outmacd, &outmacdsignal, &outmacdhist) + need = lib.TA_KAMA_Lookback(timeperiod) + 1 + retCode = TA_KAMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MACDFIX_Close(self._handle) + TA_KAMA_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -20498,33 +21343,29 @@ cdef class MACDFIX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MACDFIX_Open", retCode, historylen, need) + _stream_open_failed("TA_KAMA_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int signalperiod=-2**31): + def open_and_fill(real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outmacd - cdef np.ndarray outmacdsignal - cdef np.ndarray outmacdhist + cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MACDFIX_Stream* handle = NULL - cdef MACDFIX_Stream stream = MACDFIX_Stream.__new__(MACDFIX_Stream) + cdef TA_KAMA_Stream* handle = NULL + cdef KAMA_Stream stream = KAMA_Stream.__new__(KAMA_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MACDFIX_Lookback(signalperiod) - outmacd = make_double_array(length, lookback) - outmacdsignal = make_double_array(length, lookback) - outmacdhist = make_double_array(length, lookback) + lookback = begidx + lib.TA_KAMA_Lookback(timeperiod) + outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MACDFIX_OpenAndFill(&handle, a_real.data + begidx, historylen, signalperiod, &outbegidx, &outnbelement, outmacd.data + lookback, outmacdsignal.data + lookback, outmacdhist.data + lookback) + retCode = TA_KAMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -20533,113 +21374,112 @@ cdef class MACDFIX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MACDFIX_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) + _stream_open_failed("TA_KAMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) def update(self, double real): - cdef double outmacd - cdef double outmacdsignal - cdef double outmacdhist + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MACDFIX_Update(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + retCode = TA_KAMA_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MACDFIX_Update", retCode) - return (outmacd, outmacdsignal, outmacdhist) + _ta_check_success("TA_KAMA_Update", retCode) + return outreal @cython.binding(False) def peek(self, double real): - cdef double outmacd - cdef double outmacdsignal - cdef double outmacdhist + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MACDFIX_Peek(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + retCode = TA_KAMA_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MACDFIX_Peek", retCode) - return (outmacd, outmacdsignal, outmacdhist) + _ta_check_success("TA_KAMA_Peek", retCode) + return outreal @property def value(self): - cdef double outmacd - cdef double outmacdsignal - cdef double outmacdhist + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MACDFIX_Value(self._handle, &outmacd, &outmacdsignal, &outmacdhist) + retCode = TA_KAMA_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MACDFIX_Value", retCode) - return (outmacd, outmacdsignal, outmacdhist) + _ta_check_success("TA_KAMA_Value", retCode) + return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MACDFIX_OutRange(self._handle, outbegidx, outnbelement) + return TA_KAMA_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MACDFIX_Advance(self._handle) + return TA_KAMA_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MACDFIX_Stream* clone = NULL - cdef MACDFIX_Stream stream = MACDFIX_Stream.__new__(type(self)) + cdef TA_KAMA_Stream* clone = NULL + cdef KAMA_Stream stream = KAMA_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MACDFIX_Clone(self._handle, &clone) + retCode = TA_KAMA_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MACDFIX_Clone", retCode) + _ta_check_success("TA_KAMA_Clone", retCode) return stream -cdef class MAMA_Stream(Stream): - """ MAMA(real[, fastlimit=?, slowlimit=?]) +cdef class KC_Stream(Stream): + """ KC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?]) - MESA Adaptive Moving Average (Overlap Studies) + Keltner Channels (Overlap Studies) Inputs: - real: (any ndarray) + prices: ['high', 'low', 'close'] Parameters: - fastlimit: 0.5 - slowlimit: 0.05 + timeperiod: 20 + atrperiod: 10 + nbdev: 2.0 Outputs: - mama - fama + upperband + middleband + lowerband """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MAMA_Close(self._handle) + TA_KC_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, double fastlimit=-4e37, double slowlimit=-4e37): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, close, int timeperiod=-2**31, int atrperiod=-2**31, double nbdev=-4e37): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MAMA_Stream* handle = NULL - cdef double outmama - cdef double outfama + cdef TA_KC_Stream* handle = NULL + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MAMA_Lookback(fastlimit, slowlimit) + 1 - retCode = TA_MAMA_Open(&handle, a_real.data + begidx, historylen, fastlimit, slowlimit, &outmama, &outfama) + need = lib.TA_KC_Lookback(timeperiod, atrperiod, nbdev) + 1 + retCode = TA_KC_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, atrperiod, nbdev, &outupperband, &outmiddleband, &outlowerband) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MAMA_Close(self._handle) + TA_KC_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -20648,31 +21488,35 @@ cdef class MAMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MAMA_Open", retCode, historylen, need) + _stream_open_failed("TA_KC_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, double fastlimit=-4e37, double slowlimit=-4e37): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, close, int timeperiod=-2**31, int atrperiod=-2**31, double nbdev=-4e37): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outmama - cdef np.ndarray outfama + cdef np.ndarray outupperband + cdef np.ndarray outmiddleband + cdef np.ndarray outlowerband cdef int outbegidx cdef int outnbelement - cdef TA_MAMA_Stream* handle = NULL - cdef MAMA_Stream stream = MAMA_Stream.__new__(MAMA_Stream) + cdef TA_KC_Stream* handle = NULL + cdef KC_Stream stream = KC_Stream.__new__(KC_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MAMA_Lookback(fastlimit, slowlimit) - outmama = make_double_array(length, lookback) - outfama = make_double_array(length, lookback) + lookback = begidx + lib.TA_KC_Lookback(timeperiod, atrperiod, nbdev) + outupperband = make_double_array(length, lookback) + outmiddleband = make_double_array(length, lookback) + outlowerband = make_double_array(length, lookback) with nogil: - retCode = TA_MAMA_OpenAndFill(&handle, a_real.data + begidx, historylen, fastlimit, slowlimit, &outbegidx, &outnbelement, outmama.data + lookback, outfama.data + lookback) + retCode = TA_KC_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, atrperiod, nbdev, &outbegidx, &outnbelement, outupperband.data + lookback, outmiddleband.data + lookback, outlowerband.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -20681,107 +21525,120 @@ cdef class MAMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MAMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((real,), outmama), _stream_like((real,), outfama)) + _stream_open_failed("TA_KC_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low, close,), outupperband), _stream_like((high, low, close,), outmiddleband), _stream_like((high, low, close,), outlowerband)) @cython.binding(False) - def update(self, double real): - cdef double outmama - cdef double outfama + def update(self, double high, double low, double close): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MAMA_Update(self._handle, real, &outmama, &outfama) + retCode = TA_KC_Update(self._handle, high, low, close, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: - _ta_check_success("TA_MAMA_Update", retCode) - return (outmama, outfama) + _ta_check_success("TA_KC_Update", retCode) + return (outupperband, outmiddleband, outlowerband) @cython.binding(False) - def peek(self, double real): - cdef double outmama - cdef double outfama + def peek(self, double high, double low, double close): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MAMA_Peek(self._handle, real, &outmama, &outfama) + retCode = TA_KC_Peek(self._handle, high, low, close, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: - _ta_check_success("TA_MAMA_Peek", retCode) - return (outmama, outfama) + _ta_check_success("TA_KC_Peek", retCode) + return (outupperband, outmiddleband, outlowerband) @property def value(self): - cdef double outmama - cdef double outfama + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MAMA_Value(self._handle, &outmama, &outfama) + retCode = TA_KC_Value(self._handle, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: - _ta_check_success("TA_MAMA_Value", retCode) - return (outmama, outfama) + _ta_check_success("TA_KC_Value", retCode) + return (outupperband, outmiddleband, outlowerband) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MAMA_OutRange(self._handle, outbegidx, outnbelement) + return TA_KC_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MAMA_Advance(self._handle) + return TA_KC_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MAMA_Stream* clone = NULL - cdef MAMA_Stream stream = MAMA_Stream.__new__(type(self)) + cdef TA_KC_Stream* clone = NULL + cdef KC_Stream stream = KC_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MAMA_Clone(self._handle, &clone) + retCode = TA_KC_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MAMA_Clone", retCode) + _ta_check_success("TA_KC_Clone", retCode) return stream -cdef class MARKETFI_Stream(Stream): - """ MARKETFI(high, low, volume) +cdef class KDJ_Stream(Stream): + """ KDJ(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?]) - Market Facilitation Index (Volume Indicators) + KDJ Stochastic (Momentum Indicators) Inputs: - prices: ['high', 'low', 'volume'] + prices: ['high', 'low', 'close'] + Parameters: + fastk_period: 9 + slowk_period: 3 + slowk_matype: 13 (Wilder's Smoothed Moving Average) + slowd_period: 3 + slowd_matype: 13 (Wilder's Smoothed Moving Average) Outputs: - real + k + d + j """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MARKETFI_Close(self._handle) + TA_KDJ_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, volume): + def __init__(self, high, low, close, int fastk_period=-2**31, int slowk_period=-2**31, int slowk_matype=13, int slowd_period=-2**31, int slowd_matype=13): cdef np.ndarray a_high = _stream_input(high) cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_high, a_low, a_volume,) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MARKETFI_Stream* handle = NULL - cdef double outreal + cdef TA_KDJ_Stream* handle = NULL + cdef double outk + cdef double outd + cdef double outj cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MARKETFI_Lookback() + 1 - retCode = TA_MARKETFI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_volume.data + begidx, historylen, &outreal) + need = lib.TA_KDJ_Lookback(fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype) + 1 + retCode = TA_KDJ_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype, &outk, &outd, &outj) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MARKETFI_Close(self._handle) + TA_KDJ_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -20790,31 +21647,35 @@ cdef class MARKETFI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MARKETFI_Open", retCode, historylen, need) + _stream_open_failed("TA_KDJ_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, volume): + def open_and_fill(high, low, close, int fastk_period=-2**31, int slowk_period=-2**31, int slowk_matype=13, int slowd_period=-2**31, int slowd_matype=13): cdef np.ndarray a_high = _stream_input(high) cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_high, a_low, a_volume,) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outreal + cdef np.ndarray outk + cdef np.ndarray outd + cdef np.ndarray outj cdef int outbegidx cdef int outnbelement - cdef TA_MARKETFI_Stream* handle = NULL - cdef MARKETFI_Stream stream = MARKETFI_Stream.__new__(MARKETFI_Stream) + cdef TA_KDJ_Stream* handle = NULL + cdef KDJ_Stream stream = KDJ_Stream.__new__(KDJ_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MARKETFI_Lookback() - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_KDJ_Lookback(fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype) + outk = make_double_array(length, lookback) + outd = make_double_array(length, lookback) + outj = make_double_array(length, lookback) with nogil: - retCode = TA_MARKETFI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_KDJ_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype, &outbegidx, &outnbelement, outk.data + lookback, outd.data + lookback, outj.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -20823,106 +21684,120 @@ cdef class MARKETFI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MARKETFI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low, volume,), outreal) + _stream_open_failed("TA_KDJ_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low, close,), outk), _stream_like((high, low, close,), outd), _stream_like((high, low, close,), outj)) @cython.binding(False) - def update(self, double high, double low, double volume): - cdef double outreal + def update(self, double high, double low, double close): + cdef double outk + cdef double outd + cdef double outj cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MARKETFI_Update(self._handle, high, low, volume, &outreal) + retCode = TA_KDJ_Update(self._handle, high, low, close, &outk, &outd, &outj) if retCode != 0: - _ta_check_success("TA_MARKETFI_Update", retCode) - return outreal + _ta_check_success("TA_KDJ_Update", retCode) + return (outk, outd, outj) @cython.binding(False) - def peek(self, double high, double low, double volume): - cdef double outreal + def peek(self, double high, double low, double close): + cdef double outk + cdef double outd + cdef double outj cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MARKETFI_Peek(self._handle, high, low, volume, &outreal) + retCode = TA_KDJ_Peek(self._handle, high, low, close, &outk, &outd, &outj) if retCode != 0: - _ta_check_success("TA_MARKETFI_Peek", retCode) - return outreal + _ta_check_success("TA_KDJ_Peek", retCode) + return (outk, outd, outj) @property def value(self): - cdef double outreal + cdef double outk + cdef double outd + cdef double outj cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MARKETFI_Value(self._handle, &outreal) + retCode = TA_KDJ_Value(self._handle, &outk, &outd, &outj) if retCode != 0: - _ta_check_success("TA_MARKETFI_Value", retCode) - return outreal + _ta_check_success("TA_KDJ_Value", retCode) + return (outk, outd, outj) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MARKETFI_OutRange(self._handle, outbegidx, outnbelement) + return TA_KDJ_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MARKETFI_Advance(self._handle) + return TA_KDJ_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MARKETFI_Stream* clone = NULL - cdef MARKETFI_Stream stream = MARKETFI_Stream.__new__(type(self)) + cdef TA_KDJ_Stream* clone = NULL + cdef KDJ_Stream stream = KDJ_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MARKETFI_Clone(self._handle, &clone) + retCode = TA_KDJ_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MARKETFI_Clone", retCode) + _ta_check_success("TA_KDJ_Clone", retCode) return stream -cdef class MASSI_Stream(Stream): - """ MASSI(high, low[, fastperiod=?, slowperiod=?]) +cdef class KST_Stream(Stream): + """ KST(real[, roc1period=?, roc2period=?, roc3period=?, roc4period=?, sma1period=?, sma2period=?, sma3period=?, sma4period=?, signalperiod=?]) - Mass Index (Volatility Indicators) + Know Sure Thing (Pring) (Momentum Indicators) Inputs: - prices: ['high', 'low'] + real: (any ndarray) Parameters: - fastperiod: 9 - slowperiod: 25 + roc1period: 10 + roc2period: 15 + roc3period: 20 + roc4period: 30 + sma1period: 10 + sma2period: 10 + sma3period: 10 + sma4period: 15 + signalperiod: 9 Outputs: - real + kst + kstsignal """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MASSI_Close(self._handle) + TA_KST_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, int fastperiod=-2**31, int slowperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def __init__(self, real, int roc1period=-2**31, int roc2period=-2**31, int roc3period=-2**31, int roc4period=-2**31, int sma1period=-2**31, int sma2period=-2**31, int sma3period=-2**31, int sma4period=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MASSI_Stream* handle = NULL - cdef double outreal + cdef TA_KST_Stream* handle = NULL + cdef double outkst + cdef double outkstsignal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MASSI_Lookback(fastperiod, slowperiod) + 1 - retCode = TA_MASSI_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, fastperiod, slowperiod, &outreal) + need = lib.TA_KST_Lookback(roc1period, roc2period, roc3period, roc4period, sma1period, sma2period, sma3period, sma4period, signalperiod) + 1 + retCode = TA_KST_Open(&handle, a_real.data + begidx, historylen, roc1period, roc2period, roc3period, roc4period, sma1period, sma2period, sma3period, sma4period, signalperiod, &outkst, &outkstsignal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MASSI_Close(self._handle) + TA_KST_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -20931,30 +21806,31 @@ cdef class MASSI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MASSI_Open", retCode, historylen, need) + _stream_open_failed("TA_KST_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, int fastperiod=-2**31, int slowperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def open_and_fill(real, int roc1period=-2**31, int roc2period=-2**31, int roc3period=-2**31, int roc4period=-2**31, int sma1period=-2**31, int sma2period=-2**31, int sma3period=-2**31, int sma4period=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outreal + cdef np.ndarray outkst + cdef np.ndarray outkstsignal cdef int outbegidx cdef int outnbelement - cdef TA_MASSI_Stream* handle = NULL - cdef MASSI_Stream stream = MASSI_Stream.__new__(MASSI_Stream) + cdef TA_KST_Stream* handle = NULL + cdef KST_Stream stream = KST_Stream.__new__(KST_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MASSI_Lookback(fastperiod, slowperiod) - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_KST_Lookback(roc1period, roc2period, roc3period, roc4period, sma1period, sma2period, sma3period, sma4period, signalperiod) + outkst = make_double_array(length, lookback) + outkstsignal = make_double_array(length, lookback) with nogil: - retCode = TA_MASSI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, fastperiod, slowperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_KST_OpenAndFill(&handle, a_real.data + begidx, historylen, roc1period, roc2period, roc3period, roc4period, sma1period, sma2period, sma3period, sma4period, signalperiod, &outbegidx, &outnbelement, outkst.data + lookback, outkstsignal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -20963,108 +21839,119 @@ cdef class MASSI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MASSI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low,), outreal) + _stream_open_failed("TA_KST_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((real,), outkst), _stream_like((real,), outkstsignal)) @cython.binding(False) - def update(self, double high, double low): - cdef double outreal + def update(self, double real): + cdef double outkst + cdef double outkstsignal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MASSI_Update(self._handle, high, low, &outreal) + retCode = TA_KST_Update(self._handle, real, &outkst, &outkstsignal) if retCode != 0: - _ta_check_success("TA_MASSI_Update", retCode) - return outreal + _ta_check_success("TA_KST_Update", retCode) + return (outkst, outkstsignal) @cython.binding(False) - def peek(self, double high, double low): - cdef double outreal + def peek(self, double real): + cdef double outkst + cdef double outkstsignal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MASSI_Peek(self._handle, high, low, &outreal) + retCode = TA_KST_Peek(self._handle, real, &outkst, &outkstsignal) if retCode != 0: - _ta_check_success("TA_MASSI_Peek", retCode) - return outreal + _ta_check_success("TA_KST_Peek", retCode) + return (outkst, outkstsignal) @property def value(self): - cdef double outreal + cdef double outkst + cdef double outkstsignal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MASSI_Value(self._handle, &outreal) + retCode = TA_KST_Value(self._handle, &outkst, &outkstsignal) if retCode != 0: - _ta_check_success("TA_MASSI_Value", retCode) - return outreal + _ta_check_success("TA_KST_Value", retCode) + return (outkst, outkstsignal) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MASSI_OutRange(self._handle, outbegidx, outnbelement) + return TA_KST_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MASSI_Advance(self._handle) + return TA_KST_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MASSI_Stream* clone = NULL - cdef MASSI_Stream stream = MASSI_Stream.__new__(type(self)) + cdef TA_KST_Stream* clone = NULL + cdef KST_Stream stream = KST_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MASSI_Clone(self._handle, &clone) + retCode = TA_KST_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MASSI_Clone", retCode) + _ta_check_success("TA_KST_Clone", retCode) return stream -cdef class MAVP_Stream(Stream): - """ MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?]) +cdef class KSTEXT_Stream(Stream): + """ KSTEXT(real[, roc1period=?, roc2period=?, roc3period=?, roc4period=?, ma1period=?, ma2period=?, ma3period=?, ma4period=?, signalperiod=?, rocmatype=?, signalmatype=?]) - Moving average with variable period (Overlap Studies) + Know Sure Thing with controllable MA type (Momentum Indicators) Inputs: real: (any ndarray) - periods: (any ndarray) Parameters: - minperiod: 2 - maxperiod: 30 - matype: 0 (Simple Moving Average) + roc1period: 10 + roc2period: 15 + roc3period: 20 + roc4period: 30 + ma1period: 10 + ma2period: 10 + ma3period: 10 + ma4period: 15 + signalperiod: 9 + rocmatype: 0 (Simple Moving Average) + signalmatype: 0 (Simple Moving Average) Outputs: - real + kst + kstsignal """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MAVP_Close(self._handle) + TA_KSTEXT_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, periods, int minperiod=-2**31, int maxperiod=-2**31, int matype=0): + def __init__(self, real, int roc1period=-2**31, int roc2period=-2**31, int roc3period=-2**31, int roc4period=-2**31, int ma1period=-2**31, int ma2period=-2**31, int ma3period=-2**31, int ma4period=-2**31, int signalperiod=-2**31, int rocmatype=0, int signalmatype=0): cdef np.ndarray a_real = _stream_input(real) - cdef np.ndarray a_periods = _stream_input(periods) - cdef tuple arrays = (a_real, a_periods,) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MAVP_Stream* handle = NULL - cdef double outreal + cdef TA_KSTEXT_Stream* handle = NULL + cdef double outkst + cdef double outkstsignal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MAVP_Lookback(minperiod, maxperiod, matype) + 1 - retCode = TA_MAVP_Open(&handle, a_real.data + begidx, a_periods.data + begidx, historylen, minperiod, maxperiod, matype, &outreal) + need = lib.TA_KSTEXT_Lookback(roc1period, roc2period, roc3period, roc4period, ma1period, ma2period, ma3period, ma4period, signalperiod, rocmatype, signalmatype) + 1 + retCode = TA_KSTEXT_Open(&handle, a_real.data + begidx, historylen, roc1period, roc2period, roc3period, roc4period, ma1period, ma2period, ma3period, ma4period, signalperiod, rocmatype, signalmatype, &outkst, &outkstsignal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MAVP_Close(self._handle) + TA_KSTEXT_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -21073,30 +21960,31 @@ cdef class MAVP_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MAVP_Open", retCode, historylen, need) + _stream_open_failed("TA_KSTEXT_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, periods, int minperiod=-2**31, int maxperiod=-2**31, int matype=0): + def open_and_fill(real, int roc1period=-2**31, int roc2period=-2**31, int roc3period=-2**31, int roc4period=-2**31, int ma1period=-2**31, int ma2period=-2**31, int ma3period=-2**31, int ma4period=-2**31, int signalperiod=-2**31, int rocmatype=0, int signalmatype=0): cdef np.ndarray a_real = _stream_input(real) - cdef np.ndarray a_periods = _stream_input(periods) - cdef tuple arrays = (a_real, a_periods,) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outreal + cdef np.ndarray outkst + cdef np.ndarray outkstsignal cdef int outbegidx cdef int outnbelement - cdef TA_MAVP_Stream* handle = NULL - cdef MAVP_Stream stream = MAVP_Stream.__new__(MAVP_Stream) + cdef TA_KSTEXT_Stream* handle = NULL + cdef KSTEXT_Stream stream = KSTEXT_Stream.__new__(KSTEXT_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MAVP_Lookback(minperiod, maxperiod, matype) - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_KSTEXT_Lookback(roc1period, roc2period, roc3period, roc4period, ma1period, ma2period, ma3period, ma4period, signalperiod, rocmatype, signalmatype) + outkst = make_double_array(length, lookback) + outkstsignal = make_double_array(length, lookback) with nogil: - retCode = TA_MAVP_OpenAndFill(&handle, a_real.data + begidx, a_periods.data + begidx, historylen, minperiod, maxperiod, matype, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_KSTEXT_OpenAndFill(&handle, a_real.data + begidx, historylen, roc1period, roc2period, roc3period, roc4period, ma1period, ma2period, ma3period, ma4period, signalperiod, rocmatype, signalmatype, &outbegidx, &outnbelement, outkst.data + lookback, outkstsignal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -21105,69 +21993,72 @@ cdef class MAVP_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MAVP_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real, periods,), outreal) + _stream_open_failed("TA_KSTEXT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((real,), outkst), _stream_like((real,), outkstsignal)) @cython.binding(False) - def update(self, double real, double periods): - cdef double outreal + def update(self, double real): + cdef double outkst + cdef double outkstsignal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MAVP_Update(self._handle, real, periods, &outreal) + retCode = TA_KSTEXT_Update(self._handle, real, &outkst, &outkstsignal) if retCode != 0: - _ta_check_success("TA_MAVP_Update", retCode) - return outreal + _ta_check_success("TA_KSTEXT_Update", retCode) + return (outkst, outkstsignal) @cython.binding(False) - def peek(self, double real, double periods): - cdef double outreal + def peek(self, double real): + cdef double outkst + cdef double outkstsignal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MAVP_Peek(self._handle, real, periods, &outreal) + retCode = TA_KSTEXT_Peek(self._handle, real, &outkst, &outkstsignal) if retCode != 0: - _ta_check_success("TA_MAVP_Peek", retCode) - return outreal + _ta_check_success("TA_KSTEXT_Peek", retCode) + return (outkst, outkstsignal) @property def value(self): - cdef double outreal + cdef double outkst + cdef double outkstsignal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MAVP_Value(self._handle, &outreal) + retCode = TA_KSTEXT_Value(self._handle, &outkst, &outkstsignal) if retCode != 0: - _ta_check_success("TA_MAVP_Value", retCode) - return outreal + _ta_check_success("TA_KSTEXT_Value", retCode) + return (outkst, outkstsignal) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MAVP_OutRange(self._handle, outbegidx, outnbelement) + return TA_KSTEXT_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MAVP_Advance(self._handle) + return TA_KSTEXT_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MAVP_Stream* clone = NULL - cdef MAVP_Stream stream = MAVP_Stream.__new__(type(self)) + cdef TA_KSTEXT_Stream* clone = NULL + cdef KSTEXT_Stream stream = KSTEXT_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MAVP_Clone(self._handle, &clone) + retCode = TA_KSTEXT_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MAVP_Clone", retCode) + _ta_check_success("TA_KSTEXT_Clone", retCode) return stream -cdef class MAX_Stream(Stream): - """ MAX(real[, timeperiod=?]) +cdef class KURTOSIS_Stream(Stream): + """ KURTOSIS(real[, timeperiod=?]) - Highest value over a specified period (Math Operators) + Rolling Excess Kurtosis (Statistic Functions) Inputs: real: (any ndarray) @@ -21180,7 +22071,7 @@ cdef class MAX_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MAX_Close(self._handle) + TA_KURTOSIS_Close(self._handle) self._handle = NULL _ta_stream_closed() @@ -21190,19 +22081,19 @@ cdef class MAX_Stream(Stream): cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MAX_Stream* handle = NULL + cdef TA_KURTOSIS_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MAX_Lookback(timeperiod) + 1 - retCode = TA_MAX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_KURTOSIS_Lookback(timeperiod) + 1 + retCode = TA_KURTOSIS_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MAX_Close(self._handle) + TA_KURTOSIS_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -21211,7 +22102,7 @@ cdef class MAX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MAX_Open", retCode, historylen, need) + _stream_open_failed("TA_KURTOSIS_Open", retCode, historylen, need) @staticmethod def open_and_fill(real, int timeperiod=-2**31): @@ -21224,16 +22115,16 @@ cdef class MAX_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MAX_Stream* handle = NULL - cdef MAX_Stream stream = MAX_Stream.__new__(MAX_Stream) + cdef TA_KURTOSIS_Stream* handle = NULL + cdef KURTOSIS_Stream stream = KURTOSIS_Stream.__new__(KURTOSIS_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MAX_Lookback(timeperiod) + lookback = begidx + lib.TA_KURTOSIS_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MAX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_KURTOSIS_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -21242,7 +22133,7 @@ cdef class MAX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MAX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_KURTOSIS_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -21251,9 +22142,9 @@ cdef class MAX_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MAX_Update(self._handle, real, &outreal) + retCode = TA_KURTOSIS_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MAX_Update", retCode) + _ta_check_success("TA_KURTOSIS_Update", retCode) return outreal @cython.binding(False) @@ -21262,9 +22153,9 @@ cdef class MAX_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MAX_Peek(self._handle, real, &outreal) + retCode = TA_KURTOSIS_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MAX_Peek", retCode) + _ta_check_success("TA_KURTOSIS_Peek", retCode) return outreal @property @@ -21273,73 +22164,80 @@ cdef class MAX_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MAX_Value(self._handle, &outreal) + retCode = TA_KURTOSIS_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MAX_Value", retCode) + _ta_check_success("TA_KURTOSIS_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MAX_OutRange(self._handle, outbegidx, outnbelement) + return TA_KURTOSIS_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MAX_Advance(self._handle) + return TA_KURTOSIS_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MAX_Stream* clone = NULL - cdef MAX_Stream stream = MAX_Stream.__new__(type(self)) + cdef TA_KURTOSIS_Stream* clone = NULL + cdef KURTOSIS_Stream stream = KURTOSIS_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MAX_Clone(self._handle, &clone) + retCode = TA_KURTOSIS_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MAX_Clone", retCode) + _ta_check_success("TA_KURTOSIS_Clone", retCode) return stream -cdef class MAXINDEX_Stream(Stream): - """ MAXINDEX(real[, timeperiod=?]) +cdef class KVO_Stream(Stream): + """ KVO(high, low, close, volume[, fastperiod=?, slowperiod=?, signalperiod=?]) - Index of highest value over a specified period (Math Operators) + Klinger Volume Oscillator (Volume Indicators) Inputs: - real: (any ndarray) + prices: ['high', 'low', 'close', 'volume'] Parameters: - timeperiod: 30 + fastperiod: 34 + slowperiod: 55 + signalperiod: 13 Outputs: - integer + kvo + kvosignal """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MAXINDEX_Close(self._handle) + TA_KVO_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, close, volume, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MAXINDEX_Stream* handle = NULL - cdef int outinteger + cdef TA_KVO_Stream* handle = NULL + cdef double outkvo + cdef double outkvosignal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MAXINDEX_Lookback(timeperiod) + 1 - retCode = TA_MAXINDEX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outinteger) + need = lib.TA_KVO_Lookback(fastperiod, slowperiod, signalperiod) + 1 + retCode = TA_KVO_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, fastperiod, slowperiod, signalperiod, &outkvo, &outkvosignal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MAXINDEX_Close(self._handle) + TA_KVO_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -21348,29 +22246,34 @@ cdef class MAXINDEX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MAXINDEX_Open", retCode, historylen, need) + _stream_open_failed("TA_KVO_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, close, volume, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outinteger + cdef np.ndarray outkvo + cdef np.ndarray outkvosignal cdef int outbegidx cdef int outnbelement - cdef TA_MAXINDEX_Stream* handle = NULL - cdef MAXINDEX_Stream stream = MAXINDEX_Stream.__new__(MAXINDEX_Stream) + cdef TA_KVO_Stream* handle = NULL + cdef KVO_Stream stream = KVO_Stream.__new__(KVO_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MAXINDEX_Lookback(timeperiod) - outinteger = make_int_array(length, lookback) + lookback = begidx + lib.TA_KVO_Lookback(fastperiod, slowperiod, signalperiod) + outkvo = make_double_array(length, lookback) + outkvosignal = make_double_array(length, lookback) with nogil: - retCode = TA_MAXINDEX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outinteger.data + lookback) + retCode = TA_KVO_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, fastperiod, slowperiod, signalperiod, &outbegidx, &outnbelement, outkvo.data + lookback, outkvosignal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -21379,82 +22282,77 @@ cdef class MAXINDEX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MAXINDEX_OpenAndFill", retCode, historylen, lookback - begidx + 1) - cdef np.npy_intp i - cdef int* outinteger_data = outinteger.data - for i in range(lookback, length): - outinteger_data[i] += begidx - return stream, _stream_like((real,), outinteger) + _stream_open_failed("TA_KVO_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low, close, volume,), outkvo), _stream_like((high, low, close, volume,), outkvosignal)) @cython.binding(False) - def update(self, double real): - cdef int outinteger + def update(self, double high, double low, double close, double volume): + cdef double outkvo + cdef double outkvosignal cdef TA_RetCode retCode - cdef int begidx with nogil: with self._mutex: - retCode = TA_MAXINDEX_Update(self._handle, real, &outinteger) - begidx = self._begidx + retCode = TA_KVO_Update(self._handle, high, low, close, volume, &outkvo, &outkvosignal) if retCode != 0: - _ta_check_success("TA_MAXINDEX_Update", retCode) - return outinteger + begidx + _ta_check_success("TA_KVO_Update", retCode) + return (outkvo, outkvosignal) @cython.binding(False) - def peek(self, double real): - cdef int outinteger + def peek(self, double high, double low, double close, double volume): + cdef double outkvo + cdef double outkvosignal cdef TA_RetCode retCode - cdef int begidx with nogil: with self._mutex: - retCode = TA_MAXINDEX_Peek(self._handle, real, &outinteger) - begidx = self._begidx + retCode = TA_KVO_Peek(self._handle, high, low, close, volume, &outkvo, &outkvosignal) if retCode != 0: - _ta_check_success("TA_MAXINDEX_Peek", retCode) - return outinteger + begidx + _ta_check_success("TA_KVO_Peek", retCode) + return (outkvo, outkvosignal) @property def value(self): - cdef int outinteger + cdef double outkvo + cdef double outkvosignal cdef TA_RetCode retCode - cdef int begidx with nogil: with self._mutex: - retCode = TA_MAXINDEX_Value(self._handle, &outinteger) - begidx = self._begidx + retCode = TA_KVO_Value(self._handle, &outkvo, &outkvosignal) if retCode != 0: - _ta_check_success("TA_MAXINDEX_Value", retCode) - return outinteger + begidx + _ta_check_success("TA_KVO_Value", retCode) + return (outkvo, outkvosignal) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MAXINDEX_OutRange(self._handle, outbegidx, outnbelement) + return TA_KVO_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MAXINDEX_Advance(self._handle) + return TA_KVO_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MAXINDEX_Stream* clone = NULL - cdef MAXINDEX_Stream stream = MAXINDEX_Stream.__new__(type(self)) + cdef TA_KVO_Stream* clone = NULL + cdef KVO_Stream stream = KVO_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MAXINDEX_Clone(self._handle, &clone) + retCode = TA_KVO_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MAXINDEX_Clone", retCode) + _ta_check_success("TA_KVO_Clone", retCode) return stream -cdef class MEDPRICE_Stream(Stream): - """ MEDPRICE(high, low) +cdef class LINEARREG_Stream(Stream): + """ LINEARREG(real[, timeperiod=?]) - Median Price (Price Transform) + Linear Regression (Statistic Functions) Inputs: - prices: ['high', 'low'] + real: (any ndarray) + Parameters: + timeperiod: 14 Outputs: real """ @@ -21462,30 +22360,29 @@ cdef class MEDPRICE_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MEDPRICE_Close(self._handle) + TA_LINEARREG_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MEDPRICE_Stream* handle = NULL + cdef TA_LINEARREG_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MEDPRICE_Lookback() + 1 - retCode = TA_MEDPRICE_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, &outreal) + need = lib.TA_LINEARREG_Lookback(timeperiod) + 1 + retCode = TA_LINEARREG_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MEDPRICE_Close(self._handle) + TA_LINEARREG_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -21494,13 +22391,12 @@ cdef class MEDPRICE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MEDPRICE_Open", retCode, historylen, need) + _stream_open_failed("TA_LINEARREG_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -21508,16 +22404,16 @@ cdef class MEDPRICE_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MEDPRICE_Stream* handle = NULL - cdef MEDPRICE_Stream stream = MEDPRICE_Stream.__new__(MEDPRICE_Stream) + cdef TA_LINEARREG_Stream* handle = NULL + cdef LINEARREG_Stream stream = LINEARREG_Stream.__new__(LINEARREG_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MEDPRICE_Lookback() + lookback = begidx + lib.TA_LINEARREG_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MEDPRICE_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_LINEARREG_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -21526,29 +22422,29 @@ cdef class MEDPRICE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MEDPRICE_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low,), outreal) + _stream_open_failed("TA_LINEARREG_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double high, double low): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MEDPRICE_Update(self._handle, high, low, &outreal) + retCode = TA_LINEARREG_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MEDPRICE_Update", retCode) + _ta_check_success("TA_LINEARREG_Update", retCode) return outreal @cython.binding(False) - def peek(self, double high, double low): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MEDPRICE_Peek(self._handle, high, low, &outreal) + retCode = TA_LINEARREG_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MEDPRICE_Peek", retCode) + _ta_check_success("TA_LINEARREG_Peek", retCode) return outreal @property @@ -21557,41 +22453,41 @@ cdef class MEDPRICE_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MEDPRICE_Value(self._handle, &outreal) + retCode = TA_LINEARREG_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MEDPRICE_Value", retCode) + _ta_check_success("TA_LINEARREG_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MEDPRICE_OutRange(self._handle, outbegidx, outnbelement) + return TA_LINEARREG_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MEDPRICE_Advance(self._handle) + return TA_LINEARREG_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MEDPRICE_Stream* clone = NULL - cdef MEDPRICE_Stream stream = MEDPRICE_Stream.__new__(type(self)) + cdef TA_LINEARREG_Stream* clone = NULL + cdef LINEARREG_Stream stream = LINEARREG_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MEDPRICE_Clone(self._handle, &clone) + retCode = TA_LINEARREG_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MEDPRICE_Clone", retCode) + _ta_check_success("TA_LINEARREG_Clone", retCode) return stream -cdef class MFI_Stream(Stream): - """ MFI(high, low, close, volume[, timeperiod=?]) +cdef class LINEARREG_ANGLE_Stream(Stream): + """ LINEARREG_ANGLE(real[, timeperiod=?]) - Money Flow Index (Momentum Indicators) + Linear Regression Angle (Statistic Functions) Inputs: - prices: ['high', 'low', 'close', 'volume'] + real: (any ndarray) Parameters: timeperiod: 14 Outputs: @@ -21601,32 +22497,29 @@ cdef class MFI_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MFI_Close(self._handle) + TA_LINEARREG_ANGLE_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, close, volume, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MFI_Stream* handle = NULL + cdef TA_LINEARREG_ANGLE_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MFI_Lookback(timeperiod) + 1 - retCode = TA_MFI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_LINEARREG_ANGLE_Lookback(timeperiod) + 1 + retCode = TA_LINEARREG_ANGLE_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MFI_Close(self._handle) + TA_LINEARREG_ANGLE_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -21635,15 +22528,12 @@ cdef class MFI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MFI_Open", retCode, historylen, need) + _stream_open_failed("TA_LINEARREG_ANGLE_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, close, volume, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -21651,16 +22541,16 @@ cdef class MFI_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MFI_Stream* handle = NULL - cdef MFI_Stream stream = MFI_Stream.__new__(MFI_Stream) + cdef TA_LINEARREG_ANGLE_Stream* handle = NULL + cdef LINEARREG_ANGLE_Stream stream = LINEARREG_ANGLE_Stream.__new__(LINEARREG_ANGLE_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MFI_Lookback(timeperiod) + lookback = begidx + lib.TA_LINEARREG_ANGLE_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MFI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_LINEARREG_ANGLE_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -21669,29 +22559,29 @@ cdef class MFI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MFI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low, close, volume,), outreal) + _stream_open_failed("TA_LINEARREG_ANGLE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double high, double low, double close, double volume): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MFI_Update(self._handle, high, low, close, volume, &outreal) + retCode = TA_LINEARREG_ANGLE_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MFI_Update", retCode) + _ta_check_success("TA_LINEARREG_ANGLE_Update", retCode) return outreal @cython.binding(False) - def peek(self, double high, double low, double close, double volume): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MFI_Peek(self._handle, high, low, close, volume, &outreal) + retCode = TA_LINEARREG_ANGLE_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MFI_Peek", retCode) + _ta_check_success("TA_LINEARREG_ANGLE_Peek", retCode) return outreal @property @@ -21700,38 +22590,38 @@ cdef class MFI_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MFI_Value(self._handle, &outreal) + retCode = TA_LINEARREG_ANGLE_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MFI_Value", retCode) + _ta_check_success("TA_LINEARREG_ANGLE_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MFI_OutRange(self._handle, outbegidx, outnbelement) + return TA_LINEARREG_ANGLE_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MFI_Advance(self._handle) + return TA_LINEARREG_ANGLE_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MFI_Stream* clone = NULL - cdef MFI_Stream stream = MFI_Stream.__new__(type(self)) + cdef TA_LINEARREG_ANGLE_Stream* clone = NULL + cdef LINEARREG_ANGLE_Stream stream = LINEARREG_ANGLE_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MFI_Clone(self._handle, &clone) + retCode = TA_LINEARREG_ANGLE_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MFI_Clone", retCode) + _ta_check_success("TA_LINEARREG_ANGLE_Clone", retCode) return stream -cdef class MIDPOINT_Stream(Stream): - """ MIDPOINT(real[, timeperiod=?]) +cdef class LINEARREG_INTERCEPT_Stream(Stream): + """ LINEARREG_INTERCEPT(real[, timeperiod=?]) - MidPoint over period (Overlap Studies) + Linear Regression Intercept (Statistic Functions) Inputs: real: (any ndarray) @@ -21744,7 +22634,7 @@ cdef class MIDPOINT_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MIDPOINT_Close(self._handle) + TA_LINEARREG_INTERCEPT_Close(self._handle) self._handle = NULL _ta_stream_closed() @@ -21754,19 +22644,19 @@ cdef class MIDPOINT_Stream(Stream): cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MIDPOINT_Stream* handle = NULL + cdef TA_LINEARREG_INTERCEPT_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MIDPOINT_Lookback(timeperiod) + 1 - retCode = TA_MIDPOINT_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_LINEARREG_INTERCEPT_Lookback(timeperiod) + 1 + retCode = TA_LINEARREG_INTERCEPT_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MIDPOINT_Close(self._handle) + TA_LINEARREG_INTERCEPT_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -21775,7 +22665,7 @@ cdef class MIDPOINT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MIDPOINT_Open", retCode, historylen, need) + _stream_open_failed("TA_LINEARREG_INTERCEPT_Open", retCode, historylen, need) @staticmethod def open_and_fill(real, int timeperiod=-2**31): @@ -21788,16 +22678,16 @@ cdef class MIDPOINT_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MIDPOINT_Stream* handle = NULL - cdef MIDPOINT_Stream stream = MIDPOINT_Stream.__new__(MIDPOINT_Stream) + cdef TA_LINEARREG_INTERCEPT_Stream* handle = NULL + cdef LINEARREG_INTERCEPT_Stream stream = LINEARREG_INTERCEPT_Stream.__new__(LINEARREG_INTERCEPT_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MIDPOINT_Lookback(timeperiod) + lookback = begidx + lib.TA_LINEARREG_INTERCEPT_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MIDPOINT_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_LINEARREG_INTERCEPT_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -21806,7 +22696,7 @@ cdef class MIDPOINT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MIDPOINT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_LINEARREG_INTERCEPT_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -21815,9 +22705,9 @@ cdef class MIDPOINT_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MIDPOINT_Update(self._handle, real, &outreal) + retCode = TA_LINEARREG_INTERCEPT_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MIDPOINT_Update", retCode) + _ta_check_success("TA_LINEARREG_INTERCEPT_Update", retCode) return outreal @cython.binding(False) @@ -21826,9 +22716,9 @@ cdef class MIDPOINT_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MIDPOINT_Peek(self._handle, real, &outreal) + retCode = TA_LINEARREG_INTERCEPT_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MIDPOINT_Peek", retCode) + _ta_check_success("TA_LINEARREG_INTERCEPT_Peek", retCode) return outreal @property @@ -21837,41 +22727,41 @@ cdef class MIDPOINT_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MIDPOINT_Value(self._handle, &outreal) + retCode = TA_LINEARREG_INTERCEPT_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MIDPOINT_Value", retCode) + _ta_check_success("TA_LINEARREG_INTERCEPT_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MIDPOINT_OutRange(self._handle, outbegidx, outnbelement) + return TA_LINEARREG_INTERCEPT_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MIDPOINT_Advance(self._handle) + return TA_LINEARREG_INTERCEPT_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MIDPOINT_Stream* clone = NULL - cdef MIDPOINT_Stream stream = MIDPOINT_Stream.__new__(type(self)) + cdef TA_LINEARREG_INTERCEPT_Stream* clone = NULL + cdef LINEARREG_INTERCEPT_Stream stream = LINEARREG_INTERCEPT_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MIDPOINT_Clone(self._handle, &clone) + retCode = TA_LINEARREG_INTERCEPT_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MIDPOINT_Clone", retCode) + _ta_check_success("TA_LINEARREG_INTERCEPT_Clone", retCode) return stream -cdef class MIDPRICE_Stream(Stream): - """ MIDPRICE(high, low[, timeperiod=?]) +cdef class LINEARREG_SLOPE_Stream(Stream): + """ LINEARREG_SLOPE(real[, timeperiod=?]) - Midpoint Price over period (Overlap Studies) + Linear Regression Slope (Statistic Functions) Inputs: - prices: ['high', 'low'] + real: (any ndarray) Parameters: timeperiod: 14 Outputs: @@ -21881,30 +22771,29 @@ cdef class MIDPRICE_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MIDPRICE_Close(self._handle) + TA_LINEARREG_SLOPE_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MIDPRICE_Stream* handle = NULL + cdef TA_LINEARREG_SLOPE_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MIDPRICE_Lookback(timeperiod) + 1 - retCode = TA_MIDPRICE_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_LINEARREG_SLOPE_Lookback(timeperiod) + 1 + retCode = TA_LINEARREG_SLOPE_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MIDPRICE_Close(self._handle) + TA_LINEARREG_SLOPE_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -21913,13 +22802,12 @@ cdef class MIDPRICE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MIDPRICE_Open", retCode, historylen, need) + _stream_open_failed("TA_LINEARREG_SLOPE_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -21927,16 +22815,16 @@ cdef class MIDPRICE_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MIDPRICE_Stream* handle = NULL - cdef MIDPRICE_Stream stream = MIDPRICE_Stream.__new__(MIDPRICE_Stream) + cdef TA_LINEARREG_SLOPE_Stream* handle = NULL + cdef LINEARREG_SLOPE_Stream stream = LINEARREG_SLOPE_Stream.__new__(LINEARREG_SLOPE_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MIDPRICE_Lookback(timeperiod) + lookback = begidx + lib.TA_LINEARREG_SLOPE_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MIDPRICE_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_LINEARREG_SLOPE_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -21945,29 +22833,29 @@ cdef class MIDPRICE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MIDPRICE_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low,), outreal) + _stream_open_failed("TA_LINEARREG_SLOPE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double high, double low): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MIDPRICE_Update(self._handle, high, low, &outreal) + retCode = TA_LINEARREG_SLOPE_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MIDPRICE_Update", retCode) + _ta_check_success("TA_LINEARREG_SLOPE_Update", retCode) return outreal @cython.binding(False) - def peek(self, double high, double low): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MIDPRICE_Peek(self._handle, high, low, &outreal) + retCode = TA_LINEARREG_SLOPE_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MIDPRICE_Peek", retCode) + _ta_check_success("TA_LINEARREG_SLOPE_Peek", retCode) return outreal @property @@ -21976,43 +22864,41 @@ cdef class MIDPRICE_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MIDPRICE_Value(self._handle, &outreal) + retCode = TA_LINEARREG_SLOPE_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MIDPRICE_Value", retCode) + _ta_check_success("TA_LINEARREG_SLOPE_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MIDPRICE_OutRange(self._handle, outbegidx, outnbelement) + return TA_LINEARREG_SLOPE_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MIDPRICE_Advance(self._handle) + return TA_LINEARREG_SLOPE_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MIDPRICE_Stream* clone = NULL - cdef MIDPRICE_Stream stream = MIDPRICE_Stream.__new__(type(self)) + cdef TA_LINEARREG_SLOPE_Stream* clone = NULL + cdef LINEARREG_SLOPE_Stream stream = LINEARREG_SLOPE_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MIDPRICE_Clone(self._handle, &clone) + retCode = TA_LINEARREG_SLOPE_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MIDPRICE_Clone", retCode) + _ta_check_success("TA_LINEARREG_SLOPE_Clone", retCode) return stream -cdef class MIN_Stream(Stream): - """ MIN(real[, timeperiod=?]) +cdef class LN_Stream(Stream): + """ LN(real) - Lowest value over a specified period (Math Operators) + Vector Log Natural (Math Transform) Inputs: real: (any ndarray) - Parameters: - timeperiod: 30 Outputs: real """ @@ -22020,29 +22906,29 @@ cdef class MIN_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MIN_Close(self._handle) + TA_LN_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): + def __init__(self, real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MIN_Stream* handle = NULL + cdef TA_LN_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MIN_Lookback(timeperiod) + 1 - retCode = TA_MIN_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_LN_Lookback() + 1 + retCode = TA_LN_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MIN_Close(self._handle) + TA_LN_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -22051,10 +22937,10 @@ cdef class MIN_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MIN_Open", retCode, historylen, need) + _stream_open_failed("TA_LN_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): + def open_and_fill(real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -22064,16 +22950,16 @@ cdef class MIN_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MIN_Stream* handle = NULL - cdef MIN_Stream stream = MIN_Stream.__new__(MIN_Stream) + cdef TA_LN_Stream* handle = NULL + cdef LN_Stream stream = LN_Stream.__new__(LN_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MIN_Lookback(timeperiod) + lookback = begidx + lib.TA_LN_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MIN_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_LN_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -22082,7 +22968,7 @@ cdef class MIN_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MIN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_LN_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -22091,9 +22977,9 @@ cdef class MIN_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MIN_Update(self._handle, real, &outreal) + retCode = TA_LN_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MIN_Update", retCode) + _ta_check_success("TA_LN_Update", retCode) return outreal @cython.binding(False) @@ -22102,9 +22988,9 @@ cdef class MIN_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MIN_Peek(self._handle, real, &outreal) + retCode = TA_LN_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MIN_Peek", retCode) + _ta_check_success("TA_LN_Peek", retCode) return outreal @property @@ -22113,73 +22999,71 @@ cdef class MIN_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MIN_Value(self._handle, &outreal) + retCode = TA_LN_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MIN_Value", retCode) + _ta_check_success("TA_LN_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MIN_OutRange(self._handle, outbegidx, outnbelement) + return TA_LN_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MIN_Advance(self._handle) + return TA_LN_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MIN_Stream* clone = NULL - cdef MIN_Stream stream = MIN_Stream.__new__(type(self)) + cdef TA_LN_Stream* clone = NULL + cdef LN_Stream stream = LN_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MIN_Clone(self._handle, &clone) + retCode = TA_LN_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MIN_Clone", retCode) + _ta_check_success("TA_LN_Clone", retCode) return stream -cdef class MININDEX_Stream(Stream): - """ MININDEX(real[, timeperiod=?]) +cdef class LOG10_Stream(Stream): + """ LOG10(real) - Index of lowest value over a specified period (Math Operators) + Vector Log10 (Math Transform) Inputs: real: (any ndarray) - Parameters: - timeperiod: 30 Outputs: - integer + real """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MININDEX_Close(self._handle) + TA_LOG10_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): + def __init__(self, real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MININDEX_Stream* handle = NULL - cdef int outinteger + cdef TA_LOG10_Stream* handle = NULL + cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MININDEX_Lookback(timeperiod) + 1 - retCode = TA_MININDEX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outinteger) + need = lib.TA_LOG10_Lookback() + 1 + retCode = TA_LOG10_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MININDEX_Close(self._handle) + TA_LOG10_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -22188,29 +23072,29 @@ cdef class MININDEX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MININDEX_Open", retCode, historylen, need) + _stream_open_failed("TA_LOG10_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): + def open_and_fill(real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outinteger + cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MININDEX_Stream* handle = NULL - cdef MININDEX_Stream stream = MININDEX_Stream.__new__(MININDEX_Stream) + cdef TA_LOG10_Stream* handle = NULL + cdef LOG10_Stream stream = LOG10_Stream.__new__(LOG10_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MININDEX_Lookback(timeperiod) - outinteger = make_int_array(length, lookback) + lookback = begidx + lib.TA_LOG10_Lookback() + outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MININDEX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outinteger.data + lookback) + retCode = TA_LOG10_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -22219,116 +23103,105 @@ cdef class MININDEX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MININDEX_OpenAndFill", retCode, historylen, lookback - begidx + 1) - cdef np.npy_intp i - cdef int* outinteger_data = outinteger.data - for i in range(lookback, length): - outinteger_data[i] += begidx - return stream, _stream_like((real,), outinteger) + _stream_open_failed("TA_LOG10_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) def update(self, double real): - cdef int outinteger + cdef double outreal cdef TA_RetCode retCode - cdef int begidx with nogil: with self._mutex: - retCode = TA_MININDEX_Update(self._handle, real, &outinteger) - begidx = self._begidx + retCode = TA_LOG10_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MININDEX_Update", retCode) - return outinteger + begidx + _ta_check_success("TA_LOG10_Update", retCode) + return outreal @cython.binding(False) def peek(self, double real): - cdef int outinteger + cdef double outreal cdef TA_RetCode retCode - cdef int begidx with nogil: with self._mutex: - retCode = TA_MININDEX_Peek(self._handle, real, &outinteger) - begidx = self._begidx + retCode = TA_LOG10_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MININDEX_Peek", retCode) - return outinteger + begidx + _ta_check_success("TA_LOG10_Peek", retCode) + return outreal @property def value(self): - cdef int outinteger + cdef double outreal cdef TA_RetCode retCode - cdef int begidx with nogil: with self._mutex: - retCode = TA_MININDEX_Value(self._handle, &outinteger) - begidx = self._begidx + retCode = TA_LOG10_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MININDEX_Value", retCode) - return outinteger + begidx + _ta_check_success("TA_LOG10_Value", retCode) + return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MININDEX_OutRange(self._handle, outbegidx, outnbelement) + return TA_LOG10_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MININDEX_Advance(self._handle) + return TA_LOG10_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MININDEX_Stream* clone = NULL - cdef MININDEX_Stream stream = MININDEX_Stream.__new__(type(self)) + cdef TA_LOG10_Stream* clone = NULL + cdef LOG10_Stream stream = LOG10_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MININDEX_Clone(self._handle, &clone) + retCode = TA_LOG10_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MININDEX_Clone", retCode) + _ta_check_success("TA_LOG10_Clone", retCode) return stream -cdef class MINMAX_Stream(Stream): - """ MINMAX(real[, timeperiod=?]) +cdef class MA_Stream(Stream): + """ MA(real[, timeperiod=?, matype=?]) - Lowest and highest values over a specified period (Math Operators) + Moving average (Overlap Studies) Inputs: real: (any ndarray) Parameters: timeperiod: 30 + matype: 0 (Simple Moving Average) Outputs: - min - max + real """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MINMAX_Close(self._handle) + TA_MA_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): + def __init__(self, real, int timeperiod=-2**31, int matype=0): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MINMAX_Stream* handle = NULL - cdef double outmin - cdef double outmax + cdef TA_MA_Stream* handle = NULL + cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MINMAX_Lookback(timeperiod) + 1 - retCode = TA_MINMAX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outmin, &outmax) + need = lib.TA_MA_Lookback(timeperiod, matype) + 1 + retCode = TA_MA_Open(&handle, a_real.data + begidx, historylen, timeperiod, matype, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MINMAX_Close(self._handle) + TA_MA_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -22337,31 +23210,29 @@ cdef class MINMAX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MINMAX_Open", retCode, historylen, need) + _stream_open_failed("TA_MA_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): + def open_and_fill(real, int timeperiod=-2**31, int matype=0): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outmin - cdef np.ndarray outmax + cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MINMAX_Stream* handle = NULL - cdef MINMAX_Stream stream = MINMAX_Stream.__new__(MINMAX_Stream) + cdef TA_MA_Stream* handle = NULL + cdef MA_Stream stream = MA_Stream.__new__(MA_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MINMAX_Lookback(timeperiod) - outmin = make_double_array(length, lookback) - outmax = make_double_array(length, lookback) + lookback = begidx + lib.TA_MA_Lookback(timeperiod, matype) + outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MINMAX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outmin.data + lookback, outmax.data + lookback) + retCode = TA_MA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, matype, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -22370,109 +23241,110 @@ cdef class MINMAX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MINMAX_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((real,), outmin), _stream_like((real,), outmax)) + _stream_open_failed("TA_MA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) def update(self, double real): - cdef double outmin - cdef double outmax + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MINMAX_Update(self._handle, real, &outmin, &outmax) + retCode = TA_MA_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MINMAX_Update", retCode) - return (outmin, outmax) + _ta_check_success("TA_MA_Update", retCode) + return outreal @cython.binding(False) def peek(self, double real): - cdef double outmin - cdef double outmax + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MINMAX_Peek(self._handle, real, &outmin, &outmax) + retCode = TA_MA_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MINMAX_Peek", retCode) - return (outmin, outmax) + _ta_check_success("TA_MA_Peek", retCode) + return outreal @property def value(self): - cdef double outmin - cdef double outmax + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MINMAX_Value(self._handle, &outmin, &outmax) + retCode = TA_MA_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MINMAX_Value", retCode) - return (outmin, outmax) + _ta_check_success("TA_MA_Value", retCode) + return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MINMAX_OutRange(self._handle, outbegidx, outnbelement) + return TA_MA_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MINMAX_Advance(self._handle) + return TA_MA_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MINMAX_Stream* clone = NULL - cdef MINMAX_Stream stream = MINMAX_Stream.__new__(type(self)) + cdef TA_MA_Stream* clone = NULL + cdef MA_Stream stream = MA_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MINMAX_Clone(self._handle, &clone) + retCode = TA_MA_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MINMAX_Clone", retCode) + _ta_check_success("TA_MA_Clone", retCode) return stream -cdef class MINMAXINDEX_Stream(Stream): - """ MINMAXINDEX(real[, timeperiod=?]) +cdef class MACD_Stream(Stream): + """ MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?]) - Indexes of lowest and highest values over a specified period (Math Operators) + Moving Average Convergence/Divergence (Momentum Indicators) Inputs: real: (any ndarray) Parameters: - timeperiod: 30 + fastperiod: 12 + slowperiod: 26 + signalperiod: 9 Outputs: - minidx - maxidx + macd + macdsignal + macdhist """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MINMAXINDEX_Close(self._handle) + TA_MACD_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): + def __init__(self, real, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MINMAXINDEX_Stream* handle = NULL - cdef int outminidx - cdef int outmaxidx + cdef TA_MACD_Stream* handle = NULL + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MINMAXINDEX_Lookback(timeperiod) + 1 - retCode = TA_MINMAXINDEX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outminidx, &outmaxidx) + need = lib.TA_MACD_Lookback(fastperiod, slowperiod, signalperiod) + 1 + retCode = TA_MACD_Open(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, signalperiod, &outmacd, &outmacdsignal, &outmacdhist) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MINMAXINDEX_Close(self._handle) + TA_MACD_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -22481,31 +23353,33 @@ cdef class MINMAXINDEX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MINMAXINDEX_Open", retCode, historylen, need) + _stream_open_failed("TA_MACD_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): + def open_and_fill(real, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outminidx - cdef np.ndarray outmaxidx + cdef np.ndarray outmacd + cdef np.ndarray outmacdsignal + cdef np.ndarray outmacdhist cdef int outbegidx cdef int outnbelement - cdef TA_MINMAXINDEX_Stream* handle = NULL - cdef MINMAXINDEX_Stream stream = MINMAXINDEX_Stream.__new__(MINMAXINDEX_Stream) + cdef TA_MACD_Stream* handle = NULL + cdef MACD_Stream stream = MACD_Stream.__new__(MACD_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MINMAXINDEX_Lookback(timeperiod) - outminidx = make_int_array(length, lookback) - outmaxidx = make_int_array(length, lookback) + lookback = begidx + lib.TA_MACD_Lookback(fastperiod, slowperiod, signalperiod) + outmacd = make_double_array(length, lookback) + outmacdsignal = make_double_array(length, lookback) + outmacdhist = make_double_array(length, lookback) with nogil: - retCode = TA_MINMAXINDEX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outminidx.data + lookback, outmaxidx.data + lookback) + retCode = TA_MACD_OpenAndFill(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, signalperiod, &outbegidx, &outnbelement, outmacd.data + lookback, outmacdsignal.data + lookback, outmacdhist.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -22514,122 +23388,4350 @@ cdef class MINMAXINDEX_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MINMAXINDEX_OpenAndFill", retCode, historylen, lookback - begidx + 1) - cdef np.npy_intp i - cdef int* outminidx_data = outminidx.data - for i in range(lookback, length): - outminidx_data[i] += begidx - cdef int* outmaxidx_data = outmaxidx.data - for i in range(lookback, length): - outmaxidx_data[i] += begidx - return stream, (_stream_like((real,), outminidx), _stream_like((real,), outmaxidx)) + _stream_open_failed("TA_MACD_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) @cython.binding(False) def update(self, double real): - cdef int outminidx - cdef int outmaxidx + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist cdef TA_RetCode retCode - cdef int begidx with nogil: with self._mutex: - retCode = TA_MINMAXINDEX_Update(self._handle, real, &outminidx, &outmaxidx) - begidx = self._begidx + retCode = TA_MACD_Update(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) if retCode != 0: - _ta_check_success("TA_MINMAXINDEX_Update", retCode) - return (outminidx + begidx, outmaxidx + begidx) + _ta_check_success("TA_MACD_Update", retCode) + return (outmacd, outmacdsignal, outmacdhist) @cython.binding(False) def peek(self, double real): - cdef int outminidx - cdef int outmaxidx + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist cdef TA_RetCode retCode - cdef int begidx with nogil: with self._mutex: - retCode = TA_MINMAXINDEX_Peek(self._handle, real, &outminidx, &outmaxidx) - begidx = self._begidx + retCode = TA_MACD_Peek(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) if retCode != 0: - _ta_check_success("TA_MINMAXINDEX_Peek", retCode) - return (outminidx + begidx, outmaxidx + begidx) + _ta_check_success("TA_MACD_Peek", retCode) + return (outmacd, outmacdsignal, outmacdhist) @property def value(self): - cdef int outminidx - cdef int outmaxidx + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist cdef TA_RetCode retCode - cdef int begidx with nogil: with self._mutex: - retCode = TA_MINMAXINDEX_Value(self._handle, &outminidx, &outmaxidx) - begidx = self._begidx + retCode = TA_MACD_Value(self._handle, &outmacd, &outmacdsignal, &outmacdhist) if retCode != 0: - _ta_check_success("TA_MINMAXINDEX_Value", retCode) - return (outminidx + begidx, outmaxidx + begidx) + _ta_check_success("TA_MACD_Value", retCode) + return (outmacd, outmacdsignal, outmacdhist) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MINMAXINDEX_OutRange(self._handle, outbegidx, outnbelement) + return TA_MACD_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MINMAXINDEX_Advance(self._handle) + return TA_MACD_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MINMAXINDEX_Stream* clone = NULL - cdef MINMAXINDEX_Stream stream = MINMAXINDEX_Stream.__new__(type(self)) + cdef TA_MACD_Stream* clone = NULL + cdef MACD_Stream stream = MACD_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MINMAXINDEX_Clone(self._handle, &clone) + retCode = TA_MACD_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MINMAXINDEX_Clone", retCode) + _ta_check_success("TA_MACD_Clone", retCode) return stream -cdef class MINUS_DI_Stream(Stream): - """ MINUS_DI(high, low, close[, timeperiod=?]) +cdef class MACDEXT_Stream(Stream): + """ MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?]) - Minus Directional Indicator (Momentum Indicators) + MACD with controllable MA type (Momentum Indicators) Inputs: - prices: ['high', 'low', 'close'] + real: (any ndarray) Parameters: - timeperiod: 14 + fastperiod: 12 + fastmatype: 0 (Simple Moving Average) + slowperiod: 26 + slowmatype: 0 (Simple Moving Average) + signalperiod: 9 + signalmatype: 0 (Simple Moving Average) Outputs: - real + macd + macdsignal + macdhist """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MINUS_DI_Close(self._handle) + TA_MACDEXT_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, close, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def __init__(self, real, int fastperiod=-2**31, int fastmatype=0, int slowperiod=-2**31, int slowmatype=0, int signalperiod=-2**31, int signalmatype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MACDEXT_Stream* handle = NULL + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MACDEXT_Lookback(fastperiod, fastmatype, slowperiod, slowmatype, signalperiod, signalmatype) + 1 + retCode = TA_MACDEXT_Open(&handle, a_real.data + begidx, historylen, fastperiod, fastmatype, slowperiod, slowmatype, signalperiod, signalmatype, &outmacd, &outmacdsignal, &outmacdhist) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MACDEXT_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MACDEXT_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int fastperiod=-2**31, int fastmatype=0, int slowperiod=-2**31, int slowmatype=0, int signalperiod=-2**31, int signalmatype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outmacd + cdef np.ndarray outmacdsignal + cdef np.ndarray outmacdhist + cdef int outbegidx + cdef int outnbelement + cdef TA_MACDEXT_Stream* handle = NULL + cdef MACDEXT_Stream stream = MACDEXT_Stream.__new__(MACDEXT_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MACDEXT_Lookback(fastperiod, fastmatype, slowperiod, slowmatype, signalperiod, signalmatype) + outmacd = make_double_array(length, lookback) + outmacdsignal = make_double_array(length, lookback) + outmacdhist = make_double_array(length, lookback) + with nogil: + retCode = TA_MACDEXT_OpenAndFill(&handle, a_real.data + begidx, historylen, fastperiod, fastmatype, slowperiod, slowmatype, signalperiod, signalmatype, &outbegidx, &outnbelement, outmacd.data + lookback, outmacdsignal.data + lookback, outmacdhist.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MACDEXT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) + + @cython.binding(False) + def update(self, double real): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MACDEXT_Update(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACDEXT_Update", retCode) + return (outmacd, outmacdsignal, outmacdhist) + + @cython.binding(False) + def peek(self, double real): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MACDEXT_Peek(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACDEXT_Peek", retCode) + return (outmacd, outmacdsignal, outmacdhist) + + @property + def value(self): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MACDEXT_Value(self._handle, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACDEXT_Value", retCode) + return (outmacd, outmacdsignal, outmacdhist) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MACDEXT_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MACDEXT_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MACDEXT_Stream* clone = NULL + cdef MACDEXT_Stream stream = MACDEXT_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MACDEXT_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MACDEXT_Clone", retCode) + return stream + + +cdef class MACDFIX_Stream(Stream): + """ MACDFIX(real[, signalperiod=?]) + + Moving Average Convergence/Divergence Fix 12/26 (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + signalperiod: 9 + Outputs: + macd + macdsignal + macdhist + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MACDFIX_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int signalperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MACDFIX_Stream* handle = NULL + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MACDFIX_Lookback(signalperiod) + 1 + retCode = TA_MACDFIX_Open(&handle, a_real.data + begidx, historylen, signalperiod, &outmacd, &outmacdsignal, &outmacdhist) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MACDFIX_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MACDFIX_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int signalperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outmacd + cdef np.ndarray outmacdsignal + cdef np.ndarray outmacdhist + cdef int outbegidx + cdef int outnbelement + cdef TA_MACDFIX_Stream* handle = NULL + cdef MACDFIX_Stream stream = MACDFIX_Stream.__new__(MACDFIX_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MACDFIX_Lookback(signalperiod) + outmacd = make_double_array(length, lookback) + outmacdsignal = make_double_array(length, lookback) + outmacdhist = make_double_array(length, lookback) + with nogil: + retCode = TA_MACDFIX_OpenAndFill(&handle, a_real.data + begidx, historylen, signalperiod, &outbegidx, &outnbelement, outmacd.data + lookback, outmacdsignal.data + lookback, outmacdhist.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MACDFIX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) + + @cython.binding(False) + def update(self, double real): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MACDFIX_Update(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACDFIX_Update", retCode) + return (outmacd, outmacdsignal, outmacdhist) + + @cython.binding(False) + def peek(self, double real): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MACDFIX_Peek(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACDFIX_Peek", retCode) + return (outmacd, outmacdsignal, outmacdhist) + + @property + def value(self): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MACDFIX_Value(self._handle, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACDFIX_Value", retCode) + return (outmacd, outmacdsignal, outmacdhist) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MACDFIX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MACDFIX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MACDFIX_Stream* clone = NULL + cdef MACDFIX_Stream stream = MACDFIX_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MACDFIX_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MACDFIX_Clone", retCode) + return stream + + +cdef class MAMA_Stream(Stream): + """ MAMA(real[, fastlimit=?, slowlimit=?]) + + MESA Adaptive Moving Average (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + fastlimit: 0.5 + slowlimit: 0.05 + Outputs: + mama + fama + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MAMA_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, double fastlimit=-4e37, double slowlimit=-4e37): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MAMA_Stream* handle = NULL + cdef double outmama + cdef double outfama + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MAMA_Lookback(fastlimit, slowlimit) + 1 + retCode = TA_MAMA_Open(&handle, a_real.data + begidx, historylen, fastlimit, slowlimit, &outmama, &outfama) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MAMA_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MAMA_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, double fastlimit=-4e37, double slowlimit=-4e37): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outmama + cdef np.ndarray outfama + cdef int outbegidx + cdef int outnbelement + cdef TA_MAMA_Stream* handle = NULL + cdef MAMA_Stream stream = MAMA_Stream.__new__(MAMA_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MAMA_Lookback(fastlimit, slowlimit) + outmama = make_double_array(length, lookback) + outfama = make_double_array(length, lookback) + with nogil: + retCode = TA_MAMA_OpenAndFill(&handle, a_real.data + begidx, historylen, fastlimit, slowlimit, &outbegidx, &outnbelement, outmama.data + lookback, outfama.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MAMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((real,), outmama), _stream_like((real,), outfama)) + + @cython.binding(False) + def update(self, double real): + cdef double outmama + cdef double outfama + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MAMA_Update(self._handle, real, &outmama, &outfama) + if retCode != 0: + _ta_check_success("TA_MAMA_Update", retCode) + return (outmama, outfama) + + @cython.binding(False) + def peek(self, double real): + cdef double outmama + cdef double outfama + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MAMA_Peek(self._handle, real, &outmama, &outfama) + if retCode != 0: + _ta_check_success("TA_MAMA_Peek", retCode) + return (outmama, outfama) + + @property + def value(self): + cdef double outmama + cdef double outfama + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MAMA_Value(self._handle, &outmama, &outfama) + if retCode != 0: + _ta_check_success("TA_MAMA_Value", retCode) + return (outmama, outfama) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MAMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MAMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MAMA_Stream* clone = NULL + cdef MAMA_Stream stream = MAMA_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MAMA_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MAMA_Clone", retCode) + return stream + + +cdef class MARKETFI_Stream(Stream): + """ MARKETFI(high, low, volume) + + Market Facilitation Index (Volume Indicators) + + Inputs: + prices: ['high', 'low', 'volume'] + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MARKETFI_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, high, low, volume): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MARKETFI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MARKETFI_Lookback() + 1 + retCode = TA_MARKETFI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_volume.data + begidx, historylen, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MARKETFI_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MARKETFI_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(high, low, volume): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MARKETFI_Stream* handle = NULL + cdef MARKETFI_Stream stream = MARKETFI_Stream.__new__(MARKETFI_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MARKETFI_Lookback() + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MARKETFI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MARKETFI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low, volume,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double volume): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MARKETFI_Update(self._handle, high, low, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_MARKETFI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double volume): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MARKETFI_Peek(self._handle, high, low, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_MARKETFI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MARKETFI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MARKETFI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MARKETFI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MARKETFI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MARKETFI_Stream* clone = NULL + cdef MARKETFI_Stream stream = MARKETFI_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MARKETFI_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MARKETFI_Clone", retCode) + return stream + + +cdef class MASSI_Stream(Stream): + """ MASSI(high, low[, fastperiod=?, slowperiod=?]) + + Mass Index (Volatility Indicators) + + Inputs: + prices: ['high', 'low'] + Parameters: + fastperiod: 9 + slowperiod: 25 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MASSI_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, high, low, int fastperiod=-2**31, int slowperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MASSI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MASSI_Lookback(fastperiod, slowperiod) + 1 + retCode = TA_MASSI_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, fastperiod, slowperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MASSI_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MASSI_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(high, low, int fastperiod=-2**31, int slowperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MASSI_Stream* handle = NULL + cdef MASSI_Stream stream = MASSI_Stream.__new__(MASSI_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MASSI_Lookback(fastperiod, slowperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MASSI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, fastperiod, slowperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MASSI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MASSI_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MASSI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MASSI_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MASSI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MASSI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MASSI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MASSI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MASSI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MASSI_Stream* clone = NULL + cdef MASSI_Stream stream = MASSI_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MASSI_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MASSI_Clone", retCode) + return stream + + +cdef class MAVP_Stream(Stream): + """ MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?]) + + Moving average with variable period (Overlap Studies) + + Inputs: + real: (any ndarray) + periods: (any ndarray) + Parameters: + minperiod: 2 + maxperiod: 30 + matype: 0 (Simple Moving Average) + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MAVP_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, periods, int minperiod=-2**31, int maxperiod=-2**31, int matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef np.ndarray a_periods = _stream_input(periods) + cdef tuple arrays = (a_real, a_periods,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MAVP_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MAVP_Lookback(minperiod, maxperiod, matype) + 1 + retCode = TA_MAVP_Open(&handle, a_real.data + begidx, a_periods.data + begidx, historylen, minperiod, maxperiod, matype, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MAVP_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MAVP_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, periods, int minperiod=-2**31, int maxperiod=-2**31, int matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef np.ndarray a_periods = _stream_input(periods) + cdef tuple arrays = (a_real, a_periods,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MAVP_Stream* handle = NULL + cdef MAVP_Stream stream = MAVP_Stream.__new__(MAVP_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MAVP_Lookback(minperiod, maxperiod, matype) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MAVP_OpenAndFill(&handle, a_real.data + begidx, a_periods.data + begidx, historylen, minperiod, maxperiod, matype, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MAVP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real, periods,), outreal) + + @cython.binding(False) + def update(self, double real, double periods): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MAVP_Update(self._handle, real, periods, &outreal) + if retCode != 0: + _ta_check_success("TA_MAVP_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real, double periods): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MAVP_Peek(self._handle, real, periods, &outreal) + if retCode != 0: + _ta_check_success("TA_MAVP_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MAVP_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MAVP_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MAVP_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MAVP_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MAVP_Stream* clone = NULL + cdef MAVP_Stream stream = MAVP_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MAVP_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MAVP_Clone", retCode) + return stream + + +cdef class MAX_Stream(Stream): + """ MAX(real[, timeperiod=?]) + + Highest value over a specified period (Math Operators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MAX_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MAX_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MAX_Lookback(timeperiod) + 1 + retCode = TA_MAX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MAX_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MAX_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MAX_Stream* handle = NULL + cdef MAX_Stream stream = MAX_Stream.__new__(MAX_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MAX_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MAX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MAX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MAX_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MAX_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MAX_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MAX_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MAX_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MAX_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MAX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MAX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MAX_Stream* clone = NULL + cdef MAX_Stream stream = MAX_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MAX_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MAX_Clone", retCode) + return stream + + +cdef class MAXINDEX_Stream(Stream): + """ MAXINDEX(real[, timeperiod=?]) + + Index of highest value over a specified period (Math Operators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + integer + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MAXINDEX_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MAXINDEX_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MAXINDEX_Lookback(timeperiod) + 1 + retCode = TA_MAXINDEX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outinteger) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MAXINDEX_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MAXINDEX_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outinteger + cdef int outbegidx + cdef int outnbelement + cdef TA_MAXINDEX_Stream* handle = NULL + cdef MAXINDEX_Stream stream = MAXINDEX_Stream.__new__(MAXINDEX_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MAXINDEX_Lookback(timeperiod) + outinteger = make_int_array(length, lookback) + with nogil: + retCode = TA_MAXINDEX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MAXINDEX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef np.npy_intp i + cdef int* outinteger_data = outinteger.data + for i in range(lookback, length): + outinteger_data[i] += begidx + return stream, _stream_like((real,), outinteger) + + @cython.binding(False) + def update(self, double real): + cdef int outinteger + cdef TA_RetCode retCode + cdef int begidx + with nogil: + with self._mutex: + retCode = TA_MAXINDEX_Update(self._handle, real, &outinteger) + begidx = self._begidx + if retCode != 0: + _ta_check_success("TA_MAXINDEX_Update", retCode) + return outinteger + begidx + + @cython.binding(False) + def peek(self, double real): + cdef int outinteger + cdef TA_RetCode retCode + cdef int begidx + with nogil: + with self._mutex: + retCode = TA_MAXINDEX_Peek(self._handle, real, &outinteger) + begidx = self._begidx + if retCode != 0: + _ta_check_success("TA_MAXINDEX_Peek", retCode) + return outinteger + begidx + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode + cdef int begidx + with nogil: + with self._mutex: + retCode = TA_MAXINDEX_Value(self._handle, &outinteger) + begidx = self._begidx + if retCode != 0: + _ta_check_success("TA_MAXINDEX_Value", retCode) + return outinteger + begidx + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MAXINDEX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MAXINDEX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MAXINDEX_Stream* clone = NULL + cdef MAXINDEX_Stream stream = MAXINDEX_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MAXINDEX_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MAXINDEX_Clone", retCode) + return stream + + +cdef class MCGD_Stream(Stream): + """ MCGD(real[, timeperiod=?]) + + McGinley Dynamic (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 14 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MCGD_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MCGD_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MCGD_Lookback(timeperiod) + 1 + retCode = TA_MCGD_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MCGD_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MCGD_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MCGD_Stream* handle = NULL + cdef MCGD_Stream stream = MCGD_Stream.__new__(MCGD_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MCGD_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MCGD_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MCGD_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MCGD_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MCGD_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MCGD_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MCGD_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MCGD_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MCGD_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MCGD_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MCGD_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MCGD_Stream* clone = NULL + cdef MCGD_Stream stream = MCGD_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MCGD_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MCGD_Clone", retCode) + return stream + + +cdef class MEDIAN_Stream(Stream): + """ MEDIAN(real[, timeperiod=?]) + + Rolling Median (Statistic Functions) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MEDIAN_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MEDIAN_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MEDIAN_Lookback(timeperiod) + 1 + retCode = TA_MEDIAN_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MEDIAN_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MEDIAN_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MEDIAN_Stream* handle = NULL + cdef MEDIAN_Stream stream = MEDIAN_Stream.__new__(MEDIAN_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MEDIAN_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MEDIAN_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MEDIAN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MEDIAN_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MEDIAN_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MEDIAN_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MEDIAN_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MEDIAN_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MEDIAN_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MEDIAN_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MEDIAN_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MEDIAN_Stream* clone = NULL + cdef MEDIAN_Stream stream = MEDIAN_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MEDIAN_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MEDIAN_Clone", retCode) + return stream + + +cdef class MEDPRICE_Stream(Stream): + """ MEDPRICE(high, low) + + Median Price (Price Transform) + + Inputs: + prices: ['high', 'low'] + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MEDPRICE_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, high, low): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MEDPRICE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MEDPRICE_Lookback() + 1 + retCode = TA_MEDPRICE_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MEDPRICE_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MEDPRICE_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(high, low): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MEDPRICE_Stream* handle = NULL + cdef MEDPRICE_Stream stream = MEDPRICE_Stream.__new__(MEDPRICE_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MEDPRICE_Lookback() + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MEDPRICE_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MEDPRICE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MEDPRICE_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MEDPRICE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MEDPRICE_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MEDPRICE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MEDPRICE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MEDPRICE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MEDPRICE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MEDPRICE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MEDPRICE_Stream* clone = NULL + cdef MEDPRICE_Stream stream = MEDPRICE_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MEDPRICE_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MEDPRICE_Clone", retCode) + return stream + + +cdef class MFI_Stream(Stream): + """ MFI(high, low, close, volume[, timeperiod=?]) + + Money Flow Index (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close', 'volume'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MFI_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, high, low, close, volume, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MFI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MFI_Lookback(timeperiod) + 1 + retCode = TA_MFI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MFI_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MFI_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(high, low, close, volume, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MFI_Stream* handle = NULL + cdef MFI_Stream stream = MFI_Stream.__new__(MFI_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MFI_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MFI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MFI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low, close, volume,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MFI_Update(self._handle, high, low, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_MFI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MFI_Peek(self._handle, high, low, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_MFI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MFI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MFI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MFI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MFI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MFI_Stream* clone = NULL + cdef MFI_Stream stream = MFI_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MFI_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MFI_Clone", retCode) + return stream + + +cdef class MIDPOINT_Stream(Stream): + """ MIDPOINT(real[, timeperiod=?]) + + MidPoint over period (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 14 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MIDPOINT_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MIDPOINT_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MIDPOINT_Lookback(timeperiod) + 1 + retCode = TA_MIDPOINT_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MIDPOINT_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MIDPOINT_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MIDPOINT_Stream* handle = NULL + cdef MIDPOINT_Stream stream = MIDPOINT_Stream.__new__(MIDPOINT_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MIDPOINT_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MIDPOINT_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MIDPOINT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MIDPOINT_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MIDPOINT_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MIDPOINT_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MIDPOINT_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MIDPOINT_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MIDPOINT_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MIDPOINT_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MIDPOINT_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MIDPOINT_Stream* clone = NULL + cdef MIDPOINT_Stream stream = MIDPOINT_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MIDPOINT_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MIDPOINT_Clone", retCode) + return stream + + +cdef class MIDPRICE_Stream(Stream): + """ MIDPRICE(high, low[, timeperiod=?]) + + Midpoint Price over period (Overlap Studies) + + Inputs: + prices: ['high', 'low'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MIDPRICE_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MIDPRICE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MIDPRICE_Lookback(timeperiod) + 1 + retCode = TA_MIDPRICE_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MIDPRICE_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MIDPRICE_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MIDPRICE_Stream* handle = NULL + cdef MIDPRICE_Stream stream = MIDPRICE_Stream.__new__(MIDPRICE_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MIDPRICE_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MIDPRICE_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MIDPRICE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MIDPRICE_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MIDPRICE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MIDPRICE_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MIDPRICE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MIDPRICE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MIDPRICE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MIDPRICE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MIDPRICE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MIDPRICE_Stream* clone = NULL + cdef MIDPRICE_Stream stream = MIDPRICE_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MIDPRICE_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MIDPRICE_Clone", retCode) + return stream + + +cdef class MIN_Stream(Stream): + """ MIN(real[, timeperiod=?]) + + Lowest value over a specified period (Math Operators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MIN_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MIN_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MIN_Lookback(timeperiod) + 1 + retCode = TA_MIN_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MIN_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MIN_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MIN_Stream* handle = NULL + cdef MIN_Stream stream = MIN_Stream.__new__(MIN_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MIN_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MIN_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MIN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MIN_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MIN_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MIN_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MIN_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MIN_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MIN_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MIN_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MIN_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MIN_Stream* clone = NULL + cdef MIN_Stream stream = MIN_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MIN_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MIN_Clone", retCode) + return stream + + +cdef class MININDEX_Stream(Stream): + """ MININDEX(real[, timeperiod=?]) + + Index of lowest value over a specified period (Math Operators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + integer + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MININDEX_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MININDEX_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MININDEX_Lookback(timeperiod) + 1 + retCode = TA_MININDEX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outinteger) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MININDEX_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MININDEX_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outinteger + cdef int outbegidx + cdef int outnbelement + cdef TA_MININDEX_Stream* handle = NULL + cdef MININDEX_Stream stream = MININDEX_Stream.__new__(MININDEX_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MININDEX_Lookback(timeperiod) + outinteger = make_int_array(length, lookback) + with nogil: + retCode = TA_MININDEX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MININDEX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef np.npy_intp i + cdef int* outinteger_data = outinteger.data + for i in range(lookback, length): + outinteger_data[i] += begidx + return stream, _stream_like((real,), outinteger) + + @cython.binding(False) + def update(self, double real): + cdef int outinteger + cdef TA_RetCode retCode + cdef int begidx + with nogil: + with self._mutex: + retCode = TA_MININDEX_Update(self._handle, real, &outinteger) + begidx = self._begidx + if retCode != 0: + _ta_check_success("TA_MININDEX_Update", retCode) + return outinteger + begidx + + @cython.binding(False) + def peek(self, double real): + cdef int outinteger + cdef TA_RetCode retCode + cdef int begidx + with nogil: + with self._mutex: + retCode = TA_MININDEX_Peek(self._handle, real, &outinteger) + begidx = self._begidx + if retCode != 0: + _ta_check_success("TA_MININDEX_Peek", retCode) + return outinteger + begidx + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode + cdef int begidx + with nogil: + with self._mutex: + retCode = TA_MININDEX_Value(self._handle, &outinteger) + begidx = self._begidx + if retCode != 0: + _ta_check_success("TA_MININDEX_Value", retCode) + return outinteger + begidx + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MININDEX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MININDEX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MININDEX_Stream* clone = NULL + cdef MININDEX_Stream stream = MININDEX_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MININDEX_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MININDEX_Clone", retCode) + return stream + + +cdef class MINMAX_Stream(Stream): + """ MINMAX(real[, timeperiod=?]) + + Lowest and highest values over a specified period (Math Operators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + min + max + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MINMAX_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MINMAX_Stream* handle = NULL + cdef double outmin + cdef double outmax + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MINMAX_Lookback(timeperiod) + 1 + retCode = TA_MINMAX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outmin, &outmax) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MINMAX_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MINMAX_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outmin + cdef np.ndarray outmax + cdef int outbegidx + cdef int outnbelement + cdef TA_MINMAX_Stream* handle = NULL + cdef MINMAX_Stream stream = MINMAX_Stream.__new__(MINMAX_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MINMAX_Lookback(timeperiod) + outmin = make_double_array(length, lookback) + outmax = make_double_array(length, lookback) + with nogil: + retCode = TA_MINMAX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outmin.data + lookback, outmax.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MINMAX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((real,), outmin), _stream_like((real,), outmax)) + + @cython.binding(False) + def update(self, double real): + cdef double outmin + cdef double outmax + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MINMAX_Update(self._handle, real, &outmin, &outmax) + if retCode != 0: + _ta_check_success("TA_MINMAX_Update", retCode) + return (outmin, outmax) + + @cython.binding(False) + def peek(self, double real): + cdef double outmin + cdef double outmax + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MINMAX_Peek(self._handle, real, &outmin, &outmax) + if retCode != 0: + _ta_check_success("TA_MINMAX_Peek", retCode) + return (outmin, outmax) + + @property + def value(self): + cdef double outmin + cdef double outmax + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MINMAX_Value(self._handle, &outmin, &outmax) + if retCode != 0: + _ta_check_success("TA_MINMAX_Value", retCode) + return (outmin, outmax) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MINMAX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MINMAX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MINMAX_Stream* clone = NULL + cdef MINMAX_Stream stream = MINMAX_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MINMAX_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MINMAX_Clone", retCode) + return stream + + +cdef class MINMAXINDEX_Stream(Stream): + """ MINMAXINDEX(real[, timeperiod=?]) + + Indexes of lowest and highest values over a specified period (Math Operators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + minidx + maxidx + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MINMAXINDEX_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MINMAXINDEX_Stream* handle = NULL + cdef int outminidx + cdef int outmaxidx + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MINMAXINDEX_Lookback(timeperiod) + 1 + retCode = TA_MINMAXINDEX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outminidx, &outmaxidx) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MINMAXINDEX_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MINMAXINDEX_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outminidx + cdef np.ndarray outmaxidx + cdef int outbegidx + cdef int outnbelement + cdef TA_MINMAXINDEX_Stream* handle = NULL + cdef MINMAXINDEX_Stream stream = MINMAXINDEX_Stream.__new__(MINMAXINDEX_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MINMAXINDEX_Lookback(timeperiod) + outminidx = make_int_array(length, lookback) + outmaxidx = make_int_array(length, lookback) + with nogil: + retCode = TA_MINMAXINDEX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outminidx.data + lookback, outmaxidx.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MINMAXINDEX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef np.npy_intp i + cdef int* outminidx_data = outminidx.data + for i in range(lookback, length): + outminidx_data[i] += begidx + cdef int* outmaxidx_data = outmaxidx.data + for i in range(lookback, length): + outmaxidx_data[i] += begidx + return stream, (_stream_like((real,), outminidx), _stream_like((real,), outmaxidx)) + + @cython.binding(False) + def update(self, double real): + cdef int outminidx + cdef int outmaxidx + cdef TA_RetCode retCode + cdef int begidx + with nogil: + with self._mutex: + retCode = TA_MINMAXINDEX_Update(self._handle, real, &outminidx, &outmaxidx) + begidx = self._begidx + if retCode != 0: + _ta_check_success("TA_MINMAXINDEX_Update", retCode) + return (outminidx + begidx, outmaxidx + begidx) + + @cython.binding(False) + def peek(self, double real): + cdef int outminidx + cdef int outmaxidx + cdef TA_RetCode retCode + cdef int begidx + with nogil: + with self._mutex: + retCode = TA_MINMAXINDEX_Peek(self._handle, real, &outminidx, &outmaxidx) + begidx = self._begidx + if retCode != 0: + _ta_check_success("TA_MINMAXINDEX_Peek", retCode) + return (outminidx + begidx, outmaxidx + begidx) + + @property + def value(self): + cdef int outminidx + cdef int outmaxidx + cdef TA_RetCode retCode + cdef int begidx + with nogil: + with self._mutex: + retCode = TA_MINMAXINDEX_Value(self._handle, &outminidx, &outmaxidx) + begidx = self._begidx + if retCode != 0: + _ta_check_success("TA_MINMAXINDEX_Value", retCode) + return (outminidx + begidx, outmaxidx + begidx) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MINMAXINDEX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MINMAXINDEX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MINMAXINDEX_Stream* clone = NULL + cdef MINMAXINDEX_Stream stream = MINMAXINDEX_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MINMAXINDEX_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MINMAXINDEX_Clone", retCode) + return stream + + +cdef class MINUS_DI_Stream(Stream): + """ MINUS_DI(high, low, close[, timeperiod=?]) + + Minus Directional Indicator (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MINUS_DI_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MINUS_DI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MINUS_DI_Lookback(timeperiod) + 1 + retCode = TA_MINUS_DI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MINUS_DI_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MINUS_DI_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MINUS_DI_Stream* handle = NULL + cdef MINUS_DI_Stream stream = MINUS_DI_Stream.__new__(MINUS_DI_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MINUS_DI_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MINUS_DI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MINUS_DI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MINUS_DI_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_MINUS_DI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MINUS_DI_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_MINUS_DI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MINUS_DI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MINUS_DI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MINUS_DI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MINUS_DI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MINUS_DI_Stream* clone = NULL + cdef MINUS_DI_Stream stream = MINUS_DI_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MINUS_DI_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MINUS_DI_Clone", retCode) + return stream + + +cdef class MINUS_DM_Stream(Stream): + """ MINUS_DM(high, low[, timeperiod=?]) + + Minus Directional Movement (Momentum Indicators) + + Inputs: + prices: ['high', 'low'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MINUS_DM_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MINUS_DM_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MINUS_DM_Lookback(timeperiod) + 1 + retCode = TA_MINUS_DM_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MINUS_DM_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MINUS_DM_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MINUS_DM_Stream* handle = NULL + cdef MINUS_DM_Stream stream = MINUS_DM_Stream.__new__(MINUS_DM_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MINUS_DM_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MINUS_DM_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MINUS_DM_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MINUS_DM_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MINUS_DM_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MINUS_DM_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MINUS_DM_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MINUS_DM_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MINUS_DM_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MINUS_DM_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MINUS_DM_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MINUS_DM_Stream* clone = NULL + cdef MINUS_DM_Stream stream = MINUS_DM_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MINUS_DM_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MINUS_DM_Clone", retCode) + return stream + + +cdef class MOM_Stream(Stream): + """ MOM(real[, timeperiod=?]) + + Momentum (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 10 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MOM_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MOM_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MOM_Lookback(timeperiod) + 1 + retCode = TA_MOM_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MOM_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MOM_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MOM_Stream* handle = NULL + cdef MOM_Stream stream = MOM_Stream.__new__(MOM_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MOM_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MOM_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MOM_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MOM_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MOM_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MOM_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MOM_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MOM_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MOM_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MOM_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MOM_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MOM_Stream* clone = NULL + cdef MOM_Stream stream = MOM_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MOM_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MOM_Clone", retCode) + return stream + + +cdef class MULT_Stream(Stream): + """ MULT(real0, real1) + + Vector Arithmetic Mult (Math Operators) + + Inputs: + real0: (any ndarray) + real1: (any ndarray) + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_MULT_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MULT_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_MULT_Lookback() + 1 + retCode = TA_MULT_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_MULT_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MULT_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_MULT_Stream* handle = NULL + cdef MULT_Stream stream = MULT_Stream.__new__(MULT_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_MULT_Lookback() + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_MULT_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_MULT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real0, real1,), outreal) + + @cython.binding(False) + def update(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MULT_Update(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_MULT_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MULT_Peek(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_MULT_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MULT_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MULT_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_MULT_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_MULT_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MULT_Stream* clone = NULL + cdef MULT_Stream stream = MULT_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_MULT_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_MULT_Clone", retCode) + return stream + + +cdef class NATR_Stream(Stream): + """ NATR(high, low, close[, timeperiod=?]) + + Normalized Average True Range (Volatility Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_NATR_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_NATR_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_NATR_Lookback(timeperiod) + 1 + retCode = TA_NATR_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_NATR_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_NATR_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_NATR_Stream* handle = NULL + cdef NATR_Stream stream = NATR_Stream.__new__(NATR_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_NATR_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_NATR_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_NATR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_NATR_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_NATR_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_NATR_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_NATR_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_NATR_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_NATR_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_NATR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_NATR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_NATR_Stream* clone = NULL + cdef NATR_Stream stream = NATR_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_NATR_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_NATR_Clone", retCode) + return stream + + +cdef class NVI_Stream(Stream): + """ NVI(close, volume) + + Negative Volume Index (Volume Indicators) + + Inputs: + prices: ['close', 'volume'] + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_NVI_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, close, volume): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_NVI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_NVI_Lookback() + 1 + retCode = TA_NVI_Open(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_NVI_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_NVI_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(close, volume): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_NVI_Stream* handle = NULL + cdef NVI_Stream stream = NVI_Stream.__new__(NVI_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_NVI_Lookback() + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_NVI_OpenAndFill(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_NVI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((close, volume,), outreal) + + @cython.binding(False) + def update(self, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_NVI_Update(self._handle, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_NVI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_NVI_Peek(self._handle, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_NVI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_NVI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_NVI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_NVI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_NVI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_NVI_Stream* clone = NULL + cdef NVI_Stream stream = NVI_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_NVI_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_NVI_Clone", retCode) + return stream + + +cdef class OBV_Stream(Stream): + """ OBV(real, volume) + + On Balance Volume (Volume Indicators) + + Inputs: + real: (any ndarray) + prices: ['volume'] + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_OBV_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, volume): + cdef np.ndarray a_real = _stream_input(real) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_real, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_OBV_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_OBV_Lookback() + 1 + retCode = TA_OBV_Open(&handle, a_real.data + begidx, a_volume.data + begidx, historylen, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_OBV_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_OBV_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, volume): + cdef np.ndarray a_real = _stream_input(real) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_real, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_OBV_Stream* handle = NULL + cdef OBV_Stream stream = OBV_Stream.__new__(OBV_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_OBV_Lookback() + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_OBV_OpenAndFill(&handle, a_real.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_OBV_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real, volume,), outreal) + + @cython.binding(False) + def update(self, double real, double volume): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_OBV_Update(self._handle, real, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_OBV_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real, double volume): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_OBV_Peek(self._handle, real, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_OBV_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_OBV_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_OBV_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_OBV_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_OBV_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_OBV_Stream* clone = NULL + cdef OBV_Stream stream = OBV_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_OBV_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_OBV_Clone", retCode) + return stream + + +cdef class PERCENTB_Stream(Stream): + """ PERCENTB(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) + + Bollinger Bands %B (Volatility Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 20 + nbdevup: 2.0 + nbdevdn: 2.0 + matype: 0 (Simple Moving Average) + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_PERCENTB_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_PERCENTB_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_PERCENTB_Lookback(timeperiod, nbdevup, nbdevdn, matype) + 1 + retCode = TA_PERCENTB_Open(&handle, a_real.data + begidx, historylen, timeperiod, nbdevup, nbdevdn, matype, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_PERCENTB_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_PERCENTB_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_PERCENTB_Stream* handle = NULL + cdef PERCENTB_Stream stream = PERCENTB_Stream.__new__(PERCENTB_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_PERCENTB_Lookback(timeperiod, nbdevup, nbdevdn, matype) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_PERCENTB_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, nbdevup, nbdevdn, matype, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_PERCENTB_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PERCENTB_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTB_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PERCENTB_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTB_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PERCENTB_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTB_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_PERCENTB_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_PERCENTB_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_PERCENTB_Stream* clone = NULL + cdef PERCENTB_Stream stream = PERCENTB_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PERCENTB_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_PERCENTB_Clone", retCode) + return stream + + +cdef class PERCENTILE_Stream(Stream): + """ PERCENTILE(real[, timeperiod=?, percentile=?]) + + Percentile (nearest rank) (Statistic Functions) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 100 + percentile: 50.0 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_PERCENTILE_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31, double percentile=50.0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_PERCENTILE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_PERCENTILE_Lookback(timeperiod, percentile) + 1 + retCode = TA_PERCENTILE_Open(&handle, a_real.data + begidx, historylen, timeperiod, percentile, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_PERCENTILE_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_PERCENTILE_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31, double percentile=50.0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_PERCENTILE_Stream* handle = NULL + cdef PERCENTILE_Stream stream = PERCENTILE_Stream.__new__(PERCENTILE_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_PERCENTILE_Lookback(timeperiod, percentile) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_PERCENTILE_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, percentile, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_PERCENTILE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PERCENTILE_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTILE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PERCENTILE_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTILE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PERCENTILE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTILE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_PERCENTILE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_PERCENTILE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_PERCENTILE_Stream* clone = NULL + cdef PERCENTILE_Stream stream = PERCENTILE_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PERCENTILE_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_PERCENTILE_Clone", retCode) + return stream + + +cdef class PERCENTRANK_Stream(Stream): + """ PERCENTRANK(real[, timeperiod=?]) + + Percent Rank (Statistic Functions) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 100 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_PERCENTRANK_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_PERCENTRANK_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_PERCENTRANK_Lookback(timeperiod) + 1 + retCode = TA_PERCENTRANK_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_PERCENTRANK_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_PERCENTRANK_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_PERCENTRANK_Stream* handle = NULL + cdef PERCENTRANK_Stream stream = PERCENTRANK_Stream.__new__(PERCENTRANK_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_PERCENTRANK_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_PERCENTRANK_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_PERCENTRANK_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PERCENTRANK_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTRANK_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PERCENTRANK_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTRANK_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PERCENTRANK_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTRANK_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_PERCENTRANK_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_PERCENTRANK_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_PERCENTRANK_Stream* clone = NULL + cdef PERCENTRANK_Stream stream = PERCENTRANK_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PERCENTRANK_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_PERCENTRANK_Clone", retCode) + return stream + + +cdef class PLUS_DI_Stream(Stream): + """ PLUS_DI(high, low, close[, timeperiod=?]) + + Plus Directional Indicator (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_PLUS_DI_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_PLUS_DI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_PLUS_DI_Lookback(timeperiod) + 1 + retCode = TA_PLUS_DI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_PLUS_DI_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_PLUS_DI_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_PLUS_DI_Stream* handle = NULL + cdef PLUS_DI_Stream stream = PLUS_DI_Stream.__new__(PLUS_DI_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_PLUS_DI_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_PLUS_DI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_PLUS_DI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PLUS_DI_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_PLUS_DI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PLUS_DI_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_PLUS_DI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PLUS_DI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_PLUS_DI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_PLUS_DI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_PLUS_DI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_PLUS_DI_Stream* clone = NULL + cdef PLUS_DI_Stream stream = PLUS_DI_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PLUS_DI_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_PLUS_DI_Clone", retCode) + return stream + + +cdef class PLUS_DM_Stream(Stream): + """ PLUS_DM(high, low[, timeperiod=?]) + + Plus Directional Movement (Momentum Indicators) + + Inputs: + prices: ['high', 'low'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_PLUS_DM_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_PLUS_DM_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_PLUS_DM_Lookback(timeperiod) + 1 + retCode = TA_PLUS_DM_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_PLUS_DM_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_PLUS_DM_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_PLUS_DM_Stream* handle = NULL + cdef PLUS_DM_Stream stream = PLUS_DM_Stream.__new__(PLUS_DM_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_PLUS_DM_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_PLUS_DM_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_PLUS_DM_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PLUS_DM_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_PLUS_DM_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PLUS_DM_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_PLUS_DM_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PLUS_DM_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_PLUS_DM_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_PLUS_DM_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_PLUS_DM_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_PLUS_DM_Stream* clone = NULL + cdef PLUS_DM_Stream stream = PLUS_DM_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_PLUS_DM_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_PLUS_DM_Clone", retCode) + return stream + + +cdef class PPO_Stream(Stream): + """ PPO(real[, fastperiod=?, slowperiod=?, matype=?]) + + Percentage Price Oscillator (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + fastperiod: 12 + slowperiod: 26 + matype: 1 (Exponential Moving Average) + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_PPO_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MINUS_DI_Stream* handle = NULL + cdef TA_PPO_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MINUS_DI_Lookback(timeperiod) + 1 - retCode = TA_MINUS_DI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_PPO_Lookback(fastperiod, slowperiod, matype) + 1 + retCode = TA_PPO_Open(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, matype, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MINUS_DI_Close(self._handle) + TA_PPO_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -22638,14 +27740,12 @@ cdef class MINUS_DI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MINUS_DI_Open", retCode, historylen, need) + _stream_open_failed("TA_PPO_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, close, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def open_and_fill(real, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -22653,16 +27753,16 @@ cdef class MINUS_DI_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MINUS_DI_Stream* handle = NULL - cdef MINUS_DI_Stream stream = MINUS_DI_Stream.__new__(MINUS_DI_Stream) + cdef TA_PPO_Stream* handle = NULL + cdef PPO_Stream stream = PPO_Stream.__new__(PPO_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MINUS_DI_Lookback(timeperiod) + lookback = begidx + lib.TA_PPO_Lookback(fastperiod, slowperiod, matype) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MINUS_DI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_PPO_OpenAndFill(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, matype, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -22671,29 +27771,29 @@ cdef class MINUS_DI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MINUS_DI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low, close,), outreal) + _stream_open_failed("TA_PPO_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double high, double low, double close): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MINUS_DI_Update(self._handle, high, low, close, &outreal) + retCode = TA_PPO_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MINUS_DI_Update", retCode) + _ta_check_success("TA_PPO_Update", retCode) return outreal @cython.binding(False) - def peek(self, double high, double low, double close): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MINUS_DI_Peek(self._handle, high, low, close, &outreal) + retCode = TA_PPO_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_MINUS_DI_Peek", retCode) + _ta_check_success("TA_PPO_Peek", retCode) return outreal @property @@ -22702,43 +27802,44 @@ cdef class MINUS_DI_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MINUS_DI_Value(self._handle, &outreal) + retCode = TA_PPO_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MINUS_DI_Value", retCode) + _ta_check_success("TA_PPO_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MINUS_DI_OutRange(self._handle, outbegidx, outnbelement) + return TA_PPO_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MINUS_DI_Advance(self._handle) + return TA_PPO_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MINUS_DI_Stream* clone = NULL - cdef MINUS_DI_Stream stream = MINUS_DI_Stream.__new__(type(self)) + cdef TA_PPO_Stream* clone = NULL + cdef PPO_Stream stream = PPO_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MINUS_DI_Clone(self._handle, &clone) + retCode = TA_PPO_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MINUS_DI_Clone", retCode) + _ta_check_success("TA_PPO_Clone", retCode) return stream -cdef class MINUS_DM_Stream(Stream): - """ MINUS_DM(high, low[, timeperiod=?]) +cdef class PSO_Stream(Stream): + """ PSO(high, low, close[, fastk_period=?, emaperiod=?]) - Minus Directional Movement (Momentum Indicators) + Premier Stochastic Oscillator (Momentum Indicators) Inputs: - prices: ['high', 'low'] + prices: ['high', 'low', 'close'] Parameters: - timeperiod: 14 + fastk_period: 8 + emaperiod: 5 Outputs: real """ @@ -22746,30 +27847,31 @@ cdef class MINUS_DM_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MINUS_DM_Close(self._handle) + TA_PSO_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, int timeperiod=-2**31): + def __init__(self, high, low, close, int fastk_period=-2**31, int emaperiod=-2**31): cdef np.ndarray a_high = _stream_input(high) cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MINUS_DM_Stream* handle = NULL + cdef TA_PSO_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MINUS_DM_Lookback(timeperiod) + 1 - retCode = TA_MINUS_DM_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_PSO_Lookback(fastk_period, emaperiod) + 1 + retCode = TA_PSO_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, emaperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MINUS_DM_Close(self._handle) + TA_PSO_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -22778,13 +27880,14 @@ cdef class MINUS_DM_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MINUS_DM_Open", retCode, historylen, need) + _stream_open_failed("TA_PSO_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, int timeperiod=-2**31): + def open_and_fill(high, low, close, int fastk_period=-2**31, int emaperiod=-2**31): cdef np.ndarray a_high = _stream_input(high) cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -22792,16 +27895,16 @@ cdef class MINUS_DM_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MINUS_DM_Stream* handle = NULL - cdef MINUS_DM_Stream stream = MINUS_DM_Stream.__new__(MINUS_DM_Stream) + cdef TA_PSO_Stream* handle = NULL + cdef PSO_Stream stream = PSO_Stream.__new__(PSO_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MINUS_DM_Lookback(timeperiod) + lookback = begidx + lib.TA_PSO_Lookback(fastk_period, emaperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MINUS_DM_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_PSO_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, emaperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -22810,29 +27913,29 @@ cdef class MINUS_DM_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MINUS_DM_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low,), outreal) + _stream_open_failed("TA_PSO_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low, close,), outreal) @cython.binding(False) - def update(self, double high, double low): + def update(self, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MINUS_DM_Update(self._handle, high, low, &outreal) + retCode = TA_PSO_Update(self._handle, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_MINUS_DM_Update", retCode) + _ta_check_success("TA_PSO_Update", retCode) return outreal @cython.binding(False) - def peek(self, double high, double low): + def peek(self, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MINUS_DM_Peek(self._handle, high, low, &outreal) + retCode = TA_PSO_Peek(self._handle, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_MINUS_DM_Peek", retCode) + _ta_check_success("TA_PSO_Peek", retCode) return outreal @property @@ -22841,43 +27944,41 @@ cdef class MINUS_DM_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MINUS_DM_Value(self._handle, &outreal) + retCode = TA_PSO_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MINUS_DM_Value", retCode) + _ta_check_success("TA_PSO_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MINUS_DM_OutRange(self._handle, outbegidx, outnbelement) + return TA_PSO_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MINUS_DM_Advance(self._handle) + return TA_PSO_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MINUS_DM_Stream* clone = NULL - cdef MINUS_DM_Stream stream = MINUS_DM_Stream.__new__(type(self)) + cdef TA_PSO_Stream* clone = NULL + cdef PSO_Stream stream = PSO_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MINUS_DM_Clone(self._handle, &clone) + retCode = TA_PSO_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MINUS_DM_Clone", retCode) + _ta_check_success("TA_PSO_Clone", retCode) return stream -cdef class MOM_Stream(Stream): - """ MOM(real[, timeperiod=?]) +cdef class PVI_Stream(Stream): + """ PVI(close, volume) - Momentum (Momentum Indicators) + Positive Volume Index (Volume Indicators) Inputs: - real: (any ndarray) - Parameters: - timeperiod: 10 + prices: ['close', 'volume'] Outputs: real """ @@ -22885,29 +27986,30 @@ cdef class MOM_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MOM_Close(self._handle) + TA_PVI_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, close, volume): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MOM_Stream* handle = NULL + cdef TA_PVI_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MOM_Lookback(timeperiod) + 1 - retCode = TA_MOM_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_PVI_Lookback() + 1 + retCode = TA_PVI_Open(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MOM_Close(self._handle) + TA_PVI_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -22916,12 +28018,13 @@ cdef class MOM_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MOM_Open", retCode, historylen, need) + _stream_open_failed("TA_PVI_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(close, volume): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -22929,16 +28032,16 @@ cdef class MOM_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MOM_Stream* handle = NULL - cdef MOM_Stream stream = MOM_Stream.__new__(MOM_Stream) + cdef TA_PVI_Stream* handle = NULL + cdef PVI_Stream stream = PVI_Stream.__new__(PVI_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MOM_Lookback(timeperiod) + lookback = begidx + lib.TA_PVI_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MOM_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_PVI_OpenAndFill(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -22947,29 +28050,29 @@ cdef class MOM_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MOM_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_PVI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((close, volume,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double close, double volume): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MOM_Update(self._handle, real, &outreal) + retCode = TA_PVI_Update(self._handle, close, volume, &outreal) if retCode != 0: - _ta_check_success("TA_MOM_Update", retCode) + _ta_check_success("TA_PVI_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double close, double volume): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MOM_Peek(self._handle, real, &outreal) + retCode = TA_PVI_Peek(self._handle, close, volume, &outreal) if retCode != 0: - _ta_check_success("TA_MOM_Peek", retCode) + _ta_check_success("TA_PVI_Peek", retCode) return outreal @property @@ -22978,42 +28081,45 @@ cdef class MOM_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MOM_Value(self._handle, &outreal) + retCode = TA_PVI_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MOM_Value", retCode) + _ta_check_success("TA_PVI_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MOM_OutRange(self._handle, outbegidx, outnbelement) + return TA_PVI_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MOM_Advance(self._handle) + return TA_PVI_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MOM_Stream* clone = NULL - cdef MOM_Stream stream = MOM_Stream.__new__(type(self)) + cdef TA_PVI_Stream* clone = NULL + cdef PVI_Stream stream = PVI_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MOM_Clone(self._handle, &clone) + retCode = TA_PVI_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MOM_Clone", retCode) + _ta_check_success("TA_PVI_Clone", retCode) return stream -cdef class MULT_Stream(Stream): - """ MULT(real0, real1) +cdef class PVO_Stream(Stream): + """ PVO(volume[, fastperiod=?, slowperiod=?, matype=?]) - Vector Arithmetic Mult (Math Operators) + Percentage Volume Oscillator (Volume Indicators) Inputs: - real0: (any ndarray) - real1: (any ndarray) + prices: ['volume'] + Parameters: + fastperiod: 12 + slowperiod: 26 + matype: 1 (Exponential Moving Average) Outputs: real """ @@ -23021,30 +28127,29 @@ cdef class MULT_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_MULT_Close(self._handle) + TA_PVO_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real0, real1): - cdef np.ndarray a_real0 = _stream_input(real0) - cdef np.ndarray a_real1 = _stream_input(real1) - cdef tuple arrays = (a_real0, a_real1,) + def __init__(self, volume, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_MULT_Stream* handle = NULL + cdef TA_PVO_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_MULT_Lookback() + 1 - retCode = TA_MULT_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outreal) + need = lib.TA_PVO_Lookback(fastperiod, slowperiod, matype) + 1 + retCode = TA_PVO_Open(&handle, a_volume.data + begidx, historylen, fastperiod, slowperiod, matype, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_MULT_Close(self._handle) + TA_PVO_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -23053,13 +28158,12 @@ cdef class MULT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MULT_Open", retCode, historylen, need) + _stream_open_failed("TA_PVO_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real0, real1): - cdef np.ndarray a_real0 = _stream_input(real0) - cdef np.ndarray a_real1 = _stream_input(real1) - cdef tuple arrays = (a_real0, a_real1,) + def open_and_fill(volume, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -23067,16 +28171,16 @@ cdef class MULT_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_MULT_Stream* handle = NULL - cdef MULT_Stream stream = MULT_Stream.__new__(MULT_Stream) + cdef TA_PVO_Stream* handle = NULL + cdef PVO_Stream stream = PVO_Stream.__new__(PVO_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_MULT_Lookback() + lookback = begidx + lib.TA_PVO_Lookback(fastperiod, slowperiod, matype) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_MULT_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_PVO_OpenAndFill(&handle, a_volume.data + begidx, historylen, fastperiod, slowperiod, matype, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -23085,29 +28189,29 @@ cdef class MULT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_MULT_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real0, real1,), outreal) + _stream_open_failed("TA_PVO_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((volume,), outreal) @cython.binding(False) - def update(self, double real0, double real1): + def update(self, double volume): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MULT_Update(self._handle, real0, real1, &outreal) + retCode = TA_PVO_Update(self._handle, volume, &outreal) if retCode != 0: - _ta_check_success("TA_MULT_Update", retCode) + _ta_check_success("TA_PVO_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real0, double real1): + def peek(self, double volume): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MULT_Peek(self._handle, real0, real1, &outreal) + retCode = TA_PVO_Peek(self._handle, volume, &outreal) if retCode != 0: - _ta_check_success("TA_MULT_Peek", retCode) + _ta_check_success("TA_PVO_Peek", retCode) return outreal @property @@ -23116,43 +28220,41 @@ cdef class MULT_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MULT_Value(self._handle, &outreal) + retCode = TA_PVO_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_MULT_Value", retCode) + _ta_check_success("TA_PVO_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_MULT_OutRange(self._handle, outbegidx, outnbelement) + return TA_PVO_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_MULT_Advance(self._handle) + return TA_PVO_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_MULT_Stream* clone = NULL - cdef MULT_Stream stream = MULT_Stream.__new__(type(self)) + cdef TA_PVO_Stream* clone = NULL + cdef PVO_Stream stream = PVO_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_MULT_Clone(self._handle, &clone) + retCode = TA_PVO_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_MULT_Clone", retCode) + _ta_check_success("TA_PVO_Clone", retCode) return stream -cdef class NATR_Stream(Stream): - """ NATR(high, low, close[, timeperiod=?]) +cdef class PVT_Stream(Stream): + """ PVT(close, volume) - Normalized Average True Range (Volatility Indicators) + Price Volume Trend (Volume Indicators) Inputs: - prices: ['high', 'low', 'close'] - Parameters: - timeperiod: 14 + prices: ['close', 'volume'] Outputs: real """ @@ -23160,31 +28262,30 @@ cdef class NATR_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_NATR_Close(self._handle) + TA_PVT_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, close, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) + def __init__(self, close, volume): cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_NATR_Stream* handle = NULL + cdef TA_PVT_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_NATR_Lookback(timeperiod) + 1 - retCode = TA_NATR_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_PVT_Lookback() + 1 + retCode = TA_PVT_Open(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_NATR_Close(self._handle) + TA_PVT_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -23193,14 +28294,13 @@ cdef class NATR_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_NATR_Open", retCode, historylen, need) + _stream_open_failed("TA_PVT_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, close, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) + def open_and_fill(close, volume): cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -23208,16 +28308,16 @@ cdef class NATR_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_NATR_Stream* handle = NULL - cdef NATR_Stream stream = NATR_Stream.__new__(NATR_Stream) + cdef TA_PVT_Stream* handle = NULL + cdef PVT_Stream stream = PVT_Stream.__new__(PVT_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_NATR_Lookback(timeperiod) + lookback = begidx + lib.TA_PVT_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_NATR_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_PVT_OpenAndFill(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -23226,29 +28326,29 @@ cdef class NATR_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_NATR_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low, close,), outreal) + _stream_open_failed("TA_PVT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((close, volume,), outreal) @cython.binding(False) - def update(self, double high, double low, double close): + def update(self, double close, double volume): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_NATR_Update(self._handle, high, low, close, &outreal) + retCode = TA_PVT_Update(self._handle, close, volume, &outreal) if retCode != 0: - _ta_check_success("TA_NATR_Update", retCode) + _ta_check_success("TA_PVT_Update", retCode) return outreal @cython.binding(False) - def peek(self, double high, double low, double close): + def peek(self, double close, double volume): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_NATR_Peek(self._handle, high, low, close, &outreal) + retCode = TA_PVT_Peek(self._handle, close, volume, &outreal) if retCode != 0: - _ta_check_success("TA_NATR_Peek", retCode) + _ta_check_success("TA_PVT_Peek", retCode) return outreal @property @@ -23257,41 +28357,43 @@ cdef class NATR_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_NATR_Value(self._handle, &outreal) + retCode = TA_PVT_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_NATR_Value", retCode) + _ta_check_success("TA_PVT_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_NATR_OutRange(self._handle, outbegidx, outnbelement) + return TA_PVT_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_NATR_Advance(self._handle) + return TA_PVT_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_NATR_Stream* clone = NULL - cdef NATR_Stream stream = NATR_Stream.__new__(type(self)) + cdef TA_PVT_Stream* clone = NULL + cdef PVT_Stream stream = PVT_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_NATR_Clone(self._handle, &clone) + retCode = TA_PVT_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_NATR_Clone", retCode) + _ta_check_success("TA_PVT_Clone", retCode) return stream -cdef class NVI_Stream(Stream): - """ NVI(close, volume) +cdef class QSTICK_Stream(Stream): + """ QSTICK(open, close[, timeperiod=?]) - Negative Volume Index (Volume Indicators) + Qstick (Momentum Indicators) Inputs: - prices: ['close', 'volume'] + prices: ['open', 'close'] + Parameters: + timeperiod: 10 Outputs: real """ @@ -23299,30 +28401,30 @@ cdef class NVI_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_NVI_Close(self._handle) + TA_QSTICK_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, close, volume): + def __init__(self, open, close, int timeperiod=-2**31): + cdef np.ndarray a_open = _stream_input(open) cdef np.ndarray a_close = _stream_input(close) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_close, a_volume,) + cdef tuple arrays = (a_open, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_NVI_Stream* handle = NULL + cdef TA_QSTICK_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_NVI_Lookback() + 1 - retCode = TA_NVI_Open(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outreal) + need = lib.TA_QSTICK_Lookback(timeperiod) + 1 + retCode = TA_QSTICK_Open(&handle, a_open.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_NVI_Close(self._handle) + TA_QSTICK_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -23331,13 +28433,13 @@ cdef class NVI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_NVI_Open", retCode, historylen, need) + _stream_open_failed("TA_QSTICK_Open", retCode, historylen, need) @staticmethod - def open_and_fill(close, volume): + def open_and_fill(open, close, int timeperiod=-2**31): + cdef np.ndarray a_open = _stream_input(open) cdef np.ndarray a_close = _stream_input(close) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_close, a_volume,) + cdef tuple arrays = (a_open, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -23345,16 +28447,16 @@ cdef class NVI_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_NVI_Stream* handle = NULL - cdef NVI_Stream stream = NVI_Stream.__new__(NVI_Stream) + cdef TA_QSTICK_Stream* handle = NULL + cdef QSTICK_Stream stream = QSTICK_Stream.__new__(QSTICK_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_NVI_Lookback() + lookback = begidx + lib.TA_QSTICK_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_NVI_OpenAndFill(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_QSTICK_OpenAndFill(&handle, a_open.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -23363,29 +28465,29 @@ cdef class NVI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_NVI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((close, volume,), outreal) + _stream_open_failed("TA_QSTICK_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((open, close,), outreal) @cython.binding(False) - def update(self, double close, double volume): + def update(self, double open, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_NVI_Update(self._handle, close, volume, &outreal) + retCode = TA_QSTICK_Update(self._handle, open, close, &outreal) if retCode != 0: - _ta_check_success("TA_NVI_Update", retCode) + _ta_check_success("TA_QSTICK_Update", retCode) return outreal @cython.binding(False) - def peek(self, double close, double volume): + def peek(self, double open, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_NVI_Peek(self._handle, close, volume, &outreal) + retCode = TA_QSTICK_Peek(self._handle, open, close, &outreal) if retCode != 0: - _ta_check_success("TA_NVI_Peek", retCode) + _ta_check_success("TA_QSTICK_Peek", retCode) return outreal @property @@ -23394,42 +28496,43 @@ cdef class NVI_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_NVI_Value(self._handle, &outreal) + retCode = TA_QSTICK_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_NVI_Value", retCode) + _ta_check_success("TA_QSTICK_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_NVI_OutRange(self._handle, outbegidx, outnbelement) + return TA_QSTICK_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_NVI_Advance(self._handle) + return TA_QSTICK_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_NVI_Stream* clone = NULL - cdef NVI_Stream stream = NVI_Stream.__new__(type(self)) + cdef TA_QSTICK_Stream* clone = NULL + cdef QSTICK_Stream stream = QSTICK_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_NVI_Clone(self._handle, &clone) + retCode = TA_QSTICK_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_NVI_Clone", retCode) + _ta_check_success("TA_QSTICK_Clone", retCode) return stream -cdef class OBV_Stream(Stream): - """ OBV(real, volume) +cdef class RMA_Stream(Stream): + """ RMA(real[, timeperiod=?]) - On Balance Volume (Volume Indicators) + Wilder's Smoothed Moving Average (Overlap Studies) Inputs: real: (any ndarray) - prices: ['volume'] + Parameters: + timeperiod: 30 Outputs: real """ @@ -23437,30 +28540,29 @@ cdef class OBV_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_OBV_Close(self._handle) + TA_RMA_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, volume): + def __init__(self, real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_real, a_volume,) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_OBV_Stream* handle = NULL + cdef TA_RMA_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_OBV_Lookback() + 1 - retCode = TA_OBV_Open(&handle, a_real.data + begidx, a_volume.data + begidx, historylen, &outreal) + need = lib.TA_RMA_Lookback(timeperiod) + 1 + retCode = TA_RMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_OBV_Close(self._handle) + TA_RMA_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -23469,13 +28571,12 @@ cdef class OBV_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_OBV_Open", retCode, historylen, need) + _stream_open_failed("TA_RMA_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, volume): + def open_and_fill(real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_real, a_volume,) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -23483,16 +28584,16 @@ cdef class OBV_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_OBV_Stream* handle = NULL - cdef OBV_Stream stream = OBV_Stream.__new__(OBV_Stream) + cdef TA_RMA_Stream* handle = NULL + cdef RMA_Stream stream = RMA_Stream.__new__(RMA_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_OBV_Lookback() + lookback = begidx + lib.TA_RMA_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_OBV_OpenAndFill(&handle, a_real.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_RMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -23501,29 +28602,29 @@ cdef class OBV_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_OBV_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real, volume,), outreal) + _stream_open_failed("TA_RMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double real, double volume): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_OBV_Update(self._handle, real, volume, &outreal) + retCode = TA_RMA_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_OBV_Update", retCode) + _ta_check_success("TA_RMA_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real, double volume): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_OBV_Peek(self._handle, real, volume, &outreal) + retCode = TA_RMA_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_OBV_Peek", retCode) + _ta_check_success("TA_RMA_Peek", retCode) return outreal @property @@ -23532,44 +28633,43 @@ cdef class OBV_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_OBV_Value(self._handle, &outreal) + retCode = TA_RMA_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_OBV_Value", retCode) + _ta_check_success("TA_RMA_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_OBV_OutRange(self._handle, outbegidx, outnbelement) + return TA_RMA_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_OBV_Advance(self._handle) + return TA_RMA_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_OBV_Stream* clone = NULL - cdef OBV_Stream stream = OBV_Stream.__new__(type(self)) + cdef TA_RMA_Stream* clone = NULL + cdef RMA_Stream stream = RMA_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_OBV_Clone(self._handle, &clone) + retCode = TA_RMA_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_OBV_Clone", retCode) + _ta_check_success("TA_RMA_Clone", retCode) return stream -cdef class PERCENTILE_Stream(Stream): - """ PERCENTILE(real[, timeperiod=?, percentile=?]) +cdef class ROC_Stream(Stream): + """ ROC(real[, timeperiod=?]) - Percentile (nearest rank) (Statistic Functions) + Rate of change : ((real/prevPrice)-1)*100 (Momentum Indicators) Inputs: real: (any ndarray) Parameters: - timeperiod: 30 - percentile: 50.0 + timeperiod: 10 Outputs: real """ @@ -23577,29 +28677,29 @@ cdef class PERCENTILE_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_PERCENTILE_Close(self._handle) + TA_ROC_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31, double percentile=50.0): + def __init__(self, real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_PERCENTILE_Stream* handle = NULL + cdef TA_ROC_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_PERCENTILE_Lookback(timeperiod, percentile) + 1 - retCode = TA_PERCENTILE_Open(&handle, a_real.data + begidx, historylen, timeperiod, percentile, &outreal) + need = lib.TA_ROC_Lookback(timeperiod) + 1 + retCode = TA_ROC_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_PERCENTILE_Close(self._handle) + TA_ROC_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -23608,10 +28708,10 @@ cdef class PERCENTILE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PERCENTILE_Open", retCode, historylen, need) + _stream_open_failed("TA_ROC_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31, double percentile=50.0): + def open_and_fill(real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -23621,16 +28721,16 @@ cdef class PERCENTILE_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_PERCENTILE_Stream* handle = NULL - cdef PERCENTILE_Stream stream = PERCENTILE_Stream.__new__(PERCENTILE_Stream) + cdef TA_ROC_Stream* handle = NULL + cdef ROC_Stream stream = ROC_Stream.__new__(ROC_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_PERCENTILE_Lookback(timeperiod, percentile) + lookback = begidx + lib.TA_ROC_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_PERCENTILE_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, percentile, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_ROC_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -23639,7 +28739,7 @@ cdef class PERCENTILE_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PERCENTILE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_ROC_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -23648,9 +28748,9 @@ cdef class PERCENTILE_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PERCENTILE_Update(self._handle, real, &outreal) + retCode = TA_ROC_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_PERCENTILE_Update", retCode) + _ta_check_success("TA_ROC_Update", retCode) return outreal @cython.binding(False) @@ -23659,9 +28759,9 @@ cdef class PERCENTILE_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PERCENTILE_Peek(self._handle, real, &outreal) + retCode = TA_ROC_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_PERCENTILE_Peek", retCode) + _ta_check_success("TA_ROC_Peek", retCode) return outreal @property @@ -23670,43 +28770,43 @@ cdef class PERCENTILE_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PERCENTILE_Value(self._handle, &outreal) + retCode = TA_ROC_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_PERCENTILE_Value", retCode) + _ta_check_success("TA_ROC_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_PERCENTILE_OutRange(self._handle, outbegidx, outnbelement) + return TA_ROC_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_PERCENTILE_Advance(self._handle) + return TA_ROC_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_PERCENTILE_Stream* clone = NULL - cdef PERCENTILE_Stream stream = PERCENTILE_Stream.__new__(type(self)) + cdef TA_ROC_Stream* clone = NULL + cdef ROC_Stream stream = ROC_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PERCENTILE_Clone(self._handle, &clone) + retCode = TA_ROC_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_PERCENTILE_Clone", retCode) + _ta_check_success("TA_ROC_Clone", retCode) return stream -cdef class PERCENTRANK_Stream(Stream): - """ PERCENTRANK(real[, timeperiod=?]) +cdef class ROCP_Stream(Stream): + """ ROCP(real[, timeperiod=?]) - Percent Rank (Statistic Functions) + Rate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators) Inputs: real: (any ndarray) Parameters: - timeperiod: 100 + timeperiod: 10 Outputs: real """ @@ -23714,7 +28814,7 @@ cdef class PERCENTRANK_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_PERCENTRANK_Close(self._handle) + TA_ROCP_Close(self._handle) self._handle = NULL _ta_stream_closed() @@ -23724,19 +28824,19 @@ cdef class PERCENTRANK_Stream(Stream): cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_PERCENTRANK_Stream* handle = NULL + cdef TA_ROCP_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_PERCENTRANK_Lookback(timeperiod) + 1 - retCode = TA_PERCENTRANK_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_ROCP_Lookback(timeperiod) + 1 + retCode = TA_ROCP_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_PERCENTRANK_Close(self._handle) + TA_ROCP_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -23745,7 +28845,7 @@ cdef class PERCENTRANK_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PERCENTRANK_Open", retCode, historylen, need) + _stream_open_failed("TA_ROCP_Open", retCode, historylen, need) @staticmethod def open_and_fill(real, int timeperiod=-2**31): @@ -23758,16 +28858,16 @@ cdef class PERCENTRANK_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_PERCENTRANK_Stream* handle = NULL - cdef PERCENTRANK_Stream stream = PERCENTRANK_Stream.__new__(PERCENTRANK_Stream) + cdef TA_ROCP_Stream* handle = NULL + cdef ROCP_Stream stream = ROCP_Stream.__new__(ROCP_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_PERCENTRANK_Lookback(timeperiod) + lookback = begidx + lib.TA_ROCP_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_PERCENTRANK_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_ROCP_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -23776,7 +28876,7 @@ cdef class PERCENTRANK_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PERCENTRANK_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_ROCP_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -23785,9 +28885,9 @@ cdef class PERCENTRANK_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PERCENTRANK_Update(self._handle, real, &outreal) + retCode = TA_ROCP_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_PERCENTRANK_Update", retCode) + _ta_check_success("TA_ROCP_Update", retCode) return outreal @cython.binding(False) @@ -23796,9 +28896,9 @@ cdef class PERCENTRANK_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PERCENTRANK_Peek(self._handle, real, &outreal) + retCode = TA_ROCP_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_PERCENTRANK_Peek", retCode) + _ta_check_success("TA_ROCP_Peek", retCode) return outreal @property @@ -23807,43 +28907,43 @@ cdef class PERCENTRANK_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PERCENTRANK_Value(self._handle, &outreal) + retCode = TA_ROCP_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_PERCENTRANK_Value", retCode) + _ta_check_success("TA_ROCP_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_PERCENTRANK_OutRange(self._handle, outbegidx, outnbelement) + return TA_ROCP_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_PERCENTRANK_Advance(self._handle) + return TA_ROCP_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_PERCENTRANK_Stream* clone = NULL - cdef PERCENTRANK_Stream stream = PERCENTRANK_Stream.__new__(type(self)) + cdef TA_ROCP_Stream* clone = NULL + cdef ROCP_Stream stream = ROCP_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PERCENTRANK_Clone(self._handle, &clone) + retCode = TA_ROCP_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_PERCENTRANK_Clone", retCode) + _ta_check_success("TA_ROCP_Clone", retCode) return stream -cdef class PLUS_DI_Stream(Stream): - """ PLUS_DI(high, low, close[, timeperiod=?]) +cdef class ROCR_Stream(Stream): + """ ROCR(real[, timeperiod=?]) - Plus Directional Indicator (Momentum Indicators) + Rate of change ratio: (real/prevPrice) (Momentum Indicators) Inputs: - prices: ['high', 'low', 'close'] + real: (any ndarray) Parameters: - timeperiod: 14 + timeperiod: 10 Outputs: real """ @@ -23851,31 +28951,29 @@ cdef class PLUS_DI_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_PLUS_DI_Close(self._handle) + TA_ROCR_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, close, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_PLUS_DI_Stream* handle = NULL + cdef TA_ROCR_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_PLUS_DI_Lookback(timeperiod) + 1 - retCode = TA_PLUS_DI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_ROCR_Lookback(timeperiod) + 1 + retCode = TA_ROCR_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_PLUS_DI_Close(self._handle) + TA_ROCR_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -23884,14 +28982,12 @@ cdef class PLUS_DI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PLUS_DI_Open", retCode, historylen, need) + _stream_open_failed("TA_ROCR_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, close, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -23899,16 +28995,16 @@ cdef class PLUS_DI_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_PLUS_DI_Stream* handle = NULL - cdef PLUS_DI_Stream stream = PLUS_DI_Stream.__new__(PLUS_DI_Stream) + cdef TA_ROCR_Stream* handle = NULL + cdef ROCR_Stream stream = ROCR_Stream.__new__(ROCR_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_PLUS_DI_Lookback(timeperiod) + lookback = begidx + lib.TA_ROCR_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_PLUS_DI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_ROCR_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -23917,29 +29013,29 @@ cdef class PLUS_DI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PLUS_DI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low, close,), outreal) + _stream_open_failed("TA_ROCR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double high, double low, double close): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PLUS_DI_Update(self._handle, high, low, close, &outreal) + retCode = TA_ROCR_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_PLUS_DI_Update", retCode) + _ta_check_success("TA_ROCR_Update", retCode) return outreal @cython.binding(False) - def peek(self, double high, double low, double close): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PLUS_DI_Peek(self._handle, high, low, close, &outreal) + retCode = TA_ROCR_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_PLUS_DI_Peek", retCode) + _ta_check_success("TA_ROCR_Peek", retCode) return outreal @property @@ -23948,43 +29044,43 @@ cdef class PLUS_DI_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PLUS_DI_Value(self._handle, &outreal) + retCode = TA_ROCR_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_PLUS_DI_Value", retCode) + _ta_check_success("TA_ROCR_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_PLUS_DI_OutRange(self._handle, outbegidx, outnbelement) + return TA_ROCR_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_PLUS_DI_Advance(self._handle) + return TA_ROCR_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_PLUS_DI_Stream* clone = NULL - cdef PLUS_DI_Stream stream = PLUS_DI_Stream.__new__(type(self)) + cdef TA_ROCR_Stream* clone = NULL + cdef ROCR_Stream stream = ROCR_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PLUS_DI_Clone(self._handle, &clone) + retCode = TA_ROCR_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_PLUS_DI_Clone", retCode) + _ta_check_success("TA_ROCR_Clone", retCode) return stream -cdef class PLUS_DM_Stream(Stream): - """ PLUS_DM(high, low[, timeperiod=?]) +cdef class ROCR100_Stream(Stream): + """ ROCR100(real[, timeperiod=?]) - Plus Directional Movement (Momentum Indicators) + Rate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators) Inputs: - prices: ['high', 'low'] + real: (any ndarray) Parameters: - timeperiod: 14 + timeperiod: 10 Outputs: real """ @@ -23992,30 +29088,29 @@ cdef class PLUS_DM_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_PLUS_DM_Close(self._handle) + TA_ROCR100_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_PLUS_DM_Stream* handle = NULL + cdef TA_ROCR100_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_PLUS_DM_Lookback(timeperiod) + 1 - retCode = TA_PLUS_DM_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_ROCR100_Lookback(timeperiod) + 1 + retCode = TA_ROCR100_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_PLUS_DM_Close(self._handle) + TA_ROCR100_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -24024,13 +29119,12 @@ cdef class PLUS_DM_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PLUS_DM_Open", retCode, historylen, need) + _stream_open_failed("TA_ROCR100_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, int timeperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -24038,16 +29132,16 @@ cdef class PLUS_DM_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_PLUS_DM_Stream* handle = NULL - cdef PLUS_DM_Stream stream = PLUS_DM_Stream.__new__(PLUS_DM_Stream) + cdef TA_ROCR100_Stream* handle = NULL + cdef ROCR100_Stream stream = ROCR100_Stream.__new__(ROCR100_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_PLUS_DM_Lookback(timeperiod) + lookback = begidx + lib.TA_ROCR100_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_PLUS_DM_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_ROCR100_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -24056,29 +29150,29 @@ cdef class PLUS_DM_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PLUS_DM_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low,), outreal) + _stream_open_failed("TA_ROCR100_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double high, double low): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PLUS_DM_Update(self._handle, high, low, &outreal) + retCode = TA_ROCR100_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_PLUS_DM_Update", retCode) + _ta_check_success("TA_ROCR100_Update", retCode) return outreal @cython.binding(False) - def peek(self, double high, double low): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PLUS_DM_Peek(self._handle, high, low, &outreal) + retCode = TA_ROCR100_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_PLUS_DM_Peek", retCode) + _ta_check_success("TA_ROCR100_Peek", retCode) return outreal @property @@ -24087,45 +29181,44 @@ cdef class PLUS_DM_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PLUS_DM_Value(self._handle, &outreal) + retCode = TA_ROCR100_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_PLUS_DM_Value", retCode) + _ta_check_success("TA_ROCR100_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_PLUS_DM_OutRange(self._handle, outbegidx, outnbelement) + return TA_ROCR100_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_PLUS_DM_Advance(self._handle) + return TA_ROCR100_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_PLUS_DM_Stream* clone = NULL - cdef PLUS_DM_Stream stream = PLUS_DM_Stream.__new__(type(self)) + cdef TA_ROCR100_Stream* clone = NULL + cdef ROCR100_Stream stream = ROCR100_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PLUS_DM_Clone(self._handle, &clone) + retCode = TA_ROCR100_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_PLUS_DM_Clone", retCode) + _ta_check_success("TA_ROCR100_Clone", retCode) return stream -cdef class PPO_Stream(Stream): - """ PPO(real[, fastperiod=?, slowperiod=?, matype=?]) +cdef class ROGERSSATCHELL_Stream(Stream): + """ ROGERSSATCHELL(open, high, low, close[, timeperiod=?, annualization=?]) - Percentage Price Oscillator (Momentum Indicators) + Rogers-Satchell Volatility (Volatility Indicators) Inputs: - real: (any ndarray) + prices: ['open', 'high', 'low', 'close'] Parameters: - fastperiod: 12 - slowperiod: 26 - matype: 1 (Exponential Moving Average) + timeperiod: 10 + annualization: 252.0 Outputs: real """ @@ -24133,29 +29226,32 @@ cdef class PPO_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_PPO_Close(self._handle) + TA_ROGERSSATCHELL_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, open, high, low, close, int timeperiod=-2**31, double annualization=252.0): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_PPO_Stream* handle = NULL + cdef TA_ROGERSSATCHELL_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_PPO_Lookback(fastperiod, slowperiod, matype) + 1 - retCode = TA_PPO_Open(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, matype, &outreal) + need = lib.TA_ROGERSSATCHELL_Lookback(timeperiod, annualization) + 1 + retCode = TA_ROGERSSATCHELL_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, annualization, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_PPO_Close(self._handle) + TA_ROGERSSATCHELL_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -24164,12 +29260,15 @@ cdef class PPO_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PPO_Open", retCode, historylen, need) + _stream_open_failed("TA_ROGERSSATCHELL_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(open, high, low, close, int timeperiod=-2**31, double annualization=252.0): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -24177,16 +29276,16 @@ cdef class PPO_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_PPO_Stream* handle = NULL - cdef PPO_Stream stream = PPO_Stream.__new__(PPO_Stream) + cdef TA_ROGERSSATCHELL_Stream* handle = NULL + cdef ROGERSSATCHELL_Stream stream = ROGERSSATCHELL_Stream.__new__(ROGERSSATCHELL_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_PPO_Lookback(fastperiod, slowperiod, matype) + lookback = begidx + lib.TA_ROGERSSATCHELL_Lookback(timeperiod, annualization) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_PPO_OpenAndFill(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, matype, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_ROGERSSATCHELL_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, annualization, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -24195,29 +29294,29 @@ cdef class PPO_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PPO_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_ROGERSSATCHELL_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((open, high, low, close,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double open, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PPO_Update(self._handle, real, &outreal) + retCode = TA_ROGERSSATCHELL_Update(self._handle, open, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_PPO_Update", retCode) + _ta_check_success("TA_ROGERSSATCHELL_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double open, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PPO_Peek(self._handle, real, &outreal) + retCode = TA_ROGERSSATCHELL_Peek(self._handle, open, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_PPO_Peek", retCode) + _ta_check_success("TA_ROGERSSATCHELL_Peek", retCode) return outreal @property @@ -24226,41 +29325,43 @@ cdef class PPO_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PPO_Value(self._handle, &outreal) + retCode = TA_ROGERSSATCHELL_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_PPO_Value", retCode) + _ta_check_success("TA_ROGERSSATCHELL_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_PPO_OutRange(self._handle, outbegidx, outnbelement) + return TA_ROGERSSATCHELL_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_PPO_Advance(self._handle) + return TA_ROGERSSATCHELL_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_PPO_Stream* clone = NULL - cdef PPO_Stream stream = PPO_Stream.__new__(type(self)) + cdef TA_ROGERSSATCHELL_Stream* clone = NULL + cdef ROGERSSATCHELL_Stream stream = ROGERSSATCHELL_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PPO_Clone(self._handle, &clone) + retCode = TA_ROGERSSATCHELL_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_PPO_Clone", retCode) + _ta_check_success("TA_ROGERSSATCHELL_Clone", retCode) return stream -cdef class PVI_Stream(Stream): - """ PVI(close, volume) +cdef class RSI_Stream(Stream): + """ RSI(real[, timeperiod=?]) - Positive Volume Index (Volume Indicators) + Relative Strength Index (Momentum Indicators) Inputs: - prices: ['close', 'volume'] + real: (any ndarray) + Parameters: + timeperiod: 14 Outputs: real """ @@ -24268,30 +29369,29 @@ cdef class PVI_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_PVI_Close(self._handle) + TA_RSI_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, close, volume): - cdef np.ndarray a_close = _stream_input(close) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_close, a_volume,) + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_PVI_Stream* handle = NULL + cdef TA_RSI_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_PVI_Lookback() + 1 - retCode = TA_PVI_Open(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outreal) + need = lib.TA_RSI_Lookback(timeperiod) + 1 + retCode = TA_RSI_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_PVI_Close(self._handle) + TA_RSI_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -24300,13 +29400,12 @@ cdef class PVI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PVI_Open", retCode, historylen, need) + _stream_open_failed("TA_RSI_Open", retCode, historylen, need) @staticmethod - def open_and_fill(close, volume): - cdef np.ndarray a_close = _stream_input(close) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_close, a_volume,) + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -24314,16 +29413,16 @@ cdef class PVI_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_PVI_Stream* handle = NULL - cdef PVI_Stream stream = PVI_Stream.__new__(PVI_Stream) + cdef TA_RSI_Stream* handle = NULL + cdef RSI_Stream stream = RSI_Stream.__new__(RSI_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_PVI_Lookback() + lookback = begidx + lib.TA_RSI_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_PVI_OpenAndFill(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_RSI_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -24332,29 +29431,29 @@ cdef class PVI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PVI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((close, volume,), outreal) + _stream_open_failed("TA_RSI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double close, double volume): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PVI_Update(self._handle, close, volume, &outreal) + retCode = TA_RSI_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_PVI_Update", retCode) + _ta_check_success("TA_RSI_Update", retCode) return outreal @cython.binding(False) - def peek(self, double close, double volume): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PVI_Peek(self._handle, close, volume, &outreal) + retCode = TA_RSI_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_PVI_Peek", retCode) + _ta_check_success("TA_RSI_Peek", retCode) return outreal @property @@ -24363,45 +29462,44 @@ cdef class PVI_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PVI_Value(self._handle, &outreal) + retCode = TA_RSI_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_PVI_Value", retCode) + _ta_check_success("TA_RSI_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_PVI_OutRange(self._handle, outbegidx, outnbelement) + return TA_RSI_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_PVI_Advance(self._handle) + return TA_RSI_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_PVI_Stream* clone = NULL - cdef PVI_Stream stream = PVI_Stream.__new__(type(self)) + cdef TA_RSI_Stream* clone = NULL + cdef RSI_Stream stream = RSI_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PVI_Clone(self._handle, &clone) + retCode = TA_RSI_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_PVI_Clone", retCode) + _ta_check_success("TA_RSI_Clone", retCode) return stream -cdef class PVO_Stream(Stream): - """ PVO(volume[, fastperiod=?, slowperiod=?, matype=?]) +cdef class RVI_Stream(Stream): + """ RVI(real[, timeperiod=?, stddevperiod=?]) - Percentage Volume Oscillator (Volume Indicators) + Relative Volatility Index (Volatility Indicators) Inputs: - prices: ['volume'] + real: (any ndarray) Parameters: - fastperiod: 12 - slowperiod: 26 - matype: 1 (Exponential Moving Average) + timeperiod: 14 + stddevperiod: 10 Outputs: real """ @@ -24409,29 +29507,29 @@ cdef class PVO_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_PVO_Close(self._handle) + TA_RVI_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, volume, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_volume,) + def __init__(self, real, int timeperiod=-2**31, int stddevperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_PVO_Stream* handle = NULL + cdef TA_RVI_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_PVO_Lookback(fastperiod, slowperiod, matype) + 1 - retCode = TA_PVO_Open(&handle, a_volume.data + begidx, historylen, fastperiod, slowperiod, matype, &outreal) + need = lib.TA_RVI_Lookback(timeperiod, stddevperiod) + 1 + retCode = TA_RVI_Open(&handle, a_real.data + begidx, historylen, timeperiod, stddevperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_PVO_Close(self._handle) + TA_RVI_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -24440,12 +29538,12 @@ cdef class PVO_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PVO_Open", retCode, historylen, need) + _stream_open_failed("TA_RVI_Open", retCode, historylen, need) @staticmethod - def open_and_fill(volume, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_volume,) + def open_and_fill(real, int timeperiod=-2**31, int stddevperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -24453,16 +29551,16 @@ cdef class PVO_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_PVO_Stream* handle = NULL - cdef PVO_Stream stream = PVO_Stream.__new__(PVO_Stream) + cdef TA_RVI_Stream* handle = NULL + cdef RVI_Stream stream = RVI_Stream.__new__(RVI_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_PVO_Lookback(fastperiod, slowperiod, matype) + lookback = begidx + lib.TA_RVI_Lookback(timeperiod, stddevperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_PVO_OpenAndFill(&handle, a_volume.data + begidx, historylen, fastperiod, slowperiod, matype, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_RVI_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, stddevperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -24471,29 +29569,29 @@ cdef class PVO_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PVO_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((volume,), outreal) + _stream_open_failed("TA_RVI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double volume): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PVO_Update(self._handle, volume, &outreal) + retCode = TA_RVI_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_PVO_Update", retCode) + _ta_check_success("TA_RVI_Update", retCode) return outreal @cython.binding(False) - def peek(self, double volume): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PVO_Peek(self._handle, volume, &outreal) + retCode = TA_RVI_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_PVO_Peek", retCode) + _ta_check_success("TA_RVI_Peek", retCode) return outreal @property @@ -24502,41 +29600,44 @@ cdef class PVO_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PVO_Value(self._handle, &outreal) + retCode = TA_RVI_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_PVO_Value", retCode) + _ta_check_success("TA_RVI_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_PVO_OutRange(self._handle, outbegidx, outnbelement) + return TA_RVI_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_PVO_Advance(self._handle) + return TA_RVI_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_PVO_Stream* clone = NULL - cdef PVO_Stream stream = PVO_Stream.__new__(type(self)) + cdef TA_RVI_Stream* clone = NULL + cdef RVI_Stream stream = RVI_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PVO_Clone(self._handle, &clone) + retCode = TA_RVI_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_PVO_Clone", retCode) + _ta_check_success("TA_RVI_Clone", retCode) return stream -cdef class PVT_Stream(Stream): - """ PVT(close, volume) +cdef class RVIR_Stream(Stream): + """ RVIR(high, low[, timeperiod=?, stddevperiod=?]) - Price Volume Trend (Volume Indicators) + Relative Volatility Index, refined high/low form (Volatility Indicators) Inputs: - prices: ['close', 'volume'] + prices: ['high', 'low'] + Parameters: + timeperiod: 14 + stddevperiod: 10 Outputs: real """ @@ -24544,30 +29645,30 @@ cdef class PVT_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_PVT_Close(self._handle) + TA_RVIR_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, close, volume): - cdef np.ndarray a_close = _stream_input(close) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_close, a_volume,) + def __init__(self, high, low, int timeperiod=-2**31, int stddevperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_PVT_Stream* handle = NULL + cdef TA_RVIR_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_PVT_Lookback() + 1 - retCode = TA_PVT_Open(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outreal) + need = lib.TA_RVIR_Lookback(timeperiod, stddevperiod) + 1 + retCode = TA_RVIR_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, stddevperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_PVT_Close(self._handle) + TA_RVIR_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -24576,13 +29677,13 @@ cdef class PVT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PVT_Open", retCode, historylen, need) + _stream_open_failed("TA_RVIR_Open", retCode, historylen, need) @staticmethod - def open_and_fill(close, volume): - cdef np.ndarray a_close = _stream_input(close) - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_close, a_volume,) + def open_and_fill(high, low, int timeperiod=-2**31, int stddevperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -24590,16 +29691,16 @@ cdef class PVT_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_PVT_Stream* handle = NULL - cdef PVT_Stream stream = PVT_Stream.__new__(PVT_Stream) + cdef TA_RVIR_Stream* handle = NULL + cdef RVIR_Stream stream = RVIR_Stream.__new__(RVIR_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_PVT_Lookback() + lookback = begidx + lib.TA_RVIR_Lookback(timeperiod, stddevperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_PVT_OpenAndFill(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_RVIR_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, stddevperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -24608,29 +29709,29 @@ cdef class PVT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_PVT_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((close, volume,), outreal) + _stream_open_failed("TA_RVIR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low,), outreal) @cython.binding(False) - def update(self, double close, double volume): + def update(self, double high, double low): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PVT_Update(self._handle, close, volume, &outreal) + retCode = TA_RVIR_Update(self._handle, high, low, &outreal) if retCode != 0: - _ta_check_success("TA_PVT_Update", retCode) + _ta_check_success("TA_RVIR_Update", retCode) return outreal @cython.binding(False) - def peek(self, double close, double volume): + def peek(self, double high, double low): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PVT_Peek(self._handle, close, volume, &outreal) + retCode = TA_RVIR_Peek(self._handle, high, low, &outreal) if retCode != 0: - _ta_check_success("TA_PVT_Peek", retCode) + _ta_check_success("TA_RVIR_Peek", retCode) return outreal @property @@ -24639,43 +29740,43 @@ cdef class PVT_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PVT_Value(self._handle, &outreal) + retCode = TA_RVIR_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_PVT_Value", retCode) + _ta_check_success("TA_RVIR_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_PVT_OutRange(self._handle, outbegidx, outnbelement) + return TA_RVIR_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_PVT_Advance(self._handle) + return TA_RVIR_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_PVT_Stream* clone = NULL - cdef PVT_Stream stream = PVT_Stream.__new__(type(self)) + cdef TA_RVIR_Stream* clone = NULL + cdef RVIR_Stream stream = RVIR_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_PVT_Clone(self._handle, &clone) + retCode = TA_RVIR_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_PVT_Clone", retCode) + _ta_check_success("TA_RVIR_Clone", retCode) return stream -cdef class QSTICK_Stream(Stream): - """ QSTICK(open, close[, timeperiod=?]) +cdef class RVOL_Stream(Stream): + """ RVOL(volume[, timeperiod=?]) - Qstick (Momentum Indicators) + Relative Volume (Volume Indicators) Inputs: - prices: ['open', 'close'] + prices: ['volume'] Parameters: - timeperiod: 10 + timeperiod: 20 Outputs: real """ @@ -24683,30 +29784,29 @@ cdef class QSTICK_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_QSTICK_Close(self._handle) + TA_RVOL_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, open, close, int timeperiod=-2**31): - cdef np.ndarray a_open = _stream_input(open) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_open, a_close,) + def __init__(self, volume, int timeperiod=-2**31): + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_QSTICK_Stream* handle = NULL + cdef TA_RVOL_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_QSTICK_Lookback(timeperiod) + 1 - retCode = TA_QSTICK_Open(&handle, a_open.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_RVOL_Lookback(timeperiod) + 1 + retCode = TA_RVOL_Open(&handle, a_volume.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_QSTICK_Close(self._handle) + TA_RVOL_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -24715,13 +29815,12 @@ cdef class QSTICK_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_QSTICK_Open", retCode, historylen, need) + _stream_open_failed("TA_RVOL_Open", retCode, historylen, need) @staticmethod - def open_and_fill(open, close, int timeperiod=-2**31): - cdef np.ndarray a_open = _stream_input(open) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_open, a_close,) + def open_and_fill(volume, int timeperiod=-2**31): + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_volume,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -24729,16 +29828,16 @@ cdef class QSTICK_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_QSTICK_Stream* handle = NULL - cdef QSTICK_Stream stream = QSTICK_Stream.__new__(QSTICK_Stream) + cdef TA_RVOL_Stream* handle = NULL + cdef RVOL_Stream stream = RVOL_Stream.__new__(RVOL_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_QSTICK_Lookback(timeperiod) + lookback = begidx + lib.TA_RVOL_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_QSTICK_OpenAndFill(&handle, a_open.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_RVOL_OpenAndFill(&handle, a_volume.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -24747,29 +29846,29 @@ cdef class QSTICK_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_QSTICK_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((open, close,), outreal) + _stream_open_failed("TA_RVOL_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((volume,), outreal) @cython.binding(False) - def update(self, double open, double close): + def update(self, double volume): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_QSTICK_Update(self._handle, open, close, &outreal) + retCode = TA_RVOL_Update(self._handle, volume, &outreal) if retCode != 0: - _ta_check_success("TA_QSTICK_Update", retCode) + _ta_check_success("TA_RVOL_Update", retCode) return outreal @cython.binding(False) - def peek(self, double open, double close): + def peek(self, double volume): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_QSTICK_Peek(self._handle, open, close, &outreal) + retCode = TA_RVOL_Peek(self._handle, volume, &outreal) if retCode != 0: - _ta_check_success("TA_QSTICK_Peek", retCode) + _ta_check_success("TA_RVOL_Peek", retCode) return outreal @property @@ -24778,43 +29877,44 @@ cdef class QSTICK_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_QSTICK_Value(self._handle, &outreal) + retCode = TA_RVOL_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_QSTICK_Value", retCode) + _ta_check_success("TA_RVOL_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_QSTICK_OutRange(self._handle, outbegidx, outnbelement) + return TA_RVOL_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_QSTICK_Advance(self._handle) + return TA_RVOL_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_QSTICK_Stream* clone = NULL - cdef QSTICK_Stream stream = QSTICK_Stream.__new__(type(self)) + cdef TA_RVOL_Stream* clone = NULL + cdef RVOL_Stream stream = RVOL_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_QSTICK_Clone(self._handle, &clone) + retCode = TA_RVOL_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_QSTICK_Clone", retCode) + _ta_check_success("TA_RVOL_Clone", retCode) return stream -cdef class RMA_Stream(Stream): - """ RMA(real[, timeperiod=?]) +cdef class SAR_Stream(Stream): + """ SAR(high, low[, acceleration=?, maximum=?]) - Wilder's Smoothed Moving Average (Overlap Studies) + Parabolic SAR (Overlap Studies) Inputs: - real: (any ndarray) + prices: ['high', 'low'] Parameters: - timeperiod: 30 + acceleration: 0.02 + maximum: 0.2 Outputs: real """ @@ -24822,29 +29922,30 @@ cdef class RMA_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_RMA_Close(self._handle) + TA_SAR_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, double acceleration=0.02, double maximum=0.2): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_RMA_Stream* handle = NULL + cdef TA_SAR_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_RMA_Lookback(timeperiod) + 1 - retCode = TA_RMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_SAR_Lookback(acceleration, maximum) + 1 + retCode = TA_SAR_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, acceleration, maximum, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_RMA_Close(self._handle) + TA_SAR_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -24853,12 +29954,13 @@ cdef class RMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_RMA_Open", retCode, historylen, need) + _stream_open_failed("TA_SAR_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, double acceleration=0.02, double maximum=0.2): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -24866,16 +29968,16 @@ cdef class RMA_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_RMA_Stream* handle = NULL - cdef RMA_Stream stream = RMA_Stream.__new__(RMA_Stream) + cdef TA_SAR_Stream* handle = NULL + cdef SAR_Stream stream = SAR_Stream.__new__(SAR_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_RMA_Lookback(timeperiod) + lookback = begidx + lib.TA_SAR_Lookback(acceleration, maximum) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_RMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_SAR_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, acceleration, maximum, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -24884,29 +29986,29 @@ cdef class RMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_RMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_SAR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double high, double low): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RMA_Update(self._handle, real, &outreal) + retCode = TA_SAR_Update(self._handle, high, low, &outreal) if retCode != 0: - _ta_check_success("TA_RMA_Update", retCode) + _ta_check_success("TA_SAR_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double high, double low): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RMA_Peek(self._handle, real, &outreal) + retCode = TA_SAR_Peek(self._handle, high, low, &outreal) if retCode != 0: - _ta_check_success("TA_RMA_Peek", retCode) + _ta_check_success("TA_SAR_Peek", retCode) return outreal @property @@ -24915,43 +30017,50 @@ cdef class RMA_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RMA_Value(self._handle, &outreal) + retCode = TA_SAR_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_RMA_Value", retCode) + _ta_check_success("TA_SAR_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_RMA_OutRange(self._handle, outbegidx, outnbelement) + return TA_SAR_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_RMA_Advance(self._handle) + return TA_SAR_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_RMA_Stream* clone = NULL - cdef RMA_Stream stream = RMA_Stream.__new__(type(self)) + cdef TA_SAR_Stream* clone = NULL + cdef SAR_Stream stream = SAR_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RMA_Clone(self._handle, &clone) + retCode = TA_SAR_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_RMA_Clone", retCode) + _ta_check_success("TA_SAR_Clone", retCode) return stream -cdef class ROC_Stream(Stream): - """ ROC(real[, timeperiod=?]) +cdef class SAREXT_Stream(Stream): + """ SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?]) - Rate of change : ((real/prevPrice)-1)*100 (Momentum Indicators) + Parabolic SAR - Extended (Overlap Studies) Inputs: - real: (any ndarray) + prices: ['high', 'low'] Parameters: - timeperiod: 10 + startvalue: 0.0 + offsetonreverse: 0.0 + accelerationinitlong: 0.02 + accelerationlong: 0.02 + accelerationmaxlong: 0.2 + accelerationinitshort: 0.02 + accelerationshort: 0.02 + accelerationmaxshort: 0.2 Outputs: real """ @@ -24959,29 +30068,30 @@ cdef class ROC_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_ROC_Close(self._handle) + TA_SAREXT_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_ROC_Stream* handle = NULL + cdef TA_SAREXT_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_ROC_Lookback(timeperiod) + 1 - retCode = TA_ROC_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_SAREXT_Lookback(startvalue, offsetonreverse, accelerationinitlong, accelerationlong, accelerationmaxlong, accelerationinitshort, accelerationshort, accelerationmaxshort) + 1 + retCode = TA_SAREXT_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, startvalue, offsetonreverse, accelerationinitlong, accelerationlong, accelerationmaxlong, accelerationinitshort, accelerationshort, accelerationmaxshort, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_ROC_Close(self._handle) + TA_SAREXT_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -24990,12 +30100,13 @@ cdef class ROC_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ROC_Open", retCode, historylen, need) + _stream_open_failed("TA_SAREXT_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -25003,16 +30114,16 @@ cdef class ROC_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_ROC_Stream* handle = NULL - cdef ROC_Stream stream = ROC_Stream.__new__(ROC_Stream) + cdef TA_SAREXT_Stream* handle = NULL + cdef SAREXT_Stream stream = SAREXT_Stream.__new__(SAREXT_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_ROC_Lookback(timeperiod) + lookback = begidx + lib.TA_SAREXT_Lookback(startvalue, offsetonreverse, accelerationinitlong, accelerationlong, accelerationmaxlong, accelerationinitshort, accelerationshort, accelerationmaxshort) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_ROC_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_SAREXT_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, startvalue, offsetonreverse, accelerationinitlong, accelerationlong, accelerationmaxlong, accelerationinitshort, accelerationshort, accelerationmaxshort, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -25021,29 +30132,29 @@ cdef class ROC_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ROC_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_SAREXT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((high, low,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double high, double low): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROC_Update(self._handle, real, &outreal) + retCode = TA_SAREXT_Update(self._handle, high, low, &outreal) if retCode != 0: - _ta_check_success("TA_ROC_Update", retCode) + _ta_check_success("TA_SAREXT_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double high, double low): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROC_Peek(self._handle, real, &outreal) + retCode = TA_SAREXT_Peek(self._handle, high, low, &outreal) if retCode != 0: - _ta_check_success("TA_ROC_Peek", retCode) + _ta_check_success("TA_SAREXT_Peek", retCode) return outreal @property @@ -25052,43 +30163,43 @@ cdef class ROC_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROC_Value(self._handle, &outreal) + retCode = TA_SAREXT_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_ROC_Value", retCode) + _ta_check_success("TA_SAREXT_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_ROC_OutRange(self._handle, outbegidx, outnbelement) + return TA_SAREXT_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_ROC_Advance(self._handle) + return TA_SAREXT_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_ROC_Stream* clone = NULL - cdef ROC_Stream stream = ROC_Stream.__new__(type(self)) + cdef TA_SAREXT_Stream* clone = NULL + cdef SAREXT_Stream stream = SAREXT_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROC_Clone(self._handle, &clone) + retCode = TA_SAREXT_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_ROC_Clone", retCode) + _ta_check_success("TA_SAREXT_Clone", retCode) return stream -cdef class ROCP_Stream(Stream): - """ ROCP(real[, timeperiod=?]) +cdef class SI_Stream(Stream): + """ SI(open, high, low, close[, limitmove=?]) - Rate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators) + Wilder Swing Index (Momentum Indicators) Inputs: - real: (any ndarray) + prices: ['open', 'high', 'low', 'close'] Parameters: - timeperiod: 10 + limitmove: 3.0 Outputs: real """ @@ -25096,29 +30207,32 @@ cdef class ROCP_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_ROCP_Close(self._handle) + TA_SI_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, open, high, low, close, double limitmove=-4e37): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_ROCP_Stream* handle = NULL + cdef TA_SI_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_ROCP_Lookback(timeperiod) + 1 - retCode = TA_ROCP_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_SI_Lookback(limitmove) + 1 + retCode = TA_SI_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, limitmove, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_ROCP_Close(self._handle) + TA_SI_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -25127,12 +30241,15 @@ cdef class ROCP_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ROCP_Open", retCode, historylen, need) + _stream_open_failed("TA_SI_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(open, high, low, close, double limitmove=-4e37): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -25140,16 +30257,16 @@ cdef class ROCP_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_ROCP_Stream* handle = NULL - cdef ROCP_Stream stream = ROCP_Stream.__new__(ROCP_Stream) + cdef TA_SI_Stream* handle = NULL + cdef SI_Stream stream = SI_Stream.__new__(SI_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_ROCP_Lookback(timeperiod) + lookback = begidx + lib.TA_SI_Lookback(limitmove) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_ROCP_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_SI_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, limitmove, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -25158,29 +30275,29 @@ cdef class ROCP_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ROCP_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_SI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((open, high, low, close,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double open, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROCP_Update(self._handle, real, &outreal) + retCode = TA_SI_Update(self._handle, open, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_ROCP_Update", retCode) + _ta_check_success("TA_SI_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double open, double high, double low, double close): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROCP_Peek(self._handle, real, &outreal) + retCode = TA_SI_Peek(self._handle, open, high, low, close, &outreal) if retCode != 0: - _ta_check_success("TA_ROCP_Peek", retCode) + _ta_check_success("TA_SI_Peek", retCode) return outreal @property @@ -25189,43 +30306,41 @@ cdef class ROCP_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROCP_Value(self._handle, &outreal) + retCode = TA_SI_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_ROCP_Value", retCode) + _ta_check_success("TA_SI_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_ROCP_OutRange(self._handle, outbegidx, outnbelement) + return TA_SI_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_ROCP_Advance(self._handle) + return TA_SI_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_ROCP_Stream* clone = NULL - cdef ROCP_Stream stream = ROCP_Stream.__new__(type(self)) + cdef TA_SI_Stream* clone = NULL + cdef SI_Stream stream = SI_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROCP_Clone(self._handle, &clone) + retCode = TA_SI_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_ROCP_Clone", retCode) + _ta_check_success("TA_SI_Clone", retCode) return stream -cdef class ROCR_Stream(Stream): - """ ROCR(real[, timeperiod=?]) +cdef class SIN_Stream(Stream): + """ SIN(real) - Rate of change ratio: (real/prevPrice) (Momentum Indicators) + Vector Trigonometric Sin (Math Transform) Inputs: real: (any ndarray) - Parameters: - timeperiod: 10 Outputs: real """ @@ -25233,29 +30348,29 @@ cdef class ROCR_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_ROCR_Close(self._handle) + TA_SIN_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): + def __init__(self, real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_ROCR_Stream* handle = NULL + cdef TA_SIN_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_ROCR_Lookback(timeperiod) + 1 - retCode = TA_ROCR_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_SIN_Lookback() + 1 + retCode = TA_SIN_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_ROCR_Close(self._handle) + TA_SIN_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -25264,10 +30379,10 @@ cdef class ROCR_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ROCR_Open", retCode, historylen, need) + _stream_open_failed("TA_SIN_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): + def open_and_fill(real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -25277,16 +30392,16 @@ cdef class ROCR_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_ROCR_Stream* handle = NULL - cdef ROCR_Stream stream = ROCR_Stream.__new__(ROCR_Stream) + cdef TA_SIN_Stream* handle = NULL + cdef SIN_Stream stream = SIN_Stream.__new__(SIN_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_ROCR_Lookback(timeperiod) + lookback = begidx + lib.TA_SIN_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_ROCR_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_SIN_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -25295,7 +30410,7 @@ cdef class ROCR_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ROCR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_SIN_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -25304,9 +30419,9 @@ cdef class ROCR_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROCR_Update(self._handle, real, &outreal) + retCode = TA_SIN_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_ROCR_Update", retCode) + _ta_check_success("TA_SIN_Update", retCode) return outreal @cython.binding(False) @@ -25315,9 +30430,9 @@ cdef class ROCR_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROCR_Peek(self._handle, real, &outreal) + retCode = TA_SIN_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_ROCR_Peek", retCode) + _ta_check_success("TA_SIN_Peek", retCode) return outreal @property @@ -25326,43 +30441,41 @@ cdef class ROCR_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROCR_Value(self._handle, &outreal) + retCode = TA_SIN_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_ROCR_Value", retCode) + _ta_check_success("TA_SIN_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_ROCR_OutRange(self._handle, outbegidx, outnbelement) + return TA_SIN_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_ROCR_Advance(self._handle) + return TA_SIN_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_ROCR_Stream* clone = NULL - cdef ROCR_Stream stream = ROCR_Stream.__new__(type(self)) + cdef TA_SIN_Stream* clone = NULL + cdef SIN_Stream stream = SIN_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROCR_Clone(self._handle, &clone) + retCode = TA_SIN_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_ROCR_Clone", retCode) + _ta_check_success("TA_SIN_Clone", retCode) return stream -cdef class ROCR100_Stream(Stream): - """ ROCR100(real[, timeperiod=?]) +cdef class SINH_Stream(Stream): + """ SINH(real) - Rate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators) + Vector Trigonometric Sinh (Math Transform) Inputs: real: (any ndarray) - Parameters: - timeperiod: 10 Outputs: real """ @@ -25370,29 +30483,29 @@ cdef class ROCR100_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_ROCR100_Close(self._handle) + TA_SINH_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): + def __init__(self, real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_ROCR100_Stream* handle = NULL + cdef TA_SINH_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_ROCR100_Lookback(timeperiod) + 1 - retCode = TA_ROCR100_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_SINH_Lookback() + 1 + retCode = TA_SINH_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_ROCR100_Close(self._handle) + TA_SINH_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -25401,10 +30514,10 @@ cdef class ROCR100_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ROCR100_Open", retCode, historylen, need) + _stream_open_failed("TA_SINH_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): + def open_and_fill(real): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -25414,16 +30527,16 @@ cdef class ROCR100_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_ROCR100_Stream* handle = NULL - cdef ROCR100_Stream stream = ROCR100_Stream.__new__(ROCR100_Stream) + cdef TA_SINH_Stream* handle = NULL + cdef SINH_Stream stream = SINH_Stream.__new__(SINH_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_ROCR100_Lookback(timeperiod) + lookback = begidx + lib.TA_SINH_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_ROCR100_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_SINH_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -25432,7 +30545,7 @@ cdef class ROCR100_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_ROCR100_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_SINH_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -25441,9 +30554,9 @@ cdef class ROCR100_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROCR100_Update(self._handle, real, &outreal) + retCode = TA_SINH_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_ROCR100_Update", retCode) + _ta_check_success("TA_SINH_Update", retCode) return outreal @cython.binding(False) @@ -25452,9 +30565,9 @@ cdef class ROCR100_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROCR100_Peek(self._handle, real, &outreal) + retCode = TA_SINH_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_ROCR100_Peek", retCode) + _ta_check_success("TA_SINH_Peek", retCode) return outreal @property @@ -25463,43 +30576,43 @@ cdef class ROCR100_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROCR100_Value(self._handle, &outreal) + retCode = TA_SINH_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_ROCR100_Value", retCode) + _ta_check_success("TA_SINH_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_ROCR100_OutRange(self._handle, outbegidx, outnbelement) + return TA_SINH_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_ROCR100_Advance(self._handle) + return TA_SINH_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_ROCR100_Stream* clone = NULL - cdef ROCR100_Stream stream = ROCR100_Stream.__new__(type(self)) + cdef TA_SINH_Stream* clone = NULL + cdef SINH_Stream stream = SINH_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_ROCR100_Clone(self._handle, &clone) + retCode = TA_SINH_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_ROCR100_Clone", retCode) + _ta_check_success("TA_SINH_Clone", retCode) return stream -cdef class RSI_Stream(Stream): - """ RSI(real[, timeperiod=?]) +cdef class SMA_Stream(Stream): + """ SMA(real[, timeperiod=?]) - Relative Strength Index (Momentum Indicators) + Simple Moving Average (Overlap Studies) Inputs: real: (any ndarray) Parameters: - timeperiod: 14 + timeperiod: 30 Outputs: real """ @@ -25507,7 +30620,7 @@ cdef class RSI_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_RSI_Close(self._handle) + TA_SMA_Close(self._handle) self._handle = NULL _ta_stream_closed() @@ -25517,19 +30630,19 @@ cdef class RSI_Stream(Stream): cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_RSI_Stream* handle = NULL + cdef TA_SMA_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_RSI_Lookback(timeperiod) + 1 - retCode = TA_RSI_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_SMA_Lookback(timeperiod) + 1 + retCode = TA_SMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_RSI_Close(self._handle) + TA_SMA_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -25538,7 +30651,7 @@ cdef class RSI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_RSI_Open", retCode, historylen, need) + _stream_open_failed("TA_SMA_Open", retCode, historylen, need) @staticmethod def open_and_fill(real, int timeperiod=-2**31): @@ -25551,16 +30664,16 @@ cdef class RSI_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_RSI_Stream* handle = NULL - cdef RSI_Stream stream = RSI_Stream.__new__(RSI_Stream) + cdef TA_SMA_Stream* handle = NULL + cdef SMA_Stream stream = SMA_Stream.__new__(SMA_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_RSI_Lookback(timeperiod) + lookback = begidx + lib.TA_SMA_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_RSI_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_SMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -25569,7 +30682,7 @@ cdef class RSI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_RSI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_SMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -25578,9 +30691,9 @@ cdef class RSI_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RSI_Update(self._handle, real, &outreal) + retCode = TA_SMA_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_RSI_Update", retCode) + _ta_check_success("TA_SMA_Update", retCode) return outreal @cython.binding(False) @@ -25589,9 +30702,9 @@ cdef class RSI_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RSI_Peek(self._handle, real, &outreal) + retCode = TA_SMA_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_RSI_Peek", retCode) + _ta_check_success("TA_SMA_Peek", retCode) return outreal @property @@ -25600,74 +30713,80 @@ cdef class RSI_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RSI_Value(self._handle, &outreal) + retCode = TA_SMA_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_RSI_Value", retCode) + _ta_check_success("TA_SMA_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_RSI_OutRange(self._handle, outbegidx, outnbelement) + return TA_SMA_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_RSI_Advance(self._handle) + return TA_SMA_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_RSI_Stream* clone = NULL - cdef RSI_Stream stream = RSI_Stream.__new__(type(self)) + cdef TA_SMA_Stream* clone = NULL + cdef SMA_Stream stream = SMA_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RSI_Clone(self._handle, &clone) + retCode = TA_SMA_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_RSI_Clone", retCode) + _ta_check_success("TA_SMA_Clone", retCode) return stream -cdef class RVI_Stream(Stream): - """ RVI(real[, timeperiod=?, stddevperiod=?]) +cdef class SMI_Stream(Stream): + """ SMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?]) - Relative Volatility Index (Volatility Indicators) + Stochastic Momentum Index (Momentum Indicators) Inputs: - real: (any ndarray) + prices: ['high', 'low', 'close'] Parameters: - timeperiod: 14 - stddevperiod: 10 + timeperiod: 13 + fastperiod: 2 + slowperiod: 25 + signalperiod: 9 Outputs: - real + smi + smisignal """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_RVI_Close(self._handle) + TA_SMI_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31, int stddevperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, close, int timeperiod=-2**31, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_RVI_Stream* handle = NULL - cdef double outreal + cdef TA_SMI_Stream* handle = NULL + cdef double outsmi + cdef double outsmisignal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_RVI_Lookback(timeperiod, stddevperiod) + 1 - retCode = TA_RVI_Open(&handle, a_real.data + begidx, historylen, timeperiod, stddevperiod, &outreal) + need = lib.TA_SMI_Lookback(timeperiod, fastperiod, slowperiod, signalperiod) + 1 + retCode = TA_SMI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, fastperiod, slowperiod, signalperiod, &outsmi, &outsmisignal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_RVI_Close(self._handle) + TA_SMI_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -25676,29 +30795,33 @@ cdef class RVI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_RVI_Open", retCode, historylen, need) + _stream_open_failed("TA_SMI_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31, int stddevperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, close, int timeperiod=-2**31, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outreal + cdef np.ndarray outsmi + cdef np.ndarray outsmisignal cdef int outbegidx cdef int outnbelement - cdef TA_RVI_Stream* handle = NULL - cdef RVI_Stream stream = RVI_Stream.__new__(RVI_Stream) + cdef TA_SMI_Stream* handle = NULL + cdef SMI_Stream stream = SMI_Stream.__new__(SMI_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_RVI_Lookback(timeperiod, stddevperiod) - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_SMI_Lookback(timeperiod, fastperiod, slowperiod, signalperiod) + outsmi = make_double_array(length, lookback) + outsmisignal = make_double_array(length, lookback) with nogil: - retCode = TA_RVI_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, stddevperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_SMI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, fastperiod, slowperiod, signalperiod, &outbegidx, &outnbelement, outsmi.data + lookback, outsmisignal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -25707,74 +30830,75 @@ cdef class RVI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_RVI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_SMI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low, close,), outsmi), _stream_like((high, low, close,), outsmisignal)) @cython.binding(False) - def update(self, double real): - cdef double outreal + def update(self, double high, double low, double close): + cdef double outsmi + cdef double outsmisignal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RVI_Update(self._handle, real, &outreal) + retCode = TA_SMI_Update(self._handle, high, low, close, &outsmi, &outsmisignal) if retCode != 0: - _ta_check_success("TA_RVI_Update", retCode) - return outreal + _ta_check_success("TA_SMI_Update", retCode) + return (outsmi, outsmisignal) @cython.binding(False) - def peek(self, double real): - cdef double outreal + def peek(self, double high, double low, double close): + cdef double outsmi + cdef double outsmisignal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RVI_Peek(self._handle, real, &outreal) + retCode = TA_SMI_Peek(self._handle, high, low, close, &outsmi, &outsmisignal) if retCode != 0: - _ta_check_success("TA_RVI_Peek", retCode) - return outreal + _ta_check_success("TA_SMI_Peek", retCode) + return (outsmi, outsmisignal) @property def value(self): - cdef double outreal + cdef double outsmi + cdef double outsmisignal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RVI_Value(self._handle, &outreal) + retCode = TA_SMI_Value(self._handle, &outsmi, &outsmisignal) if retCode != 0: - _ta_check_success("TA_RVI_Value", retCode) - return outreal + _ta_check_success("TA_SMI_Value", retCode) + return (outsmi, outsmisignal) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_RVI_OutRange(self._handle, outbegidx, outnbelement) + return TA_SMI_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_RVI_Advance(self._handle) + return TA_SMI_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_RVI_Stream* clone = NULL - cdef RVI_Stream stream = RVI_Stream.__new__(type(self)) + cdef TA_SMI_Stream* clone = NULL + cdef SMI_Stream stream = SMI_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RVI_Clone(self._handle, &clone) + retCode = TA_SMI_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_RVI_Clone", retCode) + _ta_check_success("TA_SMI_Clone", retCode) return stream -cdef class RVOL_Stream(Stream): - """ RVOL(volume[, timeperiod=?]) +cdef class SQRT_Stream(Stream): + """ SQRT(real) - Relative Volume (Volume Indicators) + Vector Square Root (Math Transform) Inputs: - prices: ['volume'] - Parameters: - timeperiod: 20 + real: (any ndarray) Outputs: real """ @@ -25782,29 +30906,29 @@ cdef class RVOL_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_RVOL_Close(self._handle) + TA_SQRT_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, volume, int timeperiod=-2**31): - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_volume,) + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_RVOL_Stream* handle = NULL + cdef TA_SQRT_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_RVOL_Lookback(timeperiod) + 1 - retCode = TA_RVOL_Open(&handle, a_volume.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_SQRT_Lookback() + 1 + retCode = TA_SQRT_Open(&handle, a_real.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_RVOL_Close(self._handle) + TA_SQRT_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -25813,12 +30937,12 @@ cdef class RVOL_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_RVOL_Open", retCode, historylen, need) + _stream_open_failed("TA_SQRT_Open", retCode, historylen, need) @staticmethod - def open_and_fill(volume, int timeperiod=-2**31): - cdef np.ndarray a_volume = _stream_input(volume) - cdef tuple arrays = (a_volume,) + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -25826,16 +30950,16 @@ cdef class RVOL_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_RVOL_Stream* handle = NULL - cdef RVOL_Stream stream = RVOL_Stream.__new__(RVOL_Stream) + cdef TA_SQRT_Stream* handle = NULL + cdef SQRT_Stream stream = SQRT_Stream.__new__(SQRT_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_RVOL_Lookback(timeperiod) + lookback = begidx + lib.TA_SQRT_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_RVOL_OpenAndFill(&handle, a_volume.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_SQRT_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -25844,29 +30968,29 @@ cdef class RVOL_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_RVOL_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((volume,), outreal) + _stream_open_failed("TA_SQRT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double volume): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RVOL_Update(self._handle, volume, &outreal) + retCode = TA_SQRT_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_RVOL_Update", retCode) + _ta_check_success("TA_SQRT_Update", retCode) return outreal @cython.binding(False) - def peek(self, double volume): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RVOL_Peek(self._handle, volume, &outreal) + retCode = TA_SQRT_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_RVOL_Peek", retCode) + _ta_check_success("TA_SQRT_Peek", retCode) return outreal @property @@ -25875,75 +30999,82 @@ cdef class RVOL_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RVOL_Value(self._handle, &outreal) + retCode = TA_SQRT_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_RVOL_Value", retCode) + _ta_check_success("TA_SQRT_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_RVOL_OutRange(self._handle, outbegidx, outnbelement) + return TA_SQRT_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_RVOL_Advance(self._handle) + return TA_SQRT_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_RVOL_Stream* clone = NULL - cdef RVOL_Stream stream = RVOL_Stream.__new__(type(self)) + cdef TA_SQRT_Stream* clone = NULL + cdef SQRT_Stream stream = SQRT_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_RVOL_Clone(self._handle, &clone) + retCode = TA_SQRT_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_RVOL_Clone", retCode) + _ta_check_success("TA_SQRT_Clone", retCode) return stream -cdef class SAR_Stream(Stream): - """ SAR(high, low[, acceleration=?, maximum=?]) +cdef class SQZMOM_Stream(Stream): + """ SQZMOM(high, low, close[, bbperiod=?, nbdev=?, kcperiod=?, factorwide=?, factornormal=?, factornarrow=?]) - Parabolic SAR (Overlap Studies) + Squeeze Momentum and Level (Momentum Indicators) Inputs: - prices: ['high', 'low'] + prices: ['high', 'low', 'close'] Parameters: - acceleration: 0.02 - maximum: 0.2 + bbperiod: 20 + nbdev: 2.0 + kcperiod: 20 + factorwide: 2.0 + factornormal: 1.5 + factornarrow: 1.0 Outputs: - real + momentum + squeeze """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_SAR_Close(self._handle) + TA_SQZMOM_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, double acceleration=0.02, double maximum=0.2): + def __init__(self, high, low, close, int bbperiod=-2**31, double nbdev=-4e37, int kcperiod=-2**31, double factorwide=-4e37, double factornormal=-4e37, double factornarrow=-4e37): cdef np.ndarray a_high = _stream_input(high) cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_SAR_Stream* handle = NULL - cdef double outreal + cdef TA_SQZMOM_Stream* handle = NULL + cdef double outmomentum + cdef int outsqueeze cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_SAR_Lookback(acceleration, maximum) + 1 - retCode = TA_SAR_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, acceleration, maximum, &outreal) + need = lib.TA_SQZMOM_Lookback(bbperiod, nbdev, kcperiod, factorwide, factornormal, factornarrow) + 1 + retCode = TA_SQZMOM_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, bbperiod, nbdev, kcperiod, factorwide, factornormal, factornarrow, &outmomentum, &outsqueeze) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_SAR_Close(self._handle) + TA_SQZMOM_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -25952,30 +31083,33 @@ cdef class SAR_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SAR_Open", retCode, historylen, need) + _stream_open_failed("TA_SQZMOM_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, double acceleration=0.02, double maximum=0.2): + def open_and_fill(high, low, close, int bbperiod=-2**31, double nbdev=-4e37, int kcperiod=-2**31, double factorwide=-4e37, double factornormal=-4e37, double factornarrow=-4e37): cdef np.ndarray a_high = _stream_input(high) cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outreal + cdef np.ndarray outmomentum + cdef np.ndarray outsqueeze cdef int outbegidx cdef int outnbelement - cdef TA_SAR_Stream* handle = NULL - cdef SAR_Stream stream = SAR_Stream.__new__(SAR_Stream) + cdef TA_SQZMOM_Stream* handle = NULL + cdef SQZMOM_Stream stream = SQZMOM_Stream.__new__(SQZMOM_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SAR_Lookback(acceleration, maximum) - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_SQZMOM_Lookback(bbperiod, nbdev, kcperiod, factorwide, factornormal, factornarrow) + outmomentum = make_double_array(length, lookback) + outsqueeze = make_int_array(length, lookback) with nogil: - retCode = TA_SAR_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, acceleration, maximum, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_SQZMOM_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, bbperiod, nbdev, kcperiod, factorwide, factornormal, factornarrow, &outbegidx, &outnbelement, outmomentum.data + lookback, outsqueeze.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -25984,81 +31118,79 @@ cdef class SAR_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SAR_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low,), outreal) + _stream_open_failed("TA_SQZMOM_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low, close,), outmomentum), _stream_like((high, low, close,), outsqueeze)) @cython.binding(False) - def update(self, double high, double low): - cdef double outreal + def update(self, double high, double low, double close): + cdef double outmomentum + cdef int outsqueeze cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SAR_Update(self._handle, high, low, &outreal) + retCode = TA_SQZMOM_Update(self._handle, high, low, close, &outmomentum, &outsqueeze) if retCode != 0: - _ta_check_success("TA_SAR_Update", retCode) - return outreal + _ta_check_success("TA_SQZMOM_Update", retCode) + return (outmomentum, outsqueeze) @cython.binding(False) - def peek(self, double high, double low): - cdef double outreal + def peek(self, double high, double low, double close): + cdef double outmomentum + cdef int outsqueeze cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SAR_Peek(self._handle, high, low, &outreal) + retCode = TA_SQZMOM_Peek(self._handle, high, low, close, &outmomentum, &outsqueeze) if retCode != 0: - _ta_check_success("TA_SAR_Peek", retCode) - return outreal + _ta_check_success("TA_SQZMOM_Peek", retCode) + return (outmomentum, outsqueeze) @property def value(self): - cdef double outreal + cdef double outmomentum + cdef int outsqueeze cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SAR_Value(self._handle, &outreal) + retCode = TA_SQZMOM_Value(self._handle, &outmomentum, &outsqueeze) if retCode != 0: - _ta_check_success("TA_SAR_Value", retCode) - return outreal + _ta_check_success("TA_SQZMOM_Value", retCode) + return (outmomentum, outsqueeze) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_SAR_OutRange(self._handle, outbegidx, outnbelement) + return TA_SQZMOM_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_SAR_Advance(self._handle) + return TA_SQZMOM_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_SAR_Stream* clone = NULL - cdef SAR_Stream stream = SAR_Stream.__new__(type(self)) + cdef TA_SQZMOM_Stream* clone = NULL + cdef SQZMOM_Stream stream = SQZMOM_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SAR_Clone(self._handle, &clone) + retCode = TA_SQZMOM_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_SAR_Clone", retCode) + _ta_check_success("TA_SQZMOM_Clone", retCode) return stream -cdef class SAREXT_Stream(Stream): - """ SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?]) +cdef class STC_Stream(Stream): + """ STC(real[, fastperiod=?, slowperiod=?, cycleperiod=?]) - Parabolic SAR - Extended (Overlap Studies) + Schaff Trend Cycle (Momentum Indicators) Inputs: - prices: ['high', 'low'] + real: (any ndarray) Parameters: - startvalue: 0.0 - offsetonreverse: 0.0 - accelerationinitlong: 0.02 - accelerationlong: 0.02 - accelerationmaxlong: 0.2 - accelerationinitshort: 0.02 - accelerationshort: 0.02 - accelerationmaxshort: 0.2 + fastperiod: 23 + slowperiod: 50 + cycleperiod: 10 Outputs: real """ @@ -26066,30 +31198,29 @@ cdef class SAREXT_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_SAREXT_Close(self._handle) + TA_STC_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def __init__(self, real, int fastperiod=-2**31, int slowperiod=-2**31, int cycleperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_SAREXT_Stream* handle = NULL + cdef TA_STC_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_SAREXT_Lookback(startvalue, offsetonreverse, accelerationinitlong, accelerationlong, accelerationmaxlong, accelerationinitshort, accelerationshort, accelerationmaxshort) + 1 - retCode = TA_SAREXT_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, startvalue, offsetonreverse, accelerationinitlong, accelerationlong, accelerationmaxlong, accelerationinitshort, accelerationshort, accelerationmaxshort, &outreal) + need = lib.TA_STC_Lookback(fastperiod, slowperiod, cycleperiod) + 1 + retCode = TA_STC_Open(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, cycleperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_SAREXT_Close(self._handle) + TA_STC_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -26098,13 +31229,12 @@ cdef class SAREXT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SAREXT_Open", retCode, historylen, need) + _stream_open_failed("TA_STC_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef tuple arrays = (a_high, a_low,) + def open_and_fill(real, int fastperiod=-2**31, int slowperiod=-2**31, int cycleperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -26112,16 +31242,16 @@ cdef class SAREXT_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_SAREXT_Stream* handle = NULL - cdef SAREXT_Stream stream = SAREXT_Stream.__new__(SAREXT_Stream) + cdef TA_STC_Stream* handle = NULL + cdef STC_Stream stream = STC_Stream.__new__(STC_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SAREXT_Lookback(startvalue, offsetonreverse, accelerationinitlong, accelerationlong, accelerationmaxlong, accelerationinitshort, accelerationshort, accelerationmaxshort) + lookback = begidx + lib.TA_STC_Lookback(fastperiod, slowperiod, cycleperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_SAREXT_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, startvalue, offsetonreverse, accelerationinitlong, accelerationlong, accelerationmaxlong, accelerationinitshort, accelerationshort, accelerationmaxshort, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_STC_OpenAndFill(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, cycleperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -26130,29 +31260,29 @@ cdef class SAREXT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SAREXT_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((high, low,), outreal) + _stream_open_failed("TA_STC_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double high, double low): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SAREXT_Update(self._handle, high, low, &outreal) + retCode = TA_STC_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_SAREXT_Update", retCode) + _ta_check_success("TA_STC_Update", retCode) return outreal @cython.binding(False) - def peek(self, double high, double low): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SAREXT_Peek(self._handle, high, low, &outreal) + retCode = TA_STC_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_SAREXT_Peek", retCode) + _ta_check_success("TA_STC_Peek", retCode) return outreal @property @@ -26161,41 +31291,44 @@ cdef class SAREXT_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SAREXT_Value(self._handle, &outreal) + retCode = TA_STC_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_SAREXT_Value", retCode) + _ta_check_success("TA_STC_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_SAREXT_OutRange(self._handle, outbegidx, outnbelement) + return TA_STC_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_SAREXT_Advance(self._handle) + return TA_STC_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_SAREXT_Stream* clone = NULL - cdef SAREXT_Stream stream = SAREXT_Stream.__new__(type(self)) + cdef TA_STC_Stream* clone = NULL + cdef STC_Stream stream = STC_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SAREXT_Clone(self._handle, &clone) + retCode = TA_STC_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_SAREXT_Clone", retCode) + _ta_check_success("TA_STC_Clone", retCode) return stream -cdef class SIN_Stream(Stream): - """ SIN(real) +cdef class STDDEV_Stream(Stream): + """ STDDEV(real[, timeperiod=?, nbdev=?]) - Vector Trigonometric Sin (Math Transform) + Standard Deviation (Statistic Functions) Inputs: real: (any ndarray) + Parameters: + timeperiod: 5 + nbdev: 1.0 Outputs: real """ @@ -26203,29 +31336,29 @@ cdef class SIN_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_SIN_Close(self._handle) + TA_STDDEV_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real): + def __init__(self, real, int timeperiod=-2**31, double nbdev=-4e37): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_SIN_Stream* handle = NULL + cdef TA_STDDEV_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_SIN_Lookback() + 1 - retCode = TA_SIN_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_STDDEV_Lookback(timeperiod, nbdev) + 1 + retCode = TA_STDDEV_Open(&handle, a_real.data + begidx, historylen, timeperiod, nbdev, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_SIN_Close(self._handle) + TA_STDDEV_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -26234,10 +31367,10 @@ cdef class SIN_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SIN_Open", retCode, historylen, need) + _stream_open_failed("TA_STDDEV_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real): + def open_and_fill(real, int timeperiod=-2**31, double nbdev=-4e37): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -26247,16 +31380,16 @@ cdef class SIN_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_SIN_Stream* handle = NULL - cdef SIN_Stream stream = SIN_Stream.__new__(SIN_Stream) + cdef TA_STDDEV_Stream* handle = NULL + cdef STDDEV_Stream stream = STDDEV_Stream.__new__(STDDEV_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SIN_Lookback() + lookback = begidx + lib.TA_STDDEV_Lookback(timeperiod, nbdev) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_SIN_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_STDDEV_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, nbdev, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -26265,7 +31398,7 @@ cdef class SIN_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SIN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_STDDEV_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -26274,9 +31407,9 @@ cdef class SIN_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SIN_Update(self._handle, real, &outreal) + retCode = TA_STDDEV_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_SIN_Update", retCode) + _ta_check_success("TA_STDDEV_Update", retCode) return outreal @cython.binding(False) @@ -26285,9 +31418,9 @@ cdef class SIN_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SIN_Peek(self._handle, real, &outreal) + retCode = TA_STDDEV_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_SIN_Peek", retCode) + _ta_check_success("TA_STDDEV_Peek", retCode) return outreal @property @@ -26296,71 +31429,81 @@ cdef class SIN_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SIN_Value(self._handle, &outreal) + retCode = TA_STDDEV_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_SIN_Value", retCode) + _ta_check_success("TA_STDDEV_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_SIN_OutRange(self._handle, outbegidx, outnbelement) + return TA_STDDEV_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_SIN_Advance(self._handle) + return TA_STDDEV_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_SIN_Stream* clone = NULL - cdef SIN_Stream stream = SIN_Stream.__new__(type(self)) + cdef TA_STDDEV_Stream* clone = NULL + cdef STDDEV_Stream stream = STDDEV_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SIN_Clone(self._handle, &clone) + retCode = TA_STDDEV_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_SIN_Clone", retCode) + _ta_check_success("TA_STDDEV_Clone", retCode) return stream -cdef class SINH_Stream(Stream): - """ SINH(real) +cdef class STOCH_Stream(Stream): + """ STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?]) - Vector Trigonometric Sinh (Math Transform) + Stochastic (Momentum Indicators) Inputs: - real: (any ndarray) + prices: ['high', 'low', 'close'] + Parameters: + fastk_period: 5 + slowk_period: 3 + slowk_matype: 0 (Simple Moving Average) + slowd_period: 3 + slowd_matype: 0 (Simple Moving Average) Outputs: - real + slowk + slowd """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_SINH_Close(self._handle) + TA_STOCH_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, close, int fastk_period=-2**31, int slowk_period=-2**31, int slowk_matype=0, int slowd_period=-2**31, int slowd_matype=0): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_SINH_Stream* handle = NULL - cdef double outreal + cdef TA_STOCH_Stream* handle = NULL + cdef double outslowk + cdef double outslowd cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_SINH_Lookback() + 1 - retCode = TA_SINH_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_STOCH_Lookback(fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype) + 1 + retCode = TA_STOCH_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype, &outslowk, &outslowd) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_SINH_Close(self._handle) + TA_STOCH_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -26369,29 +31512,33 @@ cdef class SINH_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SINH_Open", retCode, historylen, need) + _stream_open_failed("TA_STOCH_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, close, int fastk_period=-2**31, int slowk_period=-2**31, int slowk_matype=0, int slowd_period=-2**31, int slowd_matype=0): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outreal + cdef np.ndarray outslowk + cdef np.ndarray outslowd cdef int outbegidx cdef int outnbelement - cdef TA_SINH_Stream* handle = NULL - cdef SINH_Stream stream = SINH_Stream.__new__(SINH_Stream) + cdef TA_STOCH_Stream* handle = NULL + cdef STOCH_Stream stream = STOCH_Stream.__new__(STOCH_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SINH_Lookback() - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_STOCH_Lookback(fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype) + outslowk = make_double_array(length, lookback) + outslowd = make_double_array(length, lookback) with nogil: - retCode = TA_SINH_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_STOCH_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype, &outbegidx, &outnbelement, outslowk.data + lookback, outslowd.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -26400,104 +31547,113 @@ cdef class SINH_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SINH_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_STOCH_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low, close,), outslowk), _stream_like((high, low, close,), outslowd)) @cython.binding(False) - def update(self, double real): - cdef double outreal + def update(self, double high, double low, double close): + cdef double outslowk + cdef double outslowd cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SINH_Update(self._handle, real, &outreal) + retCode = TA_STOCH_Update(self._handle, high, low, close, &outslowk, &outslowd) if retCode != 0: - _ta_check_success("TA_SINH_Update", retCode) - return outreal + _ta_check_success("TA_STOCH_Update", retCode) + return (outslowk, outslowd) @cython.binding(False) - def peek(self, double real): - cdef double outreal + def peek(self, double high, double low, double close): + cdef double outslowk + cdef double outslowd cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SINH_Peek(self._handle, real, &outreal) + retCode = TA_STOCH_Peek(self._handle, high, low, close, &outslowk, &outslowd) if retCode != 0: - _ta_check_success("TA_SINH_Peek", retCode) - return outreal + _ta_check_success("TA_STOCH_Peek", retCode) + return (outslowk, outslowd) @property def value(self): - cdef double outreal + cdef double outslowk + cdef double outslowd cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SINH_Value(self._handle, &outreal) + retCode = TA_STOCH_Value(self._handle, &outslowk, &outslowd) if retCode != 0: - _ta_check_success("TA_SINH_Value", retCode) - return outreal + _ta_check_success("TA_STOCH_Value", retCode) + return (outslowk, outslowd) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_SINH_OutRange(self._handle, outbegidx, outnbelement) + return TA_STOCH_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_SINH_Advance(self._handle) + return TA_STOCH_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_SINH_Stream* clone = NULL - cdef SINH_Stream stream = SINH_Stream.__new__(type(self)) + cdef TA_STOCH_Stream* clone = NULL + cdef STOCH_Stream stream = STOCH_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SINH_Clone(self._handle, &clone) + retCode = TA_STOCH_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_SINH_Clone", retCode) + _ta_check_success("TA_STOCH_Clone", retCode) return stream -cdef class SMA_Stream(Stream): - """ SMA(real[, timeperiod=?]) +cdef class STOCHF_Stream(Stream): + """ STOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?]) - Simple Moving Average (Overlap Studies) + Stochastic Fast (Momentum Indicators) Inputs: - real: (any ndarray) + prices: ['high', 'low', 'close'] Parameters: - timeperiod: 30 + fastk_period: 5 + fastd_period: 3 + fastd_matype: 0 (Simple Moving Average) Outputs: - real + fastk + fastd """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_SMA_Close(self._handle) + TA_STOCHF_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, high, low, close, int fastk_period=-2**31, int fastd_period=-2**31, int fastd_matype=0): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_SMA_Stream* handle = NULL - cdef double outreal + cdef TA_STOCHF_Stream* handle = NULL + cdef double outfastk + cdef double outfastd cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_SMA_Lookback(timeperiod) + 1 - retCode = TA_SMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_STOCHF_Lookback(fastk_period, fastd_period, fastd_matype) + 1 + retCode = TA_STOCHF_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, fastd_period, fastd_matype, &outfastk, &outfastd) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_SMA_Close(self._handle) + TA_STOCHF_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -26506,29 +31662,33 @@ cdef class SMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SMA_Open", retCode, historylen, need) + _stream_open_failed("TA_STOCHF_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(high, low, close, int fastk_period=-2**31, int fastd_period=-2**31, int fastd_matype=0): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outreal + cdef np.ndarray outfastk + cdef np.ndarray outfastd cdef int outbegidx cdef int outnbelement - cdef TA_SMA_Stream* handle = NULL - cdef SMA_Stream stream = SMA_Stream.__new__(SMA_Stream) + cdef TA_STOCHF_Stream* handle = NULL + cdef STOCHF_Stream stream = STOCHF_Stream.__new__(STOCHF_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SMA_Lookback(timeperiod) - outreal = make_double_array(length, lookback) + lookback = begidx + lib.TA_STOCHF_Lookback(fastk_period, fastd_period, fastd_matype) + outfastk = make_double_array(length, lookback) + outfastd = make_double_array(length, lookback) with nogil: - retCode = TA_SMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_STOCHF_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, fastd_period, fastd_matype, &outbegidx, &outnbelement, outfastk.data + lookback, outfastd.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -26537,111 +31697,112 @@ cdef class SMA_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_STOCHF_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low, close,), outfastk), _stream_like((high, low, close,), outfastd)) @cython.binding(False) - def update(self, double real): - cdef double outreal + def update(self, double high, double low, double close): + cdef double outfastk + cdef double outfastd cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SMA_Update(self._handle, real, &outreal) + retCode = TA_STOCHF_Update(self._handle, high, low, close, &outfastk, &outfastd) if retCode != 0: - _ta_check_success("TA_SMA_Update", retCode) - return outreal + _ta_check_success("TA_STOCHF_Update", retCode) + return (outfastk, outfastd) @cython.binding(False) - def peek(self, double real): - cdef double outreal + def peek(self, double high, double low, double close): + cdef double outfastk + cdef double outfastd cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SMA_Peek(self._handle, real, &outreal) + retCode = TA_STOCHF_Peek(self._handle, high, low, close, &outfastk, &outfastd) if retCode != 0: - _ta_check_success("TA_SMA_Peek", retCode) - return outreal + _ta_check_success("TA_STOCHF_Peek", retCode) + return (outfastk, outfastd) @property def value(self): - cdef double outreal + cdef double outfastk + cdef double outfastd cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SMA_Value(self._handle, &outreal) + retCode = TA_STOCHF_Value(self._handle, &outfastk, &outfastd) if retCode != 0: - _ta_check_success("TA_SMA_Value", retCode) - return outreal + _ta_check_success("TA_STOCHF_Value", retCode) + return (outfastk, outfastd) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_SMA_OutRange(self._handle, outbegidx, outnbelement) + return TA_STOCHF_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_SMA_Advance(self._handle) + return TA_STOCHF_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_SMA_Stream* clone = NULL - cdef SMA_Stream stream = SMA_Stream.__new__(type(self)) + cdef TA_STOCHF_Stream* clone = NULL + cdef STOCHF_Stream stream = STOCHF_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SMA_Clone(self._handle, &clone) + retCode = TA_STOCHF_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_SMA_Clone", retCode) + _ta_check_success("TA_STOCHF_Clone", retCode) return stream -cdef class SMI_Stream(Stream): - """ SMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?]) +cdef class STOCHRSI_Stream(Stream): + """ STOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?]) - Stochastic Momentum Index (Momentum Indicators) + Stochastic Relative Strength Index (Momentum Indicators) Inputs: - prices: ['high', 'low', 'close'] + real: (any ndarray) Parameters: - timeperiod: 13 - fastperiod: 2 - slowperiod: 25 - signalperiod: 9 + timeperiod: 14 + fastk_period: 5 + fastd_period: 3 + fastd_matype: 0 (Simple Moving Average) Outputs: - smi - smisignal + fastk + fastd """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_SMI_Close(self._handle) + TA_STOCHRSI_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, close, int timeperiod=-2**31, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def __init__(self, real, int timeperiod=-2**31, int fastk_period=-2**31, int fastd_period=-2**31, int fastd_matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_SMI_Stream* handle = NULL - cdef double outsmi - cdef double outsmisignal + cdef TA_STOCHRSI_Stream* handle = NULL + cdef double outfastk + cdef double outfastd cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_SMI_Lookback(timeperiod, fastperiod, slowperiod, signalperiod) + 1 - retCode = TA_SMI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, fastperiod, slowperiod, signalperiod, &outsmi, &outsmisignal) + need = lib.TA_STOCHRSI_Lookback(timeperiod, fastk_period, fastd_period, fastd_matype) + 1 + retCode = TA_STOCHRSI_Open(&handle, a_real.data + begidx, historylen, timeperiod, fastk_period, fastd_period, fastd_matype, &outfastk, &outfastd) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_SMI_Close(self._handle) + TA_STOCHRSI_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -26650,33 +31811,31 @@ cdef class SMI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SMI_Open", retCode, historylen, need) + _stream_open_failed("TA_STOCHRSI_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, close, int timeperiod=-2**31, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def open_and_fill(real, int timeperiod=-2**31, int fastk_period=-2**31, int fastd_period=-2**31, int fastd_matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outsmi - cdef np.ndarray outsmisignal + cdef np.ndarray outfastk + cdef np.ndarray outfastd cdef int outbegidx cdef int outnbelement - cdef TA_SMI_Stream* handle = NULL - cdef SMI_Stream stream = SMI_Stream.__new__(SMI_Stream) + cdef TA_STOCHRSI_Stream* handle = NULL + cdef STOCHRSI_Stream stream = STOCHRSI_Stream.__new__(STOCHRSI_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SMI_Lookback(timeperiod, fastperiod, slowperiod, signalperiod) - outsmi = make_double_array(length, lookback) - outsmisignal = make_double_array(length, lookback) + lookback = begidx + lib.TA_STOCHRSI_Lookback(timeperiod, fastk_period, fastd_period, fastd_matype) + outfastk = make_double_array(length, lookback) + outfastd = make_double_array(length, lookback) with nogil: - retCode = TA_SMI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, fastperiod, slowperiod, signalperiod, &outbegidx, &outnbelement, outsmi.data + lookback, outsmisignal.data + lookback) + retCode = TA_STOCHRSI_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, fastk_period, fastd_period, fastd_matype, &outbegidx, &outnbelement, outfastk.data + lookback, outfastd.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -26685,75 +31844,76 @@ cdef class SMI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SMI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((high, low, close,), outsmi), _stream_like((high, low, close,), outsmisignal)) + _stream_open_failed("TA_STOCHRSI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((real,), outfastk), _stream_like((real,), outfastd)) @cython.binding(False) - def update(self, double high, double low, double close): - cdef double outsmi - cdef double outsmisignal + def update(self, double real): + cdef double outfastk + cdef double outfastd cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SMI_Update(self._handle, high, low, close, &outsmi, &outsmisignal) + retCode = TA_STOCHRSI_Update(self._handle, real, &outfastk, &outfastd) if retCode != 0: - _ta_check_success("TA_SMI_Update", retCode) - return (outsmi, outsmisignal) + _ta_check_success("TA_STOCHRSI_Update", retCode) + return (outfastk, outfastd) @cython.binding(False) - def peek(self, double high, double low, double close): - cdef double outsmi - cdef double outsmisignal + def peek(self, double real): + cdef double outfastk + cdef double outfastd cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SMI_Peek(self._handle, high, low, close, &outsmi, &outsmisignal) + retCode = TA_STOCHRSI_Peek(self._handle, real, &outfastk, &outfastd) if retCode != 0: - _ta_check_success("TA_SMI_Peek", retCode) - return (outsmi, outsmisignal) + _ta_check_success("TA_STOCHRSI_Peek", retCode) + return (outfastk, outfastd) @property def value(self): - cdef double outsmi - cdef double outsmisignal + cdef double outfastk + cdef double outfastd cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SMI_Value(self._handle, &outsmi, &outsmisignal) + retCode = TA_STOCHRSI_Value(self._handle, &outfastk, &outfastd) if retCode != 0: - _ta_check_success("TA_SMI_Value", retCode) - return (outsmi, outsmisignal) + _ta_check_success("TA_STOCHRSI_Value", retCode) + return (outfastk, outfastd) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_SMI_OutRange(self._handle, outbegidx, outnbelement) + return TA_STOCHRSI_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_SMI_Advance(self._handle) + return TA_STOCHRSI_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_SMI_Stream* clone = NULL - cdef SMI_Stream stream = SMI_Stream.__new__(type(self)) + cdef TA_STOCHRSI_Stream* clone = NULL + cdef STOCHRSI_Stream stream = STOCHRSI_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SMI_Clone(self._handle, &clone) + retCode = TA_STOCHRSI_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_SMI_Clone", retCode) + _ta_check_success("TA_STOCHRSI_Clone", retCode) return stream -cdef class SQRT_Stream(Stream): - """ SQRT(real) +cdef class SUB_Stream(Stream): + """ SUB(real0, real1) - Vector Square Root (Math Transform) + Vector Arithmetic Subtraction (Math Operators) Inputs: - real: (any ndarray) + real0: (any ndarray) + real1: (any ndarray) Outputs: real """ @@ -26761,29 +31921,30 @@ cdef class SQRT_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_SQRT_Close(self._handle) + TA_SUB_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def __init__(self, real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_SQRT_Stream* handle = NULL + cdef TA_SUB_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_SQRT_Lookback() + 1 - retCode = TA_SQRT_Open(&handle, a_real.data + begidx, historylen, &outreal) + need = lib.TA_SUB_Lookback() + 1 + retCode = TA_SUB_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_SQRT_Close(self._handle) + TA_SUB_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -26792,12 +31953,13 @@ cdef class SQRT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SQRT_Open", retCode, historylen, need) + _stream_open_failed("TA_SUB_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real): - cdef np.ndarray a_real = _stream_input(real) - cdef tuple arrays = (a_real,) + def open_and_fill(real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -26805,16 +31967,16 @@ cdef class SQRT_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_SQRT_Stream* handle = NULL - cdef SQRT_Stream stream = SQRT_Stream.__new__(SQRT_Stream) + cdef TA_SUB_Stream* handle = NULL + cdef SUB_Stream stream = SUB_Stream.__new__(SUB_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SQRT_Lookback() + lookback = begidx + lib.TA_SUB_Lookback() outreal = make_double_array(length, lookback) with nogil: - retCode = TA_SQRT_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_SUB_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -26823,29 +31985,29 @@ cdef class SQRT_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SQRT_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real,), outreal) + _stream_open_failed("TA_SUB_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real0, real1,), outreal) @cython.binding(False) - def update(self, double real): + def update(self, double real0, double real1): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SQRT_Update(self._handle, real, &outreal) + retCode = TA_SUB_Update(self._handle, real0, real1, &outreal) if retCode != 0: - _ta_check_success("TA_SQRT_Update", retCode) + _ta_check_success("TA_SUB_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real): + def peek(self, double real0, double real1): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SQRT_Peek(self._handle, real, &outreal) + retCode = TA_SUB_Peek(self._handle, real0, real1, &outreal) if retCode != 0: - _ta_check_success("TA_SQRT_Peek", retCode) + _ta_check_success("TA_SUB_Peek", retCode) return outreal @property @@ -26854,44 +32016,43 @@ cdef class SQRT_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SQRT_Value(self._handle, &outreal) + retCode = TA_SUB_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_SQRT_Value", retCode) + _ta_check_success("TA_SUB_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_SQRT_OutRange(self._handle, outbegidx, outnbelement) + return TA_SUB_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_SQRT_Advance(self._handle) + return TA_SUB_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_SQRT_Stream* clone = NULL - cdef SQRT_Stream stream = SQRT_Stream.__new__(type(self)) + cdef TA_SUB_Stream* clone = NULL + cdef SUB_Stream stream = SUB_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SQRT_Clone(self._handle, &clone) + retCode = TA_SUB_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_SQRT_Clone", retCode) + _ta_check_success("TA_SUB_Clone", retCode) return stream -cdef class STDDEV_Stream(Stream): - """ STDDEV(real[, timeperiod=?, nbdev=?]) +cdef class SUM_Stream(Stream): + """ SUM(real[, timeperiod=?]) - Standard Deviation (Statistic Functions) + Summation (Math Operators) Inputs: real: (any ndarray) Parameters: - timeperiod: 5 - nbdev: 1.0 + timeperiod: 30 Outputs: real """ @@ -26899,29 +32060,29 @@ cdef class STDDEV_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_STDDEV_Close(self._handle) + TA_SUM_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31, double nbdev=-4e37): + def __init__(self, real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_STDDEV_Stream* handle = NULL + cdef TA_SUM_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_STDDEV_Lookback(timeperiod, nbdev) + 1 - retCode = TA_STDDEV_Open(&handle, a_real.data + begidx, historylen, timeperiod, nbdev, &outreal) + need = lib.TA_SUM_Lookback(timeperiod) + 1 + retCode = TA_SUM_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_STDDEV_Close(self._handle) + TA_SUM_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -26930,10 +32091,10 @@ cdef class STDDEV_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_STDDEV_Open", retCode, historylen, need) + _stream_open_failed("TA_SUM_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31, double nbdev=-4e37): + def open_and_fill(real, int timeperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -26943,16 +32104,16 @@ cdef class STDDEV_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_STDDEV_Stream* handle = NULL - cdef STDDEV_Stream stream = STDDEV_Stream.__new__(STDDEV_Stream) + cdef TA_SUM_Stream* handle = NULL + cdef SUM_Stream stream = SUM_Stream.__new__(SUM_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_STDDEV_Lookback(timeperiod, nbdev) + lookback = begidx + lib.TA_SUM_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_STDDEV_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, nbdev, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_SUM_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -26961,7 +32122,7 @@ cdef class STDDEV_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_STDDEV_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_SUM_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -26970,9 +32131,9 @@ cdef class STDDEV_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STDDEV_Update(self._handle, real, &outreal) + retCode = TA_SUM_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_STDDEV_Update", retCode) + _ta_check_success("TA_SUM_Update", retCode) return outreal @cython.binding(False) @@ -26981,9 +32142,9 @@ cdef class STDDEV_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STDDEV_Peek(self._handle, real, &outreal) + retCode = TA_SUM_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_STDDEV_Peek", retCode) + _ta_check_success("TA_SUM_Peek", retCode) return outreal @property @@ -26992,60 +32153,57 @@ cdef class STDDEV_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STDDEV_Value(self._handle, &outreal) + retCode = TA_SUM_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_STDDEV_Value", retCode) + _ta_check_success("TA_SUM_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_STDDEV_OutRange(self._handle, outbegidx, outnbelement) + return TA_SUM_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_STDDEV_Advance(self._handle) + return TA_SUM_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_STDDEV_Stream* clone = NULL - cdef STDDEV_Stream stream = STDDEV_Stream.__new__(type(self)) + cdef TA_SUM_Stream* clone = NULL + cdef SUM_Stream stream = SUM_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STDDEV_Clone(self._handle, &clone) + retCode = TA_SUM_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_STDDEV_Clone", retCode) + _ta_check_success("TA_SUM_Clone", retCode) return stream -cdef class STOCH_Stream(Stream): - """ STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?]) +cdef class SUPERTREND_Stream(Stream): + """ SUPERTREND(high, low, close[, timeperiod=?, multiplier=?]) - Stochastic (Momentum Indicators) + SuperTrend (Overlap Studies) Inputs: prices: ['high', 'low', 'close'] Parameters: - fastk_period: 5 - slowk_period: 3 - slowk_matype: 0 (Simple Moving Average) - slowd_period: 3 - slowd_matype: 0 (Simple Moving Average) + timeperiod: 10 + multiplier: 3.0 Outputs: - slowk - slowd + supertrend + trend """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_STOCH_Close(self._handle) + TA_SUPERTREND_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, close, int fastk_period=-2**31, int slowk_period=-2**31, int slowk_matype=0, int slowd_period=-2**31, int slowd_matype=0): + def __init__(self, high, low, close, int timeperiod=-2**31, double multiplier=3.0): cdef np.ndarray a_high = _stream_input(high) cdef np.ndarray a_low = _stream_input(low) cdef np.ndarray a_close = _stream_input(close) @@ -27053,20 +32211,20 @@ cdef class STOCH_Stream(Stream): cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_STOCH_Stream* handle = NULL - cdef double outslowk - cdef double outslowd + cdef TA_SUPERTREND_Stream* handle = NULL + cdef double outsupertrend + cdef int outtrend cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_STOCH_Lookback(fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype) + 1 - retCode = TA_STOCH_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype, &outslowk, &outslowd) + need = lib.TA_SUPERTREND_Lookback(timeperiod, multiplier) + 1 + retCode = TA_SUPERTREND_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, multiplier, &outsupertrend, &outtrend) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_STOCH_Close(self._handle) + TA_SUPERTREND_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -27075,10 +32233,10 @@ cdef class STOCH_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_STOCH_Open", retCode, historylen, need) + _stream_open_failed("TA_SUPERTREND_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, close, int fastk_period=-2**31, int slowk_period=-2**31, int slowk_matype=0, int slowd_period=-2**31, int slowd_matype=0): + def open_and_fill(high, low, close, int timeperiod=-2**31, double multiplier=3.0): cdef np.ndarray a_high = _stream_input(high) cdef np.ndarray a_low = _stream_input(low) cdef np.ndarray a_close = _stream_input(close) @@ -27087,21 +32245,21 @@ cdef class STOCH_Stream(Stream): cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outslowk - cdef np.ndarray outslowd + cdef np.ndarray outsupertrend + cdef np.ndarray outtrend cdef int outbegidx cdef int outnbelement - cdef TA_STOCH_Stream* handle = NULL - cdef STOCH_Stream stream = STOCH_Stream.__new__(STOCH_Stream) + cdef TA_SUPERTREND_Stream* handle = NULL + cdef SUPERTREND_Stream stream = SUPERTREND_Stream.__new__(SUPERTREND_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_STOCH_Lookback(fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype) - outslowk = make_double_array(length, lookback) - outslowd = make_double_array(length, lookback) + lookback = begidx + lib.TA_SUPERTREND_Lookback(timeperiod, multiplier) + outsupertrend = make_double_array(length, lookback) + outtrend = make_int_array(length, lookback) with nogil: - retCode = TA_STOCH_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype, &outbegidx, &outnbelement, outslowk.data + lookback, outslowd.data + lookback) + retCode = TA_SUPERTREND_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, multiplier, &outbegidx, &outnbelement, outsupertrend.data + lookback, outtrend.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -27110,113 +32268,107 @@ cdef class STOCH_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_STOCH_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((high, low, close,), outslowk), _stream_like((high, low, close,), outslowd)) + _stream_open_failed("TA_SUPERTREND_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low, close,), outsupertrend), _stream_like((high, low, close,), outtrend)) @cython.binding(False) def update(self, double high, double low, double close): - cdef double outslowk - cdef double outslowd + cdef double outsupertrend + cdef int outtrend cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STOCH_Update(self._handle, high, low, close, &outslowk, &outslowd) + retCode = TA_SUPERTREND_Update(self._handle, high, low, close, &outsupertrend, &outtrend) if retCode != 0: - _ta_check_success("TA_STOCH_Update", retCode) - return (outslowk, outslowd) + _ta_check_success("TA_SUPERTREND_Update", retCode) + return (outsupertrend, outtrend) @cython.binding(False) def peek(self, double high, double low, double close): - cdef double outslowk - cdef double outslowd + cdef double outsupertrend + cdef int outtrend cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STOCH_Peek(self._handle, high, low, close, &outslowk, &outslowd) + retCode = TA_SUPERTREND_Peek(self._handle, high, low, close, &outsupertrend, &outtrend) if retCode != 0: - _ta_check_success("TA_STOCH_Peek", retCode) - return (outslowk, outslowd) + _ta_check_success("TA_SUPERTREND_Peek", retCode) + return (outsupertrend, outtrend) @property def value(self): - cdef double outslowk - cdef double outslowd + cdef double outsupertrend + cdef int outtrend cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STOCH_Value(self._handle, &outslowk, &outslowd) + retCode = TA_SUPERTREND_Value(self._handle, &outsupertrend, &outtrend) if retCode != 0: - _ta_check_success("TA_STOCH_Value", retCode) - return (outslowk, outslowd) + _ta_check_success("TA_SUPERTREND_Value", retCode) + return (outsupertrend, outtrend) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_STOCH_OutRange(self._handle, outbegidx, outnbelement) + return TA_SUPERTREND_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_STOCH_Advance(self._handle) + return TA_SUPERTREND_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_STOCH_Stream* clone = NULL - cdef STOCH_Stream stream = STOCH_Stream.__new__(type(self)) + cdef TA_SUPERTREND_Stream* clone = NULL + cdef SUPERTREND_Stream stream = SUPERTREND_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STOCH_Clone(self._handle, &clone) + retCode = TA_SUPERTREND_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_STOCH_Clone", retCode) + _ta_check_success("TA_SUPERTREND_Clone", retCode) return stream -cdef class STOCHF_Stream(Stream): - """ STOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?]) +cdef class SWAK_2PHP_Stream(Stream): + """ SWAK_2PHP(real[, timeperiod=?]) - Stochastic Fast (Momentum Indicators) + Swiss Army Knife - Two-Pole High-Pass Filter (Cycle Indicators) Inputs: - prices: ['high', 'low', 'close'] + real: (any ndarray) Parameters: - fastk_period: 5 - fastd_period: 3 - fastd_matype: 0 (Simple Moving Average) + timeperiod: 20 Outputs: - fastk - fastd + real """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_STOCHF_Close(self._handle) + TA_SWAK_2PHP_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, close, int fastk_period=-2**31, int fastd_period=-2**31, int fastd_matype=0): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_STOCHF_Stream* handle = NULL - cdef double outfastk - cdef double outfastd + cdef TA_SWAK_2PHP_Stream* handle = NULL + cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_STOCHF_Lookback(fastk_period, fastd_period, fastd_matype) + 1 - retCode = TA_STOCHF_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, fastd_period, fastd_matype, &outfastk, &outfastd) + need = lib.TA_SWAK_2PHP_Lookback(timeperiod) + 1 + retCode = TA_SWAK_2PHP_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_STOCHF_Close(self._handle) + TA_SWAK_2PHP_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -27225,33 +32377,29 @@ cdef class STOCHF_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_STOCHF_Open", retCode, historylen, need) + _stream_open_failed("TA_SWAK_2PHP_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, close, int fastk_period=-2**31, int fastd_period=-2**31, int fastd_matype=0): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outfastk - cdef np.ndarray outfastd + cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_STOCHF_Stream* handle = NULL - cdef STOCHF_Stream stream = STOCHF_Stream.__new__(STOCHF_Stream) + cdef TA_SWAK_2PHP_Stream* handle = NULL + cdef SWAK_2PHP_Stream stream = SWAK_2PHP_Stream.__new__(SWAK_2PHP_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_STOCHF_Lookback(fastk_period, fastd_period, fastd_matype) - outfastk = make_double_array(length, lookback) - outfastd = make_double_array(length, lookback) + lookback = begidx + lib.TA_SWAK_2PHP_Lookback(timeperiod) + outreal = make_double_array(length, lookback) with nogil: - retCode = TA_STOCHF_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, fastd_period, fastd_matype, &outbegidx, &outnbelement, outfastk.data + lookback, outfastd.data + lookback) + retCode = TA_SWAK_2PHP_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -27260,112 +32408,105 @@ cdef class STOCHF_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_STOCHF_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((high, low, close,), outfastk), _stream_like((high, low, close,), outfastd)) + _stream_open_failed("TA_SWAK_2PHP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double high, double low, double close): - cdef double outfastk - cdef double outfastd + def update(self, double real): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STOCHF_Update(self._handle, high, low, close, &outfastk, &outfastd) + retCode = TA_SWAK_2PHP_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_STOCHF_Update", retCode) - return (outfastk, outfastd) + _ta_check_success("TA_SWAK_2PHP_Update", retCode) + return outreal @cython.binding(False) - def peek(self, double high, double low, double close): - cdef double outfastk - cdef double outfastd + def peek(self, double real): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STOCHF_Peek(self._handle, high, low, close, &outfastk, &outfastd) + retCode = TA_SWAK_2PHP_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_STOCHF_Peek", retCode) - return (outfastk, outfastd) + _ta_check_success("TA_SWAK_2PHP_Peek", retCode) + return outreal @property def value(self): - cdef double outfastk - cdef double outfastd + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STOCHF_Value(self._handle, &outfastk, &outfastd) + retCode = TA_SWAK_2PHP_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_STOCHF_Value", retCode) - return (outfastk, outfastd) + _ta_check_success("TA_SWAK_2PHP_Value", retCode) + return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_STOCHF_OutRange(self._handle, outbegidx, outnbelement) + return TA_SWAK_2PHP_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_STOCHF_Advance(self._handle) + return TA_SWAK_2PHP_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_STOCHF_Stream* clone = NULL - cdef STOCHF_Stream stream = STOCHF_Stream.__new__(type(self)) + cdef TA_SWAK_2PHP_Stream* clone = NULL + cdef SWAK_2PHP_Stream stream = SWAK_2PHP_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STOCHF_Clone(self._handle, &clone) + retCode = TA_SWAK_2PHP_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_STOCHF_Clone", retCode) + _ta_check_success("TA_SWAK_2PHP_Clone", retCode) return stream -cdef class STOCHRSI_Stream(Stream): - """ STOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?]) +cdef class SWAK_BP_Stream(Stream): + """ SWAK_BP(real[, timeperiod=?, delta=?]) - Stochastic Relative Strength Index (Momentum Indicators) + Swiss Army Knife - Band-Pass Filter (Cycle Indicators) Inputs: real: (any ndarray) Parameters: - timeperiod: 14 - fastk_period: 5 - fastd_period: 3 - fastd_matype: 0 (Simple Moving Average) + timeperiod: 20 + delta: 0.1 Outputs: - fastk - fastd + real """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_STOCHRSI_Close(self._handle) + TA_SWAK_BP_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31, int fastk_period=-2**31, int fastd_period=-2**31, int fastd_matype=0): + def __init__(self, real, int timeperiod=-2**31, double delta=0.1): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_STOCHRSI_Stream* handle = NULL - cdef double outfastk - cdef double outfastd + cdef TA_SWAK_BP_Stream* handle = NULL + cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_STOCHRSI_Lookback(timeperiod, fastk_period, fastd_period, fastd_matype) + 1 - retCode = TA_STOCHRSI_Open(&handle, a_real.data + begidx, historylen, timeperiod, fastk_period, fastd_period, fastd_matype, &outfastk, &outfastd) + need = lib.TA_SWAK_BP_Lookback(timeperiod, delta) + 1 + retCode = TA_SWAK_BP_Open(&handle, a_real.data + begidx, historylen, timeperiod, delta, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_STOCHRSI_Close(self._handle) + TA_SWAK_BP_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -27374,31 +32515,29 @@ cdef class STOCHRSI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_STOCHRSI_Open", retCode, historylen, need) + _stream_open_failed("TA_SWAK_BP_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31, int fastk_period=-2**31, int fastd_period=-2**31, int fastd_matype=0): + def open_and_fill(real, int timeperiod=-2**31, double delta=0.1): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outfastk - cdef np.ndarray outfastd + cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_STOCHRSI_Stream* handle = NULL - cdef STOCHRSI_Stream stream = STOCHRSI_Stream.__new__(STOCHRSI_Stream) + cdef TA_SWAK_BP_Stream* handle = NULL + cdef SWAK_BP_Stream stream = SWAK_BP_Stream.__new__(SWAK_BP_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_STOCHRSI_Lookback(timeperiod, fastk_period, fastd_period, fastd_matype) - outfastk = make_double_array(length, lookback) - outfastd = make_double_array(length, lookback) + lookback = begidx + lib.TA_SWAK_BP_Lookback(timeperiod, delta) + outreal = make_double_array(length, lookback) with nogil: - retCode = TA_STOCHRSI_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, fastk_period, fastd_period, fastd_matype, &outbegidx, &outnbelement, outfastk.data + lookback, outfastd.data + lookback) + retCode = TA_SWAK_BP_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, delta, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -27407,76 +32546,74 @@ cdef class STOCHRSI_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_STOCHRSI_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((real,), outfastk), _stream_like((real,), outfastd)) + _stream_open_failed("TA_SWAK_BP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) def update(self, double real): - cdef double outfastk - cdef double outfastd + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STOCHRSI_Update(self._handle, real, &outfastk, &outfastd) + retCode = TA_SWAK_BP_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_STOCHRSI_Update", retCode) - return (outfastk, outfastd) + _ta_check_success("TA_SWAK_BP_Update", retCode) + return outreal @cython.binding(False) def peek(self, double real): - cdef double outfastk - cdef double outfastd + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STOCHRSI_Peek(self._handle, real, &outfastk, &outfastd) + retCode = TA_SWAK_BP_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_STOCHRSI_Peek", retCode) - return (outfastk, outfastd) + _ta_check_success("TA_SWAK_BP_Peek", retCode) + return outreal @property def value(self): - cdef double outfastk - cdef double outfastd + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STOCHRSI_Value(self._handle, &outfastk, &outfastd) + retCode = TA_SWAK_BP_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_STOCHRSI_Value", retCode) - return (outfastk, outfastd) + _ta_check_success("TA_SWAK_BP_Value", retCode) + return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_STOCHRSI_OutRange(self._handle, outbegidx, outnbelement) + return TA_SWAK_BP_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_STOCHRSI_Advance(self._handle) + return TA_SWAK_BP_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_STOCHRSI_Stream* clone = NULL - cdef STOCHRSI_Stream stream = STOCHRSI_Stream.__new__(type(self)) + cdef TA_SWAK_BP_Stream* clone = NULL + cdef SWAK_BP_Stream stream = SWAK_BP_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_STOCHRSI_Clone(self._handle, &clone) + retCode = TA_SWAK_BP_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_STOCHRSI_Clone", retCode) + _ta_check_success("TA_SWAK_BP_Clone", retCode) return stream -cdef class SUB_Stream(Stream): - """ SUB(real0, real1) +cdef class SWAK_BUTTER_Stream(Stream): + """ SWAK_BUTTER(real[, timeperiod=?]) - Vector Arithmetic Subtraction (Math Operators) + Swiss Army Knife - Butterworth Filter (Overlap Studies) Inputs: - real0: (any ndarray) - real1: (any ndarray) + real: (any ndarray) + Parameters: + timeperiod: 20 Outputs: real """ @@ -27484,30 +32621,29 @@ cdef class SUB_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_SUB_Close(self._handle) + TA_SWAK_BUTTER_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real0, real1): - cdef np.ndarray a_real0 = _stream_input(real0) - cdef np.ndarray a_real1 = _stream_input(real1) - cdef tuple arrays = (a_real0, a_real1,) + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_SUB_Stream* handle = NULL + cdef TA_SWAK_BUTTER_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_SUB_Lookback() + 1 - retCode = TA_SUB_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outreal) + need = lib.TA_SWAK_BUTTER_Lookback(timeperiod) + 1 + retCode = TA_SWAK_BUTTER_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_SUB_Close(self._handle) + TA_SWAK_BUTTER_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -27516,13 +32652,12 @@ cdef class SUB_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SUB_Open", retCode, historylen, need) + _stream_open_failed("TA_SWAK_BUTTER_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real0, real1): - cdef np.ndarray a_real0 = _stream_input(real0) - cdef np.ndarray a_real1 = _stream_input(real1) - cdef tuple arrays = (a_real0, a_real1,) + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) @@ -27530,16 +32665,16 @@ cdef class SUB_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_SUB_Stream* handle = NULL - cdef SUB_Stream stream = SUB_Stream.__new__(SUB_Stream) + cdef TA_SWAK_BUTTER_Stream* handle = NULL + cdef SWAK_BUTTER_Stream stream = SWAK_BUTTER_Stream.__new__(SWAK_BUTTER_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SUB_Lookback() + lookback = begidx + lib.TA_SWAK_BUTTER_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_SUB_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_SWAK_BUTTER_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -27548,29 +32683,29 @@ cdef class SUB_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SUB_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, _stream_like((real0, real1,), outreal) + _stream_open_failed("TA_SWAK_BUTTER_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double real0, double real1): + def update(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SUB_Update(self._handle, real0, real1, &outreal) + retCode = TA_SWAK_BUTTER_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_SUB_Update", retCode) + _ta_check_success("TA_SWAK_BUTTER_Update", retCode) return outreal @cython.binding(False) - def peek(self, double real0, double real1): + def peek(self, double real): cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SUB_Peek(self._handle, real0, real1, &outreal) + retCode = TA_SWAK_BUTTER_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_SUB_Peek", retCode) + _ta_check_success("TA_SWAK_BUTTER_Peek", retCode) return outreal @property @@ -27579,43 +32714,43 @@ cdef class SUB_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SUB_Value(self._handle, &outreal) + retCode = TA_SWAK_BUTTER_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_SUB_Value", retCode) + _ta_check_success("TA_SWAK_BUTTER_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_SUB_OutRange(self._handle, outbegidx, outnbelement) + return TA_SWAK_BUTTER_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_SUB_Advance(self._handle) + return TA_SWAK_BUTTER_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_SUB_Stream* clone = NULL - cdef SUB_Stream stream = SUB_Stream.__new__(type(self)) + cdef TA_SWAK_BUTTER_Stream* clone = NULL + cdef SWAK_BUTTER_Stream stream = SWAK_BUTTER_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SUB_Clone(self._handle, &clone) + retCode = TA_SWAK_BUTTER_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_SUB_Clone", retCode) + _ta_check_success("TA_SWAK_BUTTER_Clone", retCode) return stream -cdef class SUM_Stream(Stream): - """ SUM(real[, timeperiod=?]) +cdef class SWAK_GAUSS_Stream(Stream): + """ SWAK_GAUSS(real[, timeperiod=?]) - Summation (Math Operators) + Swiss Army Knife - Gaussian Filter (Overlap Studies) Inputs: real: (any ndarray) Parameters: - timeperiod: 30 + timeperiod: 20 Outputs: real """ @@ -27623,7 +32758,7 @@ cdef class SUM_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_SUM_Close(self._handle) + TA_SWAK_GAUSS_Close(self._handle) self._handle = NULL _ta_stream_closed() @@ -27633,19 +32768,19 @@ cdef class SUM_Stream(Stream): cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_SUM_Stream* handle = NULL + cdef TA_SWAK_GAUSS_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_SUM_Lookback(timeperiod) + 1 - retCode = TA_SUM_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_SWAK_GAUSS_Lookback(timeperiod) + 1 + retCode = TA_SWAK_GAUSS_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_SUM_Close(self._handle) + TA_SWAK_GAUSS_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -27654,7 +32789,7 @@ cdef class SUM_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SUM_Open", retCode, historylen, need) + _stream_open_failed("TA_SWAK_GAUSS_Open", retCode, historylen, need) @staticmethod def open_and_fill(real, int timeperiod=-2**31): @@ -27667,16 +32802,16 @@ cdef class SUM_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_SUM_Stream* handle = NULL - cdef SUM_Stream stream = SUM_Stream.__new__(SUM_Stream) + cdef TA_SWAK_GAUSS_Stream* handle = NULL + cdef SWAK_GAUSS_Stream stream = SWAK_GAUSS_Stream.__new__(SWAK_GAUSS_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SUM_Lookback(timeperiod) + lookback = begidx + lib.TA_SWAK_GAUSS_Lookback(timeperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_SUM_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_SWAK_GAUSS_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -27685,7 +32820,7 @@ cdef class SUM_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SUM_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_SWAK_GAUSS_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -27694,9 +32829,9 @@ cdef class SUM_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SUM_Update(self._handle, real, &outreal) + retCode = TA_SWAK_GAUSS_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_SUM_Update", retCode) + _ta_check_success("TA_SWAK_GAUSS_Update", retCode) return outreal @cython.binding(False) @@ -27705,9 +32840,9 @@ cdef class SUM_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SUM_Peek(self._handle, real, &outreal) + retCode = TA_SWAK_GAUSS_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_SUM_Peek", retCode) + _ta_check_success("TA_SWAK_GAUSS_Peek", retCode) return outreal @property @@ -27716,78 +32851,73 @@ cdef class SUM_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SUM_Value(self._handle, &outreal) + retCode = TA_SWAK_GAUSS_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_SUM_Value", retCode) + _ta_check_success("TA_SWAK_GAUSS_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_SUM_OutRange(self._handle, outbegidx, outnbelement) + return TA_SWAK_GAUSS_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_SUM_Advance(self._handle) + return TA_SWAK_GAUSS_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_SUM_Stream* clone = NULL - cdef SUM_Stream stream = SUM_Stream.__new__(type(self)) + cdef TA_SWAK_GAUSS_Stream* clone = NULL + cdef SWAK_GAUSS_Stream stream = SWAK_GAUSS_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SUM_Clone(self._handle, &clone) + retCode = TA_SWAK_GAUSS_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_SUM_Clone", retCode) + _ta_check_success("TA_SWAK_GAUSS_Clone", retCode) return stream -cdef class SUPERTREND_Stream(Stream): - """ SUPERTREND(high, low, close[, timeperiod=?, multiplier=?]) +cdef class SWAK_HP_Stream(Stream): + """ SWAK_HP(real[, timeperiod=?]) - SuperTrend (Overlap Studies) + Swiss Army Knife - High-Pass Filter (Cycle Indicators) Inputs: - prices: ['high', 'low', 'close'] + real: (any ndarray) Parameters: - timeperiod: 10 - multiplier: 3.0 + timeperiod: 20 Outputs: - supertrend - trend + real """ def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_SUPERTREND_Close(self._handle) + TA_SWAK_HP_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, high, low, close, int timeperiod=-2**31, double multiplier=3.0): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_SUPERTREND_Stream* handle = NULL - cdef double outsupertrend - cdef int outtrend + cdef TA_SWAK_HP_Stream* handle = NULL + cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_SUPERTREND_Lookback(timeperiod, multiplier) + 1 - retCode = TA_SUPERTREND_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, multiplier, &outsupertrend, &outtrend) + need = lib.TA_SWAK_HP_Lookback(timeperiod) + 1 + retCode = TA_SWAK_HP_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_SUPERTREND_Close(self._handle) + TA_SWAK_HP_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -27796,33 +32926,29 @@ cdef class SUPERTREND_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SUPERTREND_Open", retCode, historylen, need) + _stream_open_failed("TA_SWAK_HP_Open", retCode, historylen, need) @staticmethod - def open_and_fill(high, low, close, int timeperiod=-2**31, double multiplier=3.0): - cdef np.ndarray a_high = _stream_input(high) - cdef np.ndarray a_low = _stream_input(low) - cdef np.ndarray a_close = _stream_input(close) - cdef tuple arrays = (a_high, a_low, a_close,) + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback - cdef np.ndarray outsupertrend - cdef np.ndarray outtrend + cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_SUPERTREND_Stream* handle = NULL - cdef SUPERTREND_Stream stream = SUPERTREND_Stream.__new__(SUPERTREND_Stream) + cdef TA_SWAK_HP_Stream* handle = NULL + cdef SWAK_HP_Stream stream = SWAK_HP_Stream.__new__(SWAK_HP_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_SUPERTREND_Lookback(timeperiod, multiplier) - outsupertrend = make_double_array(length, lookback) - outtrend = make_int_array(length, lookback) + lookback = begidx + lib.TA_SWAK_HP_Lookback(timeperiod) + outreal = make_double_array(length, lookback) with nogil: - retCode = TA_SUPERTREND_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, multiplier, &outbegidx, &outnbelement, outsupertrend.data + lookback, outtrend.data + lookback) + retCode = TA_SWAK_HP_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -27831,65 +32957,62 @@ cdef class SUPERTREND_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_SUPERTREND_OpenAndFill", retCode, historylen, lookback - begidx + 1) - return stream, (_stream_like((high, low, close,), outsupertrend), _stream_like((high, low, close,), outtrend)) + _stream_open_failed("TA_SWAK_HP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) @cython.binding(False) - def update(self, double high, double low, double close): - cdef double outsupertrend - cdef int outtrend + def update(self, double real): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SUPERTREND_Update(self._handle, high, low, close, &outsupertrend, &outtrend) + retCode = TA_SWAK_HP_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_SUPERTREND_Update", retCode) - return (outsupertrend, outtrend) + _ta_check_success("TA_SWAK_HP_Update", retCode) + return outreal @cython.binding(False) - def peek(self, double high, double low, double close): - cdef double outsupertrend - cdef int outtrend + def peek(self, double real): + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SUPERTREND_Peek(self._handle, high, low, close, &outsupertrend, &outtrend) + retCode = TA_SWAK_HP_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_SUPERTREND_Peek", retCode) - return (outsupertrend, outtrend) + _ta_check_success("TA_SWAK_HP_Peek", retCode) + return outreal @property def value(self): - cdef double outsupertrend - cdef int outtrend + cdef double outreal cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SUPERTREND_Value(self._handle, &outsupertrend, &outtrend) + retCode = TA_SWAK_HP_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_SUPERTREND_Value", retCode) - return (outsupertrend, outtrend) + _ta_check_success("TA_SWAK_HP_Value", retCode) + return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_SUPERTREND_OutRange(self._handle, outbegidx, outnbelement) + return TA_SWAK_HP_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_SUPERTREND_Advance(self._handle) + return TA_SWAK_HP_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_SUPERTREND_Stream* clone = NULL - cdef SUPERTREND_Stream stream = SUPERTREND_Stream.__new__(type(self)) + cdef TA_SWAK_HP_Stream* clone = NULL + cdef SWAK_HP_Stream stream = SWAK_HP_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_SUPERTREND_Clone(self._handle, &clone) + retCode = TA_SWAK_HP_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_SUPERTREND_Clone", retCode) + _ta_check_success("TA_SWAK_HP_Clone", retCode) return stream @@ -29524,37 +34647,175 @@ cdef class VAR_Stream(Stream): return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_VAR_OutRange(self._handle, outbegidx, outnbelement) + return TA_VAR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_VAR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_VAR_Stream* clone = NULL + cdef VAR_Stream stream = VAR_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_VAR_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_VAR_Clone", retCode) + return stream + + +cdef class VHF_Stream(Stream): + """ VHF(real[, timeperiod=?]) + + Vertical Horizontal Filter (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 28 + Outputs: + real + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_VHF_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_VHF_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_VHF_Lookback(timeperiod) + 1 + retCode = TA_VHF_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_VHF_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_VHF_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outreal + cdef int outbegidx + cdef int outnbelement + cdef TA_VHF_Stream* handle = NULL + cdef VHF_Stream stream = VHF_Stream.__new__(VHF_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_VHF_Lookback(timeperiod) + outreal = make_double_array(length, lookback) + with nogil: + retCode = TA_VHF_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_VHF_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_VHF_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_VHF_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_VHF_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_VHF_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_VHF_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_VHF_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_VHF_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_VAR_Advance(self._handle) + return TA_VHF_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_VAR_Stream* clone = NULL - cdef VAR_Stream stream = VAR_Stream.__new__(type(self)) + cdef TA_VHF_Stream* clone = NULL + cdef VHF_Stream stream = VHF_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_VAR_Clone(self._handle, &clone) + retCode = TA_VHF_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_VAR_Clone", retCode) + _ta_check_success("TA_VHF_Clone", retCode) return stream -cdef class VHF_Stream(Stream): - """ VHF(real[, timeperiod=?]) +cdef class VIDYA_Stream(Stream): + """ VIDYA(real[, timeperiod=?, cmoperiod=?]) - Vertical Horizontal Filter (Momentum Indicators) + Variable Index Dynamic Average (Overlap Studies) Inputs: real: (any ndarray) Parameters: - timeperiod: 28 + timeperiod: 12 + cmoperiod: 9 Outputs: real """ @@ -29562,29 +34823,29 @@ cdef class VHF_Stream(Stream): def __dealloc__(self): with nogil: if self._handle is not NULL: - TA_VHF_Close(self._handle) + TA_VIDYA_Close(self._handle) self._handle = NULL _ta_stream_closed() - def __init__(self, real, int timeperiod=-2**31): + def __init__(self, real, int timeperiod=-2**31, int cmoperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) - cdef TA_VHF_Stream* handle = NULL + cdef TA_VIDYA_Stream* handle = NULL cdef double outreal cdef TA_RetCode retCode cdef int need _ta_acquire_read() try: with nogil: - need = lib.TA_VHF_Lookback(timeperiod) + 1 - retCode = TA_VHF_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + need = lib.TA_VIDYA_Lookback(timeperiod, cmoperiod) + 1 + retCode = TA_VIDYA_Open(&handle, a_real.data + begidx, historylen, timeperiod, cmoperiod, &outreal) if retCode == 0: with self._mutex: if self._handle is not NULL: - TA_VHF_Close(self._handle) + TA_VIDYA_Close(self._handle) else: _ta_stream_registered() self._handle = handle @@ -29593,10 +34854,10 @@ cdef class VHF_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_VHF_Open", retCode, historylen, need) + _stream_open_failed("TA_VIDYA_Open", retCode, historylen, need) @staticmethod - def open_and_fill(real, int timeperiod=-2**31): + def open_and_fill(real, int timeperiod=-2**31, int cmoperiod=-2**31): cdef np.ndarray a_real = _stream_input(real) cdef tuple arrays = (a_real,) cdef np.npy_intp length = check_length(arrays) @@ -29606,16 +34867,16 @@ cdef class VHF_Stream(Stream): cdef np.ndarray outreal cdef int outbegidx cdef int outnbelement - cdef TA_VHF_Stream* handle = NULL - cdef VHF_Stream stream = VHF_Stream.__new__(VHF_Stream) + cdef TA_VIDYA_Stream* handle = NULL + cdef VIDYA_Stream stream = VIDYA_Stream.__new__(VIDYA_Stream) cdef TA_RetCode retCode _ta_acquire_read() try: with nogil: - lookback = begidx + lib.TA_VHF_Lookback(timeperiod) + lookback = begidx + lib.TA_VIDYA_Lookback(timeperiod, cmoperiod) outreal = make_double_array(length, lookback) with nogil: - retCode = TA_VHF_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + retCode = TA_VIDYA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, cmoperiod, &outbegidx, &outnbelement, outreal.data + lookback) if retCode == 0: stream._handle = handle stream._begidx = begidx @@ -29624,7 +34885,7 @@ cdef class VHF_Stream(Stream): with nogil: _ta_end_read() if retCode != 0: - _stream_open_failed("TA_VHF_OpenAndFill", retCode, historylen, lookback - begidx + 1) + _stream_open_failed("TA_VIDYA_OpenAndFill", retCode, historylen, lookback - begidx + 1) return stream, _stream_like((real,), outreal) @cython.binding(False) @@ -29633,9 +34894,9 @@ cdef class VHF_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_VHF_Update(self._handle, real, &outreal) + retCode = TA_VIDYA_Update(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_VHF_Update", retCode) + _ta_check_success("TA_VIDYA_Update", retCode) return outreal @cython.binding(False) @@ -29644,9 +34905,9 @@ cdef class VHF_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_VHF_Peek(self._handle, real, &outreal) + retCode = TA_VIDYA_Peek(self._handle, real, &outreal) if retCode != 0: - _ta_check_success("TA_VHF_Peek", retCode) + _ta_check_success("TA_VIDYA_Peek", retCode) return outreal @property @@ -29655,31 +34916,31 @@ cdef class VHF_Stream(Stream): cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_VHF_Value(self._handle, &outreal) + retCode = TA_VIDYA_Value(self._handle, &outreal) if retCode != 0: - _ta_check_success("TA_VHF_Value", retCode) + _ta_check_success("TA_VIDYA_Value", retCode) return outreal cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: - return TA_VHF_OutRange(self._handle, outbegidx, outnbelement) + return TA_VIDYA_OutRange(self._handle, outbegidx, outnbelement) cdef TA_RetCode _advance(self) noexcept nogil: - return TA_VHF_Advance(self._handle) + return TA_VIDYA_Advance(self._handle) @cython.binding(False) def copy(self): - cdef TA_VHF_Stream* clone = NULL - cdef VHF_Stream stream = VHF_Stream.__new__(type(self)) + cdef TA_VIDYA_Stream* clone = NULL + cdef VIDYA_Stream stream = VIDYA_Stream.__new__(type(self)) cdef TA_RetCode retCode with nogil: with self._mutex: - retCode = TA_VHF_Clone(self._handle, &clone) + retCode = TA_VIDYA_Clone(self._handle, &clone) if retCode == 0: stream._handle = clone stream._begidx = self._begidx _ta_stream_registered() if retCode != 0: - _ta_check_success("TA_VHF_Clone", retCode) + _ta_check_success("TA_VIDYA_Clone", retCode) return stream @@ -30251,6 +35512,156 @@ cdef class WAD_Stream(Stream): return stream +cdef class WAVETREND_Stream(Stream): + """ WAVETREND(high, low, close[, channelperiod=?, averageperiod=?, signalperiod=?]) + + WaveTrend Oscillator (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + channelperiod: 10 + averageperiod: 21 + signalperiod: 4 + Outputs: + wt1 + wt2 + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_WAVETREND_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, high, low, close, int channelperiod=-2**31, int averageperiod=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_WAVETREND_Stream* handle = NULL + cdef double outwt1 + cdef double outwt2 + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_WAVETREND_Lookback(channelperiod, averageperiod, signalperiod) + 1 + retCode = TA_WAVETREND_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, channelperiod, averageperiod, signalperiod, &outwt1, &outwt2) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_WAVETREND_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_WAVETREND_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(high, low, close, int channelperiod=-2**31, int averageperiod=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outwt1 + cdef np.ndarray outwt2 + cdef int outbegidx + cdef int outnbelement + cdef TA_WAVETREND_Stream* handle = NULL + cdef WAVETREND_Stream stream = WAVETREND_Stream.__new__(WAVETREND_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_WAVETREND_Lookback(channelperiod, averageperiod, signalperiod) + outwt1 = make_double_array(length, lookback) + outwt2 = make_double_array(length, lookback) + with nogil: + retCode = TA_WAVETREND_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, channelperiod, averageperiod, signalperiod, &outbegidx, &outnbelement, outwt1.data + lookback, outwt2.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_WAVETREND_OpenAndFill", retCode, historylen, lookback - begidx + 1) + return stream, (_stream_like((high, low, close,), outwt1), _stream_like((high, low, close,), outwt2)) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outwt1 + cdef double outwt2 + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_WAVETREND_Update(self._handle, high, low, close, &outwt1, &outwt2) + if retCode != 0: + _ta_check_success("TA_WAVETREND_Update", retCode) + return (outwt1, outwt2) + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outwt1 + cdef double outwt2 + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_WAVETREND_Peek(self._handle, high, low, close, &outwt1, &outwt2) + if retCode != 0: + _ta_check_success("TA_WAVETREND_Peek", retCode) + return (outwt1, outwt2) + + @property + def value(self): + cdef double outwt1 + cdef double outwt2 + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_WAVETREND_Value(self._handle, &outwt1, &outwt2) + if retCode != 0: + _ta_check_success("TA_WAVETREND_Value", retCode) + return (outwt1, outwt2) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_WAVETREND_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_WAVETREND_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_WAVETREND_Stream* clone = NULL + cdef WAVETREND_Stream stream = WAVETREND_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_WAVETREND_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_WAVETREND_Clone", retCode) + return stream + + cdef class WCLPRICE_Stream(Stream): """ WCLPRICE(high, low, close) @@ -30668,6 +36079,170 @@ cdef class WMA_Stream(Stream): return stream +cdef class ZIGZAG_Stream(Stream): + """ ZIGZAG(high, low[, sensitivity=?, mintrendlength=?]) + + Zig Zag (Overlap Studies) + + Inputs: + prices: ['high', 'low'] + Parameters: + sensitivity: 5.0 + mintrendlength: 1 + Outputs: + zigzag + trend + pivotidx + """ + + def __dealloc__(self): + with nogil: + if self._handle is not NULL: + TA_ZIGZAG_Close(self._handle) + self._handle = NULL + _ta_stream_closed() + + def __init__(self, high, low, double sensitivity=5.0, int mintrendlength=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ZIGZAG_Stream* handle = NULL + cdef double outzigzag + cdef int outtrend + cdef int outpivotidx + cdef TA_RetCode retCode + cdef int need + _ta_acquire_read() + try: + with nogil: + need = lib.TA_ZIGZAG_Lookback(sensitivity, mintrendlength) + 1 + retCode = TA_ZIGZAG_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, sensitivity, mintrendlength, &outzigzag, &outtrend, &outpivotidx) + if retCode == 0: + with self._mutex: + if self._handle is not NULL: + TA_ZIGZAG_Close(self._handle) + else: + _ta_stream_registered() + self._handle = handle + self._begidx = begidx + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_ZIGZAG_Open", retCode, historylen, need) + + @staticmethod + def open_and_fill(high, low, double sensitivity=5.0, int mintrendlength=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback + cdef np.ndarray outzigzag + cdef np.ndarray outtrend + cdef np.ndarray outpivotidx + cdef int outbegidx + cdef int outnbelement + cdef TA_ZIGZAG_Stream* handle = NULL + cdef ZIGZAG_Stream stream = ZIGZAG_Stream.__new__(ZIGZAG_Stream) + cdef TA_RetCode retCode + _ta_acquire_read() + try: + with nogil: + lookback = begidx + lib.TA_ZIGZAG_Lookback(sensitivity, mintrendlength) + outzigzag = make_double_array(length, lookback) + outtrend = make_int_array(length, lookback) + outpivotidx = make_int_array(length, lookback) + with nogil: + retCode = TA_ZIGZAG_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, sensitivity, mintrendlength, &outbegidx, &outnbelement, outzigzag.data + lookback, outtrend.data + lookback, outpivotidx.data + lookback) + if retCode == 0: + stream._handle = handle + stream._begidx = begidx + _ta_stream_registered() + finally: + with nogil: + _ta_end_read() + if retCode != 0: + _stream_open_failed("TA_ZIGZAG_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef np.npy_intp i + cdef int* outpivotidx_data = outpivotidx.data + for i in range(lookback, length): + outpivotidx_data[i] += begidx + return stream, (_stream_like((high, low,), outzigzag), _stream_like((high, low,), outtrend), _stream_like((high, low,), outpivotidx)) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outzigzag + cdef int outtrend + cdef int outpivotidx + cdef TA_RetCode retCode + cdef int begidx + with nogil: + with self._mutex: + retCode = TA_ZIGZAG_Update(self._handle, high, low, &outzigzag, &outtrend, &outpivotidx) + begidx = self._begidx + if retCode != 0: + _ta_check_success("TA_ZIGZAG_Update", retCode) + return (outzigzag, outtrend, outpivotidx + begidx) + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outzigzag + cdef int outtrend + cdef int outpivotidx + cdef TA_RetCode retCode + cdef int begidx + with nogil: + with self._mutex: + retCode = TA_ZIGZAG_Peek(self._handle, high, low, &outzigzag, &outtrend, &outpivotidx) + begidx = self._begidx + if retCode != 0: + _ta_check_success("TA_ZIGZAG_Peek", retCode) + return (outzigzag, outtrend, outpivotidx + begidx) + + @property + def value(self): + cdef double outzigzag + cdef int outtrend + cdef int outpivotidx + cdef TA_RetCode retCode + cdef int begidx + with nogil: + with self._mutex: + retCode = TA_ZIGZAG_Value(self._handle, &outzigzag, &outtrend, &outpivotidx) + begidx = self._begidx + if retCode != 0: + _ta_check_success("TA_ZIGZAG_Value", retCode) + return (outzigzag, outtrend, outpivotidx + begidx) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement) noexcept nogil: + return TA_ZIGZAG_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self) noexcept nogil: + return TA_ZIGZAG_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ZIGZAG_Stream* clone = NULL + cdef ZIGZAG_Stream stream = ZIGZAG_Stream.__new__(type(self)) + cdef TA_RetCode retCode + with nogil: + with self._mutex: + retCode = TA_ZIGZAG_Clone(self._handle, &clone) + if retCode == 0: + stream._handle = clone + stream._begidx = self._begidx + _ta_stream_registered() + if retCode != 0: + _ta_check_success("TA_ZIGZAG_Clone", retCode) + return stream + + cdef class ZLEMA_Stream(Stream): """ ZLEMA(real[, timeperiod=?]) diff --git a/talib/_ta_lib.pxd b/talib/_ta_lib.pxd index 688698e9b..8d184416e 100644 --- a/talib/_ta_lib.pxd +++ b/talib/_ta_lib.pxd @@ -43,6 +43,8 @@ cdef extern from "ta-lib/ta_defs.h": const TA_MAType TA_MAType_DEFAULT = 11 const TA_MAType TA_MAType_ZLEMA = 12 const TA_MAType TA_MAType_RMA = 13 + const TA_MAType TA_MAType_VIDYA = 14 + const TA_MAType TA_MAType_ALMA = 15 ctypedef int TA_FuncUnstId # No values here on purpose. Cython takes the value of a `cdef extern` @@ -72,6 +74,16 @@ cdef extern from "ta-lib/ta_defs.h": const TA_FuncUnstId TA_FUNC_UNST_RMA const TA_FuncUnstId TA_FUNC_UNST_HA const TA_FuncUnstId TA_FUNC_UNST_RVI + const TA_FuncUnstId TA_FUNC_UNST_FRAMA + const TA_FuncUnstId TA_FUNC_UNST_MCGD + const TA_FuncUnstId TA_FUNC_UNST_VIDYA + const TA_FuncUnstId TA_FUNC_UNST_STC + const TA_FuncUnstId TA_FUNC_UNST_SWAK_GAUSS + const TA_FuncUnstId TA_FUNC_UNST_SWAK_BUTTER + const TA_FuncUnstId TA_FUNC_UNST_SWAK_HP + const TA_FuncUnstId TA_FUNC_UNST_SWAK_2PHP + const TA_FuncUnstId TA_FUNC_UNST_SWAK_BP + const TA_FuncUnstId TA_FUNC_UNST_FISHER const TA_FuncUnstId TA_FUNC_UNST_ALL ctypedef int TA_RangeType @@ -220,6 +232,8 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_ADX_Lookback(int optInTimePeriod) TA_RetCode TA_ADXR(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_ADXR_Lookback(int optInTimePeriod) + TA_RetCode TA_ALMA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, double optInSigma, double optInOffset, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_ALMA_Lookback(int optInTimePeriod, double optInSigma, double optInOffset) TA_RetCode TA_AO(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInFastPeriod, int optInSlowPeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_AO_Lookback(int optInFastPeriod, int optInSlowPeriod) TA_RetCode TA_APO(int startIdx, int endIdx, const double inReal[], int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType, int *outBegIdx, int *outNBElement, double outReal[]) @@ -228,6 +242,8 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_AROON_Lookback(int optInTimePeriod) TA_RetCode TA_AROONOSC(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_AROONOSC_Lookback(int optInTimePeriod) + TA_RetCode TA_ASI(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], double optInLimitMove, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_ASI_Lookback(double optInLimitMove) TA_RetCode TA_ASIN(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[]) int TA_ASIN_Lookback() TA_RetCode TA_ATAN(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[]) @@ -240,6 +256,8 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_AVGPRICE_Lookback() TA_RetCode TA_BBANDS(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType, int *outBegIdx, int *outNBElement, double outRealUpperBand[], double outRealMiddleBand[], double outRealLowerBand[]) int TA_BBANDS_Lookback(int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType) + TA_RetCode TA_BBW(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_BBW_Lookback(int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType) TA_RetCode TA_BETA(int startIdx, int endIdx, const double inReal0[], const double inReal1[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_BETA_Lookback(int optInTimePeriod) TA_RetCode TA_BOP(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, double outReal[]) @@ -370,6 +388,14 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_CDLXSIDEGAP3METHODS_Lookback() TA_RetCode TA_CEIL(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[]) int TA_CEIL_Lookback() + TA_RetCode TA_CG(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_CG_Lookback(int optInTimePeriod) + TA_RetCode TA_CHOP(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_CHOP_Lookback(int optInTimePeriod) + TA_RetCode TA_CHOPTR(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_CHOPTR_Lookback(int optInTimePeriod) + TA_RetCode TA_CKSP(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, double optInMultiplier, int optInStopPeriod, int *outBegIdx, int *outNBElement, double outHighStop[], double outLowStop[]) + int TA_CKSP_Lookback(int optInTimePeriod, double optInMultiplier, int optInStopPeriod) TA_RetCode TA_CMF(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], const double inVolume[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_CMF_Lookback(int optInTimePeriod) TA_RetCode TA_CMO(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) @@ -384,6 +410,10 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_COS_Lookback() TA_RetCode TA_COSH(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[]) int TA_COSH_Lookback() + TA_RetCode TA_CRSI(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int optInStreakPeriod, int optInRankPeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_CRSI_Lookback(int optInTimePeriod, int optInStreakPeriod, int optInRankPeriod) + TA_RetCode TA_CTI(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_CTI_Lookback(int optInTimePeriod) TA_RetCode TA_CUMSUM(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[]) int TA_CUMSUM_Lookback() TA_RetCode TA_CVI(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInTimePeriod, int optInROCPeriod, int *outBegIdx, int *outNBElement, double outReal[]) @@ -394,6 +424,8 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_DIV_Lookback() TA_RetCode TA_DONCHIAN(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outRealUpperBand[], double outRealMiddleBand[], double outRealLowerBand[]) int TA_DONCHIAN_Lookback(int optInTimePeriod) + TA_RetCode TA_DOSC(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int optInFirstPeriod, int optInSecondPeriod, int optInSignalPeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_DOSC_Lookback(int optInTimePeriod, int optInFirstPeriod, int optInSecondPeriod, int optInSignalPeriod) TA_RetCode TA_DPO(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_DPO_Lookback(int optInTimePeriod) TA_RetCode TA_DX(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) @@ -402,18 +434,24 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_EFI_Lookback(int optInTimePeriod) TA_RetCode TA_EMA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_EMA_Lookback(int optInTimePeriod) + TA_RetCode TA_EMV(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inVolume[], int optInTimePeriod, double optInVolumeDivisor, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_EMV_Lookback(int optInTimePeriod, double optInVolumeDivisor) TA_RetCode TA_ER(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_ER_Lookback(int optInTimePeriod) TA_RetCode TA_ERI(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outBullPower[], double outBearPower[]) int TA_ERI_Lookback(int optInTimePeriod) TA_RetCode TA_EXP(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[]) int TA_EXP_Lookback() + TA_RetCode TA_FISHER(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outFisher[], double outTrigger[]) + int TA_FISHER_Lookback(int optInTimePeriod) TA_RetCode TA_FLOOR(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[]) int TA_FLOOR_Lookback() TA_RetCode TA_FOSC(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_FOSC_Lookback(int optInTimePeriod) TA_RetCode TA_FRACTAL(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInLeftBars, int optInRightBars, int *outBegIdx, int *outNBElement, int outSwingHigh[], int outSwingLow[]) int TA_FRACTAL_Lookback(int optInLeftBars, int optInRightBars) + TA_RetCode TA_FRAMA(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_FRAMA_Lookback(int optInTimePeriod) TA_RetCode TA_HA(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, double outHAOpen[], double outHAHigh[], double outHALow[], double outHAClose[]) int TA_HA_Lookback() TA_RetCode TA_HMA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) @@ -430,6 +468,10 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_HT_TRENDLINE_Lookback() TA_RetCode TA_HT_TRENDMODE(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, int outInteger[]) int TA_HT_TRENDMODE_Lookback() + TA_RetCode TA_IBS(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, double outReal[]) + int TA_IBS_Lookback() + TA_RetCode TA_ICHIMOKU(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInTenkanPeriod, int optInKijunPeriod, int optInSenkouBPeriod, int *outBegIdx, int *outNBElement, double outTenkanSen[], double outKijunSen[], double outSenkouSpanA[], double outSenkouSpanB[]) + int TA_ICHIMOKU_Lookback(int optInTenkanPeriod, int optInKijunPeriod, int optInSenkouBPeriod) TA_RetCode TA_IMI(int startIdx, int endIdx, const double inOpen[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_IMI_Lookback(int optInTimePeriod) TA_RetCode TA_KAMA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) @@ -438,6 +480,14 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_KC_Lookback(int optInTimePeriod, int optInATRPeriod, double optInNbDev) TA_RetCode TA_KDJ(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInFastK_Period, int optInSlowK_Period, TA_MAType optInSlowK_MAType, int optInSlowD_Period, TA_MAType optInSlowD_MAType, int *outBegIdx, int *outNBElement, double outK[], double outD[], double outJ[]) int TA_KDJ_Lookback(int optInFastK_Period, int optInSlowK_Period, TA_MAType optInSlowK_MAType, int optInSlowD_Period, TA_MAType optInSlowD_MAType) + TA_RetCode TA_KST(int startIdx, int endIdx, const double inReal[], int optInROC1Period, int optInROC2Period, int optInROC3Period, int optInROC4Period, int optInSMA1Period, int optInSMA2Period, int optInSMA3Period, int optInSMA4Period, int optInSignalPeriod, int *outBegIdx, int *outNBElement, double outKST[], double outKSTSignal[]) + int TA_KST_Lookback(int optInROC1Period, int optInROC2Period, int optInROC3Period, int optInROC4Period, int optInSMA1Period, int optInSMA2Period, int optInSMA3Period, int optInSMA4Period, int optInSignalPeriod) + TA_RetCode TA_KSTEXT(int startIdx, int endIdx, const double inReal[], int optInROC1Period, int optInROC2Period, int optInROC3Period, int optInROC4Period, int optInMA1Period, int optInMA2Period, int optInMA3Period, int optInMA4Period, int optInSignalPeriod, TA_MAType optInROCMAType, TA_MAType optInSignalMAType, int *outBegIdx, int *outNBElement, double outKST[], double outKSTSignal[]) + int TA_KSTEXT_Lookback(int optInROC1Period, int optInROC2Period, int optInROC3Period, int optInROC4Period, int optInMA1Period, int optInMA2Period, int optInMA3Period, int optInMA4Period, int optInSignalPeriod, TA_MAType optInROCMAType, TA_MAType optInSignalMAType) + TA_RetCode TA_KURTOSIS(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_KURTOSIS_Lookback(int optInTimePeriod) + TA_RetCode TA_KVO(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], const double inVolume[], int optInFastPeriod, int optInSlowPeriod, int optInSignalPeriod, int *outBegIdx, int *outNBElement, double outKVO[], double outKVOSignal[]) + int TA_KVO_Lookback(int optInFastPeriod, int optInSlowPeriod, int optInSignalPeriod) TA_RetCode TA_LINEARREG(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_LINEARREG_Lookback(int optInTimePeriod) TA_RetCode TA_LINEARREG_ANGLE(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) @@ -470,6 +520,10 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_MAX_Lookback(int optInTimePeriod) TA_RetCode TA_MAXINDEX(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, int outInteger[]) int TA_MAXINDEX_Lookback(int optInTimePeriod) + TA_RetCode TA_MCGD(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_MCGD_Lookback(int optInTimePeriod) + TA_RetCode TA_MEDIAN(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_MEDIAN_Lookback(int optInTimePeriod) TA_RetCode TA_MEDPRICE(int startIdx, int endIdx, const double inHigh[], const double inLow[], int *outBegIdx, int *outNBElement, double outReal[]) int TA_MEDPRICE_Lookback() TA_RetCode TA_MFI(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], const double inVolume[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) @@ -500,6 +554,8 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_NVI_Lookback() TA_RetCode TA_OBV(int startIdx, int endIdx, const double inReal[], const double inVolume[], int *outBegIdx, int *outNBElement, double outReal[]) int TA_OBV_Lookback() + TA_RetCode TA_PERCENTB(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_PERCENTB_Lookback(int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType) TA_RetCode TA_PERCENTILE(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, double optInPercentile, int *outBegIdx, int *outNBElement, double outReal[]) int TA_PERCENTILE_Lookback(int optInTimePeriod, double optInPercentile) TA_RetCode TA_PERCENTRANK(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) @@ -510,6 +566,8 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_PLUS_DM_Lookback(int optInTimePeriod) TA_RetCode TA_PPO(int startIdx, int endIdx, const double inReal[], int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType, int *outBegIdx, int *outNBElement, double outReal[]) int TA_PPO_Lookback(int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType) + TA_RetCode TA_PSO(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInFastK_Period, int optInEMAPeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_PSO_Lookback(int optInFastK_Period, int optInEMAPeriod) TA_RetCode TA_PVI(int startIdx, int endIdx, const double inClose[], const double inVolume[], int *outBegIdx, int *outNBElement, double outReal[]) int TA_PVI_Lookback() TA_RetCode TA_PVO(int startIdx, int endIdx, const double inVolume[], int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType, int *outBegIdx, int *outNBElement, double outReal[]) @@ -528,16 +586,22 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_ROCR_Lookback(int optInTimePeriod) TA_RetCode TA_ROCR100(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_ROCR100_Lookback(int optInTimePeriod) + TA_RetCode TA_ROGERSSATCHELL(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, double optInAnnualization, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_ROGERSSATCHELL_Lookback(int optInTimePeriod, double optInAnnualization) TA_RetCode TA_RSI(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) nogil int TA_RSI_Lookback(int optInTimePeriod) nogil TA_RetCode TA_RVI(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int optInStdDevPeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_RVI_Lookback(int optInTimePeriod, int optInStdDevPeriod) + TA_RetCode TA_RVIR(int startIdx, int endIdx, const double inHigh[], const double inLow[], int optInTimePeriod, int optInStdDevPeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_RVIR_Lookback(int optInTimePeriod, int optInStdDevPeriod) TA_RetCode TA_RVOL(int startIdx, int endIdx, const double inVolume[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_RVOL_Lookback(int optInTimePeriod) TA_RetCode TA_SAR(int startIdx, int endIdx, const double inHigh[], const double inLow[], double optInAcceleration, double optInMaximum, int *outBegIdx, int *outNBElement, double outReal[]) int TA_SAR_Lookback(double optInAcceleration, double optInMaximum) TA_RetCode TA_SAREXT(int startIdx, int endIdx, const double inHigh[], const double inLow[], double optInStartValue, double optInOffsetOnReverse, double optInAccelerationInitLong, double optInAccelerationLong, double optInAccelerationMaxLong, double optInAccelerationInitShort, double optInAccelerationShort, double optInAccelerationMaxShort, int *outBegIdx, int *outNBElement, double outReal[]) int TA_SAREXT_Lookback(double optInStartValue, double optInOffsetOnReverse, double optInAccelerationInitLong, double optInAccelerationLong, double optInAccelerationMaxLong, double optInAccelerationInitShort, double optInAccelerationShort, double optInAccelerationMaxShort) + TA_RetCode TA_SI(int startIdx, int endIdx, const double inOpen[], const double inHigh[], const double inLow[], const double inClose[], double optInLimitMove, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_SI_Lookback(double optInLimitMove) TA_RetCode TA_SIN(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[]) int TA_SIN_Lookback() TA_RetCode TA_SINH(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[]) @@ -548,6 +612,10 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_SMI_Lookback(int optInTimePeriod, int optInFastPeriod, int optInSlowPeriod, int optInSignalPeriod) TA_RetCode TA_SQRT(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[]) int TA_SQRT_Lookback() + TA_RetCode TA_SQZMOM(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInBBPeriod, double optInNbDev, int optInKCPeriod, double optInFactorWide, double optInFactorNormal, double optInFactorNarrow, int *outBegIdx, int *outNBElement, double outMomentum[], int outSqueeze[]) + int TA_SQZMOM_Lookback(int optInBBPeriod, double optInNbDev, int optInKCPeriod, double optInFactorWide, double optInFactorNormal, double optInFactorNarrow) + TA_RetCode TA_STC(int startIdx, int endIdx, const double inReal[], int optInFastPeriod, int optInSlowPeriod, int optInCyclePeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_STC_Lookback(int optInFastPeriod, int optInSlowPeriod, int optInCyclePeriod) TA_RetCode TA_STDDEV(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, double optInNbDev, int *outBegIdx, int *outNBElement, double outReal[]) int TA_STDDEV_Lookback(int optInTimePeriod, double optInNbDev) TA_RetCode TA_STOCH(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInFastK_Period, int optInSlowK_Period, TA_MAType optInSlowK_MAType, int optInSlowD_Period, TA_MAType optInSlowD_MAType, int *outBegIdx, int *outNBElement, double outSlowK[], double outSlowD[]) @@ -562,6 +630,16 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_SUM_Lookback(int optInTimePeriod) TA_RetCode TA_SUPERTREND(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, double optInMultiplier, int *outBegIdx, int *outNBElement, double outSupertrend[], int outTrend[]) int TA_SUPERTREND_Lookback(int optInTimePeriod, double optInMultiplier) + TA_RetCode TA_SWAK_2PHP(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_SWAK_2PHP_Lookback(int optInTimePeriod) + TA_RetCode TA_SWAK_BP(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, double optInDelta, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_SWAK_BP_Lookback(int optInTimePeriod, double optInDelta) + TA_RetCode TA_SWAK_BUTTER(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_SWAK_BUTTER_Lookback(int optInTimePeriod) + TA_RetCode TA_SWAK_GAUSS(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_SWAK_GAUSS_Lookback(int optInTimePeriod) + TA_RetCode TA_SWAK_HP(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_SWAK_HP_Lookback(int optInTimePeriod) TA_RetCode TA_T3(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, double optInVFactor, int *outBegIdx, int *outNBElement, double outReal[]) int TA_T3_Lookback(int optInTimePeriod, double optInVFactor) TA_RetCode TA_TAN(int startIdx, int endIdx, const double inReal[], int *outBegIdx, int *outNBElement, double outReal[]) @@ -588,6 +666,8 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_VAR_Lookback(int optInTimePeriod, double optInNbDev) TA_RetCode TA_VHF(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_VHF_Lookback(int optInTimePeriod) + TA_RetCode TA_VIDYA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int optInCMOPeriod, int *outBegIdx, int *outNBElement, double outReal[]) + int TA_VIDYA_Lookback(int optInTimePeriod, int optInCMOPeriod) TA_RetCode TA_VORTEX(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outPlusVI[], double outMinusVI[]) int TA_VORTEX_Lookback(int optInTimePeriod) TA_RetCode TA_VWAP(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], const double inVolume[], int *outBegIdx, int *outNBElement, double outReal[]) @@ -596,12 +676,16 @@ cdef extern from "ta-lib/ta_func.h" nogil: int TA_VWMA_Lookback(int optInTimePeriod) TA_RetCode TA_WAD(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, double outReal[]) int TA_WAD_Lookback() + TA_RetCode TA_WAVETREND(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInChannelPeriod, int optInAveragePeriod, int optInSignalPeriod, int *outBegIdx, int *outNBElement, double outWT1[], double outWT2[]) + int TA_WAVETREND_Lookback(int optInChannelPeriod, int optInAveragePeriod, int optInSignalPeriod) TA_RetCode TA_WCLPRICE(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int *outBegIdx, int *outNBElement, double outReal[]) int TA_WCLPRICE_Lookback() TA_RetCode TA_WILLR(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_WILLR_Lookback(int optInTimePeriod) TA_RetCode TA_WMA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_WMA_Lookback(int optInTimePeriod) + TA_RetCode TA_ZIGZAG(int startIdx, int endIdx, const double inHigh[], const double inLow[], double optInSensitivity, int optInMinTrendLength, int *outBegIdx, int *outNBElement, double outZigZag[], int outTrend[], int outPivotIdx[]) + int TA_ZIGZAG_Lookback(double optInSensitivity, int optInMinTrendLength) TA_RetCode TA_ZLEMA(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_ZLEMA_Lookback(int optInTimePeriod) diff --git a/talib/_ta_lib.pyi b/talib/_ta_lib.pyi index 4a308712d..fd7b0df6b 100644 --- a/talib/_ta_lib.pyi +++ b/talib/_ta_lib.pyi @@ -18,6 +18,8 @@ class MA_Type(Enum): DEFAULT = 11 ZLEMA = 12 RMA = 13 + VIDYA = 14 + ALMA = 15 #Overlap Studies Functions @@ -167,6 +169,64 @@ def ZLEMA( timeperiod: int= 30 )-> NDArray[np.float64]: ... +def ALMA( + real: NDArray[np.float64], + timeperiod: int= 9, + sigma: float= 6.0, + offset: float= 0.85 + )-> NDArray[np.float64]: ... + +def CKSP( + high: NDArray[np.float64], + low: NDArray[np.float64], + close: NDArray[np.float64], + timeperiod: int= 10, + multiplier: float= 1.0, + stopperiod: int= 9 + )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... + +def FRAMA( + high: NDArray[np.float64], + low: NDArray[np.float64], + timeperiod: int= 16 + )-> NDArray[np.float64]: ... + +def ICHIMOKU( + high: NDArray[np.float64], + low: NDArray[np.float64], + tenkanperiod: int= 9, + kijunperiod: int= 26, + senkoubperiod: int= 52 + )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ... + +def MCGD( + real: NDArray[np.float64], + timeperiod: int= 14 + )-> NDArray[np.float64]: ... + +def SWAK_BUTTER( + real: NDArray[np.float64], + timeperiod: int= 20 + )-> NDArray[np.float64]: ... + +def SWAK_GAUSS( + real: NDArray[np.float64], + timeperiod: int= 20 + )-> NDArray[np.float64]: ... + +def VIDYA( + real: NDArray[np.float64], + timeperiod: int= 12, + cmoperiod: int= 9 + )-> NDArray[np.float64]: ... + +def ZIGZAG( + high: NDArray[np.float64], + low: NDArray[np.float64], + sensitivity: float= 5.0, + mintrendlength: int= 1 + )-> Tuple[NDArray[np.float64], NDArray[np.int32], NDArray[np.int32]]: ... + #Momentum Indicator Functions def AC( @@ -477,6 +537,137 @@ def WILLR( timeperiod: int= 14 )-> NDArray[np.float64]: ... +def ASI( + open: NDArray[np.float64], + high: NDArray[np.float64], + low: NDArray[np.float64], + close: NDArray[np.float64], + limitmove: float= 3.0 + )-> NDArray[np.float64]: ... + +def CG( + real: NDArray[np.float64], + timeperiod: int= 10 + )-> NDArray[np.float64]: ... + +def CHOP( + high: NDArray[np.float64], + low: NDArray[np.float64], + close: NDArray[np.float64], + timeperiod: int= 14 + )-> NDArray[np.float64]: ... + +def CHOPTR( + high: NDArray[np.float64], + low: NDArray[np.float64], + close: NDArray[np.float64], + timeperiod: int= 14 + )-> NDArray[np.float64]: ... + +def CRSI( + real: NDArray[np.float64], + timeperiod: int= 3, + streakperiod: int= 2, + rankperiod: int= 100 + )-> NDArray[np.float64]: ... + +def CTI( + real: NDArray[np.float64], + timeperiod: int= 20 + )-> NDArray[np.float64]: ... + +def DOSC( + real: NDArray[np.float64], + timeperiod: int= 14, + firstperiod: int= 5, + secondperiod: int= 3, + signalperiod: int= 9 + )-> NDArray[np.float64]: ... + +def FISHER( + high: NDArray[np.float64], + low: NDArray[np.float64], + timeperiod: int= 10 + )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... + +def IBS( + high: NDArray[np.float64], + low: NDArray[np.float64], + close: NDArray[np.float64] + )-> NDArray[np.float64]: ... + +def KST( + real: NDArray[np.float64], + roc1period: int= 10, + roc2period: int= 15, + roc3period: int= 20, + roc4period: int= 30, + sma1period: int= 10, + sma2period: int= 10, + sma3period: int= 10, + sma4period: int= 15, + signalperiod: int= 9 + )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... + +def KSTEXT( + real: NDArray[np.float64], + roc1period: int= 10, + roc2period: int= 15, + roc3period: int= 20, + roc4period: int= 30, + ma1period: int= 10, + ma2period: int= 10, + ma3period: int= 10, + ma4period: int= 15, + signalperiod: int= 9, + rocmatype: MA_Type = MA_Type.SMA, + signalmatype: MA_Type = MA_Type.SMA + )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... + +def PSO( + high: NDArray[np.float64], + low: NDArray[np.float64], + close: NDArray[np.float64], + fastk_period: int= 8, + emaperiod: int= 5 + )-> NDArray[np.float64]: ... + +def SI( + open: NDArray[np.float64], + high: NDArray[np.float64], + low: NDArray[np.float64], + close: NDArray[np.float64], + limitmove: float= 3.0 + )-> NDArray[np.float64]: ... + +def SQZMOM( + high: NDArray[np.float64], + low: NDArray[np.float64], + close: NDArray[np.float64], + bbperiod: int= 20, + nbdev: float= 2.0, + kcperiod: int= 20, + factorwide: float= 2.0, + factornormal: float= 1.5, + factornarrow: float= 1.0 + )-> Tuple[NDArray[np.float64], NDArray[np.int32]]: ... + +def STC( + real: NDArray[np.float64], + fastperiod: int= 23, + slowperiod: int= 50, + cycleperiod: int= 10 + )-> NDArray[np.float64]: ... + +def WAVETREND( + high: NDArray[np.float64], + low: NDArray[np.float64], + close: NDArray[np.float64], + channelperiod: int= 10, + averageperiod: int= 21, + signalperiod: int= 4 + )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... + #Volume Indicator Functions def AD( @@ -554,6 +745,24 @@ def VWAP( volume: NDArray[np.float64] )-> NDArray[np.float64]: ... +def EMV( + high: NDArray[np.float64], + low: NDArray[np.float64], + volume: NDArray[np.float64], + timeperiod: int= 14, + volumedivisor: float= 10000.0 + )-> NDArray[np.float64]: ... + +def KVO( + high: NDArray[np.float64], + low: NDArray[np.float64], + close: NDArray[np.float64], + volume: NDArray[np.float64], + fastperiod: int= 34, + slowperiod: int= 55, + signalperiod: int= 13 + )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... + #Volatility Indicator Functions def ADR( @@ -602,6 +811,38 @@ def TRANGE( close: NDArray[np.float64] )-> NDArray[np.float64]: ... +def BBW( + real: NDArray[np.float64], + timeperiod: int= 20, + nbdevup: float= 2.0, + nbdevdn: float= 2.0, + matype: MA_Type = MA_Type.SMA + )-> NDArray[np.float64]: ... + +def PERCENTB( + real: NDArray[np.float64], + timeperiod: int= 20, + nbdevup: float= 2.0, + nbdevdn: float= 2.0, + matype: MA_Type = MA_Type.SMA + )-> NDArray[np.float64]: ... + +def ROGERSSATCHELL( + open: NDArray[np.float64], + high: NDArray[np.float64], + low: NDArray[np.float64], + close: NDArray[np.float64], + timeperiod: int= 10, + annualization: float= 252.0 + )-> NDArray[np.float64]: ... + +def RVIR( + high: NDArray[np.float64], + low: NDArray[np.float64], + timeperiod: int= 14, + stddevperiod: int= 10 + )-> NDArray[np.float64]: ... + # Price Transform Functions def AVGPRICE( @@ -647,6 +888,22 @@ def HT_SINE(real: NDArray[np.float64])-> Tuple[NDArray[np.float64], NDArray[np.f def HT_TRENDMODE(real: NDArray[np.float64])-> Tuple[NDArray[np.float64], NDArray[np.int32]]: ... +def SWAK_2PHP( + real: NDArray[np.float64], + timeperiod: int= 20 + )-> NDArray[np.float64]: ... + +def SWAK_BP( + real: NDArray[np.float64], + timeperiod: int= 20, + delta: float= 0.1 + )-> NDArray[np.float64]: ... + +def SWAK_HP( + real: NDArray[np.float64], + timeperiod: int= 20 + )-> NDArray[np.float64]: ... + #Pattern Recognition Functions def CDL2CROWS( @@ -1119,7 +1376,7 @@ def LINEARREG_SLOPE( def PERCENTILE( real: NDArray[np.float64], - timeperiod: int= 30, + timeperiod: int= 100, percentile: float= 50.0 )-> NDArray[np.float64]: ... @@ -1145,6 +1402,16 @@ def VAR( nbdev: float= 1 )-> NDArray[np.float64]: ... +def KURTOSIS( + real: NDArray[np.float64], + timeperiod: int= 30 + )-> NDArray[np.float64]: ... + +def MEDIAN( + real: NDArray[np.float64], + timeperiod: int= 30 + )-> NDArray[np.float64]: ... + # Math Transform Functions def ACOS(real: NDArray[np.float64])-> NDArray[np.float64]: ... @@ -1221,7 +1488,7 @@ def MINMAX( def MINMAXINDEX( real: NDArray[np.float64], timeperiod: int= 30 - )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... + )-> Tuple[NDArray[np.int32], NDArray[np.int32]]: ... def MULT( real0: NDArray[np.float64], diff --git a/talib/abstract.pyi b/talib/abstract.pyi index 834322566..c39ec75c9 100644 --- a/talib/abstract.pyi +++ b/talib/abstract.pyi @@ -70,6 +70,52 @@ def HT_TRENDMODE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ... @overload def HT_TRENDMODE(real: pd.DataFrame) -> pd.Series: ... +"""SWAK_2PHP(real[, timeperiod=?]) + +Swiss Army Knife - Two-Pole High-Pass Filter (Cycle Indicators) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 20 +Outputs: + real""" +@overload +def SWAK_2PHP(real: Union[pd.Series, np.ndarray], timeperiod=20) -> np.ndarray: ... +@overload +def SWAK_2PHP(real: pd.DataFrame, timeperiod=20) -> pd.Series: ... + +"""SWAK_BP(real[, timeperiod=?, delta=?]) + +Swiss Army Knife - Band-Pass Filter (Cycle Indicators) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 20 + delta: 0.1 +Outputs: + real""" +@overload +def SWAK_BP(real: Union[pd.Series, np.ndarray], timeperiod=20, delta=0.1) -> np.ndarray: ... +@overload +def SWAK_BP(real: pd.DataFrame, timeperiod=20, delta=0.1) -> pd.Series: ... + +"""SWAK_HP(real[, timeperiod=?]) + +Swiss Army Knife - High-Pass Filter (Cycle Indicators) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 20 +Outputs: + real""" +@overload +def SWAK_HP(real: Union[pd.Series, np.ndarray], timeperiod=20) -> np.ndarray: ... +@overload +def SWAK_HP(real: pd.DataFrame, timeperiod=20) -> pd.Series: ... + """ADD(real0, real1) Vector Arithmetic Add (Math Operators) @@ -552,6 +598,21 @@ def AROONOSC(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: . @overload def AROONOSC(real: pd.DataFrame, timeperiod=14) -> pd.Series: ... +"""ASI(open, high, low, close[, limitmove=?]) + +Wilder Accumulative Swing Index (Momentum Indicators) + +Inputs: + prices: ['open', 'high', 'low', 'close'] +Parameters: + limitmove: 3.0 +Outputs: + real""" +@overload +def ASI(real: Union[pd.Series, np.ndarray], limitmove=3.0) -> np.ndarray: ... +@overload +def ASI(real: pd.DataFrame, limitmove=3.0) -> pd.Series: ... + """BOP(open, high, low, close) Balance Of Power (Momentum Indicators) @@ -580,6 +641,51 @@ def CCI(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ... @overload def CCI(real: pd.DataFrame, timeperiod=14) -> pd.Series: ... +"""CG(real[, timeperiod=?]) + +Center of Gravity Oscillator (Momentum Indicators) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 10 +Outputs: + real""" +@overload +def CG(real: Union[pd.Series, np.ndarray], timeperiod=10) -> np.ndarray: ... +@overload +def CG(real: pd.DataFrame, timeperiod=10) -> pd.Series: ... + +"""CHOP(high, low, close[, timeperiod=?]) + +Choppiness Index (Momentum Indicators) + +Inputs: + prices: ['high', 'low', 'close'] +Parameters: + timeperiod: 14 +Outputs: + real""" +@overload +def CHOP(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ... +@overload +def CHOP(real: pd.DataFrame, timeperiod=14) -> pd.Series: ... + +"""CHOPTR(high, low, close[, timeperiod=?]) + +Choppiness Index (True Range Box) (Momentum Indicators) + +Inputs: + prices: ['high', 'low', 'close'] +Parameters: + timeperiod: 14 +Outputs: + real""" +@overload +def CHOPTR(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ... +@overload +def CHOPTR(real: pd.DataFrame, timeperiod=14) -> pd.Series: ... + """CMO(real[, timeperiod=?]) Chande Momentum Oscillator (Momentum Indicators) @@ -627,6 +733,56 @@ def COPPOCK(real: Union[pd.Series, np.ndarray], wmaperiod=10, roc1period=11, roc @overload def COPPOCK(real: pd.DataFrame, wmaperiod=10, roc1period=11, roc2period=14) -> pd.Series: ... +"""CRSI(real[, timeperiod=?, streakperiod=?, rankperiod=?]) + +Connors Relative Strength Index (Momentum Indicators) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 3 + streakperiod: 2 + rankperiod: 100 +Outputs: + real""" +@overload +def CRSI(real: Union[pd.Series, np.ndarray], timeperiod=3, streakperiod=2, rankperiod=100) -> np.ndarray: ... +@overload +def CRSI(real: pd.DataFrame, timeperiod=3, streakperiod=2, rankperiod=100) -> pd.Series: ... + +"""CTI(real[, timeperiod=?]) + +Correlation Trend Indicator (Momentum Indicators) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 20 +Outputs: + real""" +@overload +def CTI(real: Union[pd.Series, np.ndarray], timeperiod=20) -> np.ndarray: ... +@overload +def CTI(real: pd.DataFrame, timeperiod=20) -> pd.Series: ... + +"""DOSC(real[, timeperiod=?, firstperiod=?, secondperiod=?, signalperiod=?]) + +Derivative Oscillator (Momentum Indicators) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 14 + firstperiod: 5 + secondperiod: 3 + signalperiod: 9 +Outputs: + real""" +@overload +def DOSC(real: Union[pd.Series, np.ndarray], timeperiod=14, firstperiod=5, secondperiod=3, signalperiod=9) -> np.ndarray: ... +@overload +def DOSC(real: pd.DataFrame, timeperiod=14, firstperiod=5, secondperiod=3, signalperiod=9) -> pd.Series: ... + """DPO(real[, timeperiod=?]) Detrended Price Oscillator (Momentum Indicators) @@ -688,6 +844,22 @@ def ERI(real: Union[pd.Series, np.ndarray], timeperiod=13) -> Tuple[np.ndarray, @overload def ERI(real: pd.DataFrame, timeperiod=13) -> pd.DataFrame: ... +"""FISHER(high, low[, timeperiod=?]) + +Fisher Transform (Momentum Indicators) + +Inputs: + prices: ['high', 'low'] +Parameters: + timeperiod: 10 +Outputs: + fisher + trigger""" +@overload +def FISHER(real: Union[pd.Series, np.ndarray], timeperiod=10) -> Tuple[np.ndarray, np.ndarray]: ... +@overload +def FISHER(real: pd.DataFrame, timeperiod=10) -> pd.DataFrame: ... + """FOSC(real[, timeperiod=?]) Forecast Oscillator (Momentum Indicators) @@ -720,6 +892,19 @@ def FRACTAL(real: Union[pd.Series, np.ndarray], leftbars=2, rightbars=2) -> Tupl @overload def FRACTAL(real: pd.DataFrame, leftbars=2, rightbars=2) -> pd.DataFrame: ... +"""IBS(high, low, close) + +Internal Bar Strength (Momentum Indicators) + +Inputs: + prices: ['high', 'low', 'close'] +Outputs: + real""" +@overload +def IBS(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ... +@overload +def IBS(real: pd.DataFrame) -> pd.Series: ... + """IMI(open, close[, timeperiod=?]) Intraday Momentum Index (Momentum Indicators) @@ -756,6 +941,56 @@ def KDJ(real: Union[pd.Series, np.ndarray], fastk_period=9, slowk_period=3, slow @overload def KDJ(real: pd.DataFrame, fastk_period=9, slowk_period=3, slowk_matype=13, slowd_period=3, slowd_matype=13) -> pd.DataFrame: ... +"""KST(real[, roc1period=?, roc2period=?, roc3period=?, roc4period=?, sma1period=?, sma2period=?, sma3period=?, sma4period=?, signalperiod=?]) + +Know Sure Thing (Pring) (Momentum Indicators) + +Inputs: + real: (any ndarray) +Parameters: + roc1period: 10 + roc2period: 15 + roc3period: 20 + roc4period: 30 + sma1period: 10 + sma2period: 10 + sma3period: 10 + sma4period: 15 + signalperiod: 9 +Outputs: + kst + kstsignal""" +@overload +def KST(real: Union[pd.Series, np.ndarray], roc1period=10, roc2period=15, roc3period=20, roc4period=30, sma1period=10, sma2period=10, sma3period=10, sma4period=15, signalperiod=9) -> Tuple[np.ndarray, np.ndarray]: ... +@overload +def KST(real: pd.DataFrame, roc1period=10, roc2period=15, roc3period=20, roc4period=30, sma1period=10, sma2period=10, sma3period=10, sma4period=15, signalperiod=9) -> pd.DataFrame: ... + +"""KSTEXT(real[, roc1period=?, roc2period=?, roc3period=?, roc4period=?, ma1period=?, ma2period=?, ma3period=?, ma4period=?, signalperiod=?, rocmatype=?, signalmatype=?]) + +Know Sure Thing with controllable MA type (Momentum Indicators) + +Inputs: + real: (any ndarray) +Parameters: + roc1period: 10 + roc2period: 15 + roc3period: 20 + roc4period: 30 + ma1period: 10 + ma2period: 10 + ma3period: 10 + ma4period: 15 + signalperiod: 9 + rocmatype: 0 (Simple Moving Average) + signalmatype: 0 (Simple Moving Average) +Outputs: + kst + kstsignal""" +@overload +def KSTEXT(real: Union[pd.Series, np.ndarray], roc1period=10, roc2period=15, roc3period=20, roc4period=30, ma1period=10, ma2period=10, ma3period=10, ma4period=15, signalperiod=9, rocmatype=0, signalmatype=0) -> Tuple[np.ndarray, np.ndarray]: ... +@overload +def KSTEXT(real: pd.DataFrame, roc1period=10, roc2period=15, roc3period=20, roc4period=30, ma1period=10, ma2period=10, ma3period=10, ma4period=15, signalperiod=9, rocmatype=0, signalmatype=0) -> pd.DataFrame: ... + """MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?]) Moving Average Convergence/Divergence (Momentum Indicators) @@ -921,6 +1156,22 @@ def PPO(real: Union[pd.Series, np.ndarray], fastperiod=12, slowperiod=26, matype @overload def PPO(real: pd.DataFrame, fastperiod=12, slowperiod=26, matype=1) -> pd.Series: ... +"""PSO(high, low, close[, fastk_period=?, emaperiod=?]) + +Premier Stochastic Oscillator (Momentum Indicators) + +Inputs: + prices: ['high', 'low', 'close'] +Parameters: + fastk_period: 8 + emaperiod: 5 +Outputs: + real""" +@overload +def PSO(real: Union[pd.Series, np.ndarray], fastk_period=8, emaperiod=5) -> np.ndarray: ... +@overload +def PSO(real: pd.DataFrame, fastk_period=8, emaperiod=5) -> pd.Series: ... + """QSTICK(open, close[, timeperiod=?]) Qstick (Momentum Indicators) @@ -1011,6 +1262,21 @@ def RSI(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ... @overload def RSI(real: pd.DataFrame, timeperiod=14) -> pd.Series: ... +"""SI(open, high, low, close[, limitmove=?]) + +Wilder Swing Index (Momentum Indicators) + +Inputs: + prices: ['open', 'high', 'low', 'close'] +Parameters: + limitmove: 3.0 +Outputs: + real""" +@overload +def SI(real: Union[pd.Series, np.ndarray], limitmove=3.0) -> np.ndarray: ... +@overload +def SI(real: pd.DataFrame, limitmove=3.0) -> pd.Series: ... + """SMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?]) Stochastic Momentum Index (Momentum Indicators) @@ -1030,6 +1296,44 @@ def SMI(real: Union[pd.Series, np.ndarray], timeperiod=13, fastperiod=2, slowper @overload def SMI(real: pd.DataFrame, timeperiod=13, fastperiod=2, slowperiod=25, signalperiod=9) -> pd.DataFrame: ... +"""SQZMOM(high, low, close[, bbperiod=?, nbdev=?, kcperiod=?, factorwide=?, factornormal=?, factornarrow=?]) + +Squeeze Momentum and Level (Momentum Indicators) + +Inputs: + prices: ['high', 'low', 'close'] +Parameters: + bbperiod: 20 + nbdev: 2.0 + kcperiod: 20 + factorwide: 2.0 + factornormal: 1.5 + factornarrow: 1.0 +Outputs: + momentum + squeeze""" +@overload +def SQZMOM(real: Union[pd.Series, np.ndarray], bbperiod=20, nbdev=2.0, kcperiod=20, factorwide=2.0, factornormal=1.5, factornarrow=1.0) -> Tuple[np.ndarray, np.ndarray]: ... +@overload +def SQZMOM(real: pd.DataFrame, bbperiod=20, nbdev=2.0, kcperiod=20, factorwide=2.0, factornormal=1.5, factornarrow=1.0) -> pd.DataFrame: ... + +"""STC(real[, fastperiod=?, slowperiod=?, cycleperiod=?]) + +Schaff Trend Cycle (Momentum Indicators) + +Inputs: + real: (any ndarray) +Parameters: + fastperiod: 23 + slowperiod: 50 + cycleperiod: 10 +Outputs: + real""" +@overload +def STC(real: Union[pd.Series, np.ndarray], fastperiod=23, slowperiod=50, cycleperiod=10) -> np.ndarray: ... +@overload +def STC(real: pd.DataFrame, fastperiod=23, slowperiod=50, cycleperiod=10) -> pd.Series: ... + """STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?]) Stochastic (Momentum Indicators) @@ -1179,6 +1483,24 @@ def WAD(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ... @overload def WAD(real: pd.DataFrame) -> pd.Series: ... +"""WAVETREND(high, low, close[, channelperiod=?, averageperiod=?, signalperiod=?]) + +WaveTrend Oscillator (Momentum Indicators) + +Inputs: + prices: ['high', 'low', 'close'] +Parameters: + channelperiod: 10 + averageperiod: 21 + signalperiod: 4 +Outputs: + wt1 + wt2""" +@overload +def WAVETREND(real: Union[pd.Series, np.ndarray], channelperiod=10, averageperiod=21, signalperiod=4) -> Tuple[np.ndarray, np.ndarray]: ... +@overload +def WAVETREND(real: pd.DataFrame, channelperiod=10, averageperiod=21, signalperiod=4) -> pd.DataFrame: ... + """WILLR(high, low, close[, timeperiod=?]) Williams' %R (Momentum Indicators) @@ -1211,6 +1533,23 @@ def ACCBANDS(real: Union[pd.Series, np.ndarray], timeperiod=20) -> Tuple[np.ndar @overload def ACCBANDS(real: pd.DataFrame, timeperiod=20) -> pd.DataFrame: ... +"""ALMA(real[, timeperiod=?, sigma=?, offset=?]) + +Arnaud Legoux Moving Average (Overlap Studies) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 9 + sigma: 6.0 + offset: 0.85 +Outputs: + real""" +@overload +def ALMA(real: Union[pd.Series, np.ndarray], timeperiod=9, sigma=6.0, offset=0.85) -> np.ndarray: ... +@overload +def ALMA(real: pd.DataFrame, timeperiod=9, sigma=6.0, offset=0.85) -> pd.Series: ... + """BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) Bollinger Bands (Overlap Studies) @@ -1231,6 +1570,24 @@ def BBANDS(real: Union[pd.Series, np.ndarray], timeperiod=20, nbdevup=2.0, nbdev @overload def BBANDS(real: pd.DataFrame, timeperiod=20, nbdevup=2.0, nbdevdn=2.0, matype=0) -> pd.DataFrame: ... +"""CKSP(high, low, close[, timeperiod=?, multiplier=?, stopperiod=?]) + +Chande Kroll Stop (Overlap Studies) + +Inputs: + prices: ['high', 'low', 'close'] +Parameters: + timeperiod: 10 + multiplier: 1.0 + stopperiod: 9 +Outputs: + highstop + lowstop""" +@overload +def CKSP(real: Union[pd.Series, np.ndarray], timeperiod=10, multiplier=1.0, stopperiod=9) -> Tuple[np.ndarray, np.ndarray]: ... +@overload +def CKSP(real: pd.DataFrame, timeperiod=10, multiplier=1.0, stopperiod=9) -> pd.DataFrame: ... + """DEMA(real[, timeperiod=?]) Double Exponential Moving Average (Overlap Studies) @@ -1278,6 +1635,21 @@ def EMA(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ... @overload def EMA(real: pd.DataFrame, timeperiod=30) -> pd.Series: ... +"""FRAMA(high, low[, timeperiod=?]) + +Fractal Adaptive Moving Average (Overlap Studies) + +Inputs: + prices: ['high', 'low'] +Parameters: + timeperiod: 16 +Outputs: + real""" +@overload +def FRAMA(real: Union[pd.Series, np.ndarray], timeperiod=16) -> np.ndarray: ... +@overload +def FRAMA(real: pd.DataFrame, timeperiod=16) -> pd.Series: ... + """HMA(real[, timeperiod=?]) Hull Moving Average (Overlap Studies) @@ -1306,6 +1678,26 @@ def HT_TRENDLINE(real: Union[pd.Series, np.ndarray]) -> np.ndarray: ... @overload def HT_TRENDLINE(real: pd.DataFrame) -> pd.Series: ... +"""ICHIMOKU(high, low[, tenkanperiod=?, kijunperiod=?, senkoubperiod=?]) + +Ichimoku Kinko Hyo (Overlap Studies) + +Inputs: + prices: ['high', 'low'] +Parameters: + tenkanperiod: 9 + kijunperiod: 26 + senkoubperiod: 52 +Outputs: + tenkansen + kijunsen + senkouspana + senkouspanb""" +@overload +def ICHIMOKU(real: Union[pd.Series, np.ndarray], tenkanperiod=9, kijunperiod=26, senkoubperiod=52) -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]: ... +@overload +def ICHIMOKU(real: pd.DataFrame, tenkanperiod=9, kijunperiod=26, senkoubperiod=52) -> pd.DataFrame: ... + """KAMA(real[, timeperiod=?]) Kaufman Adaptive Moving Average (Overlap Studies) @@ -1391,6 +1783,21 @@ def MAVP(real: Union[pd.Series, np.ndarray], minperiod=2, maxperiod=30, matype=0 @overload def MAVP(real: pd.DataFrame, minperiod=2, maxperiod=30, matype=0) -> pd.Series: ... +"""MCGD(real[, timeperiod=?]) + +McGinley Dynamic (Overlap Studies) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 14 +Outputs: + real""" +@overload +def MCGD(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ... +@overload +def MCGD(real: pd.DataFrame, timeperiod=14) -> pd.Series: ... + """MIDPOINT(real[, timeperiod=?]) MidPoint over period (Overlap Studies) @@ -1506,6 +1913,36 @@ def SUPERTREND(real: Union[pd.Series, np.ndarray], timeperiod=10, multiplier=3.0 @overload def SUPERTREND(real: pd.DataFrame, timeperiod=10, multiplier=3.0) -> pd.DataFrame: ... +"""SWAK_BUTTER(real[, timeperiod=?]) + +Swiss Army Knife - Butterworth Filter (Overlap Studies) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 20 +Outputs: + real""" +@overload +def SWAK_BUTTER(real: Union[pd.Series, np.ndarray], timeperiod=20) -> np.ndarray: ... +@overload +def SWAK_BUTTER(real: pd.DataFrame, timeperiod=20) -> pd.Series: ... + +"""SWAK_GAUSS(real[, timeperiod=?]) + +Swiss Army Knife - Gaussian Filter (Overlap Studies) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 20 +Outputs: + real""" +@overload +def SWAK_GAUSS(real: Union[pd.Series, np.ndarray], timeperiod=20) -> np.ndarray: ... +@overload +def SWAK_GAUSS(real: pd.DataFrame, timeperiod=20) -> pd.Series: ... + """T3(real[, timeperiod=?, vfactor=?]) Triple Exponential Moving Average (T3) (Overlap Studies) @@ -1552,6 +1989,22 @@ def TRIMA(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ... @overload def TRIMA(real: pd.DataFrame, timeperiod=30) -> pd.Series: ... +"""VIDYA(real[, timeperiod=?, cmoperiod=?]) + +Variable Index Dynamic Average (Overlap Studies) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 12 + cmoperiod: 9 +Outputs: + real""" +@overload +def VIDYA(real: Union[pd.Series, np.ndarray], timeperiod=12, cmoperiod=9) -> np.ndarray: ... +@overload +def VIDYA(real: pd.DataFrame, timeperiod=12, cmoperiod=9) -> pd.Series: ... + """VWMA(real, volume[, timeperiod=?]) Volume Weighted Moving Average (Overlap Studies) @@ -1583,6 +2036,24 @@ def WMA(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ... @overload def WMA(real: pd.DataFrame, timeperiod=30) -> pd.Series: ... +"""ZIGZAG(high, low[, sensitivity=?, mintrendlength=?]) + +Zig Zag (Overlap Studies) + +Inputs: + prices: ['high', 'low'] +Parameters: + sensitivity: 5.0 + mintrendlength: 1 +Outputs: + zigzag + trend + pivotidx""" +@overload +def ZIGZAG(real: Union[pd.Series, np.ndarray], sensitivity=5.0, mintrendlength=1) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: ... +@overload +def ZIGZAG(real: pd.DataFrame, sensitivity=5.0, mintrendlength=1) -> pd.DataFrame: ... + """ZLEMA(real[, timeperiod=?]) Zero-Lag Exponential Moving Average (Overlap Studies) @@ -2520,6 +2991,21 @@ def CORREL(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ... @overload def CORREL(real: pd.DataFrame, timeperiod=30) -> pd.Series: ... +"""KURTOSIS(real[, timeperiod=?]) + +Rolling Excess Kurtosis (Statistic Functions) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 30 +Outputs: + real""" +@overload +def KURTOSIS(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ... +@overload +def KURTOSIS(real: pd.DataFrame, timeperiod=30) -> pd.Series: ... + """LINEARREG(real[, timeperiod=?]) Linear Regression (Statistic Functions) @@ -2580,6 +3066,21 @@ def LINEARREG_SLOPE(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.nda @overload def LINEARREG_SLOPE(real: pd.DataFrame, timeperiod=14) -> pd.Series: ... +"""MEDIAN(real[, timeperiod=?]) + +Rolling Median (Statistic Functions) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 30 +Outputs: + real""" +@overload +def MEDIAN(real: Union[pd.Series, np.ndarray], timeperiod=30) -> np.ndarray: ... +@overload +def MEDIAN(real: pd.DataFrame, timeperiod=30) -> pd.Series: ... + """PERCENTILE(real[, timeperiod=?, percentile=?]) Percentile (nearest rank) (Statistic Functions) @@ -2587,14 +3088,14 @@ Percentile (nearest rank) (Statistic Functions) Inputs: real: (any ndarray) Parameters: - timeperiod: 30 + timeperiod: 100 percentile: 50.0 Outputs: real""" @overload -def PERCENTILE(real: Union[pd.Series, np.ndarray], timeperiod=30, percentile=50.0) -> np.ndarray: ... +def PERCENTILE(real: Union[pd.Series, np.ndarray], timeperiod=100, percentile=50.0) -> np.ndarray: ... @overload -def PERCENTILE(real: pd.DataFrame, timeperiod=30, percentile=50.0) -> pd.Series: ... +def PERCENTILE(real: pd.DataFrame, timeperiod=100, percentile=50.0) -> pd.Series: ... """PERCENTRANK(real[, timeperiod=?]) @@ -2688,6 +3189,24 @@ def ATR(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ... @overload def ATR(real: pd.DataFrame, timeperiod=14) -> pd.Series: ... +"""BBW(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) + +Bollinger BandWidth (Volatility Indicators) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 20 + nbdevup: 2.0 + nbdevdn: 2.0 + matype: 0 (Simple Moving Average) +Outputs: + real""" +@overload +def BBW(real: Union[pd.Series, np.ndarray], timeperiod=20, nbdevup=2.0, nbdevdn=2.0, matype=0) -> np.ndarray: ... +@overload +def BBW(real: pd.DataFrame, timeperiod=20, nbdevup=2.0, nbdevdn=2.0, matype=0) -> pd.Series: ... + """CVI(high, low[, timeperiod=?, rocperiod=?]) Chaikin's Volatility (Volatility Indicators) @@ -2735,6 +3254,40 @@ def NATR(real: Union[pd.Series, np.ndarray], timeperiod=14) -> np.ndarray: ... @overload def NATR(real: pd.DataFrame, timeperiod=14) -> pd.Series: ... +"""PERCENTB(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) + +Bollinger Bands %B (Volatility Indicators) + +Inputs: + real: (any ndarray) +Parameters: + timeperiod: 20 + nbdevup: 2.0 + nbdevdn: 2.0 + matype: 0 (Simple Moving Average) +Outputs: + real""" +@overload +def PERCENTB(real: Union[pd.Series, np.ndarray], timeperiod=20, nbdevup=2.0, nbdevdn=2.0, matype=0) -> np.ndarray: ... +@overload +def PERCENTB(real: pd.DataFrame, timeperiod=20, nbdevup=2.0, nbdevdn=2.0, matype=0) -> pd.Series: ... + +"""ROGERSSATCHELL(open, high, low, close[, timeperiod=?, annualization=?]) + +Rogers-Satchell Volatility (Volatility Indicators) + +Inputs: + prices: ['open', 'high', 'low', 'close'] +Parameters: + timeperiod: 10 + annualization: 252.0 +Outputs: + real""" +@overload +def ROGERSSATCHELL(real: Union[pd.Series, np.ndarray], timeperiod=10, annualization=252.0) -> np.ndarray: ... +@overload +def ROGERSSATCHELL(real: pd.DataFrame, timeperiod=10, annualization=252.0) -> pd.Series: ... + """RVI(real[, timeperiod=?, stddevperiod=?]) Relative Volatility Index (Volatility Indicators) @@ -2751,6 +3304,22 @@ def RVI(real: Union[pd.Series, np.ndarray], timeperiod=14, stddevperiod=10) -> n @overload def RVI(real: pd.DataFrame, timeperiod=14, stddevperiod=10) -> pd.Series: ... +"""RVIR(high, low[, timeperiod=?, stddevperiod=?]) + +Relative Volatility Index, refined high/low form (Volatility Indicators) + +Inputs: + prices: ['high', 'low'] +Parameters: + timeperiod: 14 + stddevperiod: 10 +Outputs: + real""" +@overload +def RVIR(real: Union[pd.Series, np.ndarray], timeperiod=14, stddevperiod=10) -> np.ndarray: ... +@overload +def RVIR(real: pd.DataFrame, timeperiod=14, stddevperiod=10) -> pd.Series: ... + """TRANGE(high, low, close) True Range (Volatility Indicators) @@ -2823,6 +3392,40 @@ def EFI(real: Union[pd.Series, np.ndarray], timeperiod=13) -> np.ndarray: ... @overload def EFI(real: pd.DataFrame, timeperiod=13) -> pd.Series: ... +"""EMV(high, low, volume[, timeperiod=?, volumedivisor=?]) + +Arms Ease of Movement (Volume Indicators) + +Inputs: + prices: ['high', 'low', 'volume'] +Parameters: + timeperiod: 14 + volumedivisor: 10000.0 +Outputs: + real""" +@overload +def EMV(real: Union[pd.Series, np.ndarray], timeperiod=14, volumedivisor=10000.0) -> np.ndarray: ... +@overload +def EMV(real: pd.DataFrame, timeperiod=14, volumedivisor=10000.0) -> pd.Series: ... + +"""KVO(high, low, close, volume[, fastperiod=?, slowperiod=?, signalperiod=?]) + +Klinger Volume Oscillator (Volume Indicators) + +Inputs: + prices: ['high', 'low', 'close', 'volume'] +Parameters: + fastperiod: 34 + slowperiod: 55 + signalperiod: 13 +Outputs: + kvo + kvosignal""" +@overload +def KVO(real: Union[pd.Series, np.ndarray], fastperiod=34, slowperiod=55, signalperiod=13) -> Tuple[np.ndarray, np.ndarray]: ... +@overload +def KVO(real: pd.DataFrame, fastperiod=34, slowperiod=55, signalperiod=13) -> pd.DataFrame: ... + """MARKETFI(high, low, volume) Market Facilitation Index (Volume Indicators) diff --git a/talib/deprecated.py b/talib/deprecated.py index 6d1fe1715..2bfc6faf6 100644 --- a/talib/deprecated.py +++ b/talib/deprecated.py @@ -1,3 +1,3 @@ # TA_MAType enums MA_SMA, MA_EMA, MA_WMA, MA_DEMA, MA_TEMA, MA_TRIMA, MA_KAMA, MA_MAMA, MA_T3, \ - MA_HMA, MA_DISABLED, MA_DEFAULT, MA_ZLEMA, MA_RMA = range(14) + MA_HMA, MA_DISABLED, MA_DEFAULT, MA_ZLEMA, MA_RMA, MA_VIDYA, MA_ALMA = range(16) diff --git a/talib/stream.pyi b/talib/stream.pyi index b7fddf4b1..f22e95d78 100644 --- a/talib/stream.pyi +++ b/talib/stream.pyi @@ -105,6 +105,16 @@ class ADXR(Stream): def value(self) -> float: ... def copy(self) -> "ADXR": ... +class ALMA(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 9, sigma: float = 6.0, offset: float = 0.85) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 9, sigma: float = 6.0, offset: float = 0.85) -> Tuple["ALMA", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ALMA": ... + class AO(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], fastperiod: int = 5, slowperiod: int = 34) -> None: ... @staticmethod @@ -145,6 +155,16 @@ class AROONOSC(Stream): def value(self) -> float: ... def copy(self) -> "AROONOSC": ... +class ASI(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], limitmove: float = 3.0) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], limitmove: float = 3.0) -> Tuple["ASI", NDArray[np.float64]]: ... + def update(self, open: float, high: float, low: float, close: float) -> float: ... + def peek(self, open: float, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ASI": ... + class ASIN(Stream): def __init__(self, real: NDArray[np.float64]) -> None: ... @staticmethod @@ -205,6 +225,16 @@ class BBANDS(Stream): def value(self) -> Tuple[float, float, float]: ... def copy(self) -> "BBANDS": ... +class BBW(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 20, nbdevup: float = 2.0, nbdevdn: float = 2.0, matype: int = 0) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 20, nbdevup: float = 2.0, nbdevdn: float = 2.0, matype: int = 0) -> Tuple["BBW", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "BBW": ... + class BETA(Stream): def __init__(self, real0: NDArray[np.float64], real1: NDArray[np.float64], timeperiod: int = 5) -> None: ... @staticmethod @@ -855,6 +885,46 @@ class CEIL(Stream): def value(self) -> float: ... def copy(self) -> "CEIL": ... +class CG(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 10) -> Tuple["CG", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "CG": ... + +class CHOP(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["CHOP", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "CHOP": ... + +class CHOPTR(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["CHOPTR", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "CHOPTR": ... + +class CKSP(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 10, multiplier: float = 1.0, stopperiod: int = 9) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 10, multiplier: float = 1.0, stopperiod: int = 9) -> Tuple["CKSP", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float, close: float) -> Tuple[float, float]: ... + def peek(self, high: float, low: float, close: float) -> Tuple[float, float]: ... + @property + def value(self) -> Tuple[float, float]: ... + def copy(self) -> "CKSP": ... + class CMF(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], volume: NDArray[np.float64], timeperiod: int = 20) -> None: ... @staticmethod @@ -925,6 +995,26 @@ class COSH(Stream): def value(self) -> float: ... def copy(self) -> "COSH": ... +class CRSI(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 3, streakperiod: int = 2, rankperiod: int = 100) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 3, streakperiod: int = 2, rankperiod: int = 100) -> Tuple["CRSI", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "CRSI": ... + +class CTI(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 20) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 20) -> Tuple["CTI", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "CTI": ... + class CUMSUM(Stream): def __init__(self, real: NDArray[np.float64]) -> None: ... @staticmethod @@ -975,6 +1065,16 @@ class DONCHIAN(Stream): def value(self) -> Tuple[float, float, float]: ... def copy(self) -> "DONCHIAN": ... +class DOSC(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14, firstperiod: int = 5, secondperiod: int = 3, signalperiod: int = 9) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14, firstperiod: int = 5, secondperiod: int = 3, signalperiod: int = 9) -> Tuple["DOSC", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "DOSC": ... + class DPO(Stream): def __init__(self, real: NDArray[np.float64], timeperiod: int = 20) -> None: ... @staticmethod @@ -1015,6 +1115,16 @@ class EMA(Stream): def value(self) -> float: ... def copy(self) -> "EMA": ... +class EMV(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], volume: NDArray[np.float64], timeperiod: int = 14, volumedivisor: float = 10000.0) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], volume: NDArray[np.float64], timeperiod: int = 14, volumedivisor: float = 10000.0) -> Tuple["EMV", NDArray[np.float64]]: ... + def update(self, high: float, low: float, volume: float) -> float: ... + def peek(self, high: float, low: float, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "EMV": ... + class ER(Stream): def __init__(self, real: NDArray[np.float64], timeperiod: int = 10) -> None: ... @staticmethod @@ -1045,6 +1155,16 @@ class EXP(Stream): def value(self) -> float: ... def copy(self) -> "EXP": ... +class FISHER(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 10) -> Tuple["FISHER", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float) -> Tuple[float, float]: ... + def peek(self, high: float, low: float) -> Tuple[float, float]: ... + @property + def value(self) -> Tuple[float, float]: ... + def copy(self) -> "FISHER": ... + class FLOOR(Stream): def __init__(self, real: NDArray[np.float64]) -> None: ... @staticmethod @@ -1075,6 +1195,16 @@ class FRACTAL(Stream): def value(self) -> Tuple[int, int]: ... def copy(self) -> "FRACTAL": ... +class FRAMA(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 16) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 16) -> Tuple["FRAMA", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "FRAMA": ... + class HA(Stream): def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... @staticmethod @@ -1155,6 +1285,26 @@ class HT_TRENDMODE(Stream): def value(self) -> int: ... def copy(self) -> "HT_TRENDMODE": ... +class IBS(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["IBS", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "IBS": ... + +class ICHIMOKU(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], tenkanperiod: int = 9, kijunperiod: int = 26, senkoubperiod: int = 52) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], tenkanperiod: int = 9, kijunperiod: int = 26, senkoubperiod: int = 52) -> Tuple["ICHIMOKU", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float) -> Tuple[float, float, float, float]: ... + def peek(self, high: float, low: float) -> Tuple[float, float, float, float]: ... + @property + def value(self) -> Tuple[float, float, float, float]: ... + def copy(self) -> "ICHIMOKU": ... + class IMI(Stream): def __init__(self, open: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... @staticmethod @@ -1195,6 +1345,46 @@ class KDJ(Stream): def value(self) -> Tuple[float, float, float]: ... def copy(self) -> "KDJ": ... +class KST(Stream): + def __init__(self, real: NDArray[np.float64], roc1period: int = 10, roc2period: int = 15, roc3period: int = 20, roc4period: int = 30, sma1period: int = 10, sma2period: int = 10, sma3period: int = 10, sma4period: int = 15, signalperiod: int = 9) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], roc1period: int = 10, roc2period: int = 15, roc3period: int = 20, roc4period: int = 30, sma1period: int = 10, sma2period: int = 10, sma3period: int = 10, sma4period: int = 15, signalperiod: int = 9) -> Tuple["KST", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, real: float) -> Tuple[float, float]: ... + def peek(self, real: float) -> Tuple[float, float]: ... + @property + def value(self) -> Tuple[float, float]: ... + def copy(self) -> "KST": ... + +class KSTEXT(Stream): + def __init__(self, real: NDArray[np.float64], roc1period: int = 10, roc2period: int = 15, roc3period: int = 20, roc4period: int = 30, ma1period: int = 10, ma2period: int = 10, ma3period: int = 10, ma4period: int = 15, signalperiod: int = 9, rocmatype: int = 0, signalmatype: int = 0) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], roc1period: int = 10, roc2period: int = 15, roc3period: int = 20, roc4period: int = 30, ma1period: int = 10, ma2period: int = 10, ma3period: int = 10, ma4period: int = 15, signalperiod: int = 9, rocmatype: int = 0, signalmatype: int = 0) -> Tuple["KSTEXT", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, real: float) -> Tuple[float, float]: ... + def peek(self, real: float) -> Tuple[float, float]: ... + @property + def value(self) -> Tuple[float, float]: ... + def copy(self) -> "KSTEXT": ... + +class KURTOSIS(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["KURTOSIS", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "KURTOSIS": ... + +class KVO(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], volume: NDArray[np.float64], fastperiod: int = 34, slowperiod: int = 55, signalperiod: int = 13) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], volume: NDArray[np.float64], fastperiod: int = 34, slowperiod: int = 55, signalperiod: int = 13) -> Tuple["KVO", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float, close: float, volume: float) -> Tuple[float, float]: ... + def peek(self, high: float, low: float, close: float, volume: float) -> Tuple[float, float]: ... + @property + def value(self) -> Tuple[float, float]: ... + def copy(self) -> "KVO": ... + class LINEARREG(Stream): def __init__(self, real: NDArray[np.float64], timeperiod: int = 14) -> None: ... @staticmethod @@ -1355,6 +1545,26 @@ class MAXINDEX(Stream): def value(self) -> int: ... def copy(self) -> "MAXINDEX": ... +class MCGD(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14) -> Tuple["MCGD", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MCGD": ... + +class MEDIAN(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["MEDIAN", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MEDIAN": ... + class MEDPRICE(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64]) -> None: ... @staticmethod @@ -1505,10 +1715,20 @@ class OBV(Stream): def value(self) -> float: ... def copy(self) -> "OBV": ... +class PERCENTB(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 20, nbdevup: float = 2.0, nbdevdn: float = 2.0, matype: int = 0) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 20, nbdevup: float = 2.0, nbdevdn: float = 2.0, matype: int = 0) -> Tuple["PERCENTB", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "PERCENTB": ... + class PERCENTILE(Stream): - def __init__(self, real: NDArray[np.float64], timeperiod: int = 30, percentile: float = 50.0) -> None: ... + def __init__(self, real: NDArray[np.float64], timeperiod: int = 100, percentile: float = 50.0) -> None: ... @staticmethod - def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30, percentile: float = 50.0) -> Tuple["PERCENTILE", NDArray[np.float64]]: ... + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 100, percentile: float = 50.0) -> Tuple["PERCENTILE", NDArray[np.float64]]: ... def update(self, real: float) -> float: ... def peek(self, real: float) -> float: ... @property @@ -1555,6 +1775,16 @@ class PPO(Stream): def value(self) -> float: ... def copy(self) -> "PPO": ... +class PSO(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 8, emaperiod: int = 5) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 8, emaperiod: int = 5) -> Tuple["PSO", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "PSO": ... + class PVI(Stream): def __init__(self, close: NDArray[np.float64], volume: NDArray[np.float64]) -> None: ... @staticmethod @@ -1645,6 +1875,16 @@ class ROCR100(Stream): def value(self) -> float: ... def copy(self) -> "ROCR100": ... +class ROGERSSATCHELL(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 10, annualization: float = 252.0) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 10, annualization: float = 252.0) -> Tuple["ROGERSSATCHELL", NDArray[np.float64]]: ... + def update(self, open: float, high: float, low: float, close: float) -> float: ... + def peek(self, open: float, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ROGERSSATCHELL": ... + class RSI(Stream): def __init__(self, real: NDArray[np.float64], timeperiod: int = 14) -> None: ... @staticmethod @@ -1665,6 +1905,16 @@ class RVI(Stream): def value(self) -> float: ... def copy(self) -> "RVI": ... +class RVIR(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14, stddevperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14, stddevperiod: int = 10) -> Tuple["RVIR", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "RVIR": ... + class RVOL(Stream): def __init__(self, volume: NDArray[np.float64], timeperiod: int = 20) -> None: ... @staticmethod @@ -1695,6 +1945,16 @@ class SAREXT(Stream): def value(self) -> float: ... def copy(self) -> "SAREXT": ... +class SI(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], limitmove: float = 3.0) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], limitmove: float = 3.0) -> Tuple["SI", NDArray[np.float64]]: ... + def update(self, open: float, high: float, low: float, close: float) -> float: ... + def peek(self, open: float, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SI": ... + class SIN(Stream): def __init__(self, real: NDArray[np.float64]) -> None: ... @staticmethod @@ -1745,6 +2005,26 @@ class SQRT(Stream): def value(self) -> float: ... def copy(self) -> "SQRT": ... +class SQZMOM(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], bbperiod: int = 20, nbdev: float = 2.0, kcperiod: int = 20, factorwide: float = 2.0, factornormal: float = 1.5, factornarrow: float = 1.0) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], bbperiod: int = 20, nbdev: float = 2.0, kcperiod: int = 20, factorwide: float = 2.0, factornormal: float = 1.5, factornarrow: float = 1.0) -> Tuple["SQZMOM", Tuple[NDArray[np.float64], NDArray[np.int32]]]: ... + def update(self, high: float, low: float, close: float) -> Tuple[float, int]: ... + def peek(self, high: float, low: float, close: float) -> Tuple[float, int]: ... + @property + def value(self) -> Tuple[float, int]: ... + def copy(self) -> "SQZMOM": ... + +class STC(Stream): + def __init__(self, real: NDArray[np.float64], fastperiod: int = 23, slowperiod: int = 50, cycleperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], fastperiod: int = 23, slowperiod: int = 50, cycleperiod: int = 10) -> Tuple["STC", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "STC": ... + class STDDEV(Stream): def __init__(self, real: NDArray[np.float64], timeperiod: int = 5, nbdev: float = 1.0) -> None: ... @staticmethod @@ -1815,6 +2095,56 @@ class SUPERTREND(Stream): def value(self) -> Tuple[float, int]: ... def copy(self) -> "SUPERTREND": ... +class SWAK_2PHP(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 20) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 20) -> Tuple["SWAK_2PHP", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SWAK_2PHP": ... + +class SWAK_BP(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 20, delta: float = 0.1) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 20, delta: float = 0.1) -> Tuple["SWAK_BP", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SWAK_BP": ... + +class SWAK_BUTTER(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 20) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 20) -> Tuple["SWAK_BUTTER", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SWAK_BUTTER": ... + +class SWAK_GAUSS(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 20) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 20) -> Tuple["SWAK_GAUSS", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SWAK_GAUSS": ... + +class SWAK_HP(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 20) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 20) -> Tuple["SWAK_HP", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SWAK_HP": ... + class T3(Stream): def __init__(self, real: NDArray[np.float64], timeperiod: int = 5, vfactor: float = 0.7) -> None: ... @staticmethod @@ -1945,6 +2275,16 @@ class VHF(Stream): def value(self) -> float: ... def copy(self) -> "VHF": ... +class VIDYA(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 12, cmoperiod: int = 9) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 12, cmoperiod: int = 9) -> Tuple["VIDYA", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "VIDYA": ... + class VORTEX(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... @staticmethod @@ -1985,6 +2325,16 @@ class WAD(Stream): def value(self) -> float: ... def copy(self) -> "WAD": ... +class WAVETREND(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], channelperiod: int = 10, averageperiod: int = 21, signalperiod: int = 4) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], channelperiod: int = 10, averageperiod: int = 21, signalperiod: int = 4) -> Tuple["WAVETREND", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float, close: float) -> Tuple[float, float]: ... + def peek(self, high: float, low: float, close: float) -> Tuple[float, float]: ... + @property + def value(self) -> Tuple[float, float]: ... + def copy(self) -> "WAVETREND": ... + class WCLPRICE(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... @staticmethod @@ -2015,6 +2365,16 @@ class WMA(Stream): def value(self) -> float: ... def copy(self) -> "WMA": ... +class ZIGZAG(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], sensitivity: float = 5.0, mintrendlength: int = 1) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], sensitivity: float = 5.0, mintrendlength: int = 1) -> Tuple["ZIGZAG", Tuple[NDArray[np.float64], NDArray[np.int32], NDArray[np.int32]]]: ... + def update(self, high: float, low: float) -> Tuple[float, int, int]: ... + def peek(self, high: float, low: float) -> Tuple[float, int, int]: ... + @property + def value(self) -> Tuple[float, int, int]: ... + def copy(self) -> "ZIGZAG": ... + class ZLEMA(Stream): def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... @staticmethod diff --git a/tests/test_func.py b/tests/test_func.py index 34adabbde..7e8d1a3f9 100644 --- a/tests/test_func.py +++ b/tests/test_func.py @@ -11,14 +11,14 @@ def test_talib_version(): - required = (0, 8, 1) + required = tuple(int(p) for p in talib.TA_LIB_C_REQUIRED.split('.')) installed = tuple(int(p) for p in talib.__ta_version__.split()[0].split(b'.')) assert installed >= required def test_num_functions(): - assert len(talib.get_functions()) == 201 - assert len(talib.__TA_FUNCTION_NAMES__) == 201 + assert len(talib.get_functions()) == 237 + assert len(talib.__TA_FUNCTION_NAMES__) == 237 def test_every_grouped_function_is_bound(): @@ -145,6 +145,16 @@ def _unstable_period_cases(): 'RMA': lambda: func.RMA(close), 'HA': lambda: func.HA(open_, high, low, close)[0], 'RVI': lambda: func.RVI(close), + 'FRAMA': lambda: func.FRAMA(high, low), + 'MCGD': lambda: func.MCGD(close), + 'VIDYA': lambda: func.VIDYA(close), + 'STC': lambda: func.STC(close), + 'SWAK_GAUSS': lambda: func.SWAK_GAUSS(close), + 'SWAK_BUTTER': lambda: func.SWAK_BUTTER(close), + 'SWAK_HP': lambda: func.SWAK_HP(close), + 'SWAK_2PHP': lambda: func.SWAK_2PHP(close), + 'SWAK_BP': lambda: func.SWAK_BP(close), + 'FISHER': lambda: func.FISHER(high, low)[0], } @@ -171,7 +181,7 @@ def test_unstable_period_moves_its_own_function(name): talib.set_unstable_period(name, 0) unshifted = call() baseline = _leading_unset(unshifted) - assert baseline > 0 or name == 'HA' # HA is the one case with no lookback + assert baseline > 0 or abstract.Function(name).lookback == 0 try: talib.set_unstable_period(name, 5) shifted = call() @@ -188,10 +198,14 @@ def test_unstable_period_all(): talib.set_unstable_period('ALL', 0) baseline = {name: _leading_unset(call()) for name, call in UNSTABLE_PERIOD_CASES.items()} + lookback = {name: abstract.Function(name).lookback for name in UNSTABLE_PERIOD_CASES} try: talib.set_unstable_period('ALL', 3) for name, call in UNSTABLE_PERIOD_CASES.items(): - assert _leading_unset(call()) == baseline[name] + 3, name + # a function built on another unstable one moves by both + grown = abstract.Function(name).lookback - lookback[name] + assert grown == 3 * {'STC': 2}.get(name, 1), name + assert _leading_unset(call()) == baseline[name] + grown, name finally: talib.set_unstable_period('ALL', 0) for name, call in UNSTABLE_PERIOD_CASES.items(): @@ -338,7 +352,7 @@ def test_MAXINDEX(): # The func API bakes each parameter's default into its own signature, while the -# abstract API reads them from the library. They have to agree, for all 201. +# abstract API reads them from the library. They have to agree, for every function. def test_func_and_abstract_agree(): n = 200 rs = np.random.RandomState(4) @@ -369,15 +383,35 @@ def test_func_and_abstract_agree(): assert_array_equal(a, b, err_msg=name) -# The moving averages TA-Lib C 0.8.1 added to TA_MAType. -@pytest.mark.parametrize('matype,name', [ - (talib.MA_Type.HMA, 'HMA'), - (talib.MA_Type.ZLEMA, 'ZLEMA'), - (talib.MA_Type.RMA, 'RMA'), +# The moving averages TA-Lib C added to TA_MAType after 0.6. MA runs VIDYA +# with a CMO period of (3n+2)/4, not VIDYA's own default. +@pytest.mark.parametrize('matype,name,kwargs', [ + (talib.MA_Type.HMA, 'HMA', {}), + (talib.MA_Type.ZLEMA, 'ZLEMA', {}), + (talib.MA_Type.RMA, 'RMA', {}), + (talib.MA_Type.VIDYA, 'VIDYA', {'cmoperiod': 15}), + (talib.MA_Type.ALMA, 'ALMA', {}), ]) -def test_MA_dispatches_to_the_new_types(matype, name): +def test_MA_dispatches_to_the_new_types(matype, name, kwargs): a = np.cumsum(np.random.RandomState(3).randn(200)) + 100.0 - assert_array_equal(func.MA(a, 20, matype), getattr(func, name)(a, 20)) + assert_array_equal(func.MA(a, 20, matype), getattr(func, name)(a, 20, **kwargs)) + + +def test_ZIGZAG_pivot_index_is_in_the_callers_coordinates(): + # Like MAXINDEX, outPivotIdx is a bar index, so leading NaN bars move it. + rs = np.random.RandomState(5) + close = np.cumsum(rs.randn(300)) + 100.0 + high, low = close + rs.rand(300) + 0.5, close - rs.rand(300) - 0.5 + pad = 7 + nan = np.full(pad, np.nan) + lookback = abstract.Function('ZIGZAG').lookback + zigzag, trend, pivot = func.ZIGZAG(high, low) + assert len(set(pivot[lookback:])) > 1 and len(set(trend[lookback:])) > 1 + for got in (func.ZIGZAG(np.r_[nan, high], np.r_[nan, low]), + abstract.ZIGZAG({'high': np.r_[nan, high], 'low': np.r_[nan, low]})): + assert_array_equal(got[0][pad:], zigzag) + assert_array_equal(got[1][pad:], trend) + assert_array_equal(got[2][pad + lookback:], pivot[lookback:] + pad) def test_MA_DISABLED_and_DEFAULT(): From 324cd83b9d0dbe88784e3ac88e1e06b0a77c36ec Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sat, 24 Oct 2026 23:08:52 -0400 Subject: [PATCH 3/7] Name the Auto levels of set_unstable_period TA-Lib C 0.8.3's Auto-Stabilization takes an Auto level in place of a count: talib.set_unstable_period('ALL', talib.UNSTABLE_AUTO_PREC_4) discards each function's leading output until its first 4 significant digits no longer depend on where the data starts (UNSTABLE_AUTO_PREC_8: 8). get_unstable_period() returns the level. See https://ta-lib.org/api/unstable-period/#auto --- README.md | 7 +++++++ docs/func.md | 7 +++++++ docs/index.md | 7 +++++++ talib/__init__.py | 1 + talib/_common.pxi | 3 +++ talib/_ta_lib.pxd | 4 ++++ talib/_ta_lib.pyi | 3 +++ tests/test_func.py | 16 ++++++++++++++++ 8 files changed, 48 insertions(+) diff --git a/README.md b/README.md index 6c6da4ea9..15915ca8b 100644 --- a/README.md +++ b/README.md @@ -446,6 +446,13 @@ Functions marked in the docs as having an unstable period start with that extra unstable-period setting at `0`. In other words, `get_unstable_period()` returns `0` until you explicitly change it with `set_unstable_period()`. +Instead of a count, `set_unstable_period()` also takes an Auto level. With +`talib.set_unstable_period('ALL', talib.UNSTABLE_AUTO_PREC_4)` each function +works out how many leading values to discard, so that the first 4 significant +digits of what it returns no longer depend on where your data starts; +`UNSTABLE_AUTO_PREC_8` targets 8. `get_unstable_period()` then returns the +level. See [Unstable Period](https://ta-lib.org/api/unstable-period/#auto). + ### NaN's The underlying TA-Lib C library handles NaN's in a sometimes surprising manner diff --git a/docs/func.md b/docs/func.md index 6ddd985b5..a5b469fef 100644 --- a/docs/func.md +++ b/docs/func.md @@ -50,6 +50,13 @@ Functions documented as having an unstable period start with that extra unstable-period setting at ``0``. ``get_unstable_period()`` only returns a non-zero value after you set one explicitly with ``set_unstable_period()``. +Instead of a count, ``set_unstable_period()`` also takes an Auto level. With +``talib.set_unstable_period('ALL', talib.UNSTABLE_AUTO_PREC_4)`` each function +works out how many leading values to discard, so that the first 4 significant +digits of what it returns no longer depend on where your data starts; +``UNSTABLE_AUTO_PREC_8`` targets 8. ``get_unstable_period()`` then returns the +level. See [Unstable Period](https://ta-lib.org/api/unstable-period/#auto). + Documentation for all functions: * [Overlap Studies](func_groups/overlap_studies.md) diff --git a/docs/index.md b/docs/index.md index 2f192de02..9ebb242ce 100644 --- a/docs/index.md +++ b/docs/index.md @@ -65,6 +65,13 @@ Functions documented as having an unstable period start with that extra unstable-period setting at ``0``. ``get_unstable_period()`` only reports a non-zero value after you call ``set_unstable_period()`` yourself. +Instead of a count, ``set_unstable_period()`` also takes an Auto level. With +``talib.set_unstable_period('ALL', talib.UNSTABLE_AUTO_PREC_4)`` each function +works out how many leading values to discard, so that the first 4 significant +digits of what it returns no longer depend on where your data starts; +``UNSTABLE_AUTO_PREC_8`` targets 8. ``get_unstable_period()`` then returns the +level. See [Unstable Period](https://ta-lib.org/api/unstable-period/#auto). + ## Abstract API Quick Start If you're already familiar with using the function API, you should feel right diff --git a/talib/__init__.py b/talib/__init__.py index d27d5991f..cf8ac64dc 100644 --- a/talib/__init__.py +++ b/talib/__init__.py @@ -108,6 +108,7 @@ def wrapper(*args, **kwds): _ta_initialize, _ta_shutdown, MA_Type, __ta_version__, _ta_set_unstable_period as set_unstable_period, _ta_get_unstable_period as get_unstable_period, + UNSTABLE_AUTO_PREC_4, UNSTABLE_AUTO_PREC_8, _ta_set_compatibility as set_compatibility, _ta_get_compatibility as get_compatibility, InsufficientHistory, diff --git a/talib/_common.pxi b/talib/_common.pxi index e8595beff..ddad597a5 100644 --- a/talib/_common.pxi +++ b/talib/_common.pxi @@ -247,6 +247,9 @@ _ta_func_unst_retired = { 'STOCHRSI': "STOCHRSI has no unstable period of its own; it follows the inner RSI. Set 'RSI' instead.", } +UNSTABLE_AUTO_PREC_4 = lib.TA_UNSTABLE_AUTO_PREC_4 +UNSTABLE_AUTO_PREC_8 = lib.TA_UNSTABLE_AUTO_PREC_8 + def _ta_func_unst_id(name): if name in _ta_func_unst_retired: warnings.warn( diff --git a/talib/_ta_lib.pxd b/talib/_ta_lib.pxd index 8d184416e..9e50e8b26 100644 --- a/talib/_ta_lib.pxd +++ b/talib/_ta_lib.pxd @@ -86,6 +86,10 @@ cdef extern from "ta-lib/ta_defs.h": const TA_FuncUnstId TA_FUNC_UNST_FISHER const TA_FuncUnstId TA_FUNC_UNST_ALL + # The Auto levels, passed to TA_SetUnstablePeriod in place of a count. + const unsigned int TA_UNSTABLE_AUTO_PREC_4 + const unsigned int TA_UNSTABLE_AUTO_PREC_8 + ctypedef int TA_RangeType const TA_RangeType TA_RangeType_RealBody = 0 const TA_RangeType TA_RangeType_HighLow = 1 diff --git a/talib/_ta_lib.pyi b/talib/_ta_lib.pyi index fd7b0df6b..d2b9a10ee 100644 --- a/talib/_ta_lib.pyi +++ b/talib/_ta_lib.pyi @@ -21,6 +21,9 @@ class MA_Type(Enum): VIDYA = 14 ALMA = 15 +UNSTABLE_AUTO_PREC_4: int +UNSTABLE_AUTO_PREC_8: int + #Overlap Studies Functions def BBANDS( diff --git a/tests/test_func.py b/tests/test_func.py index 7e8d1a3f9..6f4b250bd 100644 --- a/tests/test_func.py +++ b/tests/test_func.py @@ -194,6 +194,22 @@ def test_unstable_period_moves_its_own_function(name): assert _leading_unset(call()) == baseline +def test_unstable_period_takes_an_auto_level(): + close = np.cumsum(np.random.RandomState(2).randn(2000)) + 100.0 + talib.set_unstable_period('ALL', 0) + plain = _leading_unset(func.EMA(close, 30)) + try: + talib.set_unstable_period('ALL', talib.UNSTABLE_AUTO_PREC_4) + assert talib.get_unstable_period('EMA') == talib.UNSTABLE_AUTO_PREC_4 + prec4 = _leading_unset(func.EMA(close, 30)) + talib.set_unstable_period('EMA', talib.UNSTABLE_AUTO_PREC_8) + assert talib.get_unstable_period('EMA') == talib.UNSTABLE_AUTO_PREC_8 + prec8 = _leading_unset(func.EMA(close, 30)) + finally: + talib.set_unstable_period('ALL', 0) + assert plain < prec4 < prec8 < len(close) + + def test_unstable_period_all(): talib.set_unstable_period('ALL', 0) baseline = {name: _leading_unset(call()) From 3025f7f53a2bc961f10b58bda643bd81afeb9d1f Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sat, 24 Oct 2026 23:27:21 -0400 Subject: [PATCH 4/7] Let transcendental functions differ in the last bits where TA-Lib C uses vForce On Apple Silicon macOS, TA-Lib C 0.8.3 computes the batch call of the twelve transcendental Math Transform functions (ACOS, ASIN, ATAN, COS, COSH, EXP, LN, LOG10, SIN, SINH, TAN, TANH) with Apple's vForce, while a stream's update keeps libm, so the two may differ in the last bits. test_stream.py failed 21 tests there, which the macOS arm64 wheel build runs. For those twelve, and only when TA_GetRuntimeInfo('vmath.transcendental') reports a vector math library, the update-vs-batch comparison now allows equal values or up to 8 ulps of the same sign, as TA-Lib C's own tests do. Every other function and tier stays bit-exact. stream.py and the README say so. --- README.md | 3 ++- talib/_common.pxi | 11 +++++++++++ talib/_ta_lib.pxd | 1 + talib/stream.py | 3 ++- tests/test_stream.py | 26 +++++++++++++++++++++++++- 5 files changed, 41 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 15915ca8b..5614fab7b 100644 --- a/README.md +++ b/README.md @@ -546,7 +546,8 @@ slowk, slowd = STOCH(inputs, 5, 3, 0, 3, 0, prices=['high', 'low', 'open']) The Streaming API keeps a handle per indicator instead of recomputing from the whole array. Opening one costs a pass over the history; every bar after that is O(1), and each value it produces is identical to the one the Function API -reports for that bar. +reports for that bar. On Apple Silicon macOS, a function using a transcendental +math function (SIN, EXP, LN, ...) may differ from it in the last bits. ```python import talib diff --git a/talib/_common.pxi b/talib/_common.pxi index ddad597a5..cac11f506 100644 --- a/talib/_common.pxi +++ b/talib/_common.pxi @@ -293,6 +293,17 @@ def _ta_set_compatibility(value): ret_code = lib.TA_SetCompatibility(c_value) _ta_check_success('TA_SetCompatibility', ret_code) +def _ta_get_runtime_info(key): + cdef TA_RetCode ret_code + cdef int value = 0 + cdef bytes c_key = key.encode('ascii') + cdef const char *k = c_key + with _TA_ReadLease(): + with nogil: + ret_code = lib.TA_GetRuntimeInfo(k, &value) + _ta_check_success('TA_GetRuntimeInfo', ret_code) + return value + def _ta_get_compatibility(): cdef int value with _TA_ReadLease(): diff --git a/talib/_ta_lib.pxd b/talib/_ta_lib.pxd index 9e50e8b26..8cc693d87 100644 --- a/talib/_ta_lib.pxd +++ b/talib/_ta_lib.pxd @@ -116,6 +116,7 @@ cdef extern from "ta-lib/ta_common.h" nogil: const char *TA_GetVersionBuild() const char *TA_GetVersionDate() const char *TA_GetVersionTime() + TA_RetCode TA_GetRuntimeInfo(const char *key, int *value) ctypedef double TA_Real ctypedef int TA_Integer diff --git a/talib/stream.py b/talib/stream.py index 7d315dc7b..c34529dcd 100644 --- a/talib/stream.py +++ b/talib/stream.py @@ -2,7 +2,8 @@ A handle is opened on history, then carried forward one bar at a time. Every value it produces is bit-identical to what the Function API reports for the -same bar. +same bar, except on Apple Silicon macOS, where a function using a +transcendental math function (SIN, EXP, LN, ...) may differ in the last bits. from talib import stream diff --git a/tests/test_stream.py b/tests/test_stream.py index 28ae624a3..223e30f69 100644 --- a/tests/test_stream.py +++ b/tests/test_stream.py @@ -20,6 +20,13 @@ def _flagged(flag): # group dict: a function the flag knows and the dict does not would otherwise be # silently absent from every parametrised test below. FUNCTIONS = sorted(_flagged('Function has a streaming API')) +# Where TA-Lib C computes a batch call with a vector math library (Apple's vForce +# on Apple Silicon macOS), the transcendental Math Transform functions (SIN, LN, +# ...), one math call per bar, may differ from it in the last bits on a stream's +# update. Every other function, and every other tier, agrees bit for bit. +NEAR = (_flagged('Uses a transcendental math function') + & set(talib.get_function_groups()['Math Transform']) + if talib._ta_lib._ta_get_runtime_info('vmath.transcendental') else set()) CANDLESTICKS = _flagged('Output is a candlestick') NAN_BARS = 5 @@ -74,6 +81,23 @@ def opened(name, args, warmup): pytest.fail('%s did not open on %d bars' % (name, warmup + 3)) +def agrees(name, got, want): + """Bit-exact, or for a NEAR function equal or within 8 ulps of the same + sign (the bound TA-Lib C's own tests hold these functions to).""" + if repr(got) == repr(want): + return True + if name not in NEAR: + return False + a, b = np.float64(got), np.float64(want) + if np.isnan(a) or np.isnan(b) or np.isinf(a) or np.isinf(b): + return False + if a == b: + return True + if np.signbit(a) != np.signbit(b): + return False + return abs(int(a.view(np.int64)) - int(b.view(np.int64))) <= 8 + + def carried(name, data, warmup): """Open on a prefix, then update through the rest, against the batch series.""" args = series(name, data) @@ -85,7 +109,7 @@ def carried(name, data, warmup): for bar in range(warmup, len(data['close'])): produced = handle.update(*[a[bar] for a in args]) for got, want in paired(outputs(produced), expected): - assert repr(got) == repr(want[bar].item()), (name, bar) + assert agrees(name, got, want[bar].item()), (name, bar) updated += 1 assert updated == len(data['close']) - warmup return handle From 77656ab7cf472f4d1cb7f0e44c2c8f87c95f18e1 Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sat, 24 Oct 2026 23:55:36 -0400 Subject: [PATCH 5/7] Regenerate talib/_ta_lib.c --- talib/_ta_lib.c | 238775 ++++++++++++++++++++++++++++++--------------- 1 file changed, 159676 insertions(+), 79099 deletions(-) diff --git a/talib/_ta_lib.c b/talib/_ta_lib.c index 0b2e43796..76beb86e0 100644 --- a/talib/_ta_lib.c +++ b/talib/_ta_lib.c @@ -1813,16 +1813,19 @@ struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream; struct __pyx_obj_5talib_7_ta_lib_ADR_Stream; struct __pyx_obj_5talib_7_ta_lib_ADX_Stream; struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream; +struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream; struct __pyx_obj_5talib_7_ta_lib_AO_Stream; struct __pyx_obj_5talib_7_ta_lib_APO_Stream; struct __pyx_obj_5talib_7_ta_lib_AROON_Stream; struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream; +struct __pyx_obj_5talib_7_ta_lib_ASI_Stream; struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream; struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream; struct __pyx_obj_5talib_7_ta_lib_ATR_Stream; struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream; struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream; struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream; +struct __pyx_obj_5talib_7_ta_lib_BBW_Stream; struct __pyx_obj_5talib_7_ta_lib_BETA_Stream; struct __pyx_obj_5talib_7_ta_lib_BOP_Stream; struct __pyx_obj_5talib_7_ta_lib_CCI_Stream; @@ -1888,6 +1891,10 @@ struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream; struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream; struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream; struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream; +struct __pyx_obj_5talib_7_ta_lib_CG_Stream; +struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream; +struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream; +struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream; struct __pyx_obj_5talib_7_ta_lib_CMF_Stream; struct __pyx_obj_5talib_7_ta_lib_CMO_Stream; struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream; @@ -1895,21 +1902,27 @@ struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream; struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream; struct __pyx_obj_5talib_7_ta_lib_COS_Stream; struct __pyx_obj_5talib_7_ta_lib_COSH_Stream; +struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream; +struct __pyx_obj_5talib_7_ta_lib_CTI_Stream; struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream; struct __pyx_obj_5talib_7_ta_lib_CVI_Stream; struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream; struct __pyx_obj_5talib_7_ta_lib_DIV_Stream; struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream; +struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream; struct __pyx_obj_5talib_7_ta_lib_DPO_Stream; struct __pyx_obj_5talib_7_ta_lib_DX_Stream; struct __pyx_obj_5talib_7_ta_lib_EFI_Stream; struct __pyx_obj_5talib_7_ta_lib_EMA_Stream; +struct __pyx_obj_5talib_7_ta_lib_EMV_Stream; struct __pyx_obj_5talib_7_ta_lib_ER_Stream; struct __pyx_obj_5talib_7_ta_lib_ERI_Stream; struct __pyx_obj_5talib_7_ta_lib_EXP_Stream; +struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream; struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream; struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream; struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream; +struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream; struct __pyx_obj_5talib_7_ta_lib_HA_Stream; struct __pyx_obj_5talib_7_ta_lib_HMA_Stream; struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream; @@ -1918,10 +1931,16 @@ struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream; struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream; struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream; struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream; +struct __pyx_obj_5talib_7_ta_lib_IBS_Stream; +struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream; struct __pyx_obj_5talib_7_ta_lib_IMI_Stream; struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream; struct __pyx_obj_5talib_7_ta_lib_KC_Stream; struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream; +struct __pyx_obj_5talib_7_ta_lib_KST_Stream; +struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream; +struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream; +struct __pyx_obj_5talib_7_ta_lib_KVO_Stream; struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream; struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream; struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream; @@ -1938,6 +1957,8 @@ struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream; struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream; struct __pyx_obj_5talib_7_ta_lib_MAX_Stream; struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream; +struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream; +struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream; struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream; struct __pyx_obj_5talib_7_ta_lib_MFI_Stream; struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream; @@ -1953,11 +1974,13 @@ struct __pyx_obj_5talib_7_ta_lib_MULT_Stream; struct __pyx_obj_5talib_7_ta_lib_NATR_Stream; struct __pyx_obj_5talib_7_ta_lib_NVI_Stream; struct __pyx_obj_5talib_7_ta_lib_OBV_Stream; +struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream; struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream; struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream; struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream; struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream; struct __pyx_obj_5talib_7_ta_lib_PPO_Stream; +struct __pyx_obj_5talib_7_ta_lib_PSO_Stream; struct __pyx_obj_5talib_7_ta_lib_PVI_Stream; struct __pyx_obj_5talib_7_ta_lib_PVO_Stream; struct __pyx_obj_5talib_7_ta_lib_PVT_Stream; @@ -1967,16 +1990,21 @@ struct __pyx_obj_5talib_7_ta_lib_ROC_Stream; struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream; struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream; struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream; +struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream; struct __pyx_obj_5talib_7_ta_lib_RSI_Stream; struct __pyx_obj_5talib_7_ta_lib_RVI_Stream; +struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream; struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream; struct __pyx_obj_5talib_7_ta_lib_SAR_Stream; struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream; +struct __pyx_obj_5talib_7_ta_lib_SI_Stream; struct __pyx_obj_5talib_7_ta_lib_SIN_Stream; struct __pyx_obj_5talib_7_ta_lib_SINH_Stream; struct __pyx_obj_5talib_7_ta_lib_SMA_Stream; struct __pyx_obj_5talib_7_ta_lib_SMI_Stream; struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream; +struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream; +struct __pyx_obj_5talib_7_ta_lib_STC_Stream; struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream; struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream; struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream; @@ -1984,6 +2012,11 @@ struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream; struct __pyx_obj_5talib_7_ta_lib_SUB_Stream; struct __pyx_obj_5talib_7_ta_lib_SUM_Stream; struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream; +struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream; +struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream; +struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream; +struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream; +struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream; struct __pyx_obj_5talib_7_ta_lib_T3_Stream; struct __pyx_obj_5talib_7_ta_lib_TAN_Stream; struct __pyx_obj_5talib_7_ta_lib_TANH_Stream; @@ -1997,13 +2030,16 @@ struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream; struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream; struct __pyx_obj_5talib_7_ta_lib_VAR_Stream; struct __pyx_obj_5talib_7_ta_lib_VHF_Stream; +struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream; struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream; struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream; struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream; struct __pyx_obj_5talib_7_ta_lib_WAD_Stream; +struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream; struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream; struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream; struct __pyx_obj_5talib_7_ta_lib_WMA_Stream; +struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream; struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream; struct __pyx_obj_5talib_7_ta_lib__TA_ReadLease { @@ -2071,6 +2107,11 @@ struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_AO_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2091,6 +2132,11 @@ struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_ASI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2121,6 +2167,11 @@ struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_BBW_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_BETA_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2446,6 +2497,26 @@ struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_CG_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_CMF_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2481,6 +2552,16 @@ struct __pyx_obj_5talib_7_ta_lib_COSH_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_CTI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2506,6 +2587,11 @@ struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_DPO_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2526,6 +2612,11 @@ struct __pyx_obj_5talib_7_ta_lib_EMA_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_EMV_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_ER_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2541,6 +2632,11 @@ struct __pyx_obj_5talib_7_ta_lib_EXP_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2556,6 +2652,11 @@ struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_HA_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2596,6 +2697,16 @@ struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_IBS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_IMI_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2616,6 +2727,26 @@ struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_KST_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_KVO_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2696,6 +2827,16 @@ struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2771,6 +2912,11 @@ struct __pyx_obj_5talib_7_ta_lib_OBV_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2796,6 +2942,11 @@ struct __pyx_obj_5talib_7_ta_lib_PPO_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_PSO_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_PVI_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2841,6 +2992,11 @@ struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_RSI_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2851,6 +3007,11 @@ struct __pyx_obj_5talib_7_ta_lib_RVI_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2866,6 +3027,11 @@ struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_SI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_SIN_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2891,6 +3057,16 @@ struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_STC_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2926,6 +3102,31 @@ struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + +struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_T3_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -2991,6 +3192,11 @@ struct __pyx_obj_5talib_7_ta_lib_VHF_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3011,6 +3217,11 @@ struct __pyx_obj_5talib_7_ta_lib_WAD_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3026,6 +3237,11 @@ struct __pyx_obj_5talib_7_ta_lib_WMA_Stream { }; +struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; + + struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream { struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3104,6 +3320,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_ADXR_Stream *__pyx_vtabptr_5talib +struct __pyx_vtabstruct_5talib_7_ta_lib_ALMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ALMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_ALMA_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_AO_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3132,6 +3355,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_AROONOSC_Stream *__pyx_vtabptr_5t +struct __pyx_vtabstruct_5talib_7_ta_lib_ASI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ASI_Stream *__pyx_vtabptr_5talib_7_ta_lib_ASI_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_ASIN_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3174,6 +3404,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_BBANDS_Stream *__pyx_vtabptr_5tal +struct __pyx_vtabstruct_5talib_7_ta_lib_BBW_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_BBW_Stream *__pyx_vtabptr_5talib_7_ta_lib_BBW_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_BETA_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3629,6 +3866,34 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_CEIL_Stream *__pyx_vtabptr_5talib +struct __pyx_vtabstruct_5talib_7_ta_lib_CG_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CG_Stream *__pyx_vtabptr_5talib_7_ta_lib_CG_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CHOP_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CHOP_Stream *__pyx_vtabptr_5talib_7_ta_lib_CHOP_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CHOPTR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CHOPTR_Stream *__pyx_vtabptr_5talib_7_ta_lib_CHOPTR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CKSP_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CKSP_Stream *__pyx_vtabptr_5talib_7_ta_lib_CKSP_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_CMF_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3678,6 +3943,20 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_COSH_Stream *__pyx_vtabptr_5talib +struct __pyx_vtabstruct_5talib_7_ta_lib_CRSI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CRSI_Stream *__pyx_vtabptr_5talib_7_ta_lib_CRSI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CTI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CTI_Stream *__pyx_vtabptr_5talib_7_ta_lib_CTI_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_CUMSUM_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3713,6 +3992,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_vtabptr_5t +struct __pyx_vtabstruct_5talib_7_ta_lib_DOSC_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_DOSC_Stream *__pyx_vtabptr_5talib_7_ta_lib_DOSC_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_DPO_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3741,6 +4027,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_EMA_Stream *__pyx_vtabptr_5talib_ +struct __pyx_vtabstruct_5talib_7_ta_lib_EMV_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_EMV_Stream *__pyx_vtabptr_5talib_7_ta_lib_EMV_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_ER_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3762,6 +4055,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_EXP_Stream *__pyx_vtabptr_5talib_ +struct __pyx_vtabstruct_5talib_7_ta_lib_FISHER_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_FISHER_Stream *__pyx_vtabptr_5talib_7_ta_lib_FISHER_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_FLOOR_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3783,6 +4083,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_FRACTAL_Stream *__pyx_vtabptr_5ta +struct __pyx_vtabstruct_5talib_7_ta_lib_FRAMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_FRAMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_FRAMA_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_HA_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3839,6 +4146,20 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_vtabpt +struct __pyx_vtabstruct_5talib_7_ta_lib_IBS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_IBS_Stream *__pyx_vtabptr_5talib_7_ta_lib_IBS_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_ICHIMOKU_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_vtabptr_5talib_7_ta_lib_ICHIMOKU_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_IMI_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3867,6 +4188,34 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_KDJ_Stream *__pyx_vtabptr_5talib_ +struct __pyx_vtabstruct_5talib_7_ta_lib_KST_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_KST_Stream *__pyx_vtabptr_5talib_7_ta_lib_KST_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_KSTEXT_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_KSTEXT_Stream *__pyx_vtabptr_5talib_7_ta_lib_KSTEXT_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_KURTOSIS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_vtabptr_5talib_7_ta_lib_KURTOSIS_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_KVO_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_KVO_Stream *__pyx_vtabptr_5talib_7_ta_lib_KVO_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -3979,6 +4328,20 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_vtabptr_5t +struct __pyx_vtabstruct_5talib_7_ta_lib_MCGD_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MCGD_Stream *__pyx_vtabptr_5talib_7_ta_lib_MCGD_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MEDIAN_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MEDIAN_Stream *__pyx_vtabptr_5talib_7_ta_lib_MEDIAN_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_MEDPRICE_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -4084,6 +4447,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_OBV_Stream *__pyx_vtabptr_5talib_ +struct __pyx_vtabstruct_5talib_7_ta_lib_PERCENTB_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_PERCENTB_Stream *__pyx_vtabptr_5talib_7_ta_lib_PERCENTB_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_PERCENTILE_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -4119,6 +4489,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_PPO_Stream *__pyx_vtabptr_5talib_ +struct __pyx_vtabstruct_5talib_7_ta_lib_PSO_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_PSO_Stream *__pyx_vtabptr_5talib_7_ta_lib_PSO_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_PVI_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -4182,6 +4559,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_ROCR100_Stream *__pyx_vtabptr_5ta +struct __pyx_vtabstruct_5talib_7_ta_lib_ROGERSSATCHELL_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_vtabptr_5talib_7_ta_lib_ROGERSSATCHELL_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_RSI_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -4196,6 +4580,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_RVI_Stream *__pyx_vtabptr_5talib_ +struct __pyx_vtabstruct_5talib_7_ta_lib_RVIR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_RVIR_Stream *__pyx_vtabptr_5talib_7_ta_lib_RVIR_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_RVOL_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -4217,6 +4608,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_SAREXT_Stream *__pyx_vtabptr_5tal +struct __pyx_vtabstruct_5talib_7_ta_lib_SI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SI_Stream *__pyx_vtabptr_5talib_7_ta_lib_SI_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_SIN_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -4252,6 +4650,20 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_SQRT_Stream *__pyx_vtabptr_5talib +struct __pyx_vtabstruct_5talib_7_ta_lib_SQZMOM_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SQZMOM_Stream *__pyx_vtabptr_5talib_7_ta_lib_SQZMOM_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_STC_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_STC_Stream *__pyx_vtabptr_5talib_7_ta_lib_STC_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_STDDEV_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -4301,6 +4713,41 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_vtabptr_ +struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_2PHP_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_vtabptr_5talib_7_ta_lib_SWAK_2PHP_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_BP_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_vtabptr_5talib_7_ta_lib_SWAK_BP_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_BUTTER_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_vtabptr_5talib_7_ta_lib_SWAK_BUTTER_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_GAUSS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_vtabptr_5talib_7_ta_lib_SWAK_GAUSS_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_HP_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_vtabptr_5talib_7_ta_lib_SWAK_HP_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_T3_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -4392,6 +4839,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_VHF_Stream *__pyx_vtabptr_5talib_ +struct __pyx_vtabstruct_5talib_7_ta_lib_VIDYA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_VIDYA_Stream *__pyx_vtabptr_5talib_7_ta_lib_VIDYA_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_VORTEX_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -4420,6 +4874,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_WAD_Stream *__pyx_vtabptr_5talib_ +struct __pyx_vtabstruct_5talib_7_ta_lib_WAVETREND_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_WAVETREND_Stream *__pyx_vtabptr_5talib_7_ta_lib_WAVETREND_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_WCLPRICE_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -4441,6 +4902,13 @@ static struct __pyx_vtabstruct_5talib_7_ta_lib_WMA_Stream *__pyx_vtabptr_5talib_ +struct __pyx_vtabstruct_5talib_7_ta_lib_ZIGZAG_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_vtabptr_5talib_7_ta_lib_ZIGZAG_Stream; + + + struct __pyx_vtabstruct_5talib_7_ta_lib_ZLEMA_Stream { struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; }; @@ -5876,6 +6344,9 @@ static PyObject *__Pyx_Object_VectorcallMethodKwds(PyObject *name, PyObject *con /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_FuncUnstId(TA_FuncUnstId value); +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value); + /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *); @@ -5891,9 +6362,6 @@ static CYTHON_INLINE TA_FuncUnstId __Pyx_PyLong_As_TA_FuncUnstId(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE unsigned int __Pyx_PyLong_As_unsigned_int(PyObject *); -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value); - /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value); @@ -6041,6 +6509,8 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADX_Stream__out_range(struct __pyx_o static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ADXR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ADXR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ALMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ALMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_9AO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_9AO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10APO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6049,6 +6519,8 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12AROON_Stream__out_range(struct __pyx static TA_RetCode __pyx_f_5talib_7_ta_lib_12AROON_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ASI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ASI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ASIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ASIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ATAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6061,6 +6533,8 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__out_range(struct __ static TA_RetCode __pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_13BBANDS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_13BBANDS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10BBW_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10BBW_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11BETA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11BETA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10BOP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6191,6 +6665,14 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__out_rang static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11CEIL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11CEIL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9CG_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9CG_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CHOP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CHOP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CHOPTR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CHOPTR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CKSP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CKSP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6205,6 +6687,10 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10COS_Stream__out_range(struct __pyx_o static TA_RetCode __pyx_f_5talib_7_ta_lib_10COS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11COSH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11COSH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CRSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CRSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CTI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CTI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10CVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6215,6 +6701,8 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10DIV_Stream__out_range(struct __pyx_o static TA_RetCode __pyx_f_5talib_7_ta_lib_10DIV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11DOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11DOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10DPO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10DPO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_9DX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6223,18 +6711,24 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10EFI_Stream__out_range(struct __pyx_o static TA_RetCode __pyx_f_5talib_7_ta_lib_10EFI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_9ER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_9ER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ERI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ERI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10EXP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10EXP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13FISHER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13FISHER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_12FLOOR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_12FLOOR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11FOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11FOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12FRAMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12FRAMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_9HA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_9HA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10HMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6251,6 +6745,10 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__out_range(struc static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10IBS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10IBS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15ICHIMOKU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15ICHIMOKU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10IMI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10IMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11KAMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6259,6 +6757,14 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9KC_Stream__out_range(struct __pyx_obj static TA_RetCode __pyx_f_5talib_7_ta_lib_9KC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10KDJ_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10KDJ_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KST_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KST_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13KSTEXT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13KSTEXT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15KURTOSIS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15KURTOSIS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KVO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KVO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6291,6 +6797,10 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10MAX_Stream__out_range(struct __pyx_o static TA_RetCode __pyx_f_5talib_7_ta_lib_10MAX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MCGD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MCGD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13MEDIAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13MEDIAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10MFI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6321,6 +6831,8 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10NVI_Stream__out_range(struct __pyx_o static TA_RetCode __pyx_f_5talib_7_ta_lib_10NVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10OBV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10OBV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15PERCENTB_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15PERCENTB_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6331,6 +6843,8 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__out_range(struct __p static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10PPO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10PPO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PSO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PSO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6349,16 +6863,22 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCR_Stream__out_range(struct __pyx_ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_14ROCR100_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_14ROCR100_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21ROGERSSATCHELL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21ROGERSSATCHELL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10RSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10RSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10RVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10RVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVIR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVIR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVOL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVOL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_13SAREXT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_13SAREXT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9SI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9SI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11SINH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6369,6 +6889,10 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMI_Stream__out_range(struct __pyx_o static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11SQRT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11SQRT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13SQZMOM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13SQZMOM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10STC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10STC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_13STDDEV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_13STDDEV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_12STOCH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6383,6 +6907,16 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUM_Stream__out_range(struct __pyx_o static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16SWAK_2PHP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16SWAK_2PHP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14SWAK_BP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14SWAK_BP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18SWAK_BUTTER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18SWAK_BUTTER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17SWAK_GAUSS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17SWAK_GAUSS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14SWAK_HP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14SWAK_HP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_9T3_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_9T3_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10TAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6409,6 +6943,8 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10VAR_Stream__out_range(struct __pyx_o static TA_RetCode __pyx_f_5talib_7_ta_lib_10VAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10VHF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10VHF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12VIDYA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12VIDYA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_13VORTEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_13VORTEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWAP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ @@ -6417,12 +6953,16 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWMA_Stream__out_range(struct __pyx_ static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10WAD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10WAD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16WAVETREND_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16WAVETREND_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_12WILLR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_12WILLR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10WMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_10WMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13ZIGZAG_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13ZIGZAG_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_12ZLEMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ static TA_RetCode __pyx_f_5talib_7_ta_lib_12ZLEMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self); /* proto*/ @@ -6518,214 +7058,251 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(CYTHON_UNUSED PyObje static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_period); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_settingtype, int __pyx_v_rangetype, int __pyx_v_avgperiod, double __pyx_v_factor); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_settingtype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_20AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_22ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_24ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_26AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_28ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_30ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_32ADR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_34ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_36ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_422str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_424bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_426str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_428bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_runtime_info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_key); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18_ta_set_candle_settings(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_settingtype, int __pyx_v_rangetype, int __pyx_v_avgperiod, double __pyx_v_factor); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_20_ta_restore_candle_default_settings(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_settingtype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_28AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_30ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_32ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_34ADR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_36ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_38ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_40ALMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_sigma, double __pyx_v_offset); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_42AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_44APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_46AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_48AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_50ASI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_limitmove); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_52ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_54ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_56ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_58AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_60AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_62BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_64BBW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_66BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_68BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_70CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_78CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_80CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_82CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_84CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_186CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_188CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_190CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_192CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_194CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_196CG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_198CHOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_200CHOPTR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_202CKSP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier, int __pyx_v_stopperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_204CMF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_206CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_208CMOU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_210COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_212CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_214COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_216COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_218CRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_streakperiod, int __pyx_v_rankperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_220CTI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_222CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_224CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_226DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_228DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_230DONCHIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_232DOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_firstperiod, int __pyx_v_secondperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_234DPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_236DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_238EFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_240EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_242EMV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod, double __pyx_v_volumedivisor); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_244ER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_246ERI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_248EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_250FISHER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_252FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_254FOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_256FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_258FRAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_260HA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_262HMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_264HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_266HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_268HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_270HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_272HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_274HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_276IBS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_278ICHIMOKU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_tenkanperiod, int __pyx_v_kijunperiod, int __pyx_v_senkoubperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_280IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_282KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_284KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_286KDJ(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_288KST(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_roc1period, int __pyx_v_roc2period, int __pyx_v_roc3period, int __pyx_v_roc4period, int __pyx_v_sma1period, int __pyx_v_sma2period, int __pyx_v_sma3period, int __pyx_v_sma4period, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_290KSTEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_roc1period, int __pyx_v_roc2period, int __pyx_v_roc3period, int __pyx_v_roc4period, int __pyx_v_ma1period, int __pyx_v_ma2period, int __pyx_v_ma3period, int __pyx_v_ma4period, int __pyx_v_signalperiod, int __pyx_v_rocmatype, int __pyx_v_signalmatype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_292KURTOSIS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_294KVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_296LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_298LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_300LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_302LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_304LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_306LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_308MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_310MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_312MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_314MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_316MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_318MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_320MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_322MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_324MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_326MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_328MCGD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_330MEDIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_332MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_334MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_336MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_338MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_340MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_342MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_344MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_346MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_348MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_350MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_352MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_354MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_356NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_358NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_360OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_362PERCENTB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_364PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_366PERCENTRANK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_368PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_370PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_372PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_374PSO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_emaperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_376PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_378PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_380PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_382QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_384RMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_386ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_388ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_390ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_392ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_394ROGERSSATCHELL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_annualization); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_396RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_398RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_400RVIR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_stddevperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_402RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_404SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_406SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_408SI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_limitmove); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_410SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_412SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_414SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_416SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_418SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_420SQZMOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_bbperiod, double __pyx_v_nbdev, int __pyx_v_kcperiod, double __pyx_v_factorwide, double __pyx_v_factornormal, double __pyx_v_factornarrow); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_422STC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_cycleperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_424STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_426STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_428STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_430STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_432SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_434SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_436SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_438SWAK_2PHP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_440SWAK_BP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_delta); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_442SWAK_BUTTER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_444SWAK_GAUSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_446SWAK_HP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_448T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_450TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_452TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_454TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_456TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_458TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_460TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_462TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_464TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_466TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_468ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_470VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_472VHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_474VIDYA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_cmoperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_476VORTEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_478VWAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_480VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_482WAD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_484WAVETREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_channelperiod, int __pyx_v_averageperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_486WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_488WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_490WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_492ZIGZAG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_sensitivity, int __pyx_v_mintrendlength); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_494ZLEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_496str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_498bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_500str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_502bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_func_object, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ @@ -6750,14 +7327,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTH static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_430_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_434__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_440_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_444_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_504_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_506_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_508__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_510_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_512_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_514_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_516_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_518_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info); /* proto */ static int __pyx_pf_5talib_7_ta_lib_6Stream___cinit__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_9out_range___get__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_2advance(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self); /* proto */ @@ -6827,6 +7404,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_6update(struct __pyx_obj static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11ALMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11ALMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_sigma, double __pyx_v_offset); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ALMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_sigma, double __pyx_v_offset); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ALMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ALMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ALMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ALMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_9AO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ @@ -6855,6 +7439,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_6update(struct __pyx static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10ASI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10ASI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_limitmove); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ASI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_limitmove); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ASI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ASI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ASI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ASI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_11ASIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ @@ -6897,6 +7488,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(struct __pyx_o static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10BBW_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10BBW_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10BBW_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10BBW_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10BBW_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10BBW_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10BBW_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_11BETA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ @@ -7352,6 +7950,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_6update(struct __pyx_obj static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_9CG_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_9CG_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9CG_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9CG_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9CG_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9CG_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9CG_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11CHOP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11CHOP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CHOP_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CHOP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CHOP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CHOP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CHOP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11CKSP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11CKSP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier, int __pyx_v_stopperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CKSP_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier, int __pyx_v_stopperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CKSP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CKSP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CKSP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CKSP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_10CMF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ @@ -7401,6 +8027,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_6update(struct __pyx_obj static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11CRSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11CRSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_streakperiod, int __pyx_v_rankperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CRSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_streakperiod, int __pyx_v_rankperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CRSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CRSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CRSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CRSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10CTI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10CTI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CTI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CTI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CTI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CTI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CTI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ @@ -7436,6 +8076,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(struct __pyx static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11DOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11DOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_firstperiod, int __pyx_v_secondperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11DOSC_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_firstperiod, int __pyx_v_secondperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11DOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11DOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11DOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11DOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_10DPO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ @@ -7464,6 +8111,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_6update(struct __pyx_obj_ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10EMV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10EMV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_volume, int __pyx_v_timeperiod, double __pyx_v_volumedivisor); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMV_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_volume, int __pyx_v_timeperiod, double __pyx_v_volumedivisor); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_9ER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ @@ -7485,6 +8139,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_6update(struct __pyx_obj_ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13FISHER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13FISHER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13FISHER_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13FISHER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13FISHER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13FISHER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13FISHER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ @@ -7506,6 +8167,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(struct __pyx_ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_12FRAMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_9HA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ @@ -7562,6 +8230,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update(struct _ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10IBS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10IBS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10IBS_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10IBS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10IBS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10IBS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10IBS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_tenkanperiod, int __pyx_v_kijunperiod, int __pyx_v_senkoubperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_tenkanperiod, int __pyx_v_kijunperiod, int __pyx_v_senkoubperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_10IMI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ @@ -7590,6 +8272,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(struct __pyx_obj_ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10KST_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10KST_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_roc1period, int __pyx_v_roc2period, int __pyx_v_roc3period, int __pyx_v_roc4period, int __pyx_v_sma1period, int __pyx_v_sma2period, int __pyx_v_sma3period, int __pyx_v_sma4period, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KST_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_roc1period, int __pyx_v_roc2period, int __pyx_v_roc3period, int __pyx_v_roc4period, int __pyx_v_sma1period, int __pyx_v_sma2period, int __pyx_v_sma3period, int __pyx_v_sma4period, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KST_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KST_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KST_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KST_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_roc1period, int __pyx_v_roc2period, int __pyx_v_roc3period, int __pyx_v_roc4period, int __pyx_v_ma1period, int __pyx_v_ma2period, int __pyx_v_ma3period, int __pyx_v_ma4period, int __pyx_v_signalperiod, int __pyx_v_rocmatype, int __pyx_v_signalmatype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_roc1period, int __pyx_v_roc2period, int __pyx_v_roc3period, int __pyx_v_roc4period, int __pyx_v_ma1period, int __pyx_v_ma2period, int __pyx_v_ma3period, int __pyx_v_ma4period, int __pyx_v_signalperiod, int __pyx_v_rocmatype, int __pyx_v_signalmatype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10KVO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10KVO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KVO_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KVO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KVO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KVO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KVO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ @@ -7702,6 +8412,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_6update(struct __pyx static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11MCGD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11MCGD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MCGD_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MCGD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MCGD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MCGD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MCGD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low); /* proto */ @@ -7807,6 +8531,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_6update(struct __pyx_obj_ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile); /* proto */ @@ -7842,6 +8573,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_6update(struct __pyx_obj_ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10PSO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10PSO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_emaperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PSO_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_emaperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PSO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PSO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PSO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PSO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_10PVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume); /* proto */ @@ -7905,6 +8643,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_6update(struct __pyx_ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_annualization); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_annualization); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_10RSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ @@ -7919,6 +8664,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_6update(struct __pyx_obj_ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11RVIR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11RVIR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_stddevperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVIR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_stddevperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVIR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVIR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVIR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVIR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_11RVOL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ @@ -7940,6 +8692,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_6update(struct __pyx_o static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_9SI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_9SI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_limitmove); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9SI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_limitmove); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9SI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9SI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9SI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9SI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_10SIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ @@ -7975,6 +8734,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_6update(struct __pyx_obj static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_bbperiod, double __pyx_v_nbdev, int __pyx_v_kcperiod, double __pyx_v_factorwide, double __pyx_v_factornormal, double __pyx_v_factornarrow); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_bbperiod, double __pyx_v_nbdev, int __pyx_v_kcperiod, double __pyx_v_factorwide, double __pyx_v_factornormal, double __pyx_v_factornarrow); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10STC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10STC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_cycleperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10STC_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_cycleperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10STC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10STC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10STC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10STC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ @@ -8024,6 +8797,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __p static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_delta); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_delta); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_9T3_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */ @@ -8115,6 +8923,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_6update(struct __pyx_obj_ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_12VIDYA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_cmoperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_cmoperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ @@ -8143,6 +8958,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_6update(struct __pyx_obj_ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_channelperiod, int __pyx_v_averageperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_channelperiod, int __pyx_v_averageperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ @@ -8164,6 +8986,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_6update(struct __pyx_obj_ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_sensitivity, int __pyx_v_mintrendlength); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_sensitivity, int __pyx_v_mintrendlength); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self); /* proto */ static void __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self); /* proto */ static int __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ @@ -8171,8 +9000,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_6update(struct __pyx_ob static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_446__pyx_unpickle__TA_ReadLease(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_448__pyx_unpickle__TA_WriteLease(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_520__pyx_unpickle__TA_ReadLease(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_522__pyx_unpickle__TA_WriteLease(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib__TA_ReadLease(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -8503,6 +9332,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_ADXR_Stream(PyObject *o, PyObject *args #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_ADXR_Stream __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ALMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ALMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ALMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ALMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ALMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ALMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ALMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ALMA_Stream __pyx_pw_5talib_7_ta_lib_11ALMA_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AO_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -8619,6 +9477,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_AROONOSC_Stream(PyObject *o, PyObject * #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_AROONOSC_Stream __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ASI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ASI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ASI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ASI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ASI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ASI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ASI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ASI_Stream __pyx_pw_5talib_7_ta_lib_10ASI_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ASIN_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -8793,6 +9680,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_BBANDS_Stream(PyObject *o, PyObject *ar #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_BBANDS_Stream __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_BBW_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_BBW_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_BBW_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_BBW_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_BBW_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_BBW_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_BBW_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_BBW_Stream __pyx_pw_5talib_7_ta_lib_10BBW_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_BETA_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -10678,6 +11594,122 @@ static int __pyx_tp_init_5talib_7_ta_lib_CEIL_Stream(PyObject *o, PyObject *args #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_CEIL_Stream __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CG_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CG_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CG_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CG_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CG_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CG_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CG_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CG_Stream __pyx_pw_5talib_7_ta_lib_9CG_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CHOP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CHOP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CHOP_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CHOP_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CHOP_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CHOP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CHOP_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CHOP_Stream __pyx_pw_5talib_7_ta_lib_11CHOP_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CHOPTR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CHOPTR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CHOPTR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CHOPTR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CHOPTR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CHOPTR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CHOPTR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CHOPTR_Stream __pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CKSP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CKSP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CKSP_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CKSP_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CKSP_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CKSP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CKSP_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CKSP_Stream __pyx_pw_5talib_7_ta_lib_11CKSP_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CMF_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -10881,6 +11913,64 @@ static int __pyx_tp_init_5talib_7_ta_lib_COSH_Stream(PyObject *o, PyObject *args #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_COSH_Stream __pyx_pw_5talib_7_ta_lib_11COSH_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CRSI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CRSI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CRSI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CRSI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CRSI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CRSI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CRSI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CRSI_Stream __pyx_pw_5talib_7_ta_lib_11CRSI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CTI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CTI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CTI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CTI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CTI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CTI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CTI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CTI_Stream __pyx_pw_5talib_7_ta_lib_10CTI_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CUMSUM_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -11026,6 +12116,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_DONCHIAN_Stream(PyObject *o, PyObject * #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_DONCHIAN_Stream __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DOSC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_DOSC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_DOSC_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_DOSC_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_DOSC_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_DOSC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_DOSC_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_DOSC_Stream __pyx_pw_5talib_7_ta_lib_11DOSC_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DPO_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -11142,6 +12261,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_EMA_Stream(PyObject *o, PyObject *args, #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_EMA_Stream __pyx_pw_5talib_7_ta_lib_10EMA_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_EMV_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_EMV_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_EMV_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_EMV_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_EMV_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_EMV_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_EMV_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_EMV_Stream __pyx_pw_5talib_7_ta_lib_10EMV_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ER_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -11229,6 +12377,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_EXP_Stream(PyObject *o, PyObject *args, #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_EXP_Stream __pyx_pw_5talib_7_ta_lib_10EXP_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_FISHER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_FISHER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_FISHER_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_FISHER_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_FISHER_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_FISHER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_FISHER_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_FISHER_Stream __pyx_pw_5talib_7_ta_lib_13FISHER_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_FLOOR_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -11316,6 +12493,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_FRACTAL_Stream(PyObject *o, PyObject *a #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_FRACTAL_Stream __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_FRAMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_FRAMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_FRAMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_FRAMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_FRAMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_FRAMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_FRAMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_FRAMA_Stream __pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HA_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -11548,6 +12754,64 @@ static int __pyx_tp_init_5talib_7_ta_lib_HT_TRENDMODE_Stream(PyObject *o, PyObje #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_HT_TRENDMODE_Stream __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_IBS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_IBS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_IBS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_IBS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_IBS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_IBS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_IBS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_IBS_Stream __pyx_pw_5talib_7_ta_lib_10IBS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ICHIMOKU_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ICHIMOKU_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ICHIMOKU_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ICHIMOKU_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ICHIMOKU_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ICHIMOKU_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ICHIMOKU_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ICHIMOKU_Stream __pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_IMI_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -11664,6 +12928,122 @@ static int __pyx_tp_init_5talib_7_ta_lib_KDJ_Stream(PyObject *o, PyObject *args, #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_KDJ_Stream __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KST_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KST_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KST_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_KST_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_KST_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KST_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KST_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_KST_Stream __pyx_pw_5talib_7_ta_lib_10KST_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KSTEXT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KSTEXT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KSTEXT_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_KSTEXT_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_KSTEXT_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KSTEXT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KSTEXT_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_KSTEXT_Stream __pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KURTOSIS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KURTOSIS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KURTOSIS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_KURTOSIS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_KURTOSIS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KURTOSIS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KURTOSIS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_KURTOSIS_Stream __pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KVO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KVO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KVO_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_KVO_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_KVO_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KVO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KVO_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_KVO_Stream __pyx_pw_5talib_7_ta_lib_10KVO_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -12128,6 +13508,64 @@ static int __pyx_tp_init_5talib_7_ta_lib_MAXINDEX_Stream(PyObject *o, PyObject * #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_MAXINDEX_Stream __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MCGD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MCGD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MCGD_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MCGD_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MCGD_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MCGD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MCGD_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MCGD_Stream __pyx_pw_5talib_7_ta_lib_11MCGD_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MEDIAN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MEDIAN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MEDIAN_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MEDIAN_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MEDIAN_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MEDIAN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MEDIAN_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MEDIAN_Stream __pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MEDPRICE_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -12563,6 +14001,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_OBV_Stream(PyObject *o, PyObject *args, #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_OBV_Stream __pyx_pw_5talib_7_ta_lib_10OBV_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PERCENTB_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTB_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PERCENTB_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_PERCENTB_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTB_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PERCENTB_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PERCENTB_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_PERCENTB_Stream __pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PERCENTILE_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -12708,6 +14175,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_PPO_Stream(PyObject *o, PyObject *args, #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_PPO_Stream __pyx_pw_5talib_7_ta_lib_10PPO_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PSO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PSO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PSO_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_PSO_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_PSO_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PSO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PSO_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_PSO_Stream __pyx_pw_5talib_7_ta_lib_10PSO_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PVI_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -12969,6 +14465,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_ROCR100_Stream(PyObject *o, PyObject *a #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_ROCR100_Stream __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ROGERSSATCHELL_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROGERSSATCHELL_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ROGERSSATCHELL_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ROGERSSATCHELL_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ROGERSSATCHELL_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ROGERSSATCHELL_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ROGERSSATCHELL_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ROGERSSATCHELL_Stream __pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RSI_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -13027,6 +14552,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_RVI_Stream(PyObject *o, PyObject *args, #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_RVI_Stream __pyx_pw_5talib_7_ta_lib_10RVI_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RVIR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_RVIR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_RVIR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_RVIR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_RVIR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_RVIR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_RVIR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_RVIR_Stream __pyx_pw_5talib_7_ta_lib_11RVIR_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RVOL_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -13114,6 +14668,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_SAREXT_Stream(PyObject *o, PyObject *ar #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_SAREXT_Stream __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SI_Stream __pyx_pw_5talib_7_ta_lib_9SI_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SIN_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -13259,6 +14842,64 @@ static int __pyx_tp_init_5talib_7_ta_lib_SQRT_Stream(PyObject *o, PyObject *args #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_SQRT_Stream __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SQZMOM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SQZMOM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SQZMOM_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SQZMOM_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SQZMOM_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SQZMOM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SQZMOM_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SQZMOM_Stream __pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_STC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_STC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_STC_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_STC_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_STC_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_STC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_STC_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_STC_Stream __pyx_pw_5talib_7_ta_lib_10STC_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_STDDEV_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -13462,6 +15103,151 @@ static int __pyx_tp_init_5talib_7_ta_lib_SUPERTREND_Stream(PyObject *o, PyObject #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_SUPERTREND_Stream __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_2PHP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_2PHP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SWAK_2PHP_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SWAK_2PHP_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_2PHP_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_2PHP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SWAK_2PHP_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SWAK_2PHP_Stream __pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_BP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_BP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SWAK_BP_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SWAK_BP_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_BP_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_BP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SWAK_BP_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SWAK_BP_Stream __pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_BUTTER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_BUTTER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SWAK_BUTTER_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SWAK_BUTTER_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_BUTTER_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_BUTTER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SWAK_BUTTER_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SWAK_BUTTER_Stream __pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_GAUSS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_GAUSS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SWAK_GAUSS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SWAK_GAUSS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_GAUSS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_GAUSS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SWAK_GAUSS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SWAK_GAUSS_Stream __pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_HP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_HP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SWAK_HP_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SWAK_HP_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_HP_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_HP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SWAK_HP_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SWAK_HP_Stream __pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_T3_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -13839,6 +15625,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_VHF_Stream(PyObject *o, PyObject *args, #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_VHF_Stream __pyx_pw_5talib_7_ta_lib_10VHF_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VIDYA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_VIDYA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_VIDYA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_VIDYA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_VIDYA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_VIDYA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_VIDYA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_VIDYA_Stream __pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VORTEX_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -13955,6 +15770,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_WAD_Stream(PyObject *o, PyObject *args, #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_WAD_Stream __pyx_pw_5talib_7_ta_lib_10WAD_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_WAVETREND_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_WAVETREND_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_WAVETREND_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_WAVETREND_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_WAVETREND_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_WAVETREND_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_WAVETREND_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_WAVETREND_Stream __pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_WCLPRICE_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -14042,6 +15886,35 @@ static int __pyx_tp_init_5talib_7_ta_lib_WMA_Stream(PyObject *o, PyObject *args, #if !CYTHON_VECTORCALL_TPNEW #define __pyx_tp_init_5talib_7_ta_lib_WMA_Stream __pyx_pw_5talib_7_ta_lib_10WMA_Stream_3__init__ #endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ZIGZAG_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ZIGZAG_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ZIGZAG_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ZIGZAG_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ZIGZAG_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ZIGZAG_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ZIGZAG_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ZIGZAG_Stream __pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_3__init__ +#endif static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ZLEMA_Stream(PyObject *o, #if CYTHON_VECTORCALL_TPNEW PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames @@ -14122,16 +15995,19 @@ namespace { PyObject *__pyx_type_5talib_7_ta_lib_ADR_Stream; PyObject *__pyx_type_5talib_7_ta_lib_ADX_Stream; PyObject *__pyx_type_5talib_7_ta_lib_ADXR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ALMA_Stream; PyObject *__pyx_type_5talib_7_ta_lib_AO_Stream; PyObject *__pyx_type_5talib_7_ta_lib_APO_Stream; PyObject *__pyx_type_5talib_7_ta_lib_AROON_Stream; PyObject *__pyx_type_5talib_7_ta_lib_AROONOSC_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ASI_Stream; PyObject *__pyx_type_5talib_7_ta_lib_ASIN_Stream; PyObject *__pyx_type_5talib_7_ta_lib_ATAN_Stream; PyObject *__pyx_type_5talib_7_ta_lib_ATR_Stream; PyObject *__pyx_type_5talib_7_ta_lib_AVGDEV_Stream; PyObject *__pyx_type_5talib_7_ta_lib_AVGPRICE_Stream; PyObject *__pyx_type_5talib_7_ta_lib_BBANDS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_BBW_Stream; PyObject *__pyx_type_5talib_7_ta_lib_BETA_Stream; PyObject *__pyx_type_5talib_7_ta_lib_BOP_Stream; PyObject *__pyx_type_5talib_7_ta_lib_CCI_Stream; @@ -14197,6 +16073,10 @@ namespace { PyObject *__pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream; PyObject *__pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream; PyObject *__pyx_type_5talib_7_ta_lib_CEIL_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CG_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CHOP_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CHOPTR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CKSP_Stream; PyObject *__pyx_type_5talib_7_ta_lib_CMF_Stream; PyObject *__pyx_type_5talib_7_ta_lib_CMO_Stream; PyObject *__pyx_type_5talib_7_ta_lib_CMOU_Stream; @@ -14204,21 +16084,27 @@ namespace { PyObject *__pyx_type_5talib_7_ta_lib_CORREL_Stream; PyObject *__pyx_type_5talib_7_ta_lib_COS_Stream; PyObject *__pyx_type_5talib_7_ta_lib_COSH_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CRSI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CTI_Stream; PyObject *__pyx_type_5talib_7_ta_lib_CUMSUM_Stream; PyObject *__pyx_type_5talib_7_ta_lib_CVI_Stream; PyObject *__pyx_type_5talib_7_ta_lib_DEMA_Stream; PyObject *__pyx_type_5talib_7_ta_lib_DIV_Stream; PyObject *__pyx_type_5talib_7_ta_lib_DONCHIAN_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_DOSC_Stream; PyObject *__pyx_type_5talib_7_ta_lib_DPO_Stream; PyObject *__pyx_type_5talib_7_ta_lib_DX_Stream; PyObject *__pyx_type_5talib_7_ta_lib_EFI_Stream; PyObject *__pyx_type_5talib_7_ta_lib_EMA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_EMV_Stream; PyObject *__pyx_type_5talib_7_ta_lib_ER_Stream; PyObject *__pyx_type_5talib_7_ta_lib_ERI_Stream; PyObject *__pyx_type_5talib_7_ta_lib_EXP_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_FISHER_Stream; PyObject *__pyx_type_5talib_7_ta_lib_FLOOR_Stream; PyObject *__pyx_type_5talib_7_ta_lib_FOSC_Stream; PyObject *__pyx_type_5talib_7_ta_lib_FRACTAL_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_FRAMA_Stream; PyObject *__pyx_type_5talib_7_ta_lib_HA_Stream; PyObject *__pyx_type_5talib_7_ta_lib_HMA_Stream; PyObject *__pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream; @@ -14227,10 +16113,16 @@ namespace { PyObject *__pyx_type_5talib_7_ta_lib_HT_SINE_Stream; PyObject *__pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream; PyObject *__pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_IBS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ICHIMOKU_Stream; PyObject *__pyx_type_5talib_7_ta_lib_IMI_Stream; PyObject *__pyx_type_5talib_7_ta_lib_KAMA_Stream; PyObject *__pyx_type_5talib_7_ta_lib_KC_Stream; PyObject *__pyx_type_5talib_7_ta_lib_KDJ_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_KST_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_KSTEXT_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_KURTOSIS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_KVO_Stream; PyObject *__pyx_type_5talib_7_ta_lib_LINEARREG_Stream; PyObject *__pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream; PyObject *__pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream; @@ -14247,6 +16139,8 @@ namespace { PyObject *__pyx_type_5talib_7_ta_lib_MAVP_Stream; PyObject *__pyx_type_5talib_7_ta_lib_MAX_Stream; PyObject *__pyx_type_5talib_7_ta_lib_MAXINDEX_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MCGD_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MEDIAN_Stream; PyObject *__pyx_type_5talib_7_ta_lib_MEDPRICE_Stream; PyObject *__pyx_type_5talib_7_ta_lib_MFI_Stream; PyObject *__pyx_type_5talib_7_ta_lib_MIDPOINT_Stream; @@ -14262,11 +16156,13 @@ namespace { PyObject *__pyx_type_5talib_7_ta_lib_NATR_Stream; PyObject *__pyx_type_5talib_7_ta_lib_NVI_Stream; PyObject *__pyx_type_5talib_7_ta_lib_OBV_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_PERCENTB_Stream; PyObject *__pyx_type_5talib_7_ta_lib_PERCENTILE_Stream; PyObject *__pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream; PyObject *__pyx_type_5talib_7_ta_lib_PLUS_DI_Stream; PyObject *__pyx_type_5talib_7_ta_lib_PLUS_DM_Stream; PyObject *__pyx_type_5talib_7_ta_lib_PPO_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_PSO_Stream; PyObject *__pyx_type_5talib_7_ta_lib_PVI_Stream; PyObject *__pyx_type_5talib_7_ta_lib_PVO_Stream; PyObject *__pyx_type_5talib_7_ta_lib_PVT_Stream; @@ -14276,16 +16172,21 @@ namespace { PyObject *__pyx_type_5talib_7_ta_lib_ROCP_Stream; PyObject *__pyx_type_5talib_7_ta_lib_ROCR_Stream; PyObject *__pyx_type_5talib_7_ta_lib_ROCR100_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ROGERSSATCHELL_Stream; PyObject *__pyx_type_5talib_7_ta_lib_RSI_Stream; PyObject *__pyx_type_5talib_7_ta_lib_RVI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_RVIR_Stream; PyObject *__pyx_type_5talib_7_ta_lib_RVOL_Stream; PyObject *__pyx_type_5talib_7_ta_lib_SAR_Stream; PyObject *__pyx_type_5talib_7_ta_lib_SAREXT_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SI_Stream; PyObject *__pyx_type_5talib_7_ta_lib_SIN_Stream; PyObject *__pyx_type_5talib_7_ta_lib_SINH_Stream; PyObject *__pyx_type_5talib_7_ta_lib_SMA_Stream; PyObject *__pyx_type_5talib_7_ta_lib_SMI_Stream; PyObject *__pyx_type_5talib_7_ta_lib_SQRT_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SQZMOM_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_STC_Stream; PyObject *__pyx_type_5talib_7_ta_lib_STDDEV_Stream; PyObject *__pyx_type_5talib_7_ta_lib_STOCH_Stream; PyObject *__pyx_type_5talib_7_ta_lib_STOCHF_Stream; @@ -14293,6 +16194,11 @@ namespace { PyObject *__pyx_type_5talib_7_ta_lib_SUB_Stream; PyObject *__pyx_type_5talib_7_ta_lib_SUM_Stream; PyObject *__pyx_type_5talib_7_ta_lib_SUPERTREND_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SWAK_2PHP_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SWAK_BP_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SWAK_BUTTER_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SWAK_GAUSS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SWAK_HP_Stream; PyObject *__pyx_type_5talib_7_ta_lib_T3_Stream; PyObject *__pyx_type_5talib_7_ta_lib_TAN_Stream; PyObject *__pyx_type_5talib_7_ta_lib_TANH_Stream; @@ -14306,13 +16212,16 @@ namespace { PyObject *__pyx_type_5talib_7_ta_lib_ULTOSC_Stream; PyObject *__pyx_type_5talib_7_ta_lib_VAR_Stream; PyObject *__pyx_type_5talib_7_ta_lib_VHF_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_VIDYA_Stream; PyObject *__pyx_type_5talib_7_ta_lib_VORTEX_Stream; PyObject *__pyx_type_5talib_7_ta_lib_VWAP_Stream; PyObject *__pyx_type_5talib_7_ta_lib_VWMA_Stream; PyObject *__pyx_type_5talib_7_ta_lib_WAD_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_WAVETREND_Stream; PyObject *__pyx_type_5talib_7_ta_lib_WCLPRICE_Stream; PyObject *__pyx_type_5talib_7_ta_lib_WILLR_Stream; PyObject *__pyx_type_5talib_7_ta_lib_WMA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ZIGZAG_Stream; PyObject *__pyx_type_5talib_7_ta_lib_ZLEMA_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib__TA_ReadLease; PyTypeObject *__pyx_ptype_5talib_7_ta_lib__TA_WriteLease; @@ -14326,16 +16235,19 @@ namespace { PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ADR_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ADX_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ADXR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ALMA_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_AO_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_APO_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_AROON_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ASI_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ASIN_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ATAN_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ATR_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_BBW_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_BETA_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_BOP_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CCI_Stream; @@ -14401,6 +16313,10 @@ namespace { PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CEIL_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CG_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CHOP_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CKSP_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CMF_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CMO_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CMOU_Stream; @@ -14408,21 +16324,27 @@ namespace { PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CORREL_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_COS_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_COSH_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CRSI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CTI_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CVI_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_DEMA_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_DIV_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_DOSC_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_DPO_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_DX_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_EFI_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_EMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_EMV_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ER_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ERI_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_EXP_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_FISHER_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_FOSC_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HA_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HMA_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream; @@ -14431,10 +16353,16 @@ namespace { PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_IBS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_IMI_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_KAMA_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_KC_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_KDJ_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_KST_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_KVO_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream; @@ -14451,6 +16379,8 @@ namespace { PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MAVP_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MAX_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MCGD_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MFI_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream; @@ -14466,11 +16396,13 @@ namespace { PyTypeObject *__pyx_ptype_5talib_7_ta_lib_NATR_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_NVI_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_OBV_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PPO_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PSO_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PVI_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PVO_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PVT_Stream; @@ -14480,16 +16412,21 @@ namespace { PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ROCP_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ROCR_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_RSI_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_RVI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_RVIR_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_RVOL_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SAR_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SI_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SIN_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SINH_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SMA_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SMI_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SQRT_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_STC_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_STOCH_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream; @@ -14497,6 +16434,11 @@ namespace { PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SUB_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SUM_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_T3_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_TAN_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_TANH_Stream; @@ -14510,21 +16452,24 @@ namespace { PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_VAR_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_VHF_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_VWAP_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_VWMA_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_WAD_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_WILLR_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_WMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream; PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream; __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items; __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop; __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values; - PyObject *__pyx_tuple[37]; - PyObject *__pyx_codeobj_tab[463]; - PyObject *__pyx_string_tab[2882]; - PyObject *__pyx_number_tab[38]; + PyObject *__pyx_tuple[46]; + PyObject *__pyx_codeobj_tab[536]; + PyObject *__pyx_string_tab[3358]; + PyObject *__pyx_number_tab[43]; /* #### Code section: module_state_contents ### */ /* PyFrozenDict.module_state_decls */ #if CYTHON_COMPILING_IN_LIMITED_API @@ -14606,2893 +16551,3374 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_kp_u_ADXR_has_no_unstable_period_of_i __pyx_string_tab[30] #define __pyx_kp_u_Allocation_Error_TA_ALLOC_ERR __pyx_string_tab[31] #define __pyx_kp_u_An_output_is_display_shifted __pyx_string_tab[32] -#define __pyx_kp_u_Bad_Object_TA_BAD_OBJECT __pyx_string_tab[33] -#define __pyx_kp_u_Bad_Parameter_TA_BAD_PARAM __pyx_string_tab[34] -#define __pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut __pyx_string_tab[35] -#define __pyx_kp_u_Cannot_mix_polars_and_pandas __pyx_string_tab[36] -#define __pyx_kp_u_Confirmation_Pattern_200_this_ba __pyx_string_tab[37] -#define __pyx_kp_u_Dashed_Line __pyx_string_tab[38] -#define __pyx_kp_u_Dotted_Line __pyx_string_tab[39] -#define __pyx_kp_u_Double_Exponential_Moving_Averag __pyx_string_tab[40] -#define __pyx_kp_u_Exponential_Moving_Average __pyx_string_tab[41] -#define __pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F __pyx_string_tab[42] -#define __pyx_kp_u_Function_has_a_streaming_API __pyx_string_tab[43] -#define __pyx_kp_u_Function_has_an_unstable_period __pyx_string_tab[44] -#define __pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU __pyx_string_tab[45] -#define __pyx_kp_u_Hull_Moving_Average __pyx_string_tab[46] -#define __pyx_kp_u_Input_Not_All_Initialized_TA_INP __pyx_string_tab[47] -#define __pyx_kp_u_Input_must_be_positive __pyx_string_tab[48] -#define __pyx_kp_u_Inputs __pyx_string_tab[49] -#define __pyx_kp_u_Insufficient_History_TA_INSUFFIC __pyx_string_tab[50] -#define __pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR __pyx_string_tab[51] -#define __pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE __pyx_string_tab[52] -#define __pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS __pyx_string_tab[53] -#define __pyx_kp_u_Invalid_Parameter_Function_TA_IN __pyx_string_tab[54] -#define __pyx_kp_u_Invalid_Parameter_Holder_TA_INVA __pyx_string_tab[55] -#define __pyx_kp_u_Invalid_Parameter_Holder_Type_TA __pyx_string_tab[56] -#define __pyx_kp_u_Invalid_parameter_value_for __pyx_string_tab[57] -#define __pyx_kp_u_Kaufman_Adaptive_Moving_Average __pyx_string_tab[58] -#define __pyx_kp_u_Library_Not_Initialized_TA_LIB_N __pyx_string_tab[59] -#define __pyx_kp_u_MESA_Adaptive_Moving_Average __pyx_string_tab[60] -#define __pyx_kp_u_MFI_s_unstable_period_was_retire __pyx_string_tab[61] -#define __pyx_kp_u_No_Moving_Average_identity __pyx_string_tab[62] -#define __pyx_kp_u_None __pyx_string_tab[63] -#define __pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED __pyx_string_tab[64] -#define __pyx_kp_u_Not_enough_history_to_open_a_str __pyx_string_tab[65] -#define __pyx_kp_u_Not_enough_price_arguments_expec __pyx_string_tab[66] -#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[67] -#define __pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF __pyx_string_tab[68] -#define __pyx_kp_u_Out_of_Range_Start_Index_TA_OUT __pyx_string_tab[69] -#define __pyx_kp_u_Output_Not_All_Initialized_TA_OU __pyx_string_tab[70] -#define __pyx_kp_u_Output_can_be_NaN_or_infinite __pyx_string_tab[71] -#define __pyx_kp_u_Output_can_be_negative __pyx_string_tab[72] -#define __pyx_kp_u_Output_can_be_positive __pyx_string_tab[73] -#define __pyx_kp_u_Output_can_be_zero __pyx_string_tab[74] -#define __pyx_kp_u_Output_is_a_candlestick __pyx_string_tab[75] -#define __pyx_kp_u_Output_is_display_shifted __pyx_string_tab[76] -#define __pyx_kp_u_Output_is_optional_nullable __pyx_string_tab[77] -#define __pyx_kp_u_Output_is_over_volume __pyx_string_tab[78] -#define __pyx_kp_u_Output_is_path_dependent __pyx_string_tab[79] -#define __pyx_kp_u_Output_scale_same_as_input __pyx_string_tab[80] -#define __pyx_kp_u_Outputs __pyx_string_tab[81] -#define __pyx_kp_u_Parameters __pyx_string_tab[82] -#define __pyx_kp_u_Pattern_Bool __pyx_string_tab[83] -#define __pyx_kp_u_STOCHRSI_has_no_unstable_period __pyx_string_tab[84] -#define __pyx_kp_u_Simple_Moving_Average __pyx_string_tab[85] -#define __pyx_kp_u_TA_Lib_is_not_initialized_or_a_s __pyx_string_tab[86] -#define __pyx_kp_u_The_Function_s_Own_Default_Movin __pyx_string_tab[87] -#define __pyx_kp_u_Too_many_price_arguments_expecte __pyx_string_tab[88] -#define __pyx_kp_u_Triangular_Moving_Average __pyx_string_tab[89] -#define __pyx_kp_u_Triple_Exponential_Moving_Averag __pyx_string_tab[90] -#define __pyx_kp_u_Triple_Generalized_Double_Expone __pyx_string_tab[91] -#define __pyx_kp_u_Unknown_Error __pyx_string_tab[92] -#define __pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR __pyx_string_tab[93] -#define __pyx_kp_u_Uses_a_transcendental_math_funct __pyx_string_tab[94] -#define __pyx_kp_u_Values_represent_a_lower_limit __pyx_string_tab[95] -#define __pyx_kp_u_Values_represent_an_upper_limit __pyx_string_tab[96] -#define __pyx_kp_u_Weak_Pattern_80_a_weaker_form_of __pyx_string_tab[97] -#define __pyx_kp_u_Weighted_Moving_Average __pyx_string_tab[98] -#define __pyx_kp_u_Wilder_s_Smoothed_Moving_Average __pyx_string_tab[99] -#define __pyx_kp_u_Zero_Lag_Exponential_Moving_Aver __pyx_string_tab[100] -#define __pyx_kp_u__9 __pyx_string_tab[101] -#define __pyx_kp_u_input_arrays_2 __pyx_string_tab[102] -#define __pyx_kp_u__11 __pyx_string_tab[103] -#define __pyx_kp_u_add_note __pyx_string_tab[104] -#define __pyx_kp_u_begidx_nbelement __pyx_string_tab[105] -#define __pyx_kp_u_cannot_change_TA_Lib_settings_or __pyx_string_tab[106] -#define __pyx_kp_u_cannot_pickle_s_a_stream_handle __pyx_string_tab[107] -#define __pyx_kp_u_cannot_shut_down_TA_Lib_while_ca __pyx_string_tab[108] -#define __pyx_kp_u_disable __pyx_string_tab[109] -#define __pyx_kp_u_enable __pyx_string_tab[110] -#define __pyx_kp_u_gc __pyx_string_tab[111] -#define __pyx_kp_u_input_array_has_wrong_dimensions __pyx_string_tab[112] -#define __pyx_kp_u_input_array_lengths_are_differen __pyx_string_tab[113] -#define __pyx_kp_u_input_array_type_is_not_double __pyx_string_tab[114] -#define __pyx_kp_u_input_must_be_a_numpy_array_or_a __pyx_string_tab[115] -#define __pyx_kp_u_input_arrays_parameter_missing_r __pyx_string_tab[116] -#define __pyx_kp_u_integer_values_are_100_0_or_100 __pyx_string_tab[117] -#define __pyx_kp_u_isenabled __pyx_string_tab[118] -#define __pyx_kp_u_no_history_the_input_array_is_em __pyx_string_tab[119] -#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[120] -#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[121] -#define __pyx_kp_u_talib_collections __pyx_string_tab[122] -#define __pyx_kp_u_talib_numpy __pyx_string_tab[123] -#define __pyx_kp_u_talib_ordereddict __pyx_string_tab[124] -#define __pyx_kp_u_talib_pandas __pyx_string_tab[125] -#define __pyx_kp_u_talib_polars __pyx_string_tab[126] -#define __pyx_kp_u_talib_sys __pyx_string_tab[127] -#define __pyx_kp_u_talib_threading __pyx_string_tab[128] -#define __pyx_kp_u_talib_warnings __pyx_string_tab[129] -#define __pyx_kp_u_talib__abstract_pxi __pyx_string_tab[130] -#define __pyx_kp_u_talib__common_pxi __pyx_string_tab[131] -#define __pyx_kp_u_talib__func_pxi __pyx_string_tab[132] -#define __pyx_kp_u_talib__stream_pxi __pyx_string_tab[133] -#define __pyx_kp_u_too_many_input_arrays __pyx_string_tab[134] -#define __pyx_kp_u_unstable_period __pyx_string_tab[135] -#define __pyx_n_u_AC __pyx_string_tab[136] -#define __pyx_n_u_ACCBANDS __pyx_string_tab[137] -#define __pyx_n_u_ACCBANDS_Stream __pyx_string_tab[138] -#define __pyx_n_u_ACCBANDS_Stream_open_and_fill __pyx_string_tab[139] -#define __pyx_n_u_ACOS __pyx_string_tab[140] -#define __pyx_n_u_ACOS_Stream __pyx_string_tab[141] -#define __pyx_n_u_ACOS_Stream_open_and_fill __pyx_string_tab[142] -#define __pyx_n_u_AC_Stream __pyx_string_tab[143] -#define __pyx_n_u_AC_Stream_open_and_fill __pyx_string_tab[144] -#define __pyx_n_u_AD __pyx_string_tab[145] -#define __pyx_n_u_ADD __pyx_string_tab[146] -#define __pyx_n_u_ADD_Stream __pyx_string_tab[147] -#define __pyx_n_u_ADD_Stream_open_and_fill __pyx_string_tab[148] -#define __pyx_n_u_ADOSC __pyx_string_tab[149] -#define __pyx_n_u_ADOSC_Stream __pyx_string_tab[150] -#define __pyx_n_u_ADOSC_Stream_open_and_fill __pyx_string_tab[151] -#define __pyx_n_u_ADR __pyx_string_tab[152] -#define __pyx_n_u_ADR_Stream __pyx_string_tab[153] -#define __pyx_n_u_ADR_Stream_open_and_fill __pyx_string_tab[154] -#define __pyx_n_u_ADX __pyx_string_tab[155] -#define __pyx_n_u_ADXR __pyx_string_tab[156] -#define __pyx_n_u_ADXR_Stream __pyx_string_tab[157] -#define __pyx_n_u_ADXR_Stream_open_and_fill __pyx_string_tab[158] -#define __pyx_n_u_ADX_Stream __pyx_string_tab[159] -#define __pyx_n_u_ADX_Stream_open_and_fill __pyx_string_tab[160] -#define __pyx_n_u_AD_Stream __pyx_string_tab[161] -#define __pyx_n_u_AD_Stream_open_and_fill __pyx_string_tab[162] -#define __pyx_n_u_ALL __pyx_string_tab[163] -#define __pyx_n_u_AO __pyx_string_tab[164] -#define __pyx_n_u_AO_Stream __pyx_string_tab[165] -#define __pyx_n_u_AO_Stream_open_and_fill __pyx_string_tab[166] -#define __pyx_n_u_APO __pyx_string_tab[167] -#define __pyx_n_u_APO_Stream __pyx_string_tab[168] -#define __pyx_n_u_APO_Stream_open_and_fill __pyx_string_tab[169] -#define __pyx_n_u_AROON __pyx_string_tab[170] -#define __pyx_n_u_AROONOSC __pyx_string_tab[171] -#define __pyx_n_u_AROONOSC_Stream __pyx_string_tab[172] -#define __pyx_n_u_AROONOSC_Stream_open_and_fill __pyx_string_tab[173] -#define __pyx_n_u_AROON_Stream __pyx_string_tab[174] -#define __pyx_n_u_AROON_Stream_open_and_fill __pyx_string_tab[175] -#define __pyx_n_u_ASIN __pyx_string_tab[176] -#define __pyx_n_u_ASIN_Stream __pyx_string_tab[177] -#define __pyx_n_u_ASIN_Stream_open_and_fill __pyx_string_tab[178] -#define __pyx_n_u_ATAN __pyx_string_tab[179] -#define __pyx_n_u_ATAN_Stream __pyx_string_tab[180] -#define __pyx_n_u_ATAN_Stream_open_and_fill __pyx_string_tab[181] -#define __pyx_n_u_ATR __pyx_string_tab[182] -#define __pyx_n_u_ATR_Stream __pyx_string_tab[183] -#define __pyx_n_u_ATR_Stream_open_and_fill __pyx_string_tab[184] -#define __pyx_n_u_AVGDEV __pyx_string_tab[185] -#define __pyx_n_u_AVGDEV_Stream __pyx_string_tab[186] -#define __pyx_n_u_AVGDEV_Stream_open_and_fill __pyx_string_tab[187] -#define __pyx_n_u_AVGPRICE __pyx_string_tab[188] -#define __pyx_n_u_AVGPRICE_Stream __pyx_string_tab[189] -#define __pyx_n_u_AVGPRICE_Stream_open_and_fill __pyx_string_tab[190] -#define __pyx_n_u_AllCandleSettings __pyx_string_tab[191] -#define __pyx_n_u_BBANDS __pyx_string_tab[192] -#define __pyx_n_u_BBANDS_Stream __pyx_string_tab[193] -#define __pyx_n_u_BBANDS_Stream_open_and_fill __pyx_string_tab[194] -#define __pyx_n_u_BETA __pyx_string_tab[195] -#define __pyx_n_u_BETA_Stream __pyx_string_tab[196] -#define __pyx_n_u_BETA_Stream_open_and_fill __pyx_string_tab[197] -#define __pyx_n_u_BOP __pyx_string_tab[198] -#define __pyx_n_u_BOP_Stream __pyx_string_tab[199] -#define __pyx_n_u_BOP_Stream_open_and_fill __pyx_string_tab[200] -#define __pyx_n_u_BodyDoji __pyx_string_tab[201] -#define __pyx_n_u_BodyLong __pyx_string_tab[202] -#define __pyx_n_u_BodyShort __pyx_string_tab[203] -#define __pyx_n_u_BodyVeryLong __pyx_string_tab[204] -#define __pyx_n_u_CCI __pyx_string_tab[205] -#define __pyx_n_u_CCI_Stream __pyx_string_tab[206] -#define __pyx_n_u_CCI_Stream_open_and_fill __pyx_string_tab[207] -#define __pyx_n_u_CDL2CROWS __pyx_string_tab[208] -#define __pyx_n_u_CDL2CROWS_Stream __pyx_string_tab[209] -#define __pyx_n_u_CDL2CROWS_Stream_open_and_fill __pyx_string_tab[210] -#define __pyx_n_u_CDL3BLACKCROWS __pyx_string_tab[211] -#define __pyx_n_u_CDL3BLACKCROWS_Stream __pyx_string_tab[212] -#define __pyx_n_u_CDL3BLACKCROWS_Stream_open_and_f __pyx_string_tab[213] -#define __pyx_n_u_CDL3INSIDE __pyx_string_tab[214] -#define __pyx_n_u_CDL3INSIDE_Stream __pyx_string_tab[215] -#define __pyx_n_u_CDL3INSIDE_Stream_open_and_fill __pyx_string_tab[216] -#define __pyx_n_u_CDL3LINESTRIKE __pyx_string_tab[217] -#define __pyx_n_u_CDL3LINESTRIKE_Stream __pyx_string_tab[218] -#define __pyx_n_u_CDL3LINESTRIKE_Stream_open_and_f __pyx_string_tab[219] -#define __pyx_n_u_CDL3OUTSIDE __pyx_string_tab[220] -#define __pyx_n_u_CDL3OUTSIDE_Stream __pyx_string_tab[221] -#define __pyx_n_u_CDL3OUTSIDE_Stream_open_and_fill __pyx_string_tab[222] -#define __pyx_n_u_CDL3STARSINSOUTH __pyx_string_tab[223] -#define __pyx_n_u_CDL3STARSINSOUTH_Stream __pyx_string_tab[224] -#define __pyx_n_u_CDL3STARSINSOUTH_Stream_open_and __pyx_string_tab[225] -#define __pyx_n_u_CDL3WHITESOLDIERS __pyx_string_tab[226] -#define __pyx_n_u_CDL3WHITESOLDIERS_Stream __pyx_string_tab[227] -#define __pyx_n_u_CDL3WHITESOLDIERS_Stream_open_an __pyx_string_tab[228] -#define __pyx_n_u_CDLABANDONEDBABY __pyx_string_tab[229] -#define __pyx_n_u_CDLABANDONEDBABY_Stream __pyx_string_tab[230] -#define __pyx_n_u_CDLABANDONEDBABY_Stream_open_and __pyx_string_tab[231] -#define __pyx_n_u_CDLADVANCEBLOCK __pyx_string_tab[232] -#define __pyx_n_u_CDLADVANCEBLOCK_Stream __pyx_string_tab[233] -#define __pyx_n_u_CDLADVANCEBLOCK_Stream_open_and __pyx_string_tab[234] -#define __pyx_n_u_CDLBELTHOLD __pyx_string_tab[235] -#define __pyx_n_u_CDLBELTHOLD_Stream __pyx_string_tab[236] -#define __pyx_n_u_CDLBELTHOLD_Stream_open_and_fill __pyx_string_tab[237] -#define __pyx_n_u_CDLBREAKAWAY __pyx_string_tab[238] -#define __pyx_n_u_CDLBREAKAWAY_Stream __pyx_string_tab[239] -#define __pyx_n_u_CDLBREAKAWAY_Stream_open_and_fil __pyx_string_tab[240] -#define __pyx_n_u_CDLCLOSINGMARUBOZU __pyx_string_tab[241] -#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream __pyx_string_tab[242] -#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream_open_a __pyx_string_tab[243] -#define __pyx_n_u_CDLCONCEALBABYSWALL __pyx_string_tab[244] -#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream __pyx_string_tab[245] -#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream_open __pyx_string_tab[246] -#define __pyx_n_u_CDLCOUNTERATTACK __pyx_string_tab[247] -#define __pyx_n_u_CDLCOUNTERATTACK_Stream __pyx_string_tab[248] -#define __pyx_n_u_CDLCOUNTERATTACK_Stream_open_and __pyx_string_tab[249] -#define __pyx_n_u_CDLDARKCLOUDCOVER __pyx_string_tab[250] -#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream __pyx_string_tab[251] -#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream_open_an __pyx_string_tab[252] -#define __pyx_n_u_CDLDOJI __pyx_string_tab[253] -#define __pyx_n_u_CDLDOJISTAR __pyx_string_tab[254] -#define __pyx_n_u_CDLDOJISTAR_Stream __pyx_string_tab[255] -#define __pyx_n_u_CDLDOJISTAR_Stream_open_and_fill __pyx_string_tab[256] -#define __pyx_n_u_CDLDOJI_Stream __pyx_string_tab[257] -#define __pyx_n_u_CDLDOJI_Stream_open_and_fill __pyx_string_tab[258] -#define __pyx_n_u_CDLDRAGONFLYDOJI __pyx_string_tab[259] -#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream __pyx_string_tab[260] -#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream_open_and __pyx_string_tab[261] -#define __pyx_n_u_CDLENGULFING __pyx_string_tab[262] -#define __pyx_n_u_CDLENGULFING_Stream __pyx_string_tab[263] -#define __pyx_n_u_CDLENGULFING_Stream_open_and_fil __pyx_string_tab[264] -#define __pyx_n_u_CDLEVENINGDOJISTAR __pyx_string_tab[265] -#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream __pyx_string_tab[266] -#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream_open_a __pyx_string_tab[267] -#define __pyx_n_u_CDLEVENINGSTAR __pyx_string_tab[268] -#define __pyx_n_u_CDLEVENINGSTAR_Stream __pyx_string_tab[269] -#define __pyx_n_u_CDLEVENINGSTAR_Stream_open_and_f __pyx_string_tab[270] -#define __pyx_n_u_CDLGAPSIDESIDEWHITE __pyx_string_tab[271] -#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream __pyx_string_tab[272] -#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream_open __pyx_string_tab[273] -#define __pyx_n_u_CDLGRAVESTONEDOJI __pyx_string_tab[274] -#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream __pyx_string_tab[275] -#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream_open_an __pyx_string_tab[276] -#define __pyx_n_u_CDLHAMMER __pyx_string_tab[277] -#define __pyx_n_u_CDLHAMMER_Stream __pyx_string_tab[278] -#define __pyx_n_u_CDLHAMMER_Stream_open_and_fill __pyx_string_tab[279] -#define __pyx_n_u_CDLHANGINGMAN __pyx_string_tab[280] -#define __pyx_n_u_CDLHANGINGMAN_Stream __pyx_string_tab[281] -#define __pyx_n_u_CDLHANGINGMAN_Stream_open_and_fi __pyx_string_tab[282] -#define __pyx_n_u_CDLHARAMI __pyx_string_tab[283] -#define __pyx_n_u_CDLHARAMICROSS __pyx_string_tab[284] -#define __pyx_n_u_CDLHARAMICROSS_Stream __pyx_string_tab[285] -#define __pyx_n_u_CDLHARAMICROSS_Stream_open_and_f __pyx_string_tab[286] -#define __pyx_n_u_CDLHARAMI_Stream __pyx_string_tab[287] -#define __pyx_n_u_CDLHARAMI_Stream_open_and_fill __pyx_string_tab[288] -#define __pyx_n_u_CDLHIGHWAVE __pyx_string_tab[289] -#define __pyx_n_u_CDLHIGHWAVE_Stream __pyx_string_tab[290] -#define __pyx_n_u_CDLHIGHWAVE_Stream_open_and_fill __pyx_string_tab[291] -#define __pyx_n_u_CDLHIKKAKE __pyx_string_tab[292] -#define __pyx_n_u_CDLHIKKAKEMOD __pyx_string_tab[293] -#define __pyx_n_u_CDLHIKKAKEMOD_Stream __pyx_string_tab[294] -#define __pyx_n_u_CDLHIKKAKEMOD_Stream_open_and_fi __pyx_string_tab[295] -#define __pyx_n_u_CDLHIKKAKE_Stream __pyx_string_tab[296] -#define __pyx_n_u_CDLHIKKAKE_Stream_open_and_fill __pyx_string_tab[297] -#define __pyx_n_u_CDLHOMINGPIGEON __pyx_string_tab[298] -#define __pyx_n_u_CDLHOMINGPIGEON_Stream __pyx_string_tab[299] -#define __pyx_n_u_CDLHOMINGPIGEON_Stream_open_and __pyx_string_tab[300] -#define __pyx_n_u_CDLIDENTICAL3CROWS __pyx_string_tab[301] -#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream __pyx_string_tab[302] -#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream_open_a __pyx_string_tab[303] -#define __pyx_n_u_CDLINNECK __pyx_string_tab[304] -#define __pyx_n_u_CDLINNECK_Stream __pyx_string_tab[305] -#define __pyx_n_u_CDLINNECK_Stream_open_and_fill __pyx_string_tab[306] -#define __pyx_n_u_CDLINVERTEDHAMMER __pyx_string_tab[307] -#define __pyx_n_u_CDLINVERTEDHAMMER_Stream __pyx_string_tab[308] -#define __pyx_n_u_CDLINVERTEDHAMMER_Stream_open_an __pyx_string_tab[309] -#define __pyx_n_u_CDLKICKING __pyx_string_tab[310] -#define __pyx_n_u_CDLKICKINGBYLENGTH __pyx_string_tab[311] -#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream __pyx_string_tab[312] -#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream_open_a __pyx_string_tab[313] -#define __pyx_n_u_CDLKICKING_Stream __pyx_string_tab[314] -#define __pyx_n_u_CDLKICKING_Stream_open_and_fill __pyx_string_tab[315] -#define __pyx_n_u_CDLLADDERBOTTOM __pyx_string_tab[316] -#define __pyx_n_u_CDLLADDERBOTTOM_Stream __pyx_string_tab[317] -#define __pyx_n_u_CDLLADDERBOTTOM_Stream_open_and __pyx_string_tab[318] -#define __pyx_n_u_CDLLONGLEGGEDDOJI __pyx_string_tab[319] -#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream __pyx_string_tab[320] -#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream_open_an __pyx_string_tab[321] -#define __pyx_n_u_CDLLONGLINE __pyx_string_tab[322] -#define __pyx_n_u_CDLLONGLINE_Stream __pyx_string_tab[323] -#define __pyx_n_u_CDLLONGLINE_Stream_open_and_fill __pyx_string_tab[324] -#define __pyx_n_u_CDLMARUBOZU __pyx_string_tab[325] -#define __pyx_n_u_CDLMARUBOZU_Stream __pyx_string_tab[326] -#define __pyx_n_u_CDLMARUBOZU_Stream_open_and_fill __pyx_string_tab[327] -#define __pyx_n_u_CDLMATCHINGLOW __pyx_string_tab[328] -#define __pyx_n_u_CDLMATCHINGLOW_Stream __pyx_string_tab[329] -#define __pyx_n_u_CDLMATCHINGLOW_Stream_open_and_f __pyx_string_tab[330] -#define __pyx_n_u_CDLMATHOLD __pyx_string_tab[331] -#define __pyx_n_u_CDLMATHOLD_Stream __pyx_string_tab[332] -#define __pyx_n_u_CDLMATHOLD_Stream_open_and_fill __pyx_string_tab[333] -#define __pyx_n_u_CDLMORNINGDOJISTAR __pyx_string_tab[334] -#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream __pyx_string_tab[335] -#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream_open_a __pyx_string_tab[336] -#define __pyx_n_u_CDLMORNINGSTAR __pyx_string_tab[337] -#define __pyx_n_u_CDLMORNINGSTAR_Stream __pyx_string_tab[338] -#define __pyx_n_u_CDLMORNINGSTAR_Stream_open_and_f __pyx_string_tab[339] -#define __pyx_n_u_CDLONNECK __pyx_string_tab[340] -#define __pyx_n_u_CDLONNECK_Stream __pyx_string_tab[341] -#define __pyx_n_u_CDLONNECK_Stream_open_and_fill __pyx_string_tab[342] -#define __pyx_n_u_CDLPIERCING __pyx_string_tab[343] -#define __pyx_n_u_CDLPIERCING_Stream __pyx_string_tab[344] -#define __pyx_n_u_CDLPIERCING_Stream_open_and_fill __pyx_string_tab[345] -#define __pyx_n_u_CDLRICKSHAWMAN __pyx_string_tab[346] -#define __pyx_n_u_CDLRICKSHAWMAN_Stream __pyx_string_tab[347] -#define __pyx_n_u_CDLRICKSHAWMAN_Stream_open_and_f __pyx_string_tab[348] -#define __pyx_n_u_CDLRISEFALL3METHODS __pyx_string_tab[349] -#define __pyx_n_u_CDLRISEFALL3METHODS_Stream __pyx_string_tab[350] -#define __pyx_n_u_CDLRISEFALL3METHODS_Stream_open __pyx_string_tab[351] -#define __pyx_n_u_CDLSEPARATINGLINES __pyx_string_tab[352] -#define __pyx_n_u_CDLSEPARATINGLINES_Stream __pyx_string_tab[353] -#define __pyx_n_u_CDLSEPARATINGLINES_Stream_open_a __pyx_string_tab[354] -#define __pyx_n_u_CDLSHOOTINGSTAR __pyx_string_tab[355] -#define __pyx_n_u_CDLSHOOTINGSTAR_Stream __pyx_string_tab[356] -#define __pyx_n_u_CDLSHOOTINGSTAR_Stream_open_and __pyx_string_tab[357] -#define __pyx_n_u_CDLSHORTLINE __pyx_string_tab[358] -#define __pyx_n_u_CDLSHORTLINE_Stream __pyx_string_tab[359] -#define __pyx_n_u_CDLSHORTLINE_Stream_open_and_fil __pyx_string_tab[360] -#define __pyx_n_u_CDLSPINNINGTOP __pyx_string_tab[361] -#define __pyx_n_u_CDLSPINNINGTOP_Stream __pyx_string_tab[362] -#define __pyx_n_u_CDLSPINNINGTOP_Stream_open_and_f __pyx_string_tab[363] -#define __pyx_n_u_CDLSTALLEDPATTERN __pyx_string_tab[364] -#define __pyx_n_u_CDLSTALLEDPATTERN_Stream __pyx_string_tab[365] -#define __pyx_n_u_CDLSTALLEDPATTERN_Stream_open_an __pyx_string_tab[366] -#define __pyx_n_u_CDLSTICKSANDWICH __pyx_string_tab[367] -#define __pyx_n_u_CDLSTICKSANDWICH_Stream __pyx_string_tab[368] -#define __pyx_n_u_CDLSTICKSANDWICH_Stream_open_and __pyx_string_tab[369] -#define __pyx_n_u_CDLTAKURI __pyx_string_tab[370] -#define __pyx_n_u_CDLTAKURI_Stream __pyx_string_tab[371] -#define __pyx_n_u_CDLTAKURI_Stream_open_and_fill __pyx_string_tab[372] -#define __pyx_n_u_CDLTASUKIGAP __pyx_string_tab[373] -#define __pyx_n_u_CDLTASUKIGAP_Stream __pyx_string_tab[374] -#define __pyx_n_u_CDLTASUKIGAP_Stream_open_and_fil __pyx_string_tab[375] -#define __pyx_n_u_CDLTHRUSTING __pyx_string_tab[376] -#define __pyx_n_u_CDLTHRUSTING_Stream __pyx_string_tab[377] -#define __pyx_n_u_CDLTHRUSTING_Stream_open_and_fil __pyx_string_tab[378] -#define __pyx_n_u_CDLTRISTAR __pyx_string_tab[379] -#define __pyx_n_u_CDLTRISTAR_Stream __pyx_string_tab[380] -#define __pyx_n_u_CDLTRISTAR_Stream_open_and_fill __pyx_string_tab[381] -#define __pyx_n_u_CDLUNIQUE3RIVER __pyx_string_tab[382] -#define __pyx_n_u_CDLUNIQUE3RIVER_Stream __pyx_string_tab[383] -#define __pyx_n_u_CDLUNIQUE3RIVER_Stream_open_and __pyx_string_tab[384] -#define __pyx_n_u_CDLUPSIDEGAP2CROWS __pyx_string_tab[385] -#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream __pyx_string_tab[386] -#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream_open_a __pyx_string_tab[387] -#define __pyx_n_u_CDLXSIDEGAP3METHODS __pyx_string_tab[388] -#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream __pyx_string_tab[389] -#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream_open __pyx_string_tab[390] -#define __pyx_n_u_CEIL __pyx_string_tab[391] -#define __pyx_n_u_CEIL_Stream __pyx_string_tab[392] -#define __pyx_n_u_CEIL_Stream_open_and_fill __pyx_string_tab[393] -#define __pyx_n_u_CMF __pyx_string_tab[394] -#define __pyx_n_u_CMF_Stream __pyx_string_tab[395] -#define __pyx_n_u_CMF_Stream_open_and_fill __pyx_string_tab[396] -#define __pyx_n_u_CMO __pyx_string_tab[397] -#define __pyx_n_u_CMOU __pyx_string_tab[398] -#define __pyx_n_u_CMOU_Stream __pyx_string_tab[399] -#define __pyx_n_u_CMOU_Stream_open_and_fill __pyx_string_tab[400] -#define __pyx_n_u_CMO_Stream __pyx_string_tab[401] -#define __pyx_n_u_CMO_Stream_open_and_fill __pyx_string_tab[402] -#define __pyx_n_u_COPPOCK __pyx_string_tab[403] -#define __pyx_n_u_COPPOCK_Stream __pyx_string_tab[404] -#define __pyx_n_u_COPPOCK_Stream_open_and_fill __pyx_string_tab[405] -#define __pyx_n_u_CORREL __pyx_string_tab[406] -#define __pyx_n_u_CORREL_Stream __pyx_string_tab[407] -#define __pyx_n_u_CORREL_Stream_open_and_fill __pyx_string_tab[408] -#define __pyx_n_u_COS __pyx_string_tab[409] -#define __pyx_n_u_COSH __pyx_string_tab[410] -#define __pyx_n_u_COSH_Stream __pyx_string_tab[411] -#define __pyx_n_u_COSH_Stream_open_and_fill __pyx_string_tab[412] -#define __pyx_n_u_COS_Stream __pyx_string_tab[413] -#define __pyx_n_u_COS_Stream_open_and_fill __pyx_string_tab[414] -#define __pyx_n_u_CUMSUM __pyx_string_tab[415] -#define __pyx_n_u_CUMSUM_Stream __pyx_string_tab[416] -#define __pyx_n_u_CUMSUM_Stream_open_and_fill __pyx_string_tab[417] -#define __pyx_n_u_CVI __pyx_string_tab[418] -#define __pyx_n_u_CVI_Stream __pyx_string_tab[419] -#define __pyx_n_u_CVI_Stream_open_and_fill __pyx_string_tab[420] -#define __pyx_n_u_CandleSettingType __pyx_string_tab[421] -#define __pyx_n_u_DEFAULT __pyx_string_tab[422] -#define __pyx_n_u_DEMA __pyx_string_tab[423] -#define __pyx_n_u_DEMA_Stream __pyx_string_tab[424] -#define __pyx_n_u_DEMA_Stream_open_and_fill __pyx_string_tab[425] -#define __pyx_n_u_DISABLED __pyx_string_tab[426] -#define __pyx_n_u_DIV __pyx_string_tab[427] -#define __pyx_n_u_DIV_Stream __pyx_string_tab[428] -#define __pyx_n_u_DIV_Stream_open_and_fill __pyx_string_tab[429] -#define __pyx_n_u_DONCHIAN __pyx_string_tab[430] -#define __pyx_n_u_DONCHIAN_Stream __pyx_string_tab[431] -#define __pyx_n_u_DONCHIAN_Stream_open_and_fill __pyx_string_tab[432] -#define __pyx_n_u_DPO __pyx_string_tab[433] -#define __pyx_n_u_DPO_Stream __pyx_string_tab[434] -#define __pyx_n_u_DPO_Stream_open_and_fill __pyx_string_tab[435] -#define __pyx_n_u_DX __pyx_string_tab[436] -#define __pyx_n_u_DX_Stream __pyx_string_tab[437] -#define __pyx_n_u_DX_Stream_open_and_fill __pyx_string_tab[438] -#define __pyx_n_u_DataFrame __pyx_string_tab[439] -#define __pyx_n_u_Dot __pyx_string_tab[440] -#define __pyx_n_u_EFI __pyx_string_tab[441] -#define __pyx_n_u_EFI_Stream __pyx_string_tab[442] -#define __pyx_n_u_EFI_Stream_open_and_fill __pyx_string_tab[443] -#define __pyx_n_u_EMA __pyx_string_tab[444] -#define __pyx_n_u_EMA_Stream __pyx_string_tab[445] -#define __pyx_n_u_EMA_Stream_open_and_fill __pyx_string_tab[446] -#define __pyx_n_u_ER __pyx_string_tab[447] -#define __pyx_n_u_ERI __pyx_string_tab[448] -#define __pyx_n_u_ERI_Stream __pyx_string_tab[449] -#define __pyx_n_u_ERI_Stream_open_and_fill __pyx_string_tab[450] -#define __pyx_n_u_ER_Stream __pyx_string_tab[451] -#define __pyx_n_u_ER_Stream_open_and_fill __pyx_string_tab[452] -#define __pyx_n_u_EXP __pyx_string_tab[453] -#define __pyx_n_u_EXP_Stream __pyx_string_tab[454] -#define __pyx_n_u_EXP_Stream_open_and_fill __pyx_string_tab[455] -#define __pyx_n_u_Equal __pyx_string_tab[456] -#define __pyx_n_u_FLOOR __pyx_string_tab[457] -#define __pyx_n_u_FLOOR_Stream __pyx_string_tab[458] -#define __pyx_n_u_FLOOR_Stream_open_and_fill __pyx_string_tab[459] -#define __pyx_n_u_FOSC __pyx_string_tab[460] -#define __pyx_n_u_FOSC_Stream __pyx_string_tab[461] -#define __pyx_n_u_FOSC_Stream_open_and_fill __pyx_string_tab[462] -#define __pyx_n_u_FRACTAL __pyx_string_tab[463] -#define __pyx_n_u_FRACTAL_Stream __pyx_string_tab[464] -#define __pyx_n_u_FRACTAL_Stream_open_and_fill __pyx_string_tab[465] -#define __pyx_n_u_Far __pyx_string_tab[466] -#define __pyx_n_u_Function __pyx_string_tab[467] -#define __pyx_n_u_Function___call __pyx_string_tab[468] -#define __pyx_n_u_Function___call_function __pyx_string_tab[469] -#define __pyx_n_u_Function___check_opt_input_value __pyx_string_tab[470] -#define __pyx_n_u_Function___get_opt_input_value __pyx_string_tab[471] -#define __pyx_n_u_Function___init __pyx_string_tab[472] -#define __pyx_n_u_Function___input_price_series_na __pyx_string_tab[473] -#define __pyx_n_u_Function___local __pyx_string_tab[474] -#define __pyx_n_u_Function___repr __pyx_string_tab[475] -#define __pyx_n_u_Function___str __pyx_string_tab[476] -#define __pyx_n_u_Function___unicode __pyx_string_tab[477] -#define __pyx_n_u_Function_function_flags __pyx_string_tab[478] -#define __pyx_n_u_Function_get_input_arrays __pyx_string_tab[479] -#define __pyx_n_u_Function_get_input_names __pyx_string_tab[480] -#define __pyx_n_u_Function_get_parameters __pyx_string_tab[481] -#define __pyx_n_u_Function_info __pyx_string_tab[482] -#define __pyx_n_u_Function_lookback __pyx_string_tab[483] -#define __pyx_n_u_Function_output_flags __pyx_string_tab[484] -#define __pyx_n_u_Function_output_names __pyx_string_tab[485] -#define __pyx_n_u_Function_outputs __pyx_string_tab[486] -#define __pyx_n_u_Function_run __pyx_string_tab[487] -#define __pyx_n_u_Function_set_function_args __pyx_string_tab[488] -#define __pyx_n_u_Function_set_input_arrays __pyx_string_tab[489] -#define __pyx_n_u_Function_set_input_names __pyx_string_tab[490] -#define __pyx_n_u_Function_set_parameters __pyx_string_tab[491] -#define __pyx_n_u_HA __pyx_string_tab[492] -#define __pyx_n_u_HA_Stream __pyx_string_tab[493] -#define __pyx_n_u_HA_Stream_open_and_fill __pyx_string_tab[494] -#define __pyx_n_u_HMA __pyx_string_tab[495] -#define __pyx_n_u_HMA_Stream __pyx_string_tab[496] -#define __pyx_n_u_HMA_Stream_open_and_fill __pyx_string_tab[497] -#define __pyx_n_u_HT_DCPERIOD __pyx_string_tab[498] -#define __pyx_n_u_HT_DCPERIOD_Stream __pyx_string_tab[499] -#define __pyx_n_u_HT_DCPERIOD_Stream_open_and_fill __pyx_string_tab[500] -#define __pyx_n_u_HT_DCPHASE __pyx_string_tab[501] -#define __pyx_n_u_HT_DCPHASE_Stream __pyx_string_tab[502] -#define __pyx_n_u_HT_DCPHASE_Stream_open_and_fill __pyx_string_tab[503] -#define __pyx_n_u_HT_PHASOR __pyx_string_tab[504] -#define __pyx_n_u_HT_PHASOR_Stream __pyx_string_tab[505] -#define __pyx_n_u_HT_PHASOR_Stream_open_and_fill __pyx_string_tab[506] -#define __pyx_n_u_HT_SINE __pyx_string_tab[507] -#define __pyx_n_u_HT_SINE_Stream __pyx_string_tab[508] -#define __pyx_n_u_HT_SINE_Stream_open_and_fill __pyx_string_tab[509] -#define __pyx_n_u_HT_TRENDLINE __pyx_string_tab[510] -#define __pyx_n_u_HT_TRENDLINE_Stream __pyx_string_tab[511] -#define __pyx_n_u_HT_TRENDLINE_Stream_open_and_fil __pyx_string_tab[512] -#define __pyx_n_u_HT_TRENDMODE __pyx_string_tab[513] -#define __pyx_n_u_HT_TRENDMODE_Stream __pyx_string_tab[514] -#define __pyx_n_u_HT_TRENDMODE_Stream_open_and_fil __pyx_string_tab[515] -#define __pyx_n_u_HighLow __pyx_string_tab[516] -#define __pyx_n_u_Histogram __pyx_string_tab[517] -#define __pyx_n_u_IMI __pyx_string_tab[518] -#define __pyx_n_u_IMI_Stream __pyx_string_tab[519] -#define __pyx_n_u_IMI_Stream_open_and_fill __pyx_string_tab[520] -#define __pyx_n_u_InsufficientHistory __pyx_string_tab[521] -#define __pyx_n_u_KAMA __pyx_string_tab[522] -#define __pyx_n_u_KAMA_Stream __pyx_string_tab[523] -#define __pyx_n_u_KAMA_Stream_open_and_fill __pyx_string_tab[524] -#define __pyx_n_u_KC __pyx_string_tab[525] -#define __pyx_n_u_KC_Stream __pyx_string_tab[526] -#define __pyx_n_u_KC_Stream_open_and_fill __pyx_string_tab[527] -#define __pyx_n_u_KDJ __pyx_string_tab[528] -#define __pyx_n_u_KDJ_Stream __pyx_string_tab[529] -#define __pyx_n_u_KDJ_Stream_open_and_fill __pyx_string_tab[530] -#define __pyx_n_u_LINEARREG __pyx_string_tab[531] -#define __pyx_n_u_LINEARREG_ANGLE __pyx_string_tab[532] -#define __pyx_n_u_LINEARREG_ANGLE_Stream __pyx_string_tab[533] -#define __pyx_n_u_LINEARREG_ANGLE_Stream_open_and __pyx_string_tab[534] -#define __pyx_n_u_LINEARREG_INTERCEPT __pyx_string_tab[535] -#define __pyx_n_u_LINEARREG_INTERCEPT_Stream __pyx_string_tab[536] -#define __pyx_n_u_LINEARREG_INTERCEPT_Stream_open __pyx_string_tab[537] -#define __pyx_n_u_LINEARREG_SLOPE __pyx_string_tab[538] -#define __pyx_n_u_LINEARREG_SLOPE_Stream __pyx_string_tab[539] -#define __pyx_n_u_LINEARREG_SLOPE_Stream_open_and __pyx_string_tab[540] -#define __pyx_n_u_LINEARREG_Stream __pyx_string_tab[541] -#define __pyx_n_u_LINEARREG_Stream_open_and_fill __pyx_string_tab[542] -#define __pyx_n_u_LN __pyx_string_tab[543] -#define __pyx_n_u_LN_Stream __pyx_string_tab[544] -#define __pyx_n_u_LN_Stream_open_and_fill __pyx_string_tab[545] -#define __pyx_n_u_LOG10 __pyx_string_tab[546] -#define __pyx_n_u_LOG10_Stream __pyx_string_tab[547] -#define __pyx_n_u_LOG10_Stream_open_and_fill __pyx_string_tab[548] -#define __pyx_n_u_Line __pyx_string_tab[549] -#define __pyx_n_u_MA __pyx_string_tab[550] -#define __pyx_n_u_MACD __pyx_string_tab[551] -#define __pyx_n_u_MACDEXT __pyx_string_tab[552] -#define __pyx_n_u_MACDEXT_Stream __pyx_string_tab[553] -#define __pyx_n_u_MACDEXT_Stream_open_and_fill __pyx_string_tab[554] -#define __pyx_n_u_MACDFIX __pyx_string_tab[555] -#define __pyx_n_u_MACDFIX_Stream __pyx_string_tab[556] -#define __pyx_n_u_MACDFIX_Stream_open_and_fill __pyx_string_tab[557] -#define __pyx_n_u_MACD_Stream __pyx_string_tab[558] -#define __pyx_n_u_MACD_Stream_open_and_fill __pyx_string_tab[559] -#define __pyx_n_u_MAMA __pyx_string_tab[560] -#define __pyx_n_u_MAMA_Stream __pyx_string_tab[561] -#define __pyx_n_u_MAMA_Stream_open_and_fill __pyx_string_tab[562] -#define __pyx_n_u_MARKETFI __pyx_string_tab[563] -#define __pyx_n_u_MARKETFI_Stream __pyx_string_tab[564] -#define __pyx_n_u_MARKETFI_Stream_open_and_fill __pyx_string_tab[565] -#define __pyx_n_u_MASSI __pyx_string_tab[566] -#define __pyx_n_u_MASSI_Stream __pyx_string_tab[567] -#define __pyx_n_u_MASSI_Stream_open_and_fill __pyx_string_tab[568] -#define __pyx_n_u_MAVP __pyx_string_tab[569] -#define __pyx_n_u_MAVP_Stream __pyx_string_tab[570] -#define __pyx_n_u_MAVP_Stream_open_and_fill __pyx_string_tab[571] -#define __pyx_n_u_MAX __pyx_string_tab[572] -#define __pyx_n_u_MAXINDEX __pyx_string_tab[573] -#define __pyx_n_u_MAXINDEX_Stream __pyx_string_tab[574] -#define __pyx_n_u_MAXINDEX_Stream_open_and_fill __pyx_string_tab[575] -#define __pyx_n_u_MAX_Stream __pyx_string_tab[576] -#define __pyx_n_u_MAX_Stream_open_and_fill __pyx_string_tab[577] -#define __pyx_n_u_MA_Stream __pyx_string_tab[578] -#define __pyx_n_u_MA_Stream_open_and_fill __pyx_string_tab[579] -#define __pyx_n_u_MA_Type __pyx_string_tab[580] -#define __pyx_n_u_MA_Type___getitem __pyx_string_tab[581] -#define __pyx_n_u_MA_Type___init __pyx_string_tab[582] -#define __pyx_n_u_MEDPRICE __pyx_string_tab[583] -#define __pyx_n_u_MEDPRICE_Stream __pyx_string_tab[584] -#define __pyx_n_u_MEDPRICE_Stream_open_and_fill __pyx_string_tab[585] -#define __pyx_n_u_MFI __pyx_string_tab[586] -#define __pyx_n_u_MFI_Stream __pyx_string_tab[587] -#define __pyx_n_u_MFI_Stream_open_and_fill __pyx_string_tab[588] -#define __pyx_n_u_MIDPOINT __pyx_string_tab[589] -#define __pyx_n_u_MIDPOINT_Stream __pyx_string_tab[590] -#define __pyx_n_u_MIDPOINT_Stream_open_and_fill __pyx_string_tab[591] -#define __pyx_n_u_MIDPRICE __pyx_string_tab[592] -#define __pyx_n_u_MIDPRICE_Stream __pyx_string_tab[593] -#define __pyx_n_u_MIDPRICE_Stream_open_and_fill __pyx_string_tab[594] -#define __pyx_n_u_MIN __pyx_string_tab[595] -#define __pyx_n_u_MININDEX __pyx_string_tab[596] -#define __pyx_n_u_MININDEX_Stream __pyx_string_tab[597] -#define __pyx_n_u_MININDEX_Stream_open_and_fill __pyx_string_tab[598] -#define __pyx_n_u_MINMAX __pyx_string_tab[599] -#define __pyx_n_u_MINMAXINDEX __pyx_string_tab[600] -#define __pyx_n_u_MINMAXINDEX_Stream __pyx_string_tab[601] -#define __pyx_n_u_MINMAXINDEX_Stream_open_and_fill __pyx_string_tab[602] -#define __pyx_n_u_MINMAX_Stream __pyx_string_tab[603] -#define __pyx_n_u_MINMAX_Stream_open_and_fill __pyx_string_tab[604] -#define __pyx_n_u_MINUS_DI __pyx_string_tab[605] -#define __pyx_n_u_MINUS_DI_Stream __pyx_string_tab[606] -#define __pyx_n_u_MINUS_DI_Stream_open_and_fill __pyx_string_tab[607] -#define __pyx_n_u_MINUS_DM __pyx_string_tab[608] -#define __pyx_n_u_MINUS_DM_Stream __pyx_string_tab[609] -#define __pyx_n_u_MINUS_DM_Stream_open_and_fill __pyx_string_tab[610] -#define __pyx_n_u_MIN_Stream __pyx_string_tab[611] -#define __pyx_n_u_MIN_Stream_open_and_fill __pyx_string_tab[612] -#define __pyx_n_u_MOM __pyx_string_tab[613] -#define __pyx_n_u_MOM_Stream __pyx_string_tab[614] -#define __pyx_n_u_MOM_Stream_open_and_fill __pyx_string_tab[615] -#define __pyx_n_u_MULT __pyx_string_tab[616] -#define __pyx_n_u_MULT_Stream __pyx_string_tab[617] -#define __pyx_n_u_MULT_Stream_open_and_fill __pyx_string_tab[618] -#define __pyx_n_u_NATR __pyx_string_tab[619] -#define __pyx_n_u_NATR_Stream __pyx_string_tab[620] -#define __pyx_n_u_NATR_Stream_open_and_fill __pyx_string_tab[621] -#define __pyx_n_u_NONE __pyx_string_tab[622] -#define __pyx_n_u_NVI __pyx_string_tab[623] -#define __pyx_n_u_NVI_Stream __pyx_string_tab[624] -#define __pyx_n_u_NVI_Stream_open_and_fill __pyx_string_tab[625] -#define __pyx_n_u_Near __pyx_string_tab[626] -#define __pyx_n_u_OBV __pyx_string_tab[627] -#define __pyx_n_u_OBV_Stream __pyx_string_tab[628] -#define __pyx_n_u_OBV_Stream_open_and_fill __pyx_string_tab[629] -#define __pyx_n_u_OrderedDict __pyx_string_tab[630] -#define __pyx_n_u_OutRange __pyx_string_tab[631] -#define __pyx_n_u_PERCENTILE __pyx_string_tab[632] -#define __pyx_n_u_PERCENTILE_Stream __pyx_string_tab[633] -#define __pyx_n_u_PERCENTILE_Stream_open_and_fill __pyx_string_tab[634] -#define __pyx_n_u_PERCENTRANK __pyx_string_tab[635] -#define __pyx_n_u_PERCENTRANK_Stream __pyx_string_tab[636] -#define __pyx_n_u_PERCENTRANK_Stream_open_and_fill __pyx_string_tab[637] -#define __pyx_n_u_PLUS_DI __pyx_string_tab[638] -#define __pyx_n_u_PLUS_DI_Stream __pyx_string_tab[639] -#define __pyx_n_u_PLUS_DI_Stream_open_and_fill __pyx_string_tab[640] -#define __pyx_n_u_PLUS_DM __pyx_string_tab[641] -#define __pyx_n_u_PLUS_DM_Stream __pyx_string_tab[642] -#define __pyx_n_u_PLUS_DM_Stream_open_and_fill __pyx_string_tab[643] -#define __pyx_n_u_PPO __pyx_string_tab[644] -#define __pyx_n_u_PPO_Stream __pyx_string_tab[645] -#define __pyx_n_u_PPO_Stream_open_and_fill __pyx_string_tab[646] -#define __pyx_n_u_PVI __pyx_string_tab[647] -#define __pyx_n_u_PVI_Stream __pyx_string_tab[648] -#define __pyx_n_u_PVI_Stream_open_and_fill __pyx_string_tab[649] -#define __pyx_n_u_PVO __pyx_string_tab[650] -#define __pyx_n_u_PVO_Stream __pyx_string_tab[651] -#define __pyx_n_u_PVO_Stream_open_and_fill __pyx_string_tab[652] -#define __pyx_n_u_PVT __pyx_string_tab[653] -#define __pyx_n_u_PVT_Stream __pyx_string_tab[654] -#define __pyx_n_u_PVT_Stream_open_and_fill __pyx_string_tab[655] -#define __pyx_n_u_QSTICK __pyx_string_tab[656] -#define __pyx_n_u_QSTICK_Stream __pyx_string_tab[657] -#define __pyx_n_u_QSTICK_Stream_open_and_fill __pyx_string_tab[658] -#define __pyx_n_u_RMA __pyx_string_tab[659] -#define __pyx_n_u_RMA_Stream __pyx_string_tab[660] -#define __pyx_n_u_RMA_Stream_open_and_fill __pyx_string_tab[661] -#define __pyx_n_u_ROC __pyx_string_tab[662] -#define __pyx_n_u_ROCP __pyx_string_tab[663] -#define __pyx_n_u_ROCP_Stream __pyx_string_tab[664] -#define __pyx_n_u_ROCP_Stream_open_and_fill __pyx_string_tab[665] -#define __pyx_n_u_ROCR __pyx_string_tab[666] -#define __pyx_n_u_ROCR100 __pyx_string_tab[667] -#define __pyx_n_u_ROCR100_Stream __pyx_string_tab[668] -#define __pyx_n_u_ROCR100_Stream_open_and_fill __pyx_string_tab[669] -#define __pyx_n_u_ROCR_Stream __pyx_string_tab[670] -#define __pyx_n_u_ROCR_Stream_open_and_fill __pyx_string_tab[671] -#define __pyx_n_u_ROC_Stream __pyx_string_tab[672] -#define __pyx_n_u_ROC_Stream_open_and_fill __pyx_string_tab[673] -#define __pyx_n_u_RSI __pyx_string_tab[674] -#define __pyx_n_u_RSI_Stream __pyx_string_tab[675] -#define __pyx_n_u_RSI_Stream_open_and_fill __pyx_string_tab[676] -#define __pyx_n_u_RVI __pyx_string_tab[677] -#define __pyx_n_u_RVI_Stream __pyx_string_tab[678] -#define __pyx_n_u_RVI_Stream_open_and_fill __pyx_string_tab[679] -#define __pyx_n_u_RVOL __pyx_string_tab[680] -#define __pyx_n_u_RVOL_Stream __pyx_string_tab[681] -#define __pyx_n_u_RVOL_Stream_open_and_fill __pyx_string_tab[682] -#define __pyx_n_u_RangeType __pyx_string_tab[683] -#define __pyx_n_u_RealBody __pyx_string_tab[684] -#define __pyx_n_u_SAR __pyx_string_tab[685] -#define __pyx_n_u_SAREXT __pyx_string_tab[686] -#define __pyx_n_u_SAREXT_Stream __pyx_string_tab[687] -#define __pyx_n_u_SAREXT_Stream_open_and_fill __pyx_string_tab[688] -#define __pyx_n_u_SAR_Stream __pyx_string_tab[689] -#define __pyx_n_u_SAR_Stream_open_and_fill __pyx_string_tab[690] -#define __pyx_n_u_SIN __pyx_string_tab[691] -#define __pyx_n_u_SINH __pyx_string_tab[692] -#define __pyx_n_u_SINH_Stream __pyx_string_tab[693] -#define __pyx_n_u_SINH_Stream_open_and_fill __pyx_string_tab[694] -#define __pyx_n_u_SIN_Stream __pyx_string_tab[695] -#define __pyx_n_u_SIN_Stream_open_and_fill __pyx_string_tab[696] -#define __pyx_n_u_SMA __pyx_string_tab[697] -#define __pyx_n_u_SMA_Stream __pyx_string_tab[698] -#define __pyx_n_u_SMA_Stream_open_and_fill __pyx_string_tab[699] -#define __pyx_n_u_SMI __pyx_string_tab[700] -#define __pyx_n_u_SMI_Stream __pyx_string_tab[701] -#define __pyx_n_u_SMI_Stream_open_and_fill __pyx_string_tab[702] -#define __pyx_n_u_SQRT __pyx_string_tab[703] -#define __pyx_n_u_SQRT_Stream __pyx_string_tab[704] -#define __pyx_n_u_SQRT_Stream_open_and_fill __pyx_string_tab[705] -#define __pyx_n_u_STDDEV __pyx_string_tab[706] -#define __pyx_n_u_STDDEV_Stream __pyx_string_tab[707] -#define __pyx_n_u_STDDEV_Stream_open_and_fill __pyx_string_tab[708] -#define __pyx_n_u_STOCH __pyx_string_tab[709] -#define __pyx_n_u_STOCHF __pyx_string_tab[710] -#define __pyx_n_u_STOCHF_Stream __pyx_string_tab[711] -#define __pyx_n_u_STOCHF_Stream_open_and_fill __pyx_string_tab[712] -#define __pyx_n_u_STOCHRSI __pyx_string_tab[713] -#define __pyx_n_u_STOCHRSI_Stream __pyx_string_tab[714] -#define __pyx_n_u_STOCHRSI_Stream_open_and_fill __pyx_string_tab[715] -#define __pyx_n_u_STOCH_Stream __pyx_string_tab[716] -#define __pyx_n_u_STOCH_Stream_open_and_fill __pyx_string_tab[717] -#define __pyx_n_u_SUB __pyx_string_tab[718] -#define __pyx_n_u_SUB_Stream __pyx_string_tab[719] -#define __pyx_n_u_SUB_Stream_open_and_fill __pyx_string_tab[720] -#define __pyx_n_u_SUM __pyx_string_tab[721] -#define __pyx_n_u_SUM_Stream __pyx_string_tab[722] -#define __pyx_n_u_SUM_Stream_open_and_fill __pyx_string_tab[723] -#define __pyx_n_u_SUPERTREND __pyx_string_tab[724] -#define __pyx_n_u_SUPERTREND_Stream __pyx_string_tab[725] -#define __pyx_n_u_SUPERTREND_Stream_open_and_fill __pyx_string_tab[726] -#define __pyx_n_u_Series __pyx_string_tab[727] -#define __pyx_n_u_ShadowLong __pyx_string_tab[728] -#define __pyx_n_u_ShadowShort __pyx_string_tab[729] -#define __pyx_n_u_ShadowVeryLong __pyx_string_tab[730] -#define __pyx_n_u_ShadowVeryShort __pyx_string_tab[731] -#define __pyx_n_u_Shadows __pyx_string_tab[732] -#define __pyx_n_u_Stream __pyx_string_tab[733] -#define __pyx_n_u_Stream___copy __pyx_string_tab[734] -#define __pyx_n_u_Stream___deepcopy __pyx_string_tab[735] -#define __pyx_n_u_Stream___reduce __pyx_string_tab[736] -#define __pyx_n_u_T3 __pyx_string_tab[737] -#define __pyx_n_u_T3_Stream __pyx_string_tab[738] -#define __pyx_n_u_T3_Stream_open_and_fill __pyx_string_tab[739] -#define __pyx_n_u_TAN __pyx_string_tab[740] -#define __pyx_n_u_TANH __pyx_string_tab[741] -#define __pyx_n_u_TANH_Stream __pyx_string_tab[742] -#define __pyx_n_u_TANH_Stream_open_and_fill __pyx_string_tab[743] -#define __pyx_n_u_TAN_Stream __pyx_string_tab[744] -#define __pyx_n_u_TAN_Stream_open_and_fill __pyx_string_tab[745] -#define __pyx_n_u_TA_AC __pyx_string_tab[746] -#define __pyx_n_u_TA_ACCBANDS __pyx_string_tab[747] -#define __pyx_n_u_TA_ACCBANDS_Clone __pyx_string_tab[748] -#define __pyx_n_u_TA_ACCBANDS_Open __pyx_string_tab[749] -#define __pyx_n_u_TA_ACCBANDS_OpenAndFill __pyx_string_tab[750] -#define __pyx_n_u_TA_ACCBANDS_Peek __pyx_string_tab[751] -#define __pyx_n_u_TA_ACCBANDS_Update __pyx_string_tab[752] -#define __pyx_n_u_TA_ACCBANDS_Value __pyx_string_tab[753] -#define __pyx_n_u_TA_ACOS __pyx_string_tab[754] -#define __pyx_n_u_TA_ACOS_Clone __pyx_string_tab[755] -#define __pyx_n_u_TA_ACOS_Open __pyx_string_tab[756] -#define __pyx_n_u_TA_ACOS_OpenAndFill __pyx_string_tab[757] -#define __pyx_n_u_TA_ACOS_Peek __pyx_string_tab[758] -#define __pyx_n_u_TA_ACOS_Update __pyx_string_tab[759] -#define __pyx_n_u_TA_ACOS_Value __pyx_string_tab[760] -#define __pyx_n_u_TA_AC_Clone __pyx_string_tab[761] -#define __pyx_n_u_TA_AC_Open __pyx_string_tab[762] -#define __pyx_n_u_TA_AC_OpenAndFill __pyx_string_tab[763] -#define __pyx_n_u_TA_AC_Peek __pyx_string_tab[764] -#define __pyx_n_u_TA_AC_Update __pyx_string_tab[765] -#define __pyx_n_u_TA_AC_Value __pyx_string_tab[766] -#define __pyx_n_u_TA_AD __pyx_string_tab[767] -#define __pyx_n_u_TA_ADD __pyx_string_tab[768] -#define __pyx_n_u_TA_ADD_Clone __pyx_string_tab[769] -#define __pyx_n_u_TA_ADD_Open __pyx_string_tab[770] -#define __pyx_n_u_TA_ADD_OpenAndFill __pyx_string_tab[771] -#define __pyx_n_u_TA_ADD_Peek __pyx_string_tab[772] -#define __pyx_n_u_TA_ADD_Update __pyx_string_tab[773] -#define __pyx_n_u_TA_ADD_Value __pyx_string_tab[774] -#define __pyx_n_u_TA_ADOSC __pyx_string_tab[775] -#define __pyx_n_u_TA_ADOSC_Clone __pyx_string_tab[776] -#define __pyx_n_u_TA_ADOSC_Open __pyx_string_tab[777] -#define __pyx_n_u_TA_ADOSC_OpenAndFill __pyx_string_tab[778] -#define __pyx_n_u_TA_ADOSC_Peek __pyx_string_tab[779] -#define __pyx_n_u_TA_ADOSC_Update __pyx_string_tab[780] -#define __pyx_n_u_TA_ADOSC_Value __pyx_string_tab[781] -#define __pyx_n_u_TA_ADR __pyx_string_tab[782] -#define __pyx_n_u_TA_ADR_Clone __pyx_string_tab[783] -#define __pyx_n_u_TA_ADR_Open __pyx_string_tab[784] -#define __pyx_n_u_TA_ADR_OpenAndFill __pyx_string_tab[785] -#define __pyx_n_u_TA_ADR_Peek __pyx_string_tab[786] -#define __pyx_n_u_TA_ADR_Update __pyx_string_tab[787] -#define __pyx_n_u_TA_ADR_Value __pyx_string_tab[788] -#define __pyx_n_u_TA_ADX __pyx_string_tab[789] -#define __pyx_n_u_TA_ADXR __pyx_string_tab[790] -#define __pyx_n_u_TA_ADXR_Clone __pyx_string_tab[791] -#define __pyx_n_u_TA_ADXR_Open __pyx_string_tab[792] -#define __pyx_n_u_TA_ADXR_OpenAndFill __pyx_string_tab[793] -#define __pyx_n_u_TA_ADXR_Peek __pyx_string_tab[794] -#define __pyx_n_u_TA_ADXR_Update __pyx_string_tab[795] -#define __pyx_n_u_TA_ADXR_Value __pyx_string_tab[796] -#define __pyx_n_u_TA_ADX_Clone __pyx_string_tab[797] -#define __pyx_n_u_TA_ADX_Open __pyx_string_tab[798] -#define __pyx_n_u_TA_ADX_OpenAndFill __pyx_string_tab[799] -#define __pyx_n_u_TA_ADX_Peek __pyx_string_tab[800] -#define __pyx_n_u_TA_ADX_Update __pyx_string_tab[801] -#define __pyx_n_u_TA_ADX_Value __pyx_string_tab[802] -#define __pyx_n_u_TA_AD_Clone __pyx_string_tab[803] -#define __pyx_n_u_TA_AD_Open __pyx_string_tab[804] -#define __pyx_n_u_TA_AD_OpenAndFill __pyx_string_tab[805] -#define __pyx_n_u_TA_AD_Peek __pyx_string_tab[806] -#define __pyx_n_u_TA_AD_Update __pyx_string_tab[807] -#define __pyx_n_u_TA_AD_Value __pyx_string_tab[808] -#define __pyx_n_u_TA_AO __pyx_string_tab[809] -#define __pyx_n_u_TA_AO_Clone __pyx_string_tab[810] -#define __pyx_n_u_TA_AO_Open __pyx_string_tab[811] -#define __pyx_n_u_TA_AO_OpenAndFill __pyx_string_tab[812] -#define __pyx_n_u_TA_AO_Peek __pyx_string_tab[813] -#define __pyx_n_u_TA_AO_Update __pyx_string_tab[814] -#define __pyx_n_u_TA_AO_Value __pyx_string_tab[815] -#define __pyx_n_u_TA_APO __pyx_string_tab[816] -#define __pyx_n_u_TA_APO_Clone __pyx_string_tab[817] -#define __pyx_n_u_TA_APO_Open __pyx_string_tab[818] -#define __pyx_n_u_TA_APO_OpenAndFill __pyx_string_tab[819] -#define __pyx_n_u_TA_APO_Peek __pyx_string_tab[820] -#define __pyx_n_u_TA_APO_Update __pyx_string_tab[821] -#define __pyx_n_u_TA_APO_Value __pyx_string_tab[822] -#define __pyx_n_u_TA_AROON __pyx_string_tab[823] -#define __pyx_n_u_TA_AROONOSC __pyx_string_tab[824] -#define __pyx_n_u_TA_AROONOSC_Clone __pyx_string_tab[825] -#define __pyx_n_u_TA_AROONOSC_Open __pyx_string_tab[826] -#define __pyx_n_u_TA_AROONOSC_OpenAndFill __pyx_string_tab[827] -#define __pyx_n_u_TA_AROONOSC_Peek __pyx_string_tab[828] -#define __pyx_n_u_TA_AROONOSC_Update __pyx_string_tab[829] -#define __pyx_n_u_TA_AROONOSC_Value __pyx_string_tab[830] -#define __pyx_n_u_TA_AROON_Clone __pyx_string_tab[831] -#define __pyx_n_u_TA_AROON_Open __pyx_string_tab[832] -#define __pyx_n_u_TA_AROON_OpenAndFill __pyx_string_tab[833] -#define __pyx_n_u_TA_AROON_Peek __pyx_string_tab[834] -#define __pyx_n_u_TA_AROON_Update __pyx_string_tab[835] -#define __pyx_n_u_TA_AROON_Value __pyx_string_tab[836] -#define __pyx_n_u_TA_ASIN __pyx_string_tab[837] -#define __pyx_n_u_TA_ASIN_Clone __pyx_string_tab[838] -#define __pyx_n_u_TA_ASIN_Open __pyx_string_tab[839] -#define __pyx_n_u_TA_ASIN_OpenAndFill __pyx_string_tab[840] -#define __pyx_n_u_TA_ASIN_Peek __pyx_string_tab[841] -#define __pyx_n_u_TA_ASIN_Update __pyx_string_tab[842] -#define __pyx_n_u_TA_ASIN_Value __pyx_string_tab[843] -#define __pyx_n_u_TA_ATAN __pyx_string_tab[844] -#define __pyx_n_u_TA_ATAN_Clone __pyx_string_tab[845] -#define __pyx_n_u_TA_ATAN_Open __pyx_string_tab[846] -#define __pyx_n_u_TA_ATAN_OpenAndFill __pyx_string_tab[847] -#define __pyx_n_u_TA_ATAN_Peek __pyx_string_tab[848] -#define __pyx_n_u_TA_ATAN_Update __pyx_string_tab[849] -#define __pyx_n_u_TA_ATAN_Value __pyx_string_tab[850] -#define __pyx_n_u_TA_ATR __pyx_string_tab[851] -#define __pyx_n_u_TA_ATR_Clone __pyx_string_tab[852] -#define __pyx_n_u_TA_ATR_Open __pyx_string_tab[853] -#define __pyx_n_u_TA_ATR_OpenAndFill __pyx_string_tab[854] -#define __pyx_n_u_TA_ATR_Peek __pyx_string_tab[855] -#define __pyx_n_u_TA_ATR_Update __pyx_string_tab[856] -#define __pyx_n_u_TA_ATR_Value __pyx_string_tab[857] -#define __pyx_n_u_TA_AVGDEV __pyx_string_tab[858] -#define __pyx_n_u_TA_AVGDEV_Clone __pyx_string_tab[859] -#define __pyx_n_u_TA_AVGDEV_Open __pyx_string_tab[860] -#define __pyx_n_u_TA_AVGDEV_OpenAndFill __pyx_string_tab[861] -#define __pyx_n_u_TA_AVGDEV_Peek __pyx_string_tab[862] -#define __pyx_n_u_TA_AVGDEV_Update __pyx_string_tab[863] -#define __pyx_n_u_TA_AVGDEV_Value __pyx_string_tab[864] -#define __pyx_n_u_TA_AVGPRICE __pyx_string_tab[865] -#define __pyx_n_u_TA_AVGPRICE_Clone __pyx_string_tab[866] -#define __pyx_n_u_TA_AVGPRICE_Open __pyx_string_tab[867] -#define __pyx_n_u_TA_AVGPRICE_OpenAndFill __pyx_string_tab[868] -#define __pyx_n_u_TA_AVGPRICE_Peek __pyx_string_tab[869] -#define __pyx_n_u_TA_AVGPRICE_Update __pyx_string_tab[870] -#define __pyx_n_u_TA_AVGPRICE_Value __pyx_string_tab[871] -#define __pyx_n_u_TA_BBANDS __pyx_string_tab[872] -#define __pyx_n_u_TA_BBANDS_Clone __pyx_string_tab[873] -#define __pyx_n_u_TA_BBANDS_Open __pyx_string_tab[874] -#define __pyx_n_u_TA_BBANDS_OpenAndFill __pyx_string_tab[875] -#define __pyx_n_u_TA_BBANDS_Peek __pyx_string_tab[876] -#define __pyx_n_u_TA_BBANDS_Update __pyx_string_tab[877] -#define __pyx_n_u_TA_BBANDS_Value __pyx_string_tab[878] -#define __pyx_n_u_TA_BETA __pyx_string_tab[879] -#define __pyx_n_u_TA_BETA_Clone __pyx_string_tab[880] -#define __pyx_n_u_TA_BETA_Open __pyx_string_tab[881] -#define __pyx_n_u_TA_BETA_OpenAndFill __pyx_string_tab[882] -#define __pyx_n_u_TA_BETA_Peek __pyx_string_tab[883] -#define __pyx_n_u_TA_BETA_Update __pyx_string_tab[884] -#define __pyx_n_u_TA_BETA_Value __pyx_string_tab[885] -#define __pyx_n_u_TA_BOP __pyx_string_tab[886] -#define __pyx_n_u_TA_BOP_Clone __pyx_string_tab[887] -#define __pyx_n_u_TA_BOP_Open __pyx_string_tab[888] -#define __pyx_n_u_TA_BOP_OpenAndFill __pyx_string_tab[889] -#define __pyx_n_u_TA_BOP_Peek __pyx_string_tab[890] -#define __pyx_n_u_TA_BOP_Update __pyx_string_tab[891] -#define __pyx_n_u_TA_BOP_Value __pyx_string_tab[892] -#define __pyx_n_u_TA_CCI __pyx_string_tab[893] -#define __pyx_n_u_TA_CCI_Clone __pyx_string_tab[894] -#define __pyx_n_u_TA_CCI_Open __pyx_string_tab[895] -#define __pyx_n_u_TA_CCI_OpenAndFill __pyx_string_tab[896] -#define __pyx_n_u_TA_CCI_Peek __pyx_string_tab[897] -#define __pyx_n_u_TA_CCI_Update __pyx_string_tab[898] -#define __pyx_n_u_TA_CCI_Value __pyx_string_tab[899] -#define __pyx_n_u_TA_CDL2CROWS __pyx_string_tab[900] -#define __pyx_n_u_TA_CDL2CROWS_Clone __pyx_string_tab[901] -#define __pyx_n_u_TA_CDL2CROWS_Open __pyx_string_tab[902] -#define __pyx_n_u_TA_CDL2CROWS_OpenAndFill __pyx_string_tab[903] -#define __pyx_n_u_TA_CDL2CROWS_Peek __pyx_string_tab[904] -#define __pyx_n_u_TA_CDL2CROWS_Update __pyx_string_tab[905] -#define __pyx_n_u_TA_CDL2CROWS_Value __pyx_string_tab[906] -#define __pyx_n_u_TA_CDL3BLACKCROWS __pyx_string_tab[907] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Clone __pyx_string_tab[908] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Open __pyx_string_tab[909] -#define __pyx_n_u_TA_CDL3BLACKCROWS_OpenAndFill __pyx_string_tab[910] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Peek __pyx_string_tab[911] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Update __pyx_string_tab[912] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Value __pyx_string_tab[913] -#define __pyx_n_u_TA_CDL3INSIDE __pyx_string_tab[914] -#define __pyx_n_u_TA_CDL3INSIDE_Clone __pyx_string_tab[915] -#define __pyx_n_u_TA_CDL3INSIDE_Open __pyx_string_tab[916] -#define __pyx_n_u_TA_CDL3INSIDE_OpenAndFill __pyx_string_tab[917] -#define __pyx_n_u_TA_CDL3INSIDE_Peek __pyx_string_tab[918] -#define __pyx_n_u_TA_CDL3INSIDE_Update __pyx_string_tab[919] -#define __pyx_n_u_TA_CDL3INSIDE_Value __pyx_string_tab[920] -#define __pyx_n_u_TA_CDL3LINESTRIKE __pyx_string_tab[921] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Clone __pyx_string_tab[922] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Open __pyx_string_tab[923] -#define __pyx_n_u_TA_CDL3LINESTRIKE_OpenAndFill __pyx_string_tab[924] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Peek __pyx_string_tab[925] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Update __pyx_string_tab[926] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Value __pyx_string_tab[927] -#define __pyx_n_u_TA_CDL3OUTSIDE __pyx_string_tab[928] -#define __pyx_n_u_TA_CDL3OUTSIDE_Clone __pyx_string_tab[929] -#define __pyx_n_u_TA_CDL3OUTSIDE_Open __pyx_string_tab[930] -#define __pyx_n_u_TA_CDL3OUTSIDE_OpenAndFill __pyx_string_tab[931] -#define __pyx_n_u_TA_CDL3OUTSIDE_Peek __pyx_string_tab[932] -#define __pyx_n_u_TA_CDL3OUTSIDE_Update __pyx_string_tab[933] -#define __pyx_n_u_TA_CDL3OUTSIDE_Value __pyx_string_tab[934] -#define __pyx_n_u_TA_CDL3STARSINSOUTH __pyx_string_tab[935] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Clone __pyx_string_tab[936] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Open __pyx_string_tab[937] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_OpenAndFill __pyx_string_tab[938] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Peek __pyx_string_tab[939] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Update __pyx_string_tab[940] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Value __pyx_string_tab[941] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS __pyx_string_tab[942] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Clone __pyx_string_tab[943] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Open __pyx_string_tab[944] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_OpenAndFill __pyx_string_tab[945] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Peek __pyx_string_tab[946] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Update __pyx_string_tab[947] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Value __pyx_string_tab[948] -#define __pyx_n_u_TA_CDLABANDONEDBABY __pyx_string_tab[949] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Clone __pyx_string_tab[950] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Open __pyx_string_tab[951] -#define __pyx_n_u_TA_CDLABANDONEDBABY_OpenAndFill __pyx_string_tab[952] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Peek __pyx_string_tab[953] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Update __pyx_string_tab[954] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Value __pyx_string_tab[955] -#define __pyx_n_u_TA_CDLADVANCEBLOCK __pyx_string_tab[956] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Clone __pyx_string_tab[957] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Open __pyx_string_tab[958] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_OpenAndFill __pyx_string_tab[959] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Peek __pyx_string_tab[960] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Update __pyx_string_tab[961] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Value __pyx_string_tab[962] -#define __pyx_n_u_TA_CDLBELTHOLD __pyx_string_tab[963] -#define __pyx_n_u_TA_CDLBELTHOLD_Clone __pyx_string_tab[964] -#define __pyx_n_u_TA_CDLBELTHOLD_Open __pyx_string_tab[965] -#define __pyx_n_u_TA_CDLBELTHOLD_OpenAndFill __pyx_string_tab[966] -#define __pyx_n_u_TA_CDLBELTHOLD_Peek __pyx_string_tab[967] -#define __pyx_n_u_TA_CDLBELTHOLD_Update __pyx_string_tab[968] -#define __pyx_n_u_TA_CDLBELTHOLD_Value __pyx_string_tab[969] -#define __pyx_n_u_TA_CDLBREAKAWAY __pyx_string_tab[970] -#define __pyx_n_u_TA_CDLBREAKAWAY_Clone __pyx_string_tab[971] -#define __pyx_n_u_TA_CDLBREAKAWAY_Open __pyx_string_tab[972] -#define __pyx_n_u_TA_CDLBREAKAWAY_OpenAndFill __pyx_string_tab[973] -#define __pyx_n_u_TA_CDLBREAKAWAY_Peek __pyx_string_tab[974] -#define __pyx_n_u_TA_CDLBREAKAWAY_Update __pyx_string_tab[975] -#define __pyx_n_u_TA_CDLBREAKAWAY_Value __pyx_string_tab[976] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU __pyx_string_tab[977] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Clone __pyx_string_tab[978] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Open __pyx_string_tab[979] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_OpenAndFil __pyx_string_tab[980] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Peek __pyx_string_tab[981] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Update __pyx_string_tab[982] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Value __pyx_string_tab[983] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL __pyx_string_tab[984] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Clone __pyx_string_tab[985] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Open __pyx_string_tab[986] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_OpenAndFi __pyx_string_tab[987] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Peek __pyx_string_tab[988] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Update __pyx_string_tab[989] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Value __pyx_string_tab[990] -#define __pyx_n_u_TA_CDLCOUNTERATTACK __pyx_string_tab[991] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Clone __pyx_string_tab[992] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Open __pyx_string_tab[993] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_OpenAndFill __pyx_string_tab[994] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Peek __pyx_string_tab[995] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Update __pyx_string_tab[996] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Value __pyx_string_tab[997] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER __pyx_string_tab[998] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Clone __pyx_string_tab[999] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Open __pyx_string_tab[1000] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_OpenAndFill __pyx_string_tab[1001] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Peek __pyx_string_tab[1002] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Update __pyx_string_tab[1003] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Value __pyx_string_tab[1004] -#define __pyx_n_u_TA_CDLDOJI __pyx_string_tab[1005] -#define __pyx_n_u_TA_CDLDOJISTAR __pyx_string_tab[1006] -#define __pyx_n_u_TA_CDLDOJISTAR_Clone __pyx_string_tab[1007] -#define __pyx_n_u_TA_CDLDOJISTAR_Open __pyx_string_tab[1008] -#define __pyx_n_u_TA_CDLDOJISTAR_OpenAndFill __pyx_string_tab[1009] -#define __pyx_n_u_TA_CDLDOJISTAR_Peek __pyx_string_tab[1010] -#define __pyx_n_u_TA_CDLDOJISTAR_Update __pyx_string_tab[1011] -#define __pyx_n_u_TA_CDLDOJISTAR_Value __pyx_string_tab[1012] -#define __pyx_n_u_TA_CDLDOJI_Clone __pyx_string_tab[1013] -#define __pyx_n_u_TA_CDLDOJI_Open __pyx_string_tab[1014] -#define __pyx_n_u_TA_CDLDOJI_OpenAndFill __pyx_string_tab[1015] -#define __pyx_n_u_TA_CDLDOJI_Peek __pyx_string_tab[1016] -#define __pyx_n_u_TA_CDLDOJI_Update __pyx_string_tab[1017] -#define __pyx_n_u_TA_CDLDOJI_Value __pyx_string_tab[1018] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI __pyx_string_tab[1019] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Clone __pyx_string_tab[1020] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Open __pyx_string_tab[1021] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_OpenAndFill __pyx_string_tab[1022] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Peek __pyx_string_tab[1023] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Update __pyx_string_tab[1024] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Value __pyx_string_tab[1025] -#define __pyx_n_u_TA_CDLENGULFING __pyx_string_tab[1026] -#define __pyx_n_u_TA_CDLENGULFING_Clone __pyx_string_tab[1027] -#define __pyx_n_u_TA_CDLENGULFING_Open __pyx_string_tab[1028] -#define __pyx_n_u_TA_CDLENGULFING_OpenAndFill __pyx_string_tab[1029] -#define __pyx_n_u_TA_CDLENGULFING_Peek __pyx_string_tab[1030] -#define __pyx_n_u_TA_CDLENGULFING_Update __pyx_string_tab[1031] -#define __pyx_n_u_TA_CDLENGULFING_Value __pyx_string_tab[1032] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR __pyx_string_tab[1033] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Clone __pyx_string_tab[1034] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Open __pyx_string_tab[1035] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_OpenAndFil __pyx_string_tab[1036] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Peek __pyx_string_tab[1037] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Update __pyx_string_tab[1038] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Value __pyx_string_tab[1039] -#define __pyx_n_u_TA_CDLEVENINGSTAR __pyx_string_tab[1040] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Clone __pyx_string_tab[1041] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Open __pyx_string_tab[1042] -#define __pyx_n_u_TA_CDLEVENINGSTAR_OpenAndFill __pyx_string_tab[1043] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Peek __pyx_string_tab[1044] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Update __pyx_string_tab[1045] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Value __pyx_string_tab[1046] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE __pyx_string_tab[1047] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Clone __pyx_string_tab[1048] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Open __pyx_string_tab[1049] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_OpenAndFi __pyx_string_tab[1050] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Peek __pyx_string_tab[1051] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Update __pyx_string_tab[1052] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Value __pyx_string_tab[1053] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI __pyx_string_tab[1054] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Clone __pyx_string_tab[1055] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Open __pyx_string_tab[1056] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_OpenAndFill __pyx_string_tab[1057] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Peek __pyx_string_tab[1058] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Update __pyx_string_tab[1059] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Value __pyx_string_tab[1060] -#define __pyx_n_u_TA_CDLHAMMER __pyx_string_tab[1061] -#define __pyx_n_u_TA_CDLHAMMER_Clone __pyx_string_tab[1062] -#define __pyx_n_u_TA_CDLHAMMER_Open __pyx_string_tab[1063] -#define __pyx_n_u_TA_CDLHAMMER_OpenAndFill __pyx_string_tab[1064] -#define __pyx_n_u_TA_CDLHAMMER_Peek __pyx_string_tab[1065] -#define __pyx_n_u_TA_CDLHAMMER_Update __pyx_string_tab[1066] -#define __pyx_n_u_TA_CDLHAMMER_Value __pyx_string_tab[1067] -#define __pyx_n_u_TA_CDLHANGINGMAN __pyx_string_tab[1068] -#define __pyx_n_u_TA_CDLHANGINGMAN_Clone __pyx_string_tab[1069] -#define __pyx_n_u_TA_CDLHANGINGMAN_Open __pyx_string_tab[1070] -#define __pyx_n_u_TA_CDLHANGINGMAN_OpenAndFill __pyx_string_tab[1071] -#define __pyx_n_u_TA_CDLHANGINGMAN_Peek __pyx_string_tab[1072] -#define __pyx_n_u_TA_CDLHANGINGMAN_Update __pyx_string_tab[1073] -#define __pyx_n_u_TA_CDLHANGINGMAN_Value __pyx_string_tab[1074] -#define __pyx_n_u_TA_CDLHARAMI __pyx_string_tab[1075] -#define __pyx_n_u_TA_CDLHARAMICROSS __pyx_string_tab[1076] -#define __pyx_n_u_TA_CDLHARAMICROSS_Clone __pyx_string_tab[1077] -#define __pyx_n_u_TA_CDLHARAMICROSS_Open __pyx_string_tab[1078] -#define __pyx_n_u_TA_CDLHARAMICROSS_OpenAndFill __pyx_string_tab[1079] -#define __pyx_n_u_TA_CDLHARAMICROSS_Peek __pyx_string_tab[1080] -#define __pyx_n_u_TA_CDLHARAMICROSS_Update __pyx_string_tab[1081] -#define __pyx_n_u_TA_CDLHARAMICROSS_Value __pyx_string_tab[1082] -#define __pyx_n_u_TA_CDLHARAMI_Clone __pyx_string_tab[1083] -#define __pyx_n_u_TA_CDLHARAMI_Open __pyx_string_tab[1084] -#define __pyx_n_u_TA_CDLHARAMI_OpenAndFill __pyx_string_tab[1085] -#define __pyx_n_u_TA_CDLHARAMI_Peek __pyx_string_tab[1086] -#define __pyx_n_u_TA_CDLHARAMI_Update __pyx_string_tab[1087] -#define __pyx_n_u_TA_CDLHARAMI_Value __pyx_string_tab[1088] -#define __pyx_n_u_TA_CDLHIGHWAVE __pyx_string_tab[1089] -#define __pyx_n_u_TA_CDLHIGHWAVE_Clone __pyx_string_tab[1090] -#define __pyx_n_u_TA_CDLHIGHWAVE_Open __pyx_string_tab[1091] -#define __pyx_n_u_TA_CDLHIGHWAVE_OpenAndFill __pyx_string_tab[1092] -#define __pyx_n_u_TA_CDLHIGHWAVE_Peek __pyx_string_tab[1093] -#define __pyx_n_u_TA_CDLHIGHWAVE_Update __pyx_string_tab[1094] -#define __pyx_n_u_TA_CDLHIGHWAVE_Value __pyx_string_tab[1095] -#define __pyx_n_u_TA_CDLHIKKAKE __pyx_string_tab[1096] -#define __pyx_n_u_TA_CDLHIKKAKEMOD __pyx_string_tab[1097] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Clone __pyx_string_tab[1098] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Open __pyx_string_tab[1099] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_OpenAndFill __pyx_string_tab[1100] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Peek __pyx_string_tab[1101] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Update __pyx_string_tab[1102] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Value __pyx_string_tab[1103] -#define __pyx_n_u_TA_CDLHIKKAKE_Clone __pyx_string_tab[1104] -#define __pyx_n_u_TA_CDLHIKKAKE_Open __pyx_string_tab[1105] -#define __pyx_n_u_TA_CDLHIKKAKE_OpenAndFill __pyx_string_tab[1106] -#define __pyx_n_u_TA_CDLHIKKAKE_Peek __pyx_string_tab[1107] -#define __pyx_n_u_TA_CDLHIKKAKE_Update __pyx_string_tab[1108] -#define __pyx_n_u_TA_CDLHIKKAKE_Value __pyx_string_tab[1109] -#define __pyx_n_u_TA_CDLHOMINGPIGEON __pyx_string_tab[1110] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Clone __pyx_string_tab[1111] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Open __pyx_string_tab[1112] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_OpenAndFill __pyx_string_tab[1113] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Peek __pyx_string_tab[1114] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Update __pyx_string_tab[1115] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Value __pyx_string_tab[1116] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS __pyx_string_tab[1117] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Clone __pyx_string_tab[1118] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Open __pyx_string_tab[1119] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_OpenAndFil __pyx_string_tab[1120] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Peek __pyx_string_tab[1121] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Update __pyx_string_tab[1122] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Value __pyx_string_tab[1123] -#define __pyx_n_u_TA_CDLINNECK __pyx_string_tab[1124] -#define __pyx_n_u_TA_CDLINNECK_Clone __pyx_string_tab[1125] -#define __pyx_n_u_TA_CDLINNECK_Open __pyx_string_tab[1126] -#define __pyx_n_u_TA_CDLINNECK_OpenAndFill __pyx_string_tab[1127] -#define __pyx_n_u_TA_CDLINNECK_Peek __pyx_string_tab[1128] -#define __pyx_n_u_TA_CDLINNECK_Update __pyx_string_tab[1129] -#define __pyx_n_u_TA_CDLINNECK_Value __pyx_string_tab[1130] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER __pyx_string_tab[1131] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Clone __pyx_string_tab[1132] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Open __pyx_string_tab[1133] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_OpenAndFill __pyx_string_tab[1134] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Peek __pyx_string_tab[1135] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Update __pyx_string_tab[1136] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Value __pyx_string_tab[1137] -#define __pyx_n_u_TA_CDLKICKING __pyx_string_tab[1138] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH __pyx_string_tab[1139] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Clone __pyx_string_tab[1140] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Open __pyx_string_tab[1141] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_OpenAndFil __pyx_string_tab[1142] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Peek __pyx_string_tab[1143] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Update __pyx_string_tab[1144] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Value __pyx_string_tab[1145] -#define __pyx_n_u_TA_CDLKICKING_Clone __pyx_string_tab[1146] -#define __pyx_n_u_TA_CDLKICKING_Open __pyx_string_tab[1147] -#define __pyx_n_u_TA_CDLKICKING_OpenAndFill __pyx_string_tab[1148] -#define __pyx_n_u_TA_CDLKICKING_Peek __pyx_string_tab[1149] -#define __pyx_n_u_TA_CDLKICKING_Update __pyx_string_tab[1150] -#define __pyx_n_u_TA_CDLKICKING_Value __pyx_string_tab[1151] -#define __pyx_n_u_TA_CDLLADDERBOTTOM __pyx_string_tab[1152] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Clone __pyx_string_tab[1153] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Open __pyx_string_tab[1154] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_OpenAndFill __pyx_string_tab[1155] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Peek __pyx_string_tab[1156] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Update __pyx_string_tab[1157] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Value __pyx_string_tab[1158] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI __pyx_string_tab[1159] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Clone __pyx_string_tab[1160] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Open __pyx_string_tab[1161] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_OpenAndFill __pyx_string_tab[1162] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Peek __pyx_string_tab[1163] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Update __pyx_string_tab[1164] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Value __pyx_string_tab[1165] -#define __pyx_n_u_TA_CDLLONGLINE __pyx_string_tab[1166] -#define __pyx_n_u_TA_CDLLONGLINE_Clone __pyx_string_tab[1167] -#define __pyx_n_u_TA_CDLLONGLINE_Open __pyx_string_tab[1168] -#define __pyx_n_u_TA_CDLLONGLINE_OpenAndFill __pyx_string_tab[1169] -#define __pyx_n_u_TA_CDLLONGLINE_Peek __pyx_string_tab[1170] -#define __pyx_n_u_TA_CDLLONGLINE_Update __pyx_string_tab[1171] -#define __pyx_n_u_TA_CDLLONGLINE_Value __pyx_string_tab[1172] -#define __pyx_n_u_TA_CDLMARUBOZU __pyx_string_tab[1173] -#define __pyx_n_u_TA_CDLMARUBOZU_Clone __pyx_string_tab[1174] -#define __pyx_n_u_TA_CDLMARUBOZU_Open __pyx_string_tab[1175] -#define __pyx_n_u_TA_CDLMARUBOZU_OpenAndFill __pyx_string_tab[1176] -#define __pyx_n_u_TA_CDLMARUBOZU_Peek __pyx_string_tab[1177] -#define __pyx_n_u_TA_CDLMARUBOZU_Update __pyx_string_tab[1178] -#define __pyx_n_u_TA_CDLMARUBOZU_Value __pyx_string_tab[1179] -#define __pyx_n_u_TA_CDLMATCHINGLOW __pyx_string_tab[1180] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Clone __pyx_string_tab[1181] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Open __pyx_string_tab[1182] -#define __pyx_n_u_TA_CDLMATCHINGLOW_OpenAndFill __pyx_string_tab[1183] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Peek __pyx_string_tab[1184] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Update __pyx_string_tab[1185] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Value __pyx_string_tab[1186] -#define __pyx_n_u_TA_CDLMATHOLD __pyx_string_tab[1187] -#define __pyx_n_u_TA_CDLMATHOLD_Clone __pyx_string_tab[1188] -#define __pyx_n_u_TA_CDLMATHOLD_Open __pyx_string_tab[1189] -#define __pyx_n_u_TA_CDLMATHOLD_OpenAndFill __pyx_string_tab[1190] -#define __pyx_n_u_TA_CDLMATHOLD_Peek __pyx_string_tab[1191] -#define __pyx_n_u_TA_CDLMATHOLD_Update __pyx_string_tab[1192] -#define __pyx_n_u_TA_CDLMATHOLD_Value __pyx_string_tab[1193] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR __pyx_string_tab[1194] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Clone __pyx_string_tab[1195] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Open __pyx_string_tab[1196] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_OpenAndFil __pyx_string_tab[1197] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Peek __pyx_string_tab[1198] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Update __pyx_string_tab[1199] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Value __pyx_string_tab[1200] -#define __pyx_n_u_TA_CDLMORNINGSTAR __pyx_string_tab[1201] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Clone __pyx_string_tab[1202] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Open __pyx_string_tab[1203] -#define __pyx_n_u_TA_CDLMORNINGSTAR_OpenAndFill __pyx_string_tab[1204] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Peek __pyx_string_tab[1205] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Update __pyx_string_tab[1206] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Value __pyx_string_tab[1207] -#define __pyx_n_u_TA_CDLONNECK __pyx_string_tab[1208] -#define __pyx_n_u_TA_CDLONNECK_Clone __pyx_string_tab[1209] -#define __pyx_n_u_TA_CDLONNECK_Open __pyx_string_tab[1210] -#define __pyx_n_u_TA_CDLONNECK_OpenAndFill __pyx_string_tab[1211] -#define __pyx_n_u_TA_CDLONNECK_Peek __pyx_string_tab[1212] -#define __pyx_n_u_TA_CDLONNECK_Update __pyx_string_tab[1213] -#define __pyx_n_u_TA_CDLONNECK_Value __pyx_string_tab[1214] -#define __pyx_n_u_TA_CDLPIERCING __pyx_string_tab[1215] -#define __pyx_n_u_TA_CDLPIERCING_Clone __pyx_string_tab[1216] -#define __pyx_n_u_TA_CDLPIERCING_Open __pyx_string_tab[1217] -#define __pyx_n_u_TA_CDLPIERCING_OpenAndFill __pyx_string_tab[1218] -#define __pyx_n_u_TA_CDLPIERCING_Peek __pyx_string_tab[1219] -#define __pyx_n_u_TA_CDLPIERCING_Update __pyx_string_tab[1220] -#define __pyx_n_u_TA_CDLPIERCING_Value __pyx_string_tab[1221] -#define __pyx_n_u_TA_CDLRICKSHAWMAN __pyx_string_tab[1222] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Clone __pyx_string_tab[1223] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Open __pyx_string_tab[1224] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_OpenAndFill __pyx_string_tab[1225] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Peek __pyx_string_tab[1226] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Update __pyx_string_tab[1227] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Value __pyx_string_tab[1228] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS __pyx_string_tab[1229] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Clone __pyx_string_tab[1230] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Open __pyx_string_tab[1231] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_OpenAndFi __pyx_string_tab[1232] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Peek __pyx_string_tab[1233] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Update __pyx_string_tab[1234] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Value __pyx_string_tab[1235] -#define __pyx_n_u_TA_CDLSEPARATINGLINES __pyx_string_tab[1236] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Clone __pyx_string_tab[1237] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Open __pyx_string_tab[1238] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_OpenAndFil __pyx_string_tab[1239] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Peek __pyx_string_tab[1240] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Update __pyx_string_tab[1241] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Value __pyx_string_tab[1242] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR __pyx_string_tab[1243] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Clone __pyx_string_tab[1244] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Open __pyx_string_tab[1245] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_OpenAndFill __pyx_string_tab[1246] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Peek __pyx_string_tab[1247] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Update __pyx_string_tab[1248] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Value __pyx_string_tab[1249] -#define __pyx_n_u_TA_CDLSHORTLINE __pyx_string_tab[1250] -#define __pyx_n_u_TA_CDLSHORTLINE_Clone __pyx_string_tab[1251] -#define __pyx_n_u_TA_CDLSHORTLINE_Open __pyx_string_tab[1252] -#define __pyx_n_u_TA_CDLSHORTLINE_OpenAndFill __pyx_string_tab[1253] -#define __pyx_n_u_TA_CDLSHORTLINE_Peek __pyx_string_tab[1254] -#define __pyx_n_u_TA_CDLSHORTLINE_Update __pyx_string_tab[1255] -#define __pyx_n_u_TA_CDLSHORTLINE_Value __pyx_string_tab[1256] -#define __pyx_n_u_TA_CDLSPINNINGTOP __pyx_string_tab[1257] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Clone __pyx_string_tab[1258] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Open __pyx_string_tab[1259] -#define __pyx_n_u_TA_CDLSPINNINGTOP_OpenAndFill __pyx_string_tab[1260] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Peek __pyx_string_tab[1261] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Update __pyx_string_tab[1262] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Value __pyx_string_tab[1263] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN __pyx_string_tab[1264] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Clone __pyx_string_tab[1265] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Open __pyx_string_tab[1266] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_OpenAndFill __pyx_string_tab[1267] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Peek __pyx_string_tab[1268] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Update __pyx_string_tab[1269] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Value __pyx_string_tab[1270] -#define __pyx_n_u_TA_CDLSTICKSANDWICH __pyx_string_tab[1271] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Clone __pyx_string_tab[1272] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Open __pyx_string_tab[1273] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_OpenAndFill __pyx_string_tab[1274] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Peek __pyx_string_tab[1275] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Update __pyx_string_tab[1276] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Value __pyx_string_tab[1277] -#define __pyx_n_u_TA_CDLTAKURI __pyx_string_tab[1278] -#define __pyx_n_u_TA_CDLTAKURI_Clone __pyx_string_tab[1279] -#define __pyx_n_u_TA_CDLTAKURI_Open __pyx_string_tab[1280] -#define __pyx_n_u_TA_CDLTAKURI_OpenAndFill __pyx_string_tab[1281] -#define __pyx_n_u_TA_CDLTAKURI_Peek __pyx_string_tab[1282] -#define __pyx_n_u_TA_CDLTAKURI_Update __pyx_string_tab[1283] -#define __pyx_n_u_TA_CDLTAKURI_Value __pyx_string_tab[1284] -#define __pyx_n_u_TA_CDLTASUKIGAP __pyx_string_tab[1285] -#define __pyx_n_u_TA_CDLTASUKIGAP_Clone __pyx_string_tab[1286] -#define __pyx_n_u_TA_CDLTASUKIGAP_Open __pyx_string_tab[1287] -#define __pyx_n_u_TA_CDLTASUKIGAP_OpenAndFill __pyx_string_tab[1288] -#define __pyx_n_u_TA_CDLTASUKIGAP_Peek __pyx_string_tab[1289] -#define __pyx_n_u_TA_CDLTASUKIGAP_Update __pyx_string_tab[1290] -#define __pyx_n_u_TA_CDLTASUKIGAP_Value __pyx_string_tab[1291] -#define __pyx_n_u_TA_CDLTHRUSTING __pyx_string_tab[1292] -#define __pyx_n_u_TA_CDLTHRUSTING_Clone __pyx_string_tab[1293] -#define __pyx_n_u_TA_CDLTHRUSTING_Open __pyx_string_tab[1294] -#define __pyx_n_u_TA_CDLTHRUSTING_OpenAndFill __pyx_string_tab[1295] -#define __pyx_n_u_TA_CDLTHRUSTING_Peek __pyx_string_tab[1296] -#define __pyx_n_u_TA_CDLTHRUSTING_Update __pyx_string_tab[1297] -#define __pyx_n_u_TA_CDLTHRUSTING_Value __pyx_string_tab[1298] -#define __pyx_n_u_TA_CDLTRISTAR __pyx_string_tab[1299] -#define __pyx_n_u_TA_CDLTRISTAR_Clone __pyx_string_tab[1300] -#define __pyx_n_u_TA_CDLTRISTAR_Open __pyx_string_tab[1301] -#define __pyx_n_u_TA_CDLTRISTAR_OpenAndFill __pyx_string_tab[1302] -#define __pyx_n_u_TA_CDLTRISTAR_Peek __pyx_string_tab[1303] -#define __pyx_n_u_TA_CDLTRISTAR_Update __pyx_string_tab[1304] -#define __pyx_n_u_TA_CDLTRISTAR_Value __pyx_string_tab[1305] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER __pyx_string_tab[1306] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Clone __pyx_string_tab[1307] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Open __pyx_string_tab[1308] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_OpenAndFill __pyx_string_tab[1309] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Peek __pyx_string_tab[1310] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Update __pyx_string_tab[1311] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Value __pyx_string_tab[1312] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS __pyx_string_tab[1313] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Clone __pyx_string_tab[1314] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Open __pyx_string_tab[1315] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_OpenAndFil __pyx_string_tab[1316] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Peek __pyx_string_tab[1317] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Update __pyx_string_tab[1318] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Value __pyx_string_tab[1319] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS __pyx_string_tab[1320] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Clone __pyx_string_tab[1321] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Open __pyx_string_tab[1322] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_OpenAndFi __pyx_string_tab[1323] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Peek __pyx_string_tab[1324] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Update __pyx_string_tab[1325] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Value __pyx_string_tab[1326] -#define __pyx_n_u_TA_CEIL __pyx_string_tab[1327] -#define __pyx_n_u_TA_CEIL_Clone __pyx_string_tab[1328] -#define __pyx_n_u_TA_CEIL_Open __pyx_string_tab[1329] -#define __pyx_n_u_TA_CEIL_OpenAndFill __pyx_string_tab[1330] -#define __pyx_n_u_TA_CEIL_Peek __pyx_string_tab[1331] -#define __pyx_n_u_TA_CEIL_Update __pyx_string_tab[1332] -#define __pyx_n_u_TA_CEIL_Value __pyx_string_tab[1333] -#define __pyx_n_u_TA_CMF __pyx_string_tab[1334] -#define __pyx_n_u_TA_CMF_Clone __pyx_string_tab[1335] -#define __pyx_n_u_TA_CMF_Open __pyx_string_tab[1336] -#define __pyx_n_u_TA_CMF_OpenAndFill __pyx_string_tab[1337] -#define __pyx_n_u_TA_CMF_Peek __pyx_string_tab[1338] -#define __pyx_n_u_TA_CMF_Update __pyx_string_tab[1339] -#define __pyx_n_u_TA_CMF_Value __pyx_string_tab[1340] -#define __pyx_n_u_TA_CMO __pyx_string_tab[1341] -#define __pyx_n_u_TA_CMOU __pyx_string_tab[1342] -#define __pyx_n_u_TA_CMOU_Clone __pyx_string_tab[1343] -#define __pyx_n_u_TA_CMOU_Open __pyx_string_tab[1344] -#define __pyx_n_u_TA_CMOU_OpenAndFill __pyx_string_tab[1345] -#define __pyx_n_u_TA_CMOU_Peek __pyx_string_tab[1346] -#define __pyx_n_u_TA_CMOU_Update __pyx_string_tab[1347] -#define __pyx_n_u_TA_CMOU_Value __pyx_string_tab[1348] -#define __pyx_n_u_TA_CMO_Clone __pyx_string_tab[1349] -#define __pyx_n_u_TA_CMO_Open __pyx_string_tab[1350] -#define __pyx_n_u_TA_CMO_OpenAndFill __pyx_string_tab[1351] -#define __pyx_n_u_TA_CMO_Peek __pyx_string_tab[1352] -#define __pyx_n_u_TA_CMO_Update __pyx_string_tab[1353] -#define __pyx_n_u_TA_CMO_Value __pyx_string_tab[1354] -#define __pyx_n_u_TA_COPPOCK __pyx_string_tab[1355] -#define __pyx_n_u_TA_COPPOCK_Clone __pyx_string_tab[1356] -#define __pyx_n_u_TA_COPPOCK_Open __pyx_string_tab[1357] -#define __pyx_n_u_TA_COPPOCK_OpenAndFill __pyx_string_tab[1358] -#define __pyx_n_u_TA_COPPOCK_Peek __pyx_string_tab[1359] -#define __pyx_n_u_TA_COPPOCK_Update __pyx_string_tab[1360] -#define __pyx_n_u_TA_COPPOCK_Value __pyx_string_tab[1361] -#define __pyx_n_u_TA_CORREL __pyx_string_tab[1362] -#define __pyx_n_u_TA_CORREL_Clone __pyx_string_tab[1363] -#define __pyx_n_u_TA_CORREL_Open __pyx_string_tab[1364] -#define __pyx_n_u_TA_CORREL_OpenAndFill __pyx_string_tab[1365] -#define __pyx_n_u_TA_CORREL_Peek __pyx_string_tab[1366] -#define __pyx_n_u_TA_CORREL_Update __pyx_string_tab[1367] -#define __pyx_n_u_TA_CORREL_Value __pyx_string_tab[1368] -#define __pyx_n_u_TA_COS __pyx_string_tab[1369] -#define __pyx_n_u_TA_COSH __pyx_string_tab[1370] -#define __pyx_n_u_TA_COSH_Clone __pyx_string_tab[1371] -#define __pyx_n_u_TA_COSH_Open __pyx_string_tab[1372] -#define __pyx_n_u_TA_COSH_OpenAndFill __pyx_string_tab[1373] -#define __pyx_n_u_TA_COSH_Peek __pyx_string_tab[1374] -#define __pyx_n_u_TA_COSH_Update __pyx_string_tab[1375] -#define __pyx_n_u_TA_COSH_Value __pyx_string_tab[1376] -#define __pyx_n_u_TA_COS_Clone __pyx_string_tab[1377] -#define __pyx_n_u_TA_COS_Open __pyx_string_tab[1378] -#define __pyx_n_u_TA_COS_OpenAndFill __pyx_string_tab[1379] -#define __pyx_n_u_TA_COS_Peek __pyx_string_tab[1380] -#define __pyx_n_u_TA_COS_Update __pyx_string_tab[1381] -#define __pyx_n_u_TA_COS_Value __pyx_string_tab[1382] -#define __pyx_n_u_TA_CUMSUM __pyx_string_tab[1383] -#define __pyx_n_u_TA_CUMSUM_Clone __pyx_string_tab[1384] -#define __pyx_n_u_TA_CUMSUM_Open __pyx_string_tab[1385] -#define __pyx_n_u_TA_CUMSUM_OpenAndFill __pyx_string_tab[1386] -#define __pyx_n_u_TA_CUMSUM_Peek __pyx_string_tab[1387] -#define __pyx_n_u_TA_CUMSUM_Update __pyx_string_tab[1388] -#define __pyx_n_u_TA_CUMSUM_Value __pyx_string_tab[1389] -#define __pyx_n_u_TA_CVI __pyx_string_tab[1390] -#define __pyx_n_u_TA_CVI_Clone __pyx_string_tab[1391] -#define __pyx_n_u_TA_CVI_Open __pyx_string_tab[1392] -#define __pyx_n_u_TA_CVI_OpenAndFill __pyx_string_tab[1393] -#define __pyx_n_u_TA_CVI_Peek __pyx_string_tab[1394] -#define __pyx_n_u_TA_CVI_Update __pyx_string_tab[1395] -#define __pyx_n_u_TA_CVI_Value __pyx_string_tab[1396] -#define __pyx_n_u_TA_DEMA __pyx_string_tab[1397] -#define __pyx_n_u_TA_DEMA_Clone __pyx_string_tab[1398] -#define __pyx_n_u_TA_DEMA_Open __pyx_string_tab[1399] -#define __pyx_n_u_TA_DEMA_OpenAndFill __pyx_string_tab[1400] -#define __pyx_n_u_TA_DEMA_Peek __pyx_string_tab[1401] -#define __pyx_n_u_TA_DEMA_Update __pyx_string_tab[1402] -#define __pyx_n_u_TA_DEMA_Value __pyx_string_tab[1403] -#define __pyx_n_u_TA_DIV __pyx_string_tab[1404] -#define __pyx_n_u_TA_DIV_Clone __pyx_string_tab[1405] -#define __pyx_n_u_TA_DIV_Open __pyx_string_tab[1406] -#define __pyx_n_u_TA_DIV_OpenAndFill __pyx_string_tab[1407] -#define __pyx_n_u_TA_DIV_Peek __pyx_string_tab[1408] -#define __pyx_n_u_TA_DIV_Update __pyx_string_tab[1409] -#define __pyx_n_u_TA_DIV_Value __pyx_string_tab[1410] -#define __pyx_n_u_TA_DONCHIAN __pyx_string_tab[1411] -#define __pyx_n_u_TA_DONCHIAN_Clone __pyx_string_tab[1412] -#define __pyx_n_u_TA_DONCHIAN_Open __pyx_string_tab[1413] -#define __pyx_n_u_TA_DONCHIAN_OpenAndFill __pyx_string_tab[1414] -#define __pyx_n_u_TA_DONCHIAN_Peek __pyx_string_tab[1415] -#define __pyx_n_u_TA_DONCHIAN_Update __pyx_string_tab[1416] -#define __pyx_n_u_TA_DONCHIAN_Value __pyx_string_tab[1417] -#define __pyx_n_u_TA_DPO __pyx_string_tab[1418] -#define __pyx_n_u_TA_DPO_Clone __pyx_string_tab[1419] -#define __pyx_n_u_TA_DPO_Open __pyx_string_tab[1420] -#define __pyx_n_u_TA_DPO_OpenAndFill __pyx_string_tab[1421] -#define __pyx_n_u_TA_DPO_Peek __pyx_string_tab[1422] -#define __pyx_n_u_TA_DPO_Update __pyx_string_tab[1423] -#define __pyx_n_u_TA_DPO_Value __pyx_string_tab[1424] -#define __pyx_n_u_TA_DX __pyx_string_tab[1425] -#define __pyx_n_u_TA_DX_Clone __pyx_string_tab[1426] -#define __pyx_n_u_TA_DX_Open __pyx_string_tab[1427] -#define __pyx_n_u_TA_DX_OpenAndFill __pyx_string_tab[1428] -#define __pyx_n_u_TA_DX_Peek __pyx_string_tab[1429] -#define __pyx_n_u_TA_DX_Update __pyx_string_tab[1430] -#define __pyx_n_u_TA_DX_Value __pyx_string_tab[1431] -#define __pyx_n_u_TA_EFI __pyx_string_tab[1432] -#define __pyx_n_u_TA_EFI_Clone __pyx_string_tab[1433] -#define __pyx_n_u_TA_EFI_Open __pyx_string_tab[1434] -#define __pyx_n_u_TA_EFI_OpenAndFill __pyx_string_tab[1435] -#define __pyx_n_u_TA_EFI_Peek __pyx_string_tab[1436] -#define __pyx_n_u_TA_EFI_Update __pyx_string_tab[1437] -#define __pyx_n_u_TA_EFI_Value __pyx_string_tab[1438] -#define __pyx_n_u_TA_EMA __pyx_string_tab[1439] -#define __pyx_n_u_TA_EMA_Clone __pyx_string_tab[1440] -#define __pyx_n_u_TA_EMA_Open __pyx_string_tab[1441] -#define __pyx_n_u_TA_EMA_OpenAndFill __pyx_string_tab[1442] -#define __pyx_n_u_TA_EMA_Peek __pyx_string_tab[1443] -#define __pyx_n_u_TA_EMA_Update __pyx_string_tab[1444] -#define __pyx_n_u_TA_EMA_Value __pyx_string_tab[1445] -#define __pyx_n_u_TA_ER __pyx_string_tab[1446] -#define __pyx_n_u_TA_ERI __pyx_string_tab[1447] -#define __pyx_n_u_TA_ERI_Clone __pyx_string_tab[1448] -#define __pyx_n_u_TA_ERI_Open __pyx_string_tab[1449] -#define __pyx_n_u_TA_ERI_OpenAndFill __pyx_string_tab[1450] -#define __pyx_n_u_TA_ERI_Peek __pyx_string_tab[1451] -#define __pyx_n_u_TA_ERI_Update __pyx_string_tab[1452] -#define __pyx_n_u_TA_ERI_Value __pyx_string_tab[1453] -#define __pyx_n_u_TA_ER_Clone __pyx_string_tab[1454] -#define __pyx_n_u_TA_ER_Open __pyx_string_tab[1455] -#define __pyx_n_u_TA_ER_OpenAndFill __pyx_string_tab[1456] -#define __pyx_n_u_TA_ER_Peek __pyx_string_tab[1457] -#define __pyx_n_u_TA_ER_Update __pyx_string_tab[1458] -#define __pyx_n_u_TA_ER_Value __pyx_string_tab[1459] -#define __pyx_n_u_TA_EXP __pyx_string_tab[1460] -#define __pyx_n_u_TA_EXP_Clone __pyx_string_tab[1461] -#define __pyx_n_u_TA_EXP_Open __pyx_string_tab[1462] -#define __pyx_n_u_TA_EXP_OpenAndFill __pyx_string_tab[1463] -#define __pyx_n_u_TA_EXP_Peek __pyx_string_tab[1464] -#define __pyx_n_u_TA_EXP_Update __pyx_string_tab[1465] -#define __pyx_n_u_TA_EXP_Value __pyx_string_tab[1466] -#define __pyx_n_u_TA_FLOOR __pyx_string_tab[1467] -#define __pyx_n_u_TA_FLOOR_Clone __pyx_string_tab[1468] -#define __pyx_n_u_TA_FLOOR_Open __pyx_string_tab[1469] -#define __pyx_n_u_TA_FLOOR_OpenAndFill __pyx_string_tab[1470] -#define __pyx_n_u_TA_FLOOR_Peek __pyx_string_tab[1471] -#define __pyx_n_u_TA_FLOOR_Update __pyx_string_tab[1472] -#define __pyx_n_u_TA_FLOOR_Value __pyx_string_tab[1473] -#define __pyx_n_u_TA_FOSC __pyx_string_tab[1474] -#define __pyx_n_u_TA_FOSC_Clone __pyx_string_tab[1475] -#define __pyx_n_u_TA_FOSC_Open __pyx_string_tab[1476] -#define __pyx_n_u_TA_FOSC_OpenAndFill __pyx_string_tab[1477] -#define __pyx_n_u_TA_FOSC_Peek __pyx_string_tab[1478] -#define __pyx_n_u_TA_FOSC_Update __pyx_string_tab[1479] -#define __pyx_n_u_TA_FOSC_Value __pyx_string_tab[1480] -#define __pyx_n_u_TA_FRACTAL __pyx_string_tab[1481] -#define __pyx_n_u_TA_FRACTAL_Clone __pyx_string_tab[1482] -#define __pyx_n_u_TA_FRACTAL_Open __pyx_string_tab[1483] -#define __pyx_n_u_TA_FRACTAL_OpenAndFill __pyx_string_tab[1484] -#define __pyx_n_u_TA_FRACTAL_Peek __pyx_string_tab[1485] -#define __pyx_n_u_TA_FRACTAL_Update __pyx_string_tab[1486] -#define __pyx_n_u_TA_FRACTAL_Value __pyx_string_tab[1487] -#define __pyx_n_u_TA_FUNC_FLAGS __pyx_string_tab[1488] -#define __pyx_n_u_TA_FuncTableAlloc __pyx_string_tab[1489] -#define __pyx_n_u_TA_FuncTableFree __pyx_string_tab[1490] -#define __pyx_n_u_TA_GetFuncHandle __pyx_string_tab[1491] -#define __pyx_n_u_TA_GetFuncInfo __pyx_string_tab[1492] -#define __pyx_n_u_TA_GetInputParameterInfo __pyx_string_tab[1493] -#define __pyx_n_u_TA_GetLookback __pyx_string_tab[1494] -#define __pyx_n_u_TA_GetOptInputParameterInfo __pyx_string_tab[1495] -#define __pyx_n_u_TA_GetOutputParameterInfo __pyx_string_tab[1496] -#define __pyx_n_u_TA_GroupTableAlloc __pyx_string_tab[1497] -#define __pyx_n_u_TA_GroupTableFree __pyx_string_tab[1498] -#define __pyx_n_u_TA_HA __pyx_string_tab[1499] -#define __pyx_n_u_TA_HA_Clone __pyx_string_tab[1500] -#define __pyx_n_u_TA_HA_Open __pyx_string_tab[1501] -#define __pyx_n_u_TA_HA_OpenAndFill __pyx_string_tab[1502] -#define __pyx_n_u_TA_HA_Peek __pyx_string_tab[1503] -#define __pyx_n_u_TA_HA_Update __pyx_string_tab[1504] -#define __pyx_n_u_TA_HA_Value __pyx_string_tab[1505] -#define __pyx_n_u_TA_HMA __pyx_string_tab[1506] -#define __pyx_n_u_TA_HMA_Clone __pyx_string_tab[1507] -#define __pyx_n_u_TA_HMA_Open __pyx_string_tab[1508] -#define __pyx_n_u_TA_HMA_OpenAndFill __pyx_string_tab[1509] -#define __pyx_n_u_TA_HMA_Peek __pyx_string_tab[1510] -#define __pyx_n_u_TA_HMA_Update __pyx_string_tab[1511] -#define __pyx_n_u_TA_HMA_Value __pyx_string_tab[1512] -#define __pyx_n_u_TA_HT_DCPERIOD __pyx_string_tab[1513] -#define __pyx_n_u_TA_HT_DCPERIOD_Clone __pyx_string_tab[1514] -#define __pyx_n_u_TA_HT_DCPERIOD_Open __pyx_string_tab[1515] -#define __pyx_n_u_TA_HT_DCPERIOD_OpenAndFill __pyx_string_tab[1516] -#define __pyx_n_u_TA_HT_DCPERIOD_Peek __pyx_string_tab[1517] -#define __pyx_n_u_TA_HT_DCPERIOD_Update __pyx_string_tab[1518] -#define __pyx_n_u_TA_HT_DCPERIOD_Value __pyx_string_tab[1519] -#define __pyx_n_u_TA_HT_DCPHASE __pyx_string_tab[1520] -#define __pyx_n_u_TA_HT_DCPHASE_Clone __pyx_string_tab[1521] -#define __pyx_n_u_TA_HT_DCPHASE_Open __pyx_string_tab[1522] -#define __pyx_n_u_TA_HT_DCPHASE_OpenAndFill __pyx_string_tab[1523] -#define __pyx_n_u_TA_HT_DCPHASE_Peek __pyx_string_tab[1524] -#define __pyx_n_u_TA_HT_DCPHASE_Update __pyx_string_tab[1525] -#define __pyx_n_u_TA_HT_DCPHASE_Value __pyx_string_tab[1526] -#define __pyx_n_u_TA_HT_PHASOR __pyx_string_tab[1527] -#define __pyx_n_u_TA_HT_PHASOR_Clone __pyx_string_tab[1528] -#define __pyx_n_u_TA_HT_PHASOR_Open __pyx_string_tab[1529] -#define __pyx_n_u_TA_HT_PHASOR_OpenAndFill __pyx_string_tab[1530] -#define __pyx_n_u_TA_HT_PHASOR_Peek __pyx_string_tab[1531] -#define __pyx_n_u_TA_HT_PHASOR_Update __pyx_string_tab[1532] -#define __pyx_n_u_TA_HT_PHASOR_Value __pyx_string_tab[1533] -#define __pyx_n_u_TA_HT_SINE __pyx_string_tab[1534] -#define __pyx_n_u_TA_HT_SINE_Clone __pyx_string_tab[1535] -#define __pyx_n_u_TA_HT_SINE_Open __pyx_string_tab[1536] -#define __pyx_n_u_TA_HT_SINE_OpenAndFill __pyx_string_tab[1537] -#define __pyx_n_u_TA_HT_SINE_Peek __pyx_string_tab[1538] -#define __pyx_n_u_TA_HT_SINE_Update __pyx_string_tab[1539] -#define __pyx_n_u_TA_HT_SINE_Value __pyx_string_tab[1540] -#define __pyx_n_u_TA_HT_TRENDLINE __pyx_string_tab[1541] -#define __pyx_n_u_TA_HT_TRENDLINE_Clone __pyx_string_tab[1542] -#define __pyx_n_u_TA_HT_TRENDLINE_Open __pyx_string_tab[1543] -#define __pyx_n_u_TA_HT_TRENDLINE_OpenAndFill __pyx_string_tab[1544] -#define __pyx_n_u_TA_HT_TRENDLINE_Peek __pyx_string_tab[1545] -#define __pyx_n_u_TA_HT_TRENDLINE_Update __pyx_string_tab[1546] -#define __pyx_n_u_TA_HT_TRENDLINE_Value __pyx_string_tab[1547] -#define __pyx_n_u_TA_HT_TRENDMODE __pyx_string_tab[1548] -#define __pyx_n_u_TA_HT_TRENDMODE_Clone __pyx_string_tab[1549] -#define __pyx_n_u_TA_HT_TRENDMODE_Open __pyx_string_tab[1550] -#define __pyx_n_u_TA_HT_TRENDMODE_OpenAndFill __pyx_string_tab[1551] -#define __pyx_n_u_TA_HT_TRENDMODE_Peek __pyx_string_tab[1552] -#define __pyx_n_u_TA_HT_TRENDMODE_Update __pyx_string_tab[1553] -#define __pyx_n_u_TA_HT_TRENDMODE_Value __pyx_string_tab[1554] -#define __pyx_n_u_TA_IMI __pyx_string_tab[1555] -#define __pyx_n_u_TA_IMI_Clone __pyx_string_tab[1556] -#define __pyx_n_u_TA_IMI_Open __pyx_string_tab[1557] -#define __pyx_n_u_TA_IMI_OpenAndFill __pyx_string_tab[1558] -#define __pyx_n_u_TA_IMI_Peek __pyx_string_tab[1559] -#define __pyx_n_u_TA_IMI_Update __pyx_string_tab[1560] -#define __pyx_n_u_TA_IMI_Value __pyx_string_tab[1561] -#define __pyx_n_u_TA_INPUT_FLAGS __pyx_string_tab[1562] -#define __pyx_n_u_TA_Initialize __pyx_string_tab[1563] -#define __pyx_n_u_TA_KAMA __pyx_string_tab[1564] -#define __pyx_n_u_TA_KAMA_Clone __pyx_string_tab[1565] -#define __pyx_n_u_TA_KAMA_Open __pyx_string_tab[1566] -#define __pyx_n_u_TA_KAMA_OpenAndFill __pyx_string_tab[1567] -#define __pyx_n_u_TA_KAMA_Peek __pyx_string_tab[1568] -#define __pyx_n_u_TA_KAMA_Update __pyx_string_tab[1569] -#define __pyx_n_u_TA_KAMA_Value __pyx_string_tab[1570] -#define __pyx_n_u_TA_KC __pyx_string_tab[1571] -#define __pyx_n_u_TA_KC_Clone __pyx_string_tab[1572] -#define __pyx_n_u_TA_KC_Open __pyx_string_tab[1573] -#define __pyx_n_u_TA_KC_OpenAndFill __pyx_string_tab[1574] -#define __pyx_n_u_TA_KC_Peek __pyx_string_tab[1575] -#define __pyx_n_u_TA_KC_Update __pyx_string_tab[1576] -#define __pyx_n_u_TA_KC_Value __pyx_string_tab[1577] -#define __pyx_n_u_TA_KDJ __pyx_string_tab[1578] -#define __pyx_n_u_TA_KDJ_Clone __pyx_string_tab[1579] -#define __pyx_n_u_TA_KDJ_Open __pyx_string_tab[1580] -#define __pyx_n_u_TA_KDJ_OpenAndFill __pyx_string_tab[1581] -#define __pyx_n_u_TA_KDJ_Peek __pyx_string_tab[1582] -#define __pyx_n_u_TA_KDJ_Update __pyx_string_tab[1583] -#define __pyx_n_u_TA_KDJ_Value __pyx_string_tab[1584] -#define __pyx_n_u_TA_LINEARREG __pyx_string_tab[1585] -#define __pyx_n_u_TA_LINEARREG_ANGLE __pyx_string_tab[1586] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Clone __pyx_string_tab[1587] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Open __pyx_string_tab[1588] -#define __pyx_n_u_TA_LINEARREG_ANGLE_OpenAndFill __pyx_string_tab[1589] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Peek __pyx_string_tab[1590] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Update __pyx_string_tab[1591] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Value __pyx_string_tab[1592] -#define __pyx_n_u_TA_LINEARREG_Clone __pyx_string_tab[1593] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT __pyx_string_tab[1594] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Clone __pyx_string_tab[1595] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Open __pyx_string_tab[1596] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_OpenAndFi __pyx_string_tab[1597] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Peek __pyx_string_tab[1598] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Update __pyx_string_tab[1599] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Value __pyx_string_tab[1600] -#define __pyx_n_u_TA_LINEARREG_Open __pyx_string_tab[1601] -#define __pyx_n_u_TA_LINEARREG_OpenAndFill __pyx_string_tab[1602] -#define __pyx_n_u_TA_LINEARREG_Peek __pyx_string_tab[1603] -#define __pyx_n_u_TA_LINEARREG_SLOPE __pyx_string_tab[1604] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Clone __pyx_string_tab[1605] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Open __pyx_string_tab[1606] -#define __pyx_n_u_TA_LINEARREG_SLOPE_OpenAndFill __pyx_string_tab[1607] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Peek __pyx_string_tab[1608] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Update __pyx_string_tab[1609] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Value __pyx_string_tab[1610] -#define __pyx_n_u_TA_LINEARREG_Update __pyx_string_tab[1611] -#define __pyx_n_u_TA_LINEARREG_Value __pyx_string_tab[1612] -#define __pyx_n_u_TA_LN __pyx_string_tab[1613] -#define __pyx_n_u_TA_LN_Clone __pyx_string_tab[1614] -#define __pyx_n_u_TA_LN_Open __pyx_string_tab[1615] -#define __pyx_n_u_TA_LN_OpenAndFill __pyx_string_tab[1616] -#define __pyx_n_u_TA_LN_Peek __pyx_string_tab[1617] -#define __pyx_n_u_TA_LN_Update __pyx_string_tab[1618] -#define __pyx_n_u_TA_LN_Value __pyx_string_tab[1619] -#define __pyx_n_u_TA_LOG10 __pyx_string_tab[1620] -#define __pyx_n_u_TA_LOG10_Clone __pyx_string_tab[1621] -#define __pyx_n_u_TA_LOG10_Open __pyx_string_tab[1622] -#define __pyx_n_u_TA_LOG10_OpenAndFill __pyx_string_tab[1623] -#define __pyx_n_u_TA_LOG10_Peek __pyx_string_tab[1624] -#define __pyx_n_u_TA_LOG10_Update __pyx_string_tab[1625] -#define __pyx_n_u_TA_LOG10_Value __pyx_string_tab[1626] -#define __pyx_n_u_TA_MA __pyx_string_tab[1627] -#define __pyx_n_u_TA_MACD __pyx_string_tab[1628] -#define __pyx_n_u_TA_MACDEXT __pyx_string_tab[1629] -#define __pyx_n_u_TA_MACDEXT_Clone __pyx_string_tab[1630] -#define __pyx_n_u_TA_MACDEXT_Open __pyx_string_tab[1631] -#define __pyx_n_u_TA_MACDEXT_OpenAndFill __pyx_string_tab[1632] -#define __pyx_n_u_TA_MACDEXT_Peek __pyx_string_tab[1633] -#define __pyx_n_u_TA_MACDEXT_Update __pyx_string_tab[1634] -#define __pyx_n_u_TA_MACDEXT_Value __pyx_string_tab[1635] -#define __pyx_n_u_TA_MACDFIX __pyx_string_tab[1636] -#define __pyx_n_u_TA_MACDFIX_Clone __pyx_string_tab[1637] -#define __pyx_n_u_TA_MACDFIX_Open __pyx_string_tab[1638] -#define __pyx_n_u_TA_MACDFIX_OpenAndFill __pyx_string_tab[1639] -#define __pyx_n_u_TA_MACDFIX_Peek __pyx_string_tab[1640] -#define __pyx_n_u_TA_MACDFIX_Update __pyx_string_tab[1641] -#define __pyx_n_u_TA_MACDFIX_Value __pyx_string_tab[1642] -#define __pyx_n_u_TA_MACD_Clone __pyx_string_tab[1643] -#define __pyx_n_u_TA_MACD_Open __pyx_string_tab[1644] -#define __pyx_n_u_TA_MACD_OpenAndFill __pyx_string_tab[1645] -#define __pyx_n_u_TA_MACD_Peek __pyx_string_tab[1646] -#define __pyx_n_u_TA_MACD_Update __pyx_string_tab[1647] -#define __pyx_n_u_TA_MACD_Value __pyx_string_tab[1648] -#define __pyx_n_u_TA_MAMA __pyx_string_tab[1649] -#define __pyx_n_u_TA_MAMA_Clone __pyx_string_tab[1650] -#define __pyx_n_u_TA_MAMA_Open __pyx_string_tab[1651] -#define __pyx_n_u_TA_MAMA_OpenAndFill __pyx_string_tab[1652] -#define __pyx_n_u_TA_MAMA_Peek __pyx_string_tab[1653] -#define __pyx_n_u_TA_MAMA_Update __pyx_string_tab[1654] -#define __pyx_n_u_TA_MAMA_Value __pyx_string_tab[1655] -#define __pyx_n_u_TA_MARKETFI __pyx_string_tab[1656] -#define __pyx_n_u_TA_MARKETFI_Clone __pyx_string_tab[1657] -#define __pyx_n_u_TA_MARKETFI_Open __pyx_string_tab[1658] -#define __pyx_n_u_TA_MARKETFI_OpenAndFill __pyx_string_tab[1659] -#define __pyx_n_u_TA_MARKETFI_Peek __pyx_string_tab[1660] -#define __pyx_n_u_TA_MARKETFI_Update __pyx_string_tab[1661] -#define __pyx_n_u_TA_MARKETFI_Value __pyx_string_tab[1662] -#define __pyx_n_u_TA_MASSI __pyx_string_tab[1663] -#define __pyx_n_u_TA_MASSI_Clone __pyx_string_tab[1664] -#define __pyx_n_u_TA_MASSI_Open __pyx_string_tab[1665] -#define __pyx_n_u_TA_MASSI_OpenAndFill __pyx_string_tab[1666] -#define __pyx_n_u_TA_MASSI_Peek __pyx_string_tab[1667] -#define __pyx_n_u_TA_MASSI_Update __pyx_string_tab[1668] -#define __pyx_n_u_TA_MASSI_Value __pyx_string_tab[1669] -#define __pyx_n_u_TA_MAVP __pyx_string_tab[1670] -#define __pyx_n_u_TA_MAVP_Clone __pyx_string_tab[1671] -#define __pyx_n_u_TA_MAVP_Open __pyx_string_tab[1672] -#define __pyx_n_u_TA_MAVP_OpenAndFill __pyx_string_tab[1673] -#define __pyx_n_u_TA_MAVP_Peek __pyx_string_tab[1674] -#define __pyx_n_u_TA_MAVP_Update __pyx_string_tab[1675] -#define __pyx_n_u_TA_MAVP_Value __pyx_string_tab[1676] -#define __pyx_n_u_TA_MAX __pyx_string_tab[1677] -#define __pyx_n_u_TA_MAXINDEX __pyx_string_tab[1678] -#define __pyx_n_u_TA_MAXINDEX_Clone __pyx_string_tab[1679] -#define __pyx_n_u_TA_MAXINDEX_Open __pyx_string_tab[1680] -#define __pyx_n_u_TA_MAXINDEX_OpenAndFill __pyx_string_tab[1681] -#define __pyx_n_u_TA_MAXINDEX_Peek __pyx_string_tab[1682] -#define __pyx_n_u_TA_MAXINDEX_Update __pyx_string_tab[1683] -#define __pyx_n_u_TA_MAXINDEX_Value __pyx_string_tab[1684] -#define __pyx_n_u_TA_MAX_Clone __pyx_string_tab[1685] -#define __pyx_n_u_TA_MAX_Open __pyx_string_tab[1686] -#define __pyx_n_u_TA_MAX_OpenAndFill __pyx_string_tab[1687] -#define __pyx_n_u_TA_MAX_Peek __pyx_string_tab[1688] -#define __pyx_n_u_TA_MAX_Update __pyx_string_tab[1689] -#define __pyx_n_u_TA_MAX_Value __pyx_string_tab[1690] -#define __pyx_n_u_TA_MA_Clone __pyx_string_tab[1691] -#define __pyx_n_u_TA_MA_Open __pyx_string_tab[1692] -#define __pyx_n_u_TA_MA_OpenAndFill __pyx_string_tab[1693] -#define __pyx_n_u_TA_MA_Peek __pyx_string_tab[1694] -#define __pyx_n_u_TA_MA_Update __pyx_string_tab[1695] -#define __pyx_n_u_TA_MA_Value __pyx_string_tab[1696] -#define __pyx_n_u_TA_MEDPRICE __pyx_string_tab[1697] -#define __pyx_n_u_TA_MEDPRICE_Clone __pyx_string_tab[1698] -#define __pyx_n_u_TA_MEDPRICE_Open __pyx_string_tab[1699] -#define __pyx_n_u_TA_MEDPRICE_OpenAndFill __pyx_string_tab[1700] -#define __pyx_n_u_TA_MEDPRICE_Peek __pyx_string_tab[1701] -#define __pyx_n_u_TA_MEDPRICE_Update __pyx_string_tab[1702] -#define __pyx_n_u_TA_MEDPRICE_Value __pyx_string_tab[1703] -#define __pyx_n_u_TA_MFI __pyx_string_tab[1704] -#define __pyx_n_u_TA_MFI_Clone __pyx_string_tab[1705] -#define __pyx_n_u_TA_MFI_Open __pyx_string_tab[1706] -#define __pyx_n_u_TA_MFI_OpenAndFill __pyx_string_tab[1707] -#define __pyx_n_u_TA_MFI_Peek __pyx_string_tab[1708] -#define __pyx_n_u_TA_MFI_Update __pyx_string_tab[1709] -#define __pyx_n_u_TA_MFI_Value __pyx_string_tab[1710] -#define __pyx_n_u_TA_MIDPOINT __pyx_string_tab[1711] -#define __pyx_n_u_TA_MIDPOINT_Clone __pyx_string_tab[1712] -#define __pyx_n_u_TA_MIDPOINT_Open __pyx_string_tab[1713] -#define __pyx_n_u_TA_MIDPOINT_OpenAndFill __pyx_string_tab[1714] -#define __pyx_n_u_TA_MIDPOINT_Peek __pyx_string_tab[1715] -#define __pyx_n_u_TA_MIDPOINT_Update __pyx_string_tab[1716] -#define __pyx_n_u_TA_MIDPOINT_Value __pyx_string_tab[1717] -#define __pyx_n_u_TA_MIDPRICE __pyx_string_tab[1718] -#define __pyx_n_u_TA_MIDPRICE_Clone __pyx_string_tab[1719] -#define __pyx_n_u_TA_MIDPRICE_Open __pyx_string_tab[1720] -#define __pyx_n_u_TA_MIDPRICE_OpenAndFill __pyx_string_tab[1721] -#define __pyx_n_u_TA_MIDPRICE_Peek __pyx_string_tab[1722] -#define __pyx_n_u_TA_MIDPRICE_Update __pyx_string_tab[1723] -#define __pyx_n_u_TA_MIDPRICE_Value __pyx_string_tab[1724] -#define __pyx_n_u_TA_MIN __pyx_string_tab[1725] -#define __pyx_n_u_TA_MININDEX __pyx_string_tab[1726] -#define __pyx_n_u_TA_MININDEX_Clone __pyx_string_tab[1727] -#define __pyx_n_u_TA_MININDEX_Open __pyx_string_tab[1728] -#define __pyx_n_u_TA_MININDEX_OpenAndFill __pyx_string_tab[1729] -#define __pyx_n_u_TA_MININDEX_Peek __pyx_string_tab[1730] -#define __pyx_n_u_TA_MININDEX_Update __pyx_string_tab[1731] -#define __pyx_n_u_TA_MININDEX_Value __pyx_string_tab[1732] -#define __pyx_n_u_TA_MINMAX __pyx_string_tab[1733] -#define __pyx_n_u_TA_MINMAXINDEX __pyx_string_tab[1734] -#define __pyx_n_u_TA_MINMAXINDEX_Clone __pyx_string_tab[1735] -#define __pyx_n_u_TA_MINMAXINDEX_Open __pyx_string_tab[1736] -#define __pyx_n_u_TA_MINMAXINDEX_OpenAndFill __pyx_string_tab[1737] -#define __pyx_n_u_TA_MINMAXINDEX_Peek __pyx_string_tab[1738] -#define __pyx_n_u_TA_MINMAXINDEX_Update __pyx_string_tab[1739] -#define __pyx_n_u_TA_MINMAXINDEX_Value __pyx_string_tab[1740] -#define __pyx_n_u_TA_MINMAX_Clone __pyx_string_tab[1741] -#define __pyx_n_u_TA_MINMAX_Open __pyx_string_tab[1742] -#define __pyx_n_u_TA_MINMAX_OpenAndFill __pyx_string_tab[1743] -#define __pyx_n_u_TA_MINMAX_Peek __pyx_string_tab[1744] -#define __pyx_n_u_TA_MINMAX_Update __pyx_string_tab[1745] -#define __pyx_n_u_TA_MINMAX_Value __pyx_string_tab[1746] -#define __pyx_n_u_TA_MINUS_DI __pyx_string_tab[1747] -#define __pyx_n_u_TA_MINUS_DI_Clone __pyx_string_tab[1748] -#define __pyx_n_u_TA_MINUS_DI_Open __pyx_string_tab[1749] -#define __pyx_n_u_TA_MINUS_DI_OpenAndFill __pyx_string_tab[1750] -#define __pyx_n_u_TA_MINUS_DI_Peek __pyx_string_tab[1751] -#define __pyx_n_u_TA_MINUS_DI_Update __pyx_string_tab[1752] -#define __pyx_n_u_TA_MINUS_DI_Value __pyx_string_tab[1753] -#define __pyx_n_u_TA_MINUS_DM __pyx_string_tab[1754] -#define __pyx_n_u_TA_MINUS_DM_Clone __pyx_string_tab[1755] -#define __pyx_n_u_TA_MINUS_DM_Open __pyx_string_tab[1756] -#define __pyx_n_u_TA_MINUS_DM_OpenAndFill __pyx_string_tab[1757] -#define __pyx_n_u_TA_MINUS_DM_Peek __pyx_string_tab[1758] -#define __pyx_n_u_TA_MINUS_DM_Update __pyx_string_tab[1759] -#define __pyx_n_u_TA_MINUS_DM_Value __pyx_string_tab[1760] -#define __pyx_n_u_TA_MIN_Clone __pyx_string_tab[1761] -#define __pyx_n_u_TA_MIN_Open __pyx_string_tab[1762] -#define __pyx_n_u_TA_MIN_OpenAndFill __pyx_string_tab[1763] -#define __pyx_n_u_TA_MIN_Peek __pyx_string_tab[1764] -#define __pyx_n_u_TA_MIN_Update __pyx_string_tab[1765] -#define __pyx_n_u_TA_MIN_Value __pyx_string_tab[1766] -#define __pyx_n_u_TA_MOM __pyx_string_tab[1767] -#define __pyx_n_u_TA_MOM_Clone __pyx_string_tab[1768] -#define __pyx_n_u_TA_MOM_Open __pyx_string_tab[1769] -#define __pyx_n_u_TA_MOM_OpenAndFill __pyx_string_tab[1770] -#define __pyx_n_u_TA_MOM_Peek __pyx_string_tab[1771] -#define __pyx_n_u_TA_MOM_Update __pyx_string_tab[1772] -#define __pyx_n_u_TA_MOM_Value __pyx_string_tab[1773] -#define __pyx_n_u_TA_MULT __pyx_string_tab[1774] -#define __pyx_n_u_TA_MULT_Clone __pyx_string_tab[1775] -#define __pyx_n_u_TA_MULT_Open __pyx_string_tab[1776] -#define __pyx_n_u_TA_MULT_OpenAndFill __pyx_string_tab[1777] -#define __pyx_n_u_TA_MULT_Peek __pyx_string_tab[1778] -#define __pyx_n_u_TA_MULT_Update __pyx_string_tab[1779] -#define __pyx_n_u_TA_MULT_Value __pyx_string_tab[1780] -#define __pyx_n_u_TA_NATR __pyx_string_tab[1781] -#define __pyx_n_u_TA_NATR_Clone __pyx_string_tab[1782] -#define __pyx_n_u_TA_NATR_Open __pyx_string_tab[1783] -#define __pyx_n_u_TA_NATR_OpenAndFill __pyx_string_tab[1784] -#define __pyx_n_u_TA_NATR_Peek __pyx_string_tab[1785] -#define __pyx_n_u_TA_NATR_Update __pyx_string_tab[1786] -#define __pyx_n_u_TA_NATR_Value __pyx_string_tab[1787] -#define __pyx_n_u_TA_NVI __pyx_string_tab[1788] -#define __pyx_n_u_TA_NVI_Clone __pyx_string_tab[1789] -#define __pyx_n_u_TA_NVI_Open __pyx_string_tab[1790] -#define __pyx_n_u_TA_NVI_OpenAndFill __pyx_string_tab[1791] -#define __pyx_n_u_TA_NVI_Peek __pyx_string_tab[1792] -#define __pyx_n_u_TA_NVI_Update __pyx_string_tab[1793] -#define __pyx_n_u_TA_NVI_Value __pyx_string_tab[1794] -#define __pyx_n_u_TA_OBV __pyx_string_tab[1795] -#define __pyx_n_u_TA_OBV_Clone __pyx_string_tab[1796] -#define __pyx_n_u_TA_OBV_Open __pyx_string_tab[1797] -#define __pyx_n_u_TA_OBV_OpenAndFill __pyx_string_tab[1798] -#define __pyx_n_u_TA_OBV_Peek __pyx_string_tab[1799] -#define __pyx_n_u_TA_OBV_Update __pyx_string_tab[1800] -#define __pyx_n_u_TA_OBV_Value __pyx_string_tab[1801] -#define __pyx_n_u_TA_OUTPUT_FLAGS __pyx_string_tab[1802] -#define __pyx_n_u_TA_PERCENTILE __pyx_string_tab[1803] -#define __pyx_n_u_TA_PERCENTILE_Clone __pyx_string_tab[1804] -#define __pyx_n_u_TA_PERCENTILE_Open __pyx_string_tab[1805] -#define __pyx_n_u_TA_PERCENTILE_OpenAndFill __pyx_string_tab[1806] -#define __pyx_n_u_TA_PERCENTILE_Peek __pyx_string_tab[1807] -#define __pyx_n_u_TA_PERCENTILE_Update __pyx_string_tab[1808] -#define __pyx_n_u_TA_PERCENTILE_Value __pyx_string_tab[1809] -#define __pyx_n_u_TA_PERCENTRANK __pyx_string_tab[1810] -#define __pyx_n_u_TA_PERCENTRANK_Clone __pyx_string_tab[1811] -#define __pyx_n_u_TA_PERCENTRANK_Open __pyx_string_tab[1812] -#define __pyx_n_u_TA_PERCENTRANK_OpenAndFill __pyx_string_tab[1813] -#define __pyx_n_u_TA_PERCENTRANK_Peek __pyx_string_tab[1814] -#define __pyx_n_u_TA_PERCENTRANK_Update __pyx_string_tab[1815] -#define __pyx_n_u_TA_PERCENTRANK_Value __pyx_string_tab[1816] -#define __pyx_n_u_TA_PLUS_DI __pyx_string_tab[1817] -#define __pyx_n_u_TA_PLUS_DI_Clone __pyx_string_tab[1818] -#define __pyx_n_u_TA_PLUS_DI_Open __pyx_string_tab[1819] -#define __pyx_n_u_TA_PLUS_DI_OpenAndFill __pyx_string_tab[1820] -#define __pyx_n_u_TA_PLUS_DI_Peek __pyx_string_tab[1821] -#define __pyx_n_u_TA_PLUS_DI_Update __pyx_string_tab[1822] -#define __pyx_n_u_TA_PLUS_DI_Value __pyx_string_tab[1823] -#define __pyx_n_u_TA_PLUS_DM __pyx_string_tab[1824] -#define __pyx_n_u_TA_PLUS_DM_Clone __pyx_string_tab[1825] -#define __pyx_n_u_TA_PLUS_DM_Open __pyx_string_tab[1826] -#define __pyx_n_u_TA_PLUS_DM_OpenAndFill __pyx_string_tab[1827] -#define __pyx_n_u_TA_PLUS_DM_Peek __pyx_string_tab[1828] -#define __pyx_n_u_TA_PLUS_DM_Update __pyx_string_tab[1829] -#define __pyx_n_u_TA_PLUS_DM_Value __pyx_string_tab[1830] -#define __pyx_n_u_TA_PPO __pyx_string_tab[1831] -#define __pyx_n_u_TA_PPO_Clone __pyx_string_tab[1832] -#define __pyx_n_u_TA_PPO_Open __pyx_string_tab[1833] -#define __pyx_n_u_TA_PPO_OpenAndFill __pyx_string_tab[1834] -#define __pyx_n_u_TA_PPO_Peek __pyx_string_tab[1835] -#define __pyx_n_u_TA_PPO_Update __pyx_string_tab[1836] -#define __pyx_n_u_TA_PPO_Value __pyx_string_tab[1837] -#define __pyx_n_u_TA_PVI __pyx_string_tab[1838] -#define __pyx_n_u_TA_PVI_Clone __pyx_string_tab[1839] -#define __pyx_n_u_TA_PVI_Open __pyx_string_tab[1840] -#define __pyx_n_u_TA_PVI_OpenAndFill __pyx_string_tab[1841] -#define __pyx_n_u_TA_PVI_Peek __pyx_string_tab[1842] -#define __pyx_n_u_TA_PVI_Update __pyx_string_tab[1843] -#define __pyx_n_u_TA_PVI_Value __pyx_string_tab[1844] -#define __pyx_n_u_TA_PVO __pyx_string_tab[1845] -#define __pyx_n_u_TA_PVO_Clone __pyx_string_tab[1846] -#define __pyx_n_u_TA_PVO_Open __pyx_string_tab[1847] -#define __pyx_n_u_TA_PVO_OpenAndFill __pyx_string_tab[1848] -#define __pyx_n_u_TA_PVO_Peek __pyx_string_tab[1849] -#define __pyx_n_u_TA_PVO_Update __pyx_string_tab[1850] -#define __pyx_n_u_TA_PVO_Value __pyx_string_tab[1851] -#define __pyx_n_u_TA_PVT __pyx_string_tab[1852] -#define __pyx_n_u_TA_PVT_Clone __pyx_string_tab[1853] -#define __pyx_n_u_TA_PVT_Open __pyx_string_tab[1854] -#define __pyx_n_u_TA_PVT_OpenAndFill __pyx_string_tab[1855] -#define __pyx_n_u_TA_PVT_Peek __pyx_string_tab[1856] -#define __pyx_n_u_TA_PVT_Update __pyx_string_tab[1857] -#define __pyx_n_u_TA_PVT_Value __pyx_string_tab[1858] -#define __pyx_n_u_TA_ParamHolderAlloc __pyx_string_tab[1859] -#define __pyx_n_u_TA_ParamHolderFree __pyx_string_tab[1860] -#define __pyx_n_u_TA_QSTICK __pyx_string_tab[1861] -#define __pyx_n_u_TA_QSTICK_Clone __pyx_string_tab[1862] -#define __pyx_n_u_TA_QSTICK_Open __pyx_string_tab[1863] -#define __pyx_n_u_TA_QSTICK_OpenAndFill __pyx_string_tab[1864] -#define __pyx_n_u_TA_QSTICK_Peek __pyx_string_tab[1865] -#define __pyx_n_u_TA_QSTICK_Update __pyx_string_tab[1866] -#define __pyx_n_u_TA_QSTICK_Value __pyx_string_tab[1867] -#define __pyx_n_u_TA_RMA __pyx_string_tab[1868] -#define __pyx_n_u_TA_RMA_Clone __pyx_string_tab[1869] -#define __pyx_n_u_TA_RMA_Open __pyx_string_tab[1870] -#define __pyx_n_u_TA_RMA_OpenAndFill __pyx_string_tab[1871] -#define __pyx_n_u_TA_RMA_Peek __pyx_string_tab[1872] -#define __pyx_n_u_TA_RMA_Update __pyx_string_tab[1873] -#define __pyx_n_u_TA_RMA_Value __pyx_string_tab[1874] -#define __pyx_n_u_TA_ROC __pyx_string_tab[1875] -#define __pyx_n_u_TA_ROCP __pyx_string_tab[1876] -#define __pyx_n_u_TA_ROCP_Clone __pyx_string_tab[1877] -#define __pyx_n_u_TA_ROCP_Open __pyx_string_tab[1878] -#define __pyx_n_u_TA_ROCP_OpenAndFill __pyx_string_tab[1879] -#define __pyx_n_u_TA_ROCP_Peek __pyx_string_tab[1880] -#define __pyx_n_u_TA_ROCP_Update __pyx_string_tab[1881] -#define __pyx_n_u_TA_ROCP_Value __pyx_string_tab[1882] -#define __pyx_n_u_TA_ROCR __pyx_string_tab[1883] -#define __pyx_n_u_TA_ROCR100 __pyx_string_tab[1884] -#define __pyx_n_u_TA_ROCR100_Clone __pyx_string_tab[1885] -#define __pyx_n_u_TA_ROCR100_Open __pyx_string_tab[1886] -#define __pyx_n_u_TA_ROCR100_OpenAndFill __pyx_string_tab[1887] -#define __pyx_n_u_TA_ROCR100_Peek __pyx_string_tab[1888] -#define __pyx_n_u_TA_ROCR100_Update __pyx_string_tab[1889] -#define __pyx_n_u_TA_ROCR100_Value __pyx_string_tab[1890] -#define __pyx_n_u_TA_ROCR_Clone __pyx_string_tab[1891] -#define __pyx_n_u_TA_ROCR_Open __pyx_string_tab[1892] -#define __pyx_n_u_TA_ROCR_OpenAndFill __pyx_string_tab[1893] -#define __pyx_n_u_TA_ROCR_Peek __pyx_string_tab[1894] -#define __pyx_n_u_TA_ROCR_Update __pyx_string_tab[1895] -#define __pyx_n_u_TA_ROCR_Value __pyx_string_tab[1896] -#define __pyx_n_u_TA_ROC_Clone __pyx_string_tab[1897] -#define __pyx_n_u_TA_ROC_Open __pyx_string_tab[1898] -#define __pyx_n_u_TA_ROC_OpenAndFill __pyx_string_tab[1899] -#define __pyx_n_u_TA_ROC_Peek __pyx_string_tab[1900] -#define __pyx_n_u_TA_ROC_Update __pyx_string_tab[1901] -#define __pyx_n_u_TA_ROC_Value __pyx_string_tab[1902] -#define __pyx_n_u_TA_RSI __pyx_string_tab[1903] -#define __pyx_n_u_TA_RSI_Clone __pyx_string_tab[1904] -#define __pyx_n_u_TA_RSI_Open __pyx_string_tab[1905] -#define __pyx_n_u_TA_RSI_OpenAndFill __pyx_string_tab[1906] -#define __pyx_n_u_TA_RSI_Peek __pyx_string_tab[1907] -#define __pyx_n_u_TA_RSI_Update __pyx_string_tab[1908] -#define __pyx_n_u_TA_RSI_Value __pyx_string_tab[1909] -#define __pyx_n_u_TA_RVI __pyx_string_tab[1910] -#define __pyx_n_u_TA_RVI_Clone __pyx_string_tab[1911] -#define __pyx_n_u_TA_RVI_Open __pyx_string_tab[1912] -#define __pyx_n_u_TA_RVI_OpenAndFill __pyx_string_tab[1913] -#define __pyx_n_u_TA_RVI_Peek __pyx_string_tab[1914] -#define __pyx_n_u_TA_RVI_Update __pyx_string_tab[1915] -#define __pyx_n_u_TA_RVI_Value __pyx_string_tab[1916] -#define __pyx_n_u_TA_RVOL __pyx_string_tab[1917] -#define __pyx_n_u_TA_RVOL_Clone __pyx_string_tab[1918] -#define __pyx_n_u_TA_RVOL_Open __pyx_string_tab[1919] -#define __pyx_n_u_TA_RVOL_OpenAndFill __pyx_string_tab[1920] -#define __pyx_n_u_TA_RVOL_Peek __pyx_string_tab[1921] -#define __pyx_n_u_TA_RVOL_Update __pyx_string_tab[1922] -#define __pyx_n_u_TA_RVOL_Value __pyx_string_tab[1923] -#define __pyx_n_u_TA_RestoreCandleDefaultSettings __pyx_string_tab[1924] -#define __pyx_n_u_TA_SAR __pyx_string_tab[1925] -#define __pyx_n_u_TA_SAREXT __pyx_string_tab[1926] -#define __pyx_n_u_TA_SAREXT_Clone __pyx_string_tab[1927] -#define __pyx_n_u_TA_SAREXT_Open __pyx_string_tab[1928] -#define __pyx_n_u_TA_SAREXT_OpenAndFill __pyx_string_tab[1929] -#define __pyx_n_u_TA_SAREXT_Peek __pyx_string_tab[1930] -#define __pyx_n_u_TA_SAREXT_Update __pyx_string_tab[1931] -#define __pyx_n_u_TA_SAREXT_Value __pyx_string_tab[1932] -#define __pyx_n_u_TA_SAR_Clone __pyx_string_tab[1933] -#define __pyx_n_u_TA_SAR_Open __pyx_string_tab[1934] -#define __pyx_n_u_TA_SAR_OpenAndFill __pyx_string_tab[1935] -#define __pyx_n_u_TA_SAR_Peek __pyx_string_tab[1936] -#define __pyx_n_u_TA_SAR_Update __pyx_string_tab[1937] -#define __pyx_n_u_TA_SAR_Value __pyx_string_tab[1938] -#define __pyx_n_u_TA_SIN __pyx_string_tab[1939] -#define __pyx_n_u_TA_SINH __pyx_string_tab[1940] -#define __pyx_n_u_TA_SINH_Clone __pyx_string_tab[1941] -#define __pyx_n_u_TA_SINH_Open __pyx_string_tab[1942] -#define __pyx_n_u_TA_SINH_OpenAndFill __pyx_string_tab[1943] -#define __pyx_n_u_TA_SINH_Peek __pyx_string_tab[1944] -#define __pyx_n_u_TA_SINH_Update __pyx_string_tab[1945] -#define __pyx_n_u_TA_SINH_Value __pyx_string_tab[1946] -#define __pyx_n_u_TA_SIN_Clone __pyx_string_tab[1947] -#define __pyx_n_u_TA_SIN_Open __pyx_string_tab[1948] -#define __pyx_n_u_TA_SIN_OpenAndFill __pyx_string_tab[1949] -#define __pyx_n_u_TA_SIN_Peek __pyx_string_tab[1950] -#define __pyx_n_u_TA_SIN_Update __pyx_string_tab[1951] -#define __pyx_n_u_TA_SIN_Value __pyx_string_tab[1952] -#define __pyx_n_u_TA_SMA __pyx_string_tab[1953] -#define __pyx_n_u_TA_SMA_Clone __pyx_string_tab[1954] -#define __pyx_n_u_TA_SMA_Open __pyx_string_tab[1955] -#define __pyx_n_u_TA_SMA_OpenAndFill __pyx_string_tab[1956] -#define __pyx_n_u_TA_SMA_Peek __pyx_string_tab[1957] -#define __pyx_n_u_TA_SMA_Update __pyx_string_tab[1958] -#define __pyx_n_u_TA_SMA_Value __pyx_string_tab[1959] -#define __pyx_n_u_TA_SMI __pyx_string_tab[1960] -#define __pyx_n_u_TA_SMI_Clone __pyx_string_tab[1961] -#define __pyx_n_u_TA_SMI_Open __pyx_string_tab[1962] -#define __pyx_n_u_TA_SMI_OpenAndFill __pyx_string_tab[1963] -#define __pyx_n_u_TA_SMI_Peek __pyx_string_tab[1964] -#define __pyx_n_u_TA_SMI_Update __pyx_string_tab[1965] -#define __pyx_n_u_TA_SMI_Value __pyx_string_tab[1966] -#define __pyx_n_u_TA_SQRT __pyx_string_tab[1967] -#define __pyx_n_u_TA_SQRT_Clone __pyx_string_tab[1968] -#define __pyx_n_u_TA_SQRT_Open __pyx_string_tab[1969] -#define __pyx_n_u_TA_SQRT_OpenAndFill __pyx_string_tab[1970] -#define __pyx_n_u_TA_SQRT_Peek __pyx_string_tab[1971] -#define __pyx_n_u_TA_SQRT_Update __pyx_string_tab[1972] -#define __pyx_n_u_TA_SQRT_Value __pyx_string_tab[1973] -#define __pyx_n_u_TA_STDDEV __pyx_string_tab[1974] -#define __pyx_n_u_TA_STDDEV_Clone __pyx_string_tab[1975] -#define __pyx_n_u_TA_STDDEV_Open __pyx_string_tab[1976] -#define __pyx_n_u_TA_STDDEV_OpenAndFill __pyx_string_tab[1977] -#define __pyx_n_u_TA_STDDEV_Peek __pyx_string_tab[1978] -#define __pyx_n_u_TA_STDDEV_Update __pyx_string_tab[1979] -#define __pyx_n_u_TA_STDDEV_Value __pyx_string_tab[1980] -#define __pyx_n_u_TA_STOCH __pyx_string_tab[1981] -#define __pyx_n_u_TA_STOCHF __pyx_string_tab[1982] -#define __pyx_n_u_TA_STOCHF_Clone __pyx_string_tab[1983] -#define __pyx_n_u_TA_STOCHF_Open __pyx_string_tab[1984] -#define __pyx_n_u_TA_STOCHF_OpenAndFill __pyx_string_tab[1985] -#define __pyx_n_u_TA_STOCHF_Peek __pyx_string_tab[1986] -#define __pyx_n_u_TA_STOCHF_Update __pyx_string_tab[1987] -#define __pyx_n_u_TA_STOCHF_Value __pyx_string_tab[1988] -#define __pyx_n_u_TA_STOCHRSI __pyx_string_tab[1989] -#define __pyx_n_u_TA_STOCHRSI_Clone __pyx_string_tab[1990] -#define __pyx_n_u_TA_STOCHRSI_Open __pyx_string_tab[1991] -#define __pyx_n_u_TA_STOCHRSI_OpenAndFill __pyx_string_tab[1992] -#define __pyx_n_u_TA_STOCHRSI_Peek __pyx_string_tab[1993] -#define __pyx_n_u_TA_STOCHRSI_Update __pyx_string_tab[1994] -#define __pyx_n_u_TA_STOCHRSI_Value __pyx_string_tab[1995] -#define __pyx_n_u_TA_STOCH_Clone __pyx_string_tab[1996] -#define __pyx_n_u_TA_STOCH_Open __pyx_string_tab[1997] -#define __pyx_n_u_TA_STOCH_OpenAndFill __pyx_string_tab[1998] -#define __pyx_n_u_TA_STOCH_Peek __pyx_string_tab[1999] -#define __pyx_n_u_TA_STOCH_Update __pyx_string_tab[2000] -#define __pyx_n_u_TA_STOCH_Value __pyx_string_tab[2001] -#define __pyx_n_u_TA_SUB __pyx_string_tab[2002] -#define __pyx_n_u_TA_SUB_Clone __pyx_string_tab[2003] -#define __pyx_n_u_TA_SUB_Open __pyx_string_tab[2004] -#define __pyx_n_u_TA_SUB_OpenAndFill __pyx_string_tab[2005] -#define __pyx_n_u_TA_SUB_Peek __pyx_string_tab[2006] -#define __pyx_n_u_TA_SUB_Update __pyx_string_tab[2007] -#define __pyx_n_u_TA_SUB_Value __pyx_string_tab[2008] -#define __pyx_n_u_TA_SUM __pyx_string_tab[2009] -#define __pyx_n_u_TA_SUM_Clone __pyx_string_tab[2010] -#define __pyx_n_u_TA_SUM_Open __pyx_string_tab[2011] -#define __pyx_n_u_TA_SUM_OpenAndFill __pyx_string_tab[2012] -#define __pyx_n_u_TA_SUM_Peek __pyx_string_tab[2013] -#define __pyx_n_u_TA_SUM_Update __pyx_string_tab[2014] -#define __pyx_n_u_TA_SUM_Value __pyx_string_tab[2015] -#define __pyx_n_u_TA_SUPERTREND __pyx_string_tab[2016] -#define __pyx_n_u_TA_SUPERTREND_Clone __pyx_string_tab[2017] -#define __pyx_n_u_TA_SUPERTREND_Open __pyx_string_tab[2018] -#define __pyx_n_u_TA_SUPERTREND_OpenAndFill __pyx_string_tab[2019] -#define __pyx_n_u_TA_SUPERTREND_Peek __pyx_string_tab[2020] -#define __pyx_n_u_TA_SUPERTREND_Update __pyx_string_tab[2021] -#define __pyx_n_u_TA_SUPERTREND_Value __pyx_string_tab[2022] -#define __pyx_n_u_TA_SetCandleSettings __pyx_string_tab[2023] -#define __pyx_n_u_TA_SetCompatibility __pyx_string_tab[2024] -#define __pyx_n_u_TA_SetOptInputParamInteger __pyx_string_tab[2025] -#define __pyx_n_u_TA_SetOptInputParamReal __pyx_string_tab[2026] -#define __pyx_n_u_TA_SetUnstablePeriod __pyx_string_tab[2027] -#define __pyx_n_u_TA_Shutdown __pyx_string_tab[2028] -#define __pyx_n_u_TA_T3 __pyx_string_tab[2029] -#define __pyx_n_u_TA_T3_Clone __pyx_string_tab[2030] -#define __pyx_n_u_TA_T3_Open __pyx_string_tab[2031] -#define __pyx_n_u_TA_T3_OpenAndFill __pyx_string_tab[2032] -#define __pyx_n_u_TA_T3_Peek __pyx_string_tab[2033] -#define __pyx_n_u_TA_T3_Update __pyx_string_tab[2034] -#define __pyx_n_u_TA_T3_Value __pyx_string_tab[2035] -#define __pyx_n_u_TA_TAN __pyx_string_tab[2036] -#define __pyx_n_u_TA_TANH __pyx_string_tab[2037] -#define __pyx_n_u_TA_TANH_Clone __pyx_string_tab[2038] -#define __pyx_n_u_TA_TANH_Open __pyx_string_tab[2039] -#define __pyx_n_u_TA_TANH_OpenAndFill __pyx_string_tab[2040] -#define __pyx_n_u_TA_TANH_Peek __pyx_string_tab[2041] -#define __pyx_n_u_TA_TANH_Update __pyx_string_tab[2042] -#define __pyx_n_u_TA_TANH_Value __pyx_string_tab[2043] -#define __pyx_n_u_TA_TAN_Clone __pyx_string_tab[2044] -#define __pyx_n_u_TA_TAN_Open __pyx_string_tab[2045] -#define __pyx_n_u_TA_TAN_OpenAndFill __pyx_string_tab[2046] -#define __pyx_n_u_TA_TAN_Peek __pyx_string_tab[2047] -#define __pyx_n_u_TA_TAN_Update __pyx_string_tab[2048] -#define __pyx_n_u_TA_TAN_Value __pyx_string_tab[2049] -#define __pyx_n_u_TA_TEMA __pyx_string_tab[2050] -#define __pyx_n_u_TA_TEMA_Clone __pyx_string_tab[2051] -#define __pyx_n_u_TA_TEMA_Open __pyx_string_tab[2052] -#define __pyx_n_u_TA_TEMA_OpenAndFill __pyx_string_tab[2053] -#define __pyx_n_u_TA_TEMA_Peek __pyx_string_tab[2054] -#define __pyx_n_u_TA_TEMA_Update __pyx_string_tab[2055] -#define __pyx_n_u_TA_TEMA_Value __pyx_string_tab[2056] -#define __pyx_n_u_TA_TRANGE __pyx_string_tab[2057] -#define __pyx_n_u_TA_TRANGE_Clone __pyx_string_tab[2058] -#define __pyx_n_u_TA_TRANGE_Open __pyx_string_tab[2059] -#define __pyx_n_u_TA_TRANGE_OpenAndFill __pyx_string_tab[2060] -#define __pyx_n_u_TA_TRANGE_Peek __pyx_string_tab[2061] -#define __pyx_n_u_TA_TRANGE_Update __pyx_string_tab[2062] -#define __pyx_n_u_TA_TRANGE_Value __pyx_string_tab[2063] -#define __pyx_n_u_TA_TRIMA __pyx_string_tab[2064] -#define __pyx_n_u_TA_TRIMA_Clone __pyx_string_tab[2065] -#define __pyx_n_u_TA_TRIMA_Open __pyx_string_tab[2066] -#define __pyx_n_u_TA_TRIMA_OpenAndFill __pyx_string_tab[2067] -#define __pyx_n_u_TA_TRIMA_Peek __pyx_string_tab[2068] -#define __pyx_n_u_TA_TRIMA_Update __pyx_string_tab[2069] -#define __pyx_n_u_TA_TRIMA_Value __pyx_string_tab[2070] -#define __pyx_n_u_TA_TRIX __pyx_string_tab[2071] -#define __pyx_n_u_TA_TRIX_Clone __pyx_string_tab[2072] -#define __pyx_n_u_TA_TRIX_Open __pyx_string_tab[2073] -#define __pyx_n_u_TA_TRIX_OpenAndFill __pyx_string_tab[2074] -#define __pyx_n_u_TA_TRIX_Peek __pyx_string_tab[2075] -#define __pyx_n_u_TA_TRIX_Update __pyx_string_tab[2076] -#define __pyx_n_u_TA_TRIX_Value __pyx_string_tab[2077] -#define __pyx_n_u_TA_TSF __pyx_string_tab[2078] -#define __pyx_n_u_TA_TSF_Clone __pyx_string_tab[2079] -#define __pyx_n_u_TA_TSF_Open __pyx_string_tab[2080] -#define __pyx_n_u_TA_TSF_OpenAndFill __pyx_string_tab[2081] -#define __pyx_n_u_TA_TSF_Peek __pyx_string_tab[2082] -#define __pyx_n_u_TA_TSF_Update __pyx_string_tab[2083] -#define __pyx_n_u_TA_TSF_Value __pyx_string_tab[2084] -#define __pyx_n_u_TA_TSI __pyx_string_tab[2085] -#define __pyx_n_u_TA_TSI_Clone __pyx_string_tab[2086] -#define __pyx_n_u_TA_TSI_Open __pyx_string_tab[2087] -#define __pyx_n_u_TA_TSI_OpenAndFill __pyx_string_tab[2088] -#define __pyx_n_u_TA_TSI_Peek __pyx_string_tab[2089] -#define __pyx_n_u_TA_TSI_Update __pyx_string_tab[2090] -#define __pyx_n_u_TA_TSI_Value __pyx_string_tab[2091] -#define __pyx_n_u_TA_TYPPRICE __pyx_string_tab[2092] -#define __pyx_n_u_TA_TYPPRICE_Clone __pyx_string_tab[2093] -#define __pyx_n_u_TA_TYPPRICE_Open __pyx_string_tab[2094] -#define __pyx_n_u_TA_TYPPRICE_OpenAndFill __pyx_string_tab[2095] -#define __pyx_n_u_TA_TYPPRICE_Peek __pyx_string_tab[2096] -#define __pyx_n_u_TA_TYPPRICE_Update __pyx_string_tab[2097] -#define __pyx_n_u_TA_TYPPRICE_Value __pyx_string_tab[2098] -#define __pyx_n_u_TA_ULTOSC __pyx_string_tab[2099] -#define __pyx_n_u_TA_ULTOSC_Clone __pyx_string_tab[2100] -#define __pyx_n_u_TA_ULTOSC_Open __pyx_string_tab[2101] -#define __pyx_n_u_TA_ULTOSC_OpenAndFill __pyx_string_tab[2102] -#define __pyx_n_u_TA_ULTOSC_Peek __pyx_string_tab[2103] -#define __pyx_n_u_TA_ULTOSC_Update __pyx_string_tab[2104] -#define __pyx_n_u_TA_ULTOSC_Value __pyx_string_tab[2105] -#define __pyx_n_u_TA_VAR __pyx_string_tab[2106] -#define __pyx_n_u_TA_VAR_Clone __pyx_string_tab[2107] -#define __pyx_n_u_TA_VAR_Open __pyx_string_tab[2108] -#define __pyx_n_u_TA_VAR_OpenAndFill __pyx_string_tab[2109] -#define __pyx_n_u_TA_VAR_Peek __pyx_string_tab[2110] -#define __pyx_n_u_TA_VAR_Update __pyx_string_tab[2111] -#define __pyx_n_u_TA_VAR_Value __pyx_string_tab[2112] -#define __pyx_n_u_TA_VHF __pyx_string_tab[2113] -#define __pyx_n_u_TA_VHF_Clone __pyx_string_tab[2114] -#define __pyx_n_u_TA_VHF_Open __pyx_string_tab[2115] -#define __pyx_n_u_TA_VHF_OpenAndFill __pyx_string_tab[2116] -#define __pyx_n_u_TA_VHF_Peek __pyx_string_tab[2117] -#define __pyx_n_u_TA_VHF_Update __pyx_string_tab[2118] -#define __pyx_n_u_TA_VHF_Value __pyx_string_tab[2119] -#define __pyx_n_u_TA_VORTEX __pyx_string_tab[2120] -#define __pyx_n_u_TA_VORTEX_Clone __pyx_string_tab[2121] -#define __pyx_n_u_TA_VORTEX_Open __pyx_string_tab[2122] -#define __pyx_n_u_TA_VORTEX_OpenAndFill __pyx_string_tab[2123] -#define __pyx_n_u_TA_VORTEX_Peek __pyx_string_tab[2124] -#define __pyx_n_u_TA_VORTEX_Update __pyx_string_tab[2125] -#define __pyx_n_u_TA_VORTEX_Value __pyx_string_tab[2126] -#define __pyx_n_u_TA_VWAP __pyx_string_tab[2127] -#define __pyx_n_u_TA_VWAP_Clone __pyx_string_tab[2128] -#define __pyx_n_u_TA_VWAP_Open __pyx_string_tab[2129] -#define __pyx_n_u_TA_VWAP_OpenAndFill __pyx_string_tab[2130] -#define __pyx_n_u_TA_VWAP_Peek __pyx_string_tab[2131] -#define __pyx_n_u_TA_VWAP_Update __pyx_string_tab[2132] -#define __pyx_n_u_TA_VWAP_Value __pyx_string_tab[2133] -#define __pyx_n_u_TA_VWMA __pyx_string_tab[2134] -#define __pyx_n_u_TA_VWMA_Clone __pyx_string_tab[2135] -#define __pyx_n_u_TA_VWMA_Open __pyx_string_tab[2136] -#define __pyx_n_u_TA_VWMA_OpenAndFill __pyx_string_tab[2137] -#define __pyx_n_u_TA_VWMA_Peek __pyx_string_tab[2138] -#define __pyx_n_u_TA_VWMA_Update __pyx_string_tab[2139] -#define __pyx_n_u_TA_VWMA_Value __pyx_string_tab[2140] -#define __pyx_n_u_TA_WAD __pyx_string_tab[2141] -#define __pyx_n_u_TA_WAD_Clone __pyx_string_tab[2142] -#define __pyx_n_u_TA_WAD_Open __pyx_string_tab[2143] -#define __pyx_n_u_TA_WAD_OpenAndFill __pyx_string_tab[2144] -#define __pyx_n_u_TA_WAD_Peek __pyx_string_tab[2145] -#define __pyx_n_u_TA_WAD_Update __pyx_string_tab[2146] -#define __pyx_n_u_TA_WAD_Value __pyx_string_tab[2147] -#define __pyx_n_u_TA_WCLPRICE __pyx_string_tab[2148] -#define __pyx_n_u_TA_WCLPRICE_Clone __pyx_string_tab[2149] -#define __pyx_n_u_TA_WCLPRICE_Open __pyx_string_tab[2150] -#define __pyx_n_u_TA_WCLPRICE_OpenAndFill __pyx_string_tab[2151] -#define __pyx_n_u_TA_WCLPRICE_Peek __pyx_string_tab[2152] -#define __pyx_n_u_TA_WCLPRICE_Update __pyx_string_tab[2153] -#define __pyx_n_u_TA_WCLPRICE_Value __pyx_string_tab[2154] -#define __pyx_n_u_TA_WILLR __pyx_string_tab[2155] -#define __pyx_n_u_TA_WILLR_Clone __pyx_string_tab[2156] -#define __pyx_n_u_TA_WILLR_Open __pyx_string_tab[2157] -#define __pyx_n_u_TA_WILLR_OpenAndFill __pyx_string_tab[2158] -#define __pyx_n_u_TA_WILLR_Peek __pyx_string_tab[2159] -#define __pyx_n_u_TA_WILLR_Update __pyx_string_tab[2160] -#define __pyx_n_u_TA_WILLR_Value __pyx_string_tab[2161] -#define __pyx_n_u_TA_WMA __pyx_string_tab[2162] -#define __pyx_n_u_TA_WMA_Clone __pyx_string_tab[2163] -#define __pyx_n_u_TA_WMA_Open __pyx_string_tab[2164] -#define __pyx_n_u_TA_WMA_OpenAndFill __pyx_string_tab[2165] -#define __pyx_n_u_TA_WMA_Peek __pyx_string_tab[2166] -#define __pyx_n_u_TA_WMA_Update __pyx_string_tab[2167] -#define __pyx_n_u_TA_WMA_Value __pyx_string_tab[2168] -#define __pyx_n_u_TA_ZLEMA __pyx_string_tab[2169] -#define __pyx_n_u_TA_ZLEMA_Clone __pyx_string_tab[2170] -#define __pyx_n_u_TA_ZLEMA_Open __pyx_string_tab[2171] -#define __pyx_n_u_TA_ZLEMA_OpenAndFill __pyx_string_tab[2172] -#define __pyx_n_u_TA_ZLEMA_Peek __pyx_string_tab[2173] -#define __pyx_n_u_TA_ZLEMA_Update __pyx_string_tab[2174] -#define __pyx_n_u_TA_ZLEMA_Value __pyx_string_tab[2175] -#define __pyx_n_u_TEMA __pyx_string_tab[2176] -#define __pyx_n_u_TEMA_Stream __pyx_string_tab[2177] -#define __pyx_n_u_TEMA_Stream_open_and_fill __pyx_string_tab[2178] -#define __pyx_n_u_TRANGE __pyx_string_tab[2179] -#define __pyx_n_u_TRANGE_Stream __pyx_string_tab[2180] -#define __pyx_n_u_TRANGE_Stream_open_and_fill __pyx_string_tab[2181] -#define __pyx_n_u_TRIMA __pyx_string_tab[2182] -#define __pyx_n_u_TRIMA_Stream __pyx_string_tab[2183] -#define __pyx_n_u_TRIMA_Stream_open_and_fill __pyx_string_tab[2184] -#define __pyx_n_u_TRIX __pyx_string_tab[2185] -#define __pyx_n_u_TRIX_Stream __pyx_string_tab[2186] -#define __pyx_n_u_TRIX_Stream_open_and_fill __pyx_string_tab[2187] -#define __pyx_n_u_TSF __pyx_string_tab[2188] -#define __pyx_n_u_TSF_Stream __pyx_string_tab[2189] -#define __pyx_n_u_TSF_Stream_open_and_fill __pyx_string_tab[2190] -#define __pyx_n_u_TSI __pyx_string_tab[2191] -#define __pyx_n_u_TSI_Stream __pyx_string_tab[2192] -#define __pyx_n_u_TSI_Stream_open_and_fill __pyx_string_tab[2193] -#define __pyx_n_u_TYPPRICE __pyx_string_tab[2194] -#define __pyx_n_u_TYPPRICE_Stream __pyx_string_tab[2195] -#define __pyx_n_u_TYPPRICE_Stream_open_and_fill __pyx_string_tab[2196] -#define __pyx_n_u_ULTOSC __pyx_string_tab[2197] -#define __pyx_n_u_ULTOSC_Stream __pyx_string_tab[2198] -#define __pyx_n_u_ULTOSC_Stream_open_and_fill __pyx_string_tab[2199] -#define __pyx_n_u_VAR __pyx_string_tab[2200] -#define __pyx_n_u_VAR_Stream __pyx_string_tab[2201] -#define __pyx_n_u_VAR_Stream_open_and_fill __pyx_string_tab[2202] -#define __pyx_n_u_VHF __pyx_string_tab[2203] -#define __pyx_n_u_VHF_Stream __pyx_string_tab[2204] -#define __pyx_n_u_VHF_Stream_open_and_fill __pyx_string_tab[2205] -#define __pyx_n_u_VORTEX __pyx_string_tab[2206] -#define __pyx_n_u_VORTEX_Stream __pyx_string_tab[2207] -#define __pyx_n_u_VORTEX_Stream_open_and_fill __pyx_string_tab[2208] -#define __pyx_n_u_VWAP __pyx_string_tab[2209] -#define __pyx_n_u_VWAP_Stream __pyx_string_tab[2210] -#define __pyx_n_u_VWAP_Stream_open_and_fill __pyx_string_tab[2211] -#define __pyx_n_u_VWMA __pyx_string_tab[2212] -#define __pyx_n_u_VWMA_Stream __pyx_string_tab[2213] -#define __pyx_n_u_VWMA_Stream_open_and_fill __pyx_string_tab[2214] -#define __pyx_n_u_WAD __pyx_string_tab[2215] -#define __pyx_n_u_WAD_Stream __pyx_string_tab[2216] -#define __pyx_n_u_WAD_Stream_open_and_fill __pyx_string_tab[2217] -#define __pyx_n_u_WCLPRICE __pyx_string_tab[2218] -#define __pyx_n_u_WCLPRICE_Stream __pyx_string_tab[2219] -#define __pyx_n_u_WCLPRICE_Stream_open_and_fill __pyx_string_tab[2220] -#define __pyx_n_u_WILLR __pyx_string_tab[2221] -#define __pyx_n_u_WILLR_Stream __pyx_string_tab[2222] -#define __pyx_n_u_WILLR_Stream_open_and_fill __pyx_string_tab[2223] -#define __pyx_n_u_WMA __pyx_string_tab[2224] -#define __pyx_n_u_WMA_Stream __pyx_string_tab[2225] -#define __pyx_n_u_WMA_Stream_open_and_fill __pyx_string_tab[2226] -#define __pyx_n_u_ZLEMA __pyx_string_tab[2227] -#define __pyx_n_u_ZLEMA_Stream __pyx_string_tab[2228] -#define __pyx_n_u_ZLEMA_Stream_open_and_fill __pyx_string_tab[2229] -#define __pyx_n_u_ARRAY_TYPES __pyx_string_tab[2230] -#define __pyx_n_u_Function__call_function __pyx_string_tab[2231] -#define __pyx_n_u_Function__check_opt_input_value __pyx_string_tab[2232] -#define __pyx_n_u_Function__get_opt_input_value __pyx_string_tab[2233] -#define __pyx_n_u_Function__input_price_series_na __pyx_string_tab[2234] -#define __pyx_n_u_Function__local __pyx_string_tab[2235] -#define __pyx_n_u_Function__localdata __pyx_string_tab[2236] -#define __pyx_n_u_Function__name __pyx_string_tab[2237] -#define __pyx_n_u_Function__namestr __pyx_string_tab[2238] -#define __pyx_n_u_INPUT_ARRAYS_TYPES __pyx_string_tab[2239] -#define __pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS __pyx_string_tab[2240] -#define __pyx_n_u_PANDAS_DATAFRAME __pyx_string_tab[2241] -#define __pyx_n_u_PANDAS_SERIES __pyx_string_tab[2242] -#define __pyx_n_u_POLARS_DATAFRAME __pyx_string_tab[2243] -#define __pyx_n_u_POLARS_SERIES __pyx_string_tab[2244] -#define __pyx_n_u_TA_ReadLease __pyx_string_tab[2245] -#define __pyx_n_u_TA_ReadLease___enter __pyx_string_tab[2246] -#define __pyx_n_u_TA_ReadLease___exit __pyx_string_tab[2247] -#define __pyx_n_u_TA_ReadLease___reduce_cython __pyx_string_tab[2248] -#define __pyx_n_u_TA_ReadLease___setstate_cython __pyx_string_tab[2249] -#define __pyx_n_u_TA_WriteLease __pyx_string_tab[2250] -#define __pyx_n_u_TA_WriteLease___enter __pyx_string_tab[2251] -#define __pyx_n_u_TA_WriteLease___exit __pyx_string_tab[2252] -#define __pyx_n_u_TA_WriteLease___reduce_cython __pyx_string_tab[2253] -#define __pyx_n_u_TA_WriteLease___setstate_cython __pyx_string_tab[2254] -#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[2255] -#define __pyx_n_u_TA_FUNCTION_NAMES __pyx_string_tab[2256] -#define __pyx_n_u_all __pyx_string_tab[2257] -#define __pyx_n_u_annotate __pyx_string_tab[2258] -#define __pyx_n_u_call __pyx_string_tab[2259] -#define __pyx_n_u_call_function __pyx_string_tab[2260] -#define __pyx_n_u_check_opt_input_value __pyx_string_tab[2261] -#define __pyx_n_u_class_getitem __pyx_string_tab[2262] -#define __pyx_n_u_copy_2 __pyx_string_tab[2263] -#define __pyx_n_u_deepcopy __pyx_string_tab[2264] -#define __pyx_n_u_dict __pyx_string_tab[2265] -#define __pyx_n_u_doc __pyx_string_tab[2266] -#define __pyx_n_u_enter __pyx_string_tab[2267] -#define __pyx_n_u_exit __pyx_string_tab[2268] -#define __pyx_n_u_func __pyx_string_tab[2269] -#define __pyx_n_u_get_flags __pyx_string_tab[2270] -#define __pyx_n_u_get_opt_input_value __pyx_string_tab[2271] -#define __pyx_n_u_getitem __pyx_string_tab[2272] -#define __pyx_n_u_getstate __pyx_string_tab[2273] -#define __pyx_n_u_init __pyx_string_tab[2274] -#define __pyx_n_u_input_price_series_names_2 __pyx_string_tab[2275] -#define __pyx_n_u_local_2 __pyx_string_tab[2276] -#define __pyx_n_u_main __pyx_string_tab[2277] -#define __pyx_n_u_metaclass __pyx_string_tab[2278] -#define __pyx_n_u_module __pyx_string_tab[2279] -#define __pyx_n_u_mro_entries __pyx_string_tab[2280] -#define __pyx_n_u_name_2 __pyx_string_tab[2281] -#define __pyx_n_u_new __pyx_string_tab[2282] -#define __pyx_n_u_prepare __pyx_string_tab[2283] -#define __pyx_n_u_pyx_checksum __pyx_string_tab[2284] -#define __pyx_n_u_pyx_result __pyx_string_tab[2285] -#define __pyx_n_u_pyx_state __pyx_string_tab[2286] -#define __pyx_n_u_pyx_type __pyx_string_tab[2287] -#define __pyx_n_u_pyx_unpickle__TA_ReadLease __pyx_string_tab[2288] -#define __pyx_n_u_pyx_unpickle__TA_WriteLease __pyx_string_tab[2289] -#define __pyx_n_u_pyx_vtable __pyx_string_tab[2290] -#define __pyx_n_u_qualname __pyx_string_tab[2291] -#define __pyx_n_u_reduce __pyx_string_tab[2292] -#define __pyx_n_u_reduce_cython __pyx_string_tab[2293] -#define __pyx_n_u_reduce_ex __pyx_string_tab[2294] -#define __pyx_n_u_repr __pyx_string_tab[2295] -#define __pyx_n_u_set_name __pyx_string_tab[2296] -#define __pyx_n_u_setstate __pyx_string_tab[2297] -#define __pyx_n_u_setstate_cython __pyx_string_tab[2298] -#define __pyx_n_u_str __pyx_string_tab[2299] -#define __pyx_n_u_ta_version __pyx_string_tab[2300] -#define __pyx_n_u_test __pyx_string_tab[2301] -#define __pyx_n_u_unicode __pyx_string_tab[2302] -#define __pyx_n_u_dict_2 __pyx_string_tab[2303] -#define __pyx_n_u_get_defaults_and_docs __pyx_string_tab[2304] -#define __pyx_n_u_is_coroutine __pyx_string_tab[2305] -#define __pyx_n_u_lookup __pyx_string_tab[2306] -#define __pyx_n_u_ta_check_success __pyx_string_tab[2307] -#define __pyx_n_u_ta_func_unst_id __pyx_string_tab[2308] -#define __pyx_n_u_ta_func_unst_ids __pyx_string_tab[2309] -#define __pyx_n_u_ta_func_unst_retired __pyx_string_tab[2310] -#define __pyx_n_u_ta_getFuncInfo __pyx_string_tab[2311] -#define __pyx_n_u_ta_getFuncTable __pyx_string_tab[2312] -#define __pyx_n_u_ta_getGroupTable __pyx_string_tab[2313] -#define __pyx_n_u_ta_getInputParameterInfo __pyx_string_tab[2314] -#define __pyx_n_u_ta_getOptInputParameterInfo __pyx_string_tab[2315] -#define __pyx_n_u_ta_getOutputParameterInfo __pyx_string_tab[2316] -#define __pyx_n_u_ta_get_compatibility __pyx_string_tab[2317] -#define __pyx_n_u_ta_get_unstable_period __pyx_string_tab[2318] -#define __pyx_n_u_ta_initialize __pyx_string_tab[2319] -#define __pyx_n_u_ta_restore_candle_default_setti __pyx_string_tab[2320] -#define __pyx_n_u_ta_set_candle_settings __pyx_string_tab[2321] -#define __pyx_n_u_ta_set_compatibility __pyx_string_tab[2322] -#define __pyx_n_u_ta_set_unstable_period __pyx_string_tab[2323] -#define __pyx_n_u_ta_shutdown __pyx_string_tab[2324] -#define __pyx_n_u_a_close __pyx_string_tab[2325] -#define __pyx_n_u_a_high __pyx_string_tab[2326] -#define __pyx_n_u_a_low __pyx_string_tab[2327] -#define __pyx_n_u_a_open __pyx_string_tab[2328] -#define __pyx_n_u_a_periods __pyx_string_tab[2329] -#define __pyx_n_u_a_real __pyx_string_tab[2330] -#define __pyx_n_u_a_real0 __pyx_string_tab[2331] -#define __pyx_n_u_a_real1 __pyx_string_tab[2332] -#define __pyx_n_u_a_volume __pyx_string_tab[2333] -#define __pyx_n_u_acceleration __pyx_string_tab[2334] -#define __pyx_n_u_accelerationinitlong __pyx_string_tab[2335] -#define __pyx_n_u_accelerationinitshort __pyx_string_tab[2336] -#define __pyx_n_u_accelerationlong __pyx_string_tab[2337] -#define __pyx_n_u_accelerationmaxlong __pyx_string_tab[2338] -#define __pyx_n_u_accelerationmaxshort __pyx_string_tab[2339] -#define __pyx_n_u_accelerationshort __pyx_string_tab[2340] -#define __pyx_n_u_acquired __pyx_string_tab[2341] -#define __pyx_n_u_append __pyx_string_tab[2342] -#define __pyx_n_u_arg __pyx_string_tab[2343] -#define __pyx_n_u_args __pyx_string_tab[2344] -#define __pyx_n_u_arrays __pyx_string_tab[2345] -#define __pyx_n_u_ascii __pyx_string_tab[2346] -#define __pyx_n_u_astype __pyx_string_tab[2347] -#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[2348] -#define __pyx_n_u_at_exit __pyx_string_tab[2349] -#define __pyx_n_u_atrperiod __pyx_string_tab[2350] -#define __pyx_n_u_avgperiod __pyx_string_tab[2351] -#define __pyx_n_u_b __pyx_string_tab[2352] -#define __pyx_n_u_begidx __pyx_string_tab[2353] -#define __pyx_n_u_bit __pyx_string_tab[2354] -#define __pyx_n_u_bytes2str __pyx_string_tab[2355] -#define __pyx_n_u_c_period __pyx_string_tab[2356] -#define __pyx_n_u_c_value __pyx_string_tab[2357] -#define __pyx_n_u_candlestick __pyx_string_tab[2358] -#define __pyx_n_u_cline_in_traceback __pyx_string_tab[2359] -#define __pyx_n_u_clone __pyx_string_tab[2360] -#define __pyx_n_u_close __pyx_string_tab[2361] -#define __pyx_n_u_collections __pyx_string_tab[2362] -#define __pyx_n_u_column_stack __pyx_string_tab[2363] -#define __pyx_n_u_columns __pyx_string_tab[2364] -#define __pyx_n_u_copy __pyx_string_tab[2365] -#define __pyx_n_u_d __pyx_string_tab[2366] -#define __pyx_n_u_decode __pyx_string_tab[2367] -#define __pyx_n_u_default_value __pyx_string_tab[2368] -#define __pyx_n_u_defaults __pyx_string_tab[2369] -#define __pyx_n_u_description __pyx_string_tab[2370] -#define __pyx_n_u_display_name __pyx_string_tab[2371] -#define __pyx_n_u_docs __pyx_string_tab[2372] -#define __pyx_n_u_documentation __pyx_string_tab[2373] -#define __pyx_n_u_empty __pyx_string_tab[2374] -#define __pyx_n_u_endidx __pyx_string_tab[2375] -#define __pyx_n_u_endswith __pyx_string_tab[2376] -#define __pyx_n_u_enumerate __pyx_string_tab[2377] -#define __pyx_n_u_factor __pyx_string_tab[2378] -#define __pyx_n_u_fastd_matype __pyx_string_tab[2379] -#define __pyx_n_u_fastd_period __pyx_string_tab[2380] -#define __pyx_n_u_fastk_period __pyx_string_tab[2381] -#define __pyx_n_u_fastlimit __pyx_string_tab[2382] -#define __pyx_n_u_fastmatype __pyx_string_tab[2383] -#define __pyx_n_u_fastperiod __pyx_string_tab[2384] -#define __pyx_n_u_firstperiod __pyx_string_tab[2385] -#define __pyx_n_u_flag __pyx_string_tab[2386] -#define __pyx_n_u_flags __pyx_string_tab[2387] -#define __pyx_n_u_flags_lookup_dict __pyx_string_tab[2388] -#define __pyx_n_u_func_args __pyx_string_tab[2389] -#define __pyx_n_u_func_info __pyx_string_tab[2390] -#define __pyx_n_u_func_line __pyx_string_tab[2391] -#define __pyx_n_u_func_object __pyx_string_tab[2392] -#define __pyx_n_u_function_flags __pyx_string_tab[2393] -#define __pyx_n_u_function_name __pyx_string_tab[2394] -#define __pyx_n_u_functions __pyx_string_tab[2395] -#define __pyx_n_u_get_input_arrays __pyx_string_tab[2396] -#define __pyx_n_u_get_input_names __pyx_string_tab[2397] -#define __pyx_n_u_get_parameters __pyx_string_tab[2398] -#define __pyx_n_u_group __pyx_string_tab[2399] -#define __pyx_n_u_groups __pyx_string_tab[2400] -#define __pyx_n_u_handle __pyx_string_tab[2401] -#define __pyx_n_u_help __pyx_string_tab[2402] -#define __pyx_n_u_high __pyx_string_tab[2403] -#define __pyx_n_u_historylen __pyx_string_tab[2404] -#define __pyx_n_u_holder __pyx_string_tab[2405] -#define __pyx_n_u_i __pyx_string_tab[2406] -#define __pyx_n_u_id __pyx_string_tab[2407] -#define __pyx_n_u_idx __pyx_string_tab[2408] -#define __pyx_n_u_import_error __pyx_string_tab[2409] -#define __pyx_n_u_in __pyx_string_tab[2410] -#define __pyx_n_u_index __pyx_string_tab[2411] -#define __pyx_n_u_info __pyx_string_tab[2412] -#define __pyx_n_u_input_arrays __pyx_string_tab[2413] -#define __pyx_n_u_input_name __pyx_string_tab[2414] -#define __pyx_n_u_input_names __pyx_string_tab[2415] -#define __pyx_n_u_input_price_series_names __pyx_string_tab[2416] -#define __pyx_n_u_integer __pyx_string_tab[2417] -#define __pyx_n_u_is_empty __pyx_string_tab[2418] -#define __pyx_n_u_items __pyx_string_tab[2419] -#define __pyx_n_u_key __pyx_string_tab[2420] -#define __pyx_n_u_keys __pyx_string_tab[2421] -#define __pyx_n_u_kwargs __pyx_string_tab[2422] -#define __pyx_n_u_leftbars __pyx_string_tab[2423] -#define __pyx_n_u_length __pyx_string_tab[2424] -#define __pyx_n_u_local __pyx_string_tab[2425] -#define __pyx_n_u_lookback __pyx_string_tab[2426] -#define __pyx_n_u_low __pyx_string_tab[2427] -#define __pyx_n_u_lower __pyx_string_tab[2428] -#define __pyx_n_u_matype __pyx_string_tab[2429] -#define __pyx_n_u_maximum __pyx_string_tab[2430] -#define __pyx_n_u_maxperiod __pyx_string_tab[2431] -#define __pyx_n_u_memo __pyx_string_tab[2432] -#define __pyx_n_u_minperiod __pyx_string_tab[2433] -#define __pyx_n_u_missing __pyx_string_tab[2434] -#define __pyx_n_u_missing_keys __pyx_string_tab[2435] -#define __pyx_n_u_module_2 __pyx_string_tab[2436] -#define __pyx_n_u_msg __pyx_string_tab[2437] -#define __pyx_n_u_multiplier __pyx_string_tab[2438] -#define __pyx_n_u_n __pyx_string_tab[2439] -#define __pyx_n_u_name __pyx_string_tab[2440] -#define __pyx_n_u_namedtuple __pyx_string_tab[2441] -#define __pyx_n_u_nan __pyx_string_tab[2442] -#define __pyx_n_u_nbdev __pyx_string_tab[2443] -#define __pyx_n_u_nbdevdn __pyx_string_tab[2444] -#define __pyx_n_u_nbdevup __pyx_string_tab[2445] -#define __pyx_n_u_no_existing_input_arrays __pyx_string_tab[2446] -#define __pyx_n_u_num_inputs __pyx_string_tab[2447] -#define __pyx_n_u_num_opt_inputs __pyx_string_tab[2448] -#define __pyx_n_u_num_outputs __pyx_string_tab[2449] -#define __pyx_n_u_numpy __pyx_string_tab[2450] -#define __pyx_n_u_object __pyx_string_tab[2451] -#define __pyx_n_u_offsetonreverse __pyx_string_tab[2452] -#define __pyx_n_u_open __pyx_string_tab[2453] -#define __pyx_n_u_openInterest __pyx_string_tab[2454] -#define __pyx_n_u_open_and_fill __pyx_string_tab[2455] -#define __pyx_n_u_optIn __pyx_string_tab[2456] -#define __pyx_n_u_opt_input __pyx_string_tab[2457] -#define __pyx_n_u_opt_input_values __pyx_string_tab[2458] -#define __pyx_n_u_opt_inputs __pyx_string_tab[2459] -#define __pyx_n_u_ordereddict __pyx_string_tab[2460] -#define __pyx_n_u_out __pyx_string_tab[2461] -#define __pyx_n_u_outaroondown __pyx_string_tab[2462] -#define __pyx_n_u_outaroonup __pyx_string_tab[2463] -#define __pyx_n_u_outbearpower __pyx_string_tab[2464] -#define __pyx_n_u_outbegidx __pyx_string_tab[2465] -#define __pyx_n_u_outbullpower __pyx_string_tab[2466] -#define __pyx_n_u_outd __pyx_string_tab[2467] -#define __pyx_n_u_outfama __pyx_string_tab[2468] -#define __pyx_n_u_outfastd __pyx_string_tab[2469] -#define __pyx_n_u_outfastk __pyx_string_tab[2470] -#define __pyx_n_u_outhaclose __pyx_string_tab[2471] -#define __pyx_n_u_outhahigh __pyx_string_tab[2472] -#define __pyx_n_u_outhalow __pyx_string_tab[2473] -#define __pyx_n_u_outhaopen __pyx_string_tab[2474] -#define __pyx_n_u_outinphase __pyx_string_tab[2475] -#define __pyx_n_u_outinteger __pyx_string_tab[2476] -#define __pyx_n_u_outinteger_data __pyx_string_tab[2477] -#define __pyx_n_u_outj __pyx_string_tab[2478] -#define __pyx_n_u_outk __pyx_string_tab[2479] -#define __pyx_n_u_outleadsine __pyx_string_tab[2480] -#define __pyx_n_u_outlowerband __pyx_string_tab[2481] -#define __pyx_n_u_outmacd __pyx_string_tab[2482] -#define __pyx_n_u_outmacdhist __pyx_string_tab[2483] -#define __pyx_n_u_outmacdsignal __pyx_string_tab[2484] -#define __pyx_n_u_outmama __pyx_string_tab[2485] -#define __pyx_n_u_outmax __pyx_string_tab[2486] -#define __pyx_n_u_outmaxidx __pyx_string_tab[2487] -#define __pyx_n_u_outmaxidx_data __pyx_string_tab[2488] -#define __pyx_n_u_outmiddleband __pyx_string_tab[2489] -#define __pyx_n_u_outmin __pyx_string_tab[2490] -#define __pyx_n_u_outminidx __pyx_string_tab[2491] -#define __pyx_n_u_outminidx_data __pyx_string_tab[2492] -#define __pyx_n_u_outminusvi __pyx_string_tab[2493] -#define __pyx_n_u_outnbelement __pyx_string_tab[2494] -#define __pyx_n_u_outplusvi __pyx_string_tab[2495] -#define __pyx_n_u_output __pyx_string_tab[2496] -#define __pyx_n_u_output_flags __pyx_string_tab[2497] -#define __pyx_n_u_output_name __pyx_string_tab[2498] -#define __pyx_n_u_output_names __pyx_string_tab[2499] -#define __pyx_n_u_outputs __pyx_string_tab[2500] -#define __pyx_n_u_outputs_valid __pyx_string_tab[2501] -#define __pyx_n_u_outquadrature __pyx_string_tab[2502] -#define __pyx_n_u_outreal __pyx_string_tab[2503] -#define __pyx_n_u_outreallowerband __pyx_string_tab[2504] -#define __pyx_n_u_outrealmiddleband __pyx_string_tab[2505] -#define __pyx_n_u_outrealupperband __pyx_string_tab[2506] -#define __pyx_n_u_outsine __pyx_string_tab[2507] -#define __pyx_n_u_outslowd __pyx_string_tab[2508] -#define __pyx_n_u_outslowk __pyx_string_tab[2509] -#define __pyx_n_u_outsmi __pyx_string_tab[2510] -#define __pyx_n_u_outsmisignal __pyx_string_tab[2511] -#define __pyx_n_u_outsupertrend __pyx_string_tab[2512] -#define __pyx_n_u_outswinghigh __pyx_string_tab[2513] -#define __pyx_n_u_outswinglow __pyx_string_tab[2514] -#define __pyx_n_u_outtrend __pyx_string_tab[2515] -#define __pyx_n_u_outupperband __pyx_string_tab[2516] -#define __pyx_n_u_pandas __pyx_string_tab[2517] -#define __pyx_n_u_param __pyx_string_tab[2518] -#define __pyx_n_u_param_name __pyx_string_tab[2519] -#define __pyx_n_u_parameters __pyx_string_tab[2520] -#define __pyx_n_u_params __pyx_string_tab[2521] -#define __pyx_n_u_penetration __pyx_string_tab[2522] -#define __pyx_n_u_percentile __pyx_string_tab[2523] -#define __pyx_n_u_period __pyx_string_tab[2524] -#define __pyx_n_u_periods __pyx_string_tab[2525] -#define __pyx_n_u_polars __pyx_string_tab[2526] -#define __pyx_n_u_pop __pyx_string_tab[2527] -#define __pyx_n_u_price __pyx_string_tab[2528] -#define __pyx_n_u_price0 __pyx_string_tab[2529] -#define __pyx_n_u_price1 __pyx_string_tab[2530] -#define __pyx_n_u_price_series __pyx_string_tab[2531] -#define __pyx_n_u_price_series_name_values __pyx_string_tab[2532] -#define __pyx_n_u_prices __pyx_string_tab[2533] -#define __pyx_n_u_property __pyx_string_tab[2534] -#define __pyx_n_u_rangetype __pyx_string_tab[2535] -#define __pyx_n_u_real __pyx_string_tab[2536] -#define __pyx_n_u_real0 __pyx_string_tab[2537] -#define __pyx_n_u_real1 __pyx_string_tab[2538] -#define __pyx_n_u_replace __pyx_string_tab[2539] -#define __pyx_n_u_results __pyx_string_tab[2540] -#define __pyx_n_u_ret __pyx_string_tab[2541] -#define __pyx_n_u_retCode __pyx_string_tab[2542] -#define __pyx_n_u_ret_code __pyx_string_tab[2543] -#define __pyx_n_u_rightbars __pyx_string_tab[2544] -#define __pyx_n_u_roc1period __pyx_string_tab[2545] -#define __pyx_n_u_roc2period __pyx_string_tab[2546] -#define __pyx_n_u_rocperiod __pyx_string_tab[2547] -#define __pyx_n_u_run __pyx_string_tab[2548] -#define __pyx_n_u_s __pyx_string_tab[2549] -#define __pyx_n_u_schema __pyx_string_tab[2550] -#define __pyx_n_u_secondperiod __pyx_string_tab[2551] -#define __pyx_n_u_self __pyx_string_tab[2552] -#define __pyx_n_u_series __pyx_string_tab[2553] -#define __pyx_n_u_set_function_args __pyx_string_tab[2554] -#define __pyx_n_u_set_input_arrays __pyx_string_tab[2555] -#define __pyx_n_u_set_input_names __pyx_string_tab[2556] -#define __pyx_n_u_set_parameters __pyx_string_tab[2557] -#define __pyx_n_u_setdefault __pyx_string_tab[2558] -#define __pyx_n_u_settingtype __pyx_string_tab[2559] -#define __pyx_n_u_signalmatype __pyx_string_tab[2560] -#define __pyx_n_u_signalperiod __pyx_string_tab[2561] -#define __pyx_n_u_skip_first __pyx_string_tab[2562] -#define __pyx_n_u_slowd_matype __pyx_string_tab[2563] -#define __pyx_n_u_slowd_period __pyx_string_tab[2564] -#define __pyx_n_u_slowk_matype __pyx_string_tab[2565] -#define __pyx_n_u_slowk_period __pyx_string_tab[2566] -#define __pyx_n_u_slowlimit __pyx_string_tab[2567] -#define __pyx_n_u_slowmatype __pyx_string_tab[2568] -#define __pyx_n_u_slowperiod __pyx_string_tab[2569] -#define __pyx_n_u_stacklevel __pyx_string_tab[2570] -#define __pyx_n_u_startvalue __pyx_string_tab[2571] -#define __pyx_n_u_state __pyx_string_tab[2572] -#define __pyx_n_u_staticmethod __pyx_string_tab[2573] -#define __pyx_n_u_stddevperiod __pyx_string_tab[2574] -#define __pyx_n_u_str2bytes __pyx_string_tab[2575] -#define __pyx_n_u_stream __pyx_string_tab[2576] -#define __pyx_n_u_sys __pyx_string_tab[2577] -#define __pyx_n_u_table __pyx_string_tab[2578] -#define __pyx_n_u_talib__ta_lib __pyx_string_tab[2579] -#define __pyx_n_u_threading __pyx_string_tab[2580] -#define __pyx_n_u_timeStamp __pyx_string_tab[2581] -#define __pyx_n_u_timeperiod __pyx_string_tab[2582] -#define __pyx_n_u_timeperiod1 __pyx_string_tab[2583] -#define __pyx_n_u_timeperiod2 __pyx_string_tab[2584] -#define __pyx_n_u_timeperiod3 __pyx_string_tab[2585] -#define __pyx_n_u_to_numpy __pyx_string_tab[2586] -#define __pyx_n_u_type_2 __pyx_string_tab[2587] -#define __pyx_n_u_type __pyx_string_tab[2588] -#define __pyx_n_u_unst_id __pyx_string_tab[2589] -#define __pyx_n_u_update __pyx_string_tab[2590] -#define __pyx_n_u_update_info __pyx_string_tab[2591] -#define __pyx_n_u_updates __pyx_string_tab[2592] -#define __pyx_n_u_upper __pyx_string_tab[2593] -#define __pyx_n_u_use_setstate __pyx_string_tab[2594] -#define __pyx_n_u_value __pyx_string_tab[2595] -#define __pyx_n_u_values __pyx_string_tab[2596] -#define __pyx_n_u_version __pyx_string_tab[2597] -#define __pyx_n_u_vfactor __pyx_string_tab[2598] -#define __pyx_n_u_volume __pyx_string_tab[2599] -#define __pyx_n_u_warn __pyx_string_tab[2600] -#define __pyx_n_u_warnings __pyx_string_tab[2601] -#define __pyx_n_u_wmaperiod __pyx_string_tab[2602] -#define __pyx_kp_b_iso88591_q_4q_nA_Q_q_a __pyx_string_tab[2603] -#define __pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ __pyx_string_tab[2604] -#define __pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q __pyx_string_tab[2605] -#define __pyx_kp_b_iso88591_1F __pyx_string_tab[2606] -#define __pyx_kp_b_iso88591_AV1 __pyx_string_tab[2607] -#define __pyx_kp_b_iso88591_q_q_aq_Q_Q __pyx_string_tab[2608] -#define __pyx_kp_b_iso88591_q_0_kQR_7_q0_a_1 __pyx_string_tab[2609] -#define __pyx_kp_b_iso88591_q_0_kQR_7_0_1B_PQ_1 __pyx_string_tab[2610] -#define __pyx_kp_b_iso88591_a_1_1 __pyx_string_tab[2611] -#define __pyx_kp_b_iso88591_q_q_ST_Q_a __pyx_string_tab[2612] -#define __pyx_kp_b_iso88591_q_1_Q_9 __pyx_string_tab[2613] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A __pyx_string_tab[2614] -#define __pyx_kp_b_iso88591_1_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2615] -#define __pyx_kp_b_iso88591_1_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2 __pyx_string_tab[2616] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32 __pyx_string_tab[2617] -#define __pyx_kp_b_iso88591_A_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2 __pyx_string_tab[2618] -#define __pyx_kp_b_iso88591_A_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2619] -#define __pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_axz_Q_U_7_A_A_w __pyx_string_tab[2620] -#define __pyx_kp_b_iso88591_Q_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2621] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B __pyx_string_tab[2622] -#define __pyx_kp_b_iso88591_UUV2_aq_T_q_wc_D_9_TARRSSVVW_ax __pyx_string_tab[2623] -#define __pyx_kp_b_iso88591_a_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A __pyx_string_tab[2624] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5R __pyx_string_tab[2625] -#define __pyx_kp_b_iso88591_VVW_V6_wc_A_axz_q_U_7_A_A_we_32 __pyx_string_tab[2626] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_6b __pyx_string_tab[2627] -#define __pyx_kp_b_iso88591_V6_wc_A_axz_q_U_7_A_A_we_4Ba_1H __pyx_string_tab[2628] -#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w_3 __pyx_string_tab[2629] -#define __pyx_kp_b_iso88591_q_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2630] -#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_wc_D_9_TARRSSVVW __pyx_string_tab[2631] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_7r __pyx_string_tab[2632] -#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_TARRSSVVW_axz_Q_U __pyx_string_tab[2633] -#define __pyx_kp_b_iso88591_WWX_aq_T_q_wc_A_axz_Q_U_7_A_A_w __pyx_string_tab[2634] -#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_wc_D_9_TARR __pyx_string_tab[2635] -#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_8 __pyx_string_tab[2636] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_8 __pyx_string_tab[2637] -#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_wc_D_9_Q_axz_Q_U __pyx_string_tab[2638] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_9 __pyx_string_tab[2639] -#define __pyx_kp_b_iso88591_C1_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2640] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2Q __pyx_string_tab[2641] -#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_1Cq_axz_Q_U_7_A_A __pyx_string_tab[2642] -#define __pyx_kp_b_iso88591_01_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2643] -#define __pyx_kp_b_iso88591_45_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2644] -#define __pyx_kp_b_iso88591_UUV_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[2645] -#define __pyx_kp_b_iso88591_UUmmn_aq_Qa_6_wc_A_axz_XZs_U_7 __pyx_string_tab[2646] -#define __pyx_kp_b_iso88591_aq_Qa_6_wc_A_axz_XZs_U_7_A_A_we __pyx_string_tab[2647] -#define __pyx_kp_b_iso88591_VVW_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[2648] -#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[2649] -#define __pyx_kp_b_iso88591_A_aq_Kq_6_wc_A_axz_XZuA_U_7_A_A __pyx_string_tab[2650] -#define __pyx_kp_b_iso88591_A_aq_Qa_6_wc_D_9_Q_axz_XZs_U_7 __pyx_string_tab[2651] -#define __pyx_kp_b_iso88591_XXY_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[2652] -#define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[2653] -#define __pyx_kp_b_iso88591_BC_aq_Qa_6_wc_A_axz_XZs_U_7_A_A __pyx_string_tab[2654] -#define __pyx_kp_b_iso88591_BC_Kq_7_wc_A_axz_hj_a_U_7_A_A_w __pyx_string_tab[2655] -#define __pyx_kp_b_iso88591_BC_aq_6_wc_A_axz_XZvQ_U_7_A_A_w __pyx_string_tab[2656] -#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A __pyx_string_tab[2657] -#define __pyx_kp_b_iso88591_BXXY_aq_Qa_6_wc_Qc_1Cq_axz_XZs __pyx_string_tab[2658] -#define __pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_axz_XZs_U_7_A_A __pyx_string_tab[2659] -#define __pyx_kp_b_iso88591_CD_aq_Kq_6_wc_A_axz_XZuA_U_7_A __pyx_string_tab[2660] -#define __pyx_kp_b_iso88591_CD_aq_Qa_6_wc_D_9_TARRSSVVW_axz __pyx_string_tab[2661] -#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_wc_A_axz_XZwa_U_7 __pyx_string_tab[2662] -#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A __pyx_string_tab[2663] -#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_wc_A_axz_XZs_R __pyx_string_tab[2664] -#define __pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_wc_D __pyx_string_tab[2665] -#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a __pyx_string_tab[2666] -#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_D_9_Q_axz_XZs __pyx_string_tab[2667] -#define __pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_w __pyx_string_tab[2668] -#define __pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_wc __pyx_string_tab[2669] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab __pyx_string_tab[2670] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_5 __pyx_string_tab[2671] -#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_wc __pyx_string_tab[2672] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_Q_axz_XZs_R __pyx_string_tab[2673] -#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_wc_A_axz __pyx_string_tab[2674] -#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_wc_D_9_Q __pyx_string_tab[2675] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a_2 __pyx_string_tab[2676] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a __pyx_string_tab[2677] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_TARRSSVVW __pyx_string_tab[2678] -#define __pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_wc_D_as_axz_X __pyx_string_tab[2679] -#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R __pyx_string_tab[2680] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_13 __pyx_string_tab[2681] -#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[2682] -#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[2683] -#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[2684] -#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[2685] -#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_wc_A_axz __pyx_string_tab[2686] -#define __pyx_kp_b_iso88591_aq_xs_q_a_Qa_1 __pyx_string_tab[2687] -#define __pyx_kp_b_iso88591_aq_xs_q_q_q_A_Q_a __pyx_string_tab[2688] -#define __pyx_kp_b_iso88591_q_l_vWE_Q_q_q_q_d_7_WA_d_7_Q __pyx_string_tab[2689] -#define __pyx_kp_b_iso88591_q_l_vWE_Q_q_q_q_t1G_gQ_t1G_a __pyx_string_tab[2690] -#define __pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1 __pyx_string_tab[2691] -#define __pyx_kp_b_iso88591_Qa_a_Q_a_4q_a_Qd_c_a_Qd_s_4q __pyx_string_tab[2692] -#define __pyx_kp_b_iso88591_Qa_a_2_85_Q_2_9AT_4q_1G6_wc_t81 __pyx_string_tab[2693] -#define __pyx_kp_b_iso88591_Qa_a_31HE_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[2694] -#define __pyx_kp_b_iso88591_Qa_a_5Qhe1A_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[2695] -#define __pyx_kp_b_iso88591_a_1G1A_q_V1E_q_WAQ_aq_Q_2_1 __pyx_string_tab[2696] -#define __pyx_kp_b_iso88591_a_AQa_0_Q_V1E_gQfAU_q_Q_31_1 __pyx_string_tab[2697] -#define __pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q __pyx_string_tab[2698] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R_aa __pyx_string_tab[2699] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R_aa_2 __pyx_string_tab[2700] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_4 __pyx_string_tab[2701] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_2 __pyx_string_tab[2702] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_3 __pyx_string_tab[2703] -#define __pyx_kp_b_iso88591_aq_Qa_6_a_wc_A_axz_XZs_R_bbc_U __pyx_string_tab[2704] -#define __pyx_kp_b_iso88591_aq_Qa_6_wc_A_axz_XZs_U_7_A_A_we_2 __pyx_string_tab[2705] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_11 __pyx_string_tab[2706] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8 __pyx_string_tab[2707] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_3 __pyx_string_tab[2708] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4 __pyx_string_tab[2709] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8 __pyx_string_tab[2710] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_12 __pyx_string_tab[2711] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2 __pyx_string_tab[2712] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7 __pyx_string_tab[2713] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_5 __pyx_string_tab[2714] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6 __pyx_string_tab[2715] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9 __pyx_string_tab[2716] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_10 __pyx_string_tab[2717] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZt8S_2 __pyx_string_tab[2718] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZt8S __pyx_string_tab[2719] -#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_A __pyx_string_tab[2720] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1H_2 __pyx_string_tab[2721] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_31 __pyx_string_tab[2722] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A __pyx_string_tab[2723] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5Q __pyx_string_tab[2724] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_6a __pyx_string_tab[2725] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1H __pyx_string_tab[2726] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1 __pyx_string_tab[2727] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A_2 __pyx_string_tab[2728] -#define __pyx_kp_b_iso88591_Kq_7_wc_A_axz_hj_a_U_7_A_A_we_3 __pyx_string_tab[2729] -#define __pyx_kp_b_iso88591_aq_6_wc_A_axz_XZvQ_U_7_A_A_we_3 __pyx_string_tab[2730] -#define __pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w __pyx_string_tab[2731] -#define __pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w_2 __pyx_string_tab[2732] -#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w_2 __pyx_string_tab[2733] -#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w __pyx_string_tab[2734] -#define __pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_wc_D_9_TARRS __pyx_string_tab[2735] -#define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81 __pyx_string_tab[2736] -#define __pyx_kp_b_iso88591_A_iq_46d_5 __pyx_string_tab[2737] -#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[2738] -#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[2739] -#define __pyx_kp_b_iso88591_A_t5 __pyx_string_tab[2740] -#define __pyx_kp_b_iso88591_A_t81A __pyx_string_tab[2741] -#define __pyx_kp_b_iso88591_A_uAS __pyx_string_tab[2742] -#define __pyx_kp_b_iso88591_A_uBd __pyx_string_tab[2743] -#define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[2744] -#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[2745] -#define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[2746] -#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_gU_axq_wgQa_uA_a __pyx_string_tab[2747] -#define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A __pyx_string_tab[2748] -#define __pyx_kp_b_iso88591_A __pyx_string_tab[2749] -#define __pyx_kp_b_iso88591_A_2 __pyx_string_tab[2750] -#define __pyx_kp_b_iso88591_A_3 __pyx_string_tab[2751] -#define __pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_81A_7_1 __pyx_string_tab[2752] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_7_aq_q_1AXY __pyx_string_tab[2753] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q __pyx_string_tab[2754] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2 __pyx_string_tab[2755] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq_2 __pyx_string_tab[2756] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_1_q_q_bPX __pyx_string_tab[2757] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1A_q_0 __pyx_string_tab[2758] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1_2 __pyx_string_tab[2759] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1 __pyx_string_tab[2760] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_1_7xq_7_Qa_q __pyx_string_tab[2761] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_q_4_2 __pyx_string_tab[2762] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_2_C81A_7_C1A __pyx_string_tab[2763] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_6Q_11K8STTU_7 __pyx_string_tab[2764] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_1_axq_axq __pyx_string_tab[2765] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_axq __pyx_string_tab[2766] -#define __pyx_kp_b_iso88591_A_a_aq_Q_aq_axq_oQha_A_7_a_1_q_1 __pyx_string_tab[2767] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_A __pyx_string_tab[2768] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_q_q_q_bPX __pyx_string_tab[2769] -#define __pyx_kp_b_iso88591_A_B_aq_Q_aq_axq_oQha_A_7_a_1_q_1 __pyx_string_tab[2770] -#define __pyx_kp_b_iso88591_A_BBTTkk_Y_Y_Z_aq_Q_aq_axq_oQha __pyx_string_tab[2771] -#define __pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_Q_81A_7 __pyx_string_tab[2772] -#define __pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_M_7_y __pyx_string_tab[2773] -#define __pyx_kp_b_iso88591_A_BB_aq_Q_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[2774] -#define __pyx_kp_b_iso88591_A_DA_aq_Q_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[2775] -#define __pyx_kp_b_iso88591_A_DD_vvw_aq_Q_aq_axq_oQha_oXQa_7 __pyx_string_tab[2776] -#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_A_9_7_a_1 __pyx_string_tab[2777] -#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[2778] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1A_q_Qh __pyx_string_tab[2779] -#define __pyx_kp_b_iso88591_A_Q_aq_axq_oQha_a_XQa_7_8_q_Qaxy __pyx_string_tab[2780] -#define __pyx_kp_b_iso88591_A_DDWWX_Q_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[2781] -#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[2782] -#define __pyx_kp_b_iso88591_A_DA_aq_Qa_XQ_aq_axq_oQha_81A_7 __pyx_string_tab[2783] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_Q_81A_7 __pyx_string_tab[2784] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_81A_7_1 __pyx_string_tab[2785] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7 __pyx_string_tab[2786] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_q_xq_7 __pyx_string_tab[2787] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7_2 __pyx_string_tab[2788] -#define __pyx_kp_b_iso88591_A0Fa_aq_Qa_XQ_aq_axq_oQha_Q_81A __pyx_string_tab[2789] -#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_A_7_a __pyx_string_tab[2790] -#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_q_xq_7 __pyx_string_tab[2791] -#define __pyx_kp_b_iso88591_A0GG_a_aq_Qa_XQ_aq_axq_oQha_A_7 __pyx_string_tab[2792] -#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_Q_81A_7 __pyx_string_tab[2793] -#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_M_7_1_q __pyx_string_tab[2794] -#define __pyx_kp_b_iso88591_A34_aq_XQ_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[2795] -#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[2796] -#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_M_7_1_q_q __pyx_string_tab[2797] -#define __pyx_kp_b_iso88591_A3II_aq_M_XQ_aq_axq_oQha_a_XQa_7 __pyx_string_tab[2798] -#define __pyx_kp_b_iso88591_A3QQt_u_T_T_v_v_Z_Z_z_z_aq_Qa_XQ __pyx_string_tab[2799] -#define __pyx_kp_b_iso88591_A45_q_Ya_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[2800] -#define __pyx_kp_b_iso88591_A5J_aq_Qa_XQ_aq_axq_oQha_Q_81A_7 __pyx_string_tab[2801] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_A_7 __pyx_string_tab[2802] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81 __pyx_string_tab[2803] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_a_XQ __pyx_string_tab[2804] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_q_xq __pyx_string_tab[2805] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_81A __pyx_string_tab[2806] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_oXQa_2 __pyx_string_tab[2807] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81_2 __pyx_string_tab[2808] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_M_7 __pyx_string_tab[2809] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_oXQa __pyx_string_tab[2810] -#define __pyx_kp_b_iso88591_A7MMbbc_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2811] -#define __pyx_kp_b_iso88591_A7NNee_aq_Qa_q_XWA_aq_axq_oQha_Q __pyx_string_tab[2812] -#define __pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_A __pyx_string_tab[2813] -#define __pyx_kp_b_iso88591_A8PPhhi_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2814] -#define __pyx_kp_b_iso88591_A9RRkkl_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2815] -#define __pyx_kp_b_iso88591_A9RRkk_Y_Y_Z_aq_Qa_q_XWA_aq_axq __pyx_string_tab[2816] -#define __pyx_kp_b_iso88591_A9RRk_l_A_A_Z_Z_aq_Qa_q_XWA_aq_a __pyx_string_tab[2817] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_Q_81A __pyx_string_tab[2818] -#define __pyx_kp_b_iso88591_A_VVW_aq_Qa_q_XWIQ_aq_axq_oQha_q __pyx_string_tab[2819] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_5 __pyx_string_tab[2820] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4 __pyx_string_tab[2821] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha __pyx_string_tab[2822] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_2 __pyx_string_tab[2823] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3 __pyx_string_tab[2824] -#define __pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1 __pyx_string_tab[2825] -#define __pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T __pyx_string_tab[2826] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_7_a_q_1AXYf __pyx_string_tab[2827] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q_2 __pyx_string_tab[2828] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q __pyx_string_tab[2829] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq __pyx_string_tab[2830] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_q_q_bPXXd __pyx_string_tab[2831] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_9_7_a_q_31A __pyx_string_tab[2832] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_q_4 __pyx_string_tab[2833] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_q_5Qa __pyx_string_tab[2834] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_q_5Qa_2 __pyx_string_tab[2835] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1_q_1HA __pyx_string_tab[2836] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_1_7xq_7_Q_81 __pyx_string_tab[2837] -#define __pyx_kp_b_iso88591_A_aq_Qa_XQ_aq_axq_oQha_oXQa_7_A __pyx_string_tab[2838] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_Q_81A __pyx_string_tab[2839] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_M_7_q __pyx_string_tab[2840] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_oXQa_7 __pyx_string_tab[2841] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_A_7_a __pyx_string_tab[2842] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_a_XQa __pyx_string_tab[2843] -#define __pyx_kp_b_iso88591_A_aq_Qa_XWA_aq_axq_oQha_oXQa_7_A __pyx_string_tab[2844] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q __pyx_string_tab[2845] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_81 __pyx_string_tab[2846] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_oX __pyx_string_tab[2847] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1 __pyx_string_tab[2848] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A __pyx_string_tab[2849] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_2 __pyx_string_tab[2850] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a __pyx_string_tab[2851] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_0q __pyx_string_tab[2852] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2 __pyx_string_tab[2853] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2 __pyx_string_tab[2854] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_3 __pyx_string_tab[2855] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41 __pyx_string_tab[2856] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A __pyx_string_tab[2857] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_6Q __pyx_string_tab[2858] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A_2 __pyx_string_tab[2859] -#define __pyx_kp_b_iso88591_A_aq_XQ_aq_axq_oQha_Q_81A_7_7q_q __pyx_string_tab[2860] -#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[2861] -#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_a_XQa_7_8_q __pyx_string_tab[2862] -#define __pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_Q_81A_7_7q_q __pyx_string_tab[2863] -#define __pyx_kp_b_iso88591_A_a_4q_aq __pyx_string_tab[2864] -#define __pyx_kp_b_iso88591_A_A_WA_5_q_5_V1_5_U __pyx_string_tab[2865] -#define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[2866] -#define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[2867] -#define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[2868] -#define __pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S __pyx_string_tab[2869] -#define __pyx_kp_b_iso88591_A_d_q_4z_q_aq_q __pyx_string_tab[2870] -#define __pyx_kp_b_iso88591_A_t85 __pyx_string_tab[2871] -#define __pyx_kp_b_iso88591_A_t85_Q_2 __pyx_string_tab[2872] -#define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[2873] -#define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[2874] -#define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[2875] -#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_WE_5_q_E_a_s __pyx_string_tab[2876] -#define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[2877] -#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_WA_d_Q_d_1_q_s_A __pyx_string_tab[2878] -#define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[2879] -#define __pyx_kp_b_iso88591_t1_1_l_1_1_l_QoQ_a __pyx_string_tab[2880] -#define __pyx_kp_b_iso88591_Q_A_1_G7_gYj_a_d_2_7_G9A_AV1Kq __pyx_string_tab[2881] -#define __pyx_float_0_2 __pyx_number_tab[0] -#define __pyx_float_0_3 __pyx_number_tab[1] -#define __pyx_float_0_5 __pyx_number_tab[2] -#define __pyx_float_3_0 __pyx_number_tab[3] -#define __pyx_float_0_02 __pyx_number_tab[4] -#define __pyx_float_neg_4e37 __pyx_number_tab[5] -#define __pyx_float_50_0 __pyx_number_tab[6] -#define __pyx_int_0 __pyx_number_tab[7] -#define __pyx_int_neg_1 __pyx_number_tab[8] -#define __pyx_int_1 __pyx_number_tab[9] -#define __pyx_int_2 __pyx_number_tab[10] -#define __pyx_int_3 __pyx_number_tab[11] -#define __pyx_int_4 __pyx_number_tab[12] -#define __pyx_int_8 __pyx_number_tab[13] -#define __pyx_int_12 __pyx_number_tab[14] -#define __pyx_int_13 __pyx_number_tab[15] -#define __pyx_int_14 __pyx_number_tab[16] -#define __pyx_int_16 __pyx_number_tab[17] -#define __pyx_int_32 __pyx_number_tab[18] -#define __pyx_int_64 __pyx_number_tab[19] -#define __pyx_int_128 __pyx_number_tab[20] -#define __pyx_int_256 __pyx_number_tab[21] -#define __pyx_int_512 __pyx_number_tab[22] -#define __pyx_int_1024 __pyx_number_tab[23] -#define __pyx_int_2048 __pyx_number_tab[24] -#define __pyx_int_4096 __pyx_number_tab[25] -#define __pyx_int_8192 __pyx_number_tab[26] -#define __pyx_int_16384 __pyx_number_tab[27] -#define __pyx_int_32768 __pyx_number_tab[28] -#define __pyx_int_16777216 __pyx_number_tab[29] -#define __pyx_int_33554432 __pyx_number_tab[30] -#define __pyx_int_67108864 __pyx_number_tab[31] -#define __pyx_int_134217728 __pyx_number_tab[32] -#define __pyx_int_238750788 __pyx_number_tab[33] -#define __pyx_int_268435456 __pyx_number_tab[34] -#define __pyx_int_536870912 __pyx_number_tab[35] -#define __pyx_int_1073741824 __pyx_number_tab[36] -#define __pyx_int_neg_2147483648 __pyx_number_tab[37] +#define __pyx_kp_u_Arnaud_Legoux_Moving_Average __pyx_string_tab[33] +#define __pyx_kp_u_Bad_Object_TA_BAD_OBJECT __pyx_string_tab[34] +#define __pyx_kp_u_Bad_Parameter_TA_BAD_PARAM __pyx_string_tab[35] +#define __pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut __pyx_string_tab[36] +#define __pyx_kp_u_Cannot_mix_polars_and_pandas __pyx_string_tab[37] +#define __pyx_kp_u_Confirmation_Pattern_200_this_ba __pyx_string_tab[38] +#define __pyx_kp_u_Dashed_Line __pyx_string_tab[39] +#define __pyx_kp_u_Dotted_Line __pyx_string_tab[40] +#define __pyx_kp_u_Double_Exponential_Moving_Averag __pyx_string_tab[41] +#define __pyx_kp_u_Exponential_Moving_Average __pyx_string_tab[42] +#define __pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F __pyx_string_tab[43] +#define __pyx_kp_u_Function_has_a_streaming_API __pyx_string_tab[44] +#define __pyx_kp_u_Function_has_an_unstable_period __pyx_string_tab[45] +#define __pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU __pyx_string_tab[46] +#define __pyx_kp_u_Hull_Moving_Average __pyx_string_tab[47] +#define __pyx_kp_u_Input_Not_All_Initialized_TA_INP __pyx_string_tab[48] +#define __pyx_kp_u_Input_must_be_positive __pyx_string_tab[49] +#define __pyx_kp_u_Inputs __pyx_string_tab[50] +#define __pyx_kp_u_Insufficient_History_TA_INSUFFIC __pyx_string_tab[51] +#define __pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR __pyx_string_tab[52] +#define __pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE __pyx_string_tab[53] +#define __pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS __pyx_string_tab[54] +#define __pyx_kp_u_Invalid_Parameter_Function_TA_IN __pyx_string_tab[55] +#define __pyx_kp_u_Invalid_Parameter_Holder_TA_INVA __pyx_string_tab[56] +#define __pyx_kp_u_Invalid_Parameter_Holder_Type_TA __pyx_string_tab[57] +#define __pyx_kp_u_Invalid_parameter_value_for __pyx_string_tab[58] +#define __pyx_kp_u_Kaufman_Adaptive_Moving_Average __pyx_string_tab[59] +#define __pyx_kp_u_Library_Not_Initialized_TA_LIB_N __pyx_string_tab[60] +#define __pyx_kp_u_MESA_Adaptive_Moving_Average __pyx_string_tab[61] +#define __pyx_kp_u_MFI_s_unstable_period_was_retire __pyx_string_tab[62] +#define __pyx_kp_u_No_Moving_Average_identity __pyx_string_tab[63] +#define __pyx_kp_u_None __pyx_string_tab[64] +#define __pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED __pyx_string_tab[65] +#define __pyx_kp_u_Not_enough_history_to_open_a_str __pyx_string_tab[66] +#define __pyx_kp_u_Not_enough_price_arguments_expec __pyx_string_tab[67] +#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[68] +#define __pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF __pyx_string_tab[69] +#define __pyx_kp_u_Out_of_Range_Start_Index_TA_OUT __pyx_string_tab[70] +#define __pyx_kp_u_Output_Not_All_Initialized_TA_OU __pyx_string_tab[71] +#define __pyx_kp_u_Output_can_be_NaN_or_infinite __pyx_string_tab[72] +#define __pyx_kp_u_Output_can_be_negative __pyx_string_tab[73] +#define __pyx_kp_u_Output_can_be_positive __pyx_string_tab[74] +#define __pyx_kp_u_Output_can_be_zero __pyx_string_tab[75] +#define __pyx_kp_u_Output_is_a_candlestick __pyx_string_tab[76] +#define __pyx_kp_u_Output_is_display_shifted __pyx_string_tab[77] +#define __pyx_kp_u_Output_is_optional_nullable __pyx_string_tab[78] +#define __pyx_kp_u_Output_is_over_volume __pyx_string_tab[79] +#define __pyx_kp_u_Output_is_path_dependent __pyx_string_tab[80] +#define __pyx_kp_u_Output_scale_same_as_input __pyx_string_tab[81] +#define __pyx_kp_u_Outputs __pyx_string_tab[82] +#define __pyx_kp_u_Parameters __pyx_string_tab[83] +#define __pyx_kp_u_Pattern_Bool __pyx_string_tab[84] +#define __pyx_kp_u_STOCHRSI_has_no_unstable_period __pyx_string_tab[85] +#define __pyx_kp_u_Simple_Moving_Average __pyx_string_tab[86] +#define __pyx_kp_u_TA_Lib_is_not_initialized_or_a_s __pyx_string_tab[87] +#define __pyx_kp_u_The_Function_s_Own_Default_Movin __pyx_string_tab[88] +#define __pyx_kp_u_Too_many_price_arguments_expecte __pyx_string_tab[89] +#define __pyx_kp_u_Triangular_Moving_Average __pyx_string_tab[90] +#define __pyx_kp_u_Triple_Exponential_Moving_Averag __pyx_string_tab[91] +#define __pyx_kp_u_Triple_Generalized_Double_Expone __pyx_string_tab[92] +#define __pyx_kp_u_Unknown_Error __pyx_string_tab[93] +#define __pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR __pyx_string_tab[94] +#define __pyx_kp_u_Uses_a_transcendental_math_funct __pyx_string_tab[95] +#define __pyx_kp_u_Values_represent_a_lower_limit __pyx_string_tab[96] +#define __pyx_kp_u_Values_represent_an_upper_limit __pyx_string_tab[97] +#define __pyx_kp_u_Variable_Index_Dynamic_Average __pyx_string_tab[98] +#define __pyx_kp_u_Weak_Pattern_80_a_weaker_form_of __pyx_string_tab[99] +#define __pyx_kp_u_Weighted_Moving_Average __pyx_string_tab[100] +#define __pyx_kp_u_Wilder_s_Smoothed_Moving_Average __pyx_string_tab[101] +#define __pyx_kp_u_Zero_Lag_Exponential_Moving_Aver __pyx_string_tab[102] +#define __pyx_kp_u__9 __pyx_string_tab[103] +#define __pyx_kp_u_input_arrays_2 __pyx_string_tab[104] +#define __pyx_kp_u__11 __pyx_string_tab[105] +#define __pyx_kp_u_add_note __pyx_string_tab[106] +#define __pyx_kp_u_begidx_nbelement __pyx_string_tab[107] +#define __pyx_kp_u_cannot_change_TA_Lib_settings_or __pyx_string_tab[108] +#define __pyx_kp_u_cannot_pickle_s_a_stream_handle __pyx_string_tab[109] +#define __pyx_kp_u_cannot_shut_down_TA_Lib_while_ca __pyx_string_tab[110] +#define __pyx_kp_u_disable __pyx_string_tab[111] +#define __pyx_kp_u_enable __pyx_string_tab[112] +#define __pyx_kp_u_gc __pyx_string_tab[113] +#define __pyx_kp_u_input_array_has_wrong_dimensions __pyx_string_tab[114] +#define __pyx_kp_u_input_array_lengths_are_differen __pyx_string_tab[115] +#define __pyx_kp_u_input_array_type_is_not_double __pyx_string_tab[116] +#define __pyx_kp_u_input_must_be_a_numpy_array_or_a __pyx_string_tab[117] +#define __pyx_kp_u_input_arrays_parameter_missing_r __pyx_string_tab[118] +#define __pyx_kp_u_integer_values_are_100_0_or_100 __pyx_string_tab[119] +#define __pyx_kp_u_isenabled __pyx_string_tab[120] +#define __pyx_kp_u_no_history_the_input_array_is_em __pyx_string_tab[121] +#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[122] +#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[123] +#define __pyx_kp_u_talib_collections __pyx_string_tab[124] +#define __pyx_kp_u_talib_numpy __pyx_string_tab[125] +#define __pyx_kp_u_talib_ordereddict __pyx_string_tab[126] +#define __pyx_kp_u_talib_pandas __pyx_string_tab[127] +#define __pyx_kp_u_talib_polars __pyx_string_tab[128] +#define __pyx_kp_u_talib_sys __pyx_string_tab[129] +#define __pyx_kp_u_talib_threading __pyx_string_tab[130] +#define __pyx_kp_u_talib_warnings __pyx_string_tab[131] +#define __pyx_kp_u_talib__abstract_pxi __pyx_string_tab[132] +#define __pyx_kp_u_talib__common_pxi __pyx_string_tab[133] +#define __pyx_kp_u_talib__func_pxi __pyx_string_tab[134] +#define __pyx_kp_u_talib__stream_pxi __pyx_string_tab[135] +#define __pyx_kp_u_too_many_input_arrays __pyx_string_tab[136] +#define __pyx_kp_u_unstable_period __pyx_string_tab[137] +#define __pyx_n_u_AC __pyx_string_tab[138] +#define __pyx_n_u_ACCBANDS __pyx_string_tab[139] +#define __pyx_n_u_ACCBANDS_Stream __pyx_string_tab[140] +#define __pyx_n_u_ACCBANDS_Stream_open_and_fill __pyx_string_tab[141] +#define __pyx_n_u_ACOS __pyx_string_tab[142] +#define __pyx_n_u_ACOS_Stream __pyx_string_tab[143] +#define __pyx_n_u_ACOS_Stream_open_and_fill __pyx_string_tab[144] +#define __pyx_n_u_AC_Stream __pyx_string_tab[145] +#define __pyx_n_u_AC_Stream_open_and_fill __pyx_string_tab[146] +#define __pyx_n_u_AD __pyx_string_tab[147] +#define __pyx_n_u_ADD __pyx_string_tab[148] +#define __pyx_n_u_ADD_Stream __pyx_string_tab[149] +#define __pyx_n_u_ADD_Stream_open_and_fill __pyx_string_tab[150] +#define __pyx_n_u_ADOSC __pyx_string_tab[151] +#define __pyx_n_u_ADOSC_Stream __pyx_string_tab[152] +#define __pyx_n_u_ADOSC_Stream_open_and_fill __pyx_string_tab[153] +#define __pyx_n_u_ADR __pyx_string_tab[154] +#define __pyx_n_u_ADR_Stream __pyx_string_tab[155] +#define __pyx_n_u_ADR_Stream_open_and_fill __pyx_string_tab[156] +#define __pyx_n_u_ADX __pyx_string_tab[157] +#define __pyx_n_u_ADXR __pyx_string_tab[158] +#define __pyx_n_u_ADXR_Stream __pyx_string_tab[159] +#define __pyx_n_u_ADXR_Stream_open_and_fill __pyx_string_tab[160] +#define __pyx_n_u_ADX_Stream __pyx_string_tab[161] +#define __pyx_n_u_ADX_Stream_open_and_fill __pyx_string_tab[162] +#define __pyx_n_u_AD_Stream __pyx_string_tab[163] +#define __pyx_n_u_AD_Stream_open_and_fill __pyx_string_tab[164] +#define __pyx_n_u_ALL __pyx_string_tab[165] +#define __pyx_n_u_ALMA __pyx_string_tab[166] +#define __pyx_n_u_ALMA_Stream __pyx_string_tab[167] +#define __pyx_n_u_ALMA_Stream_open_and_fill __pyx_string_tab[168] +#define __pyx_n_u_AO __pyx_string_tab[169] +#define __pyx_n_u_AO_Stream __pyx_string_tab[170] +#define __pyx_n_u_AO_Stream_open_and_fill __pyx_string_tab[171] +#define __pyx_n_u_APO __pyx_string_tab[172] +#define __pyx_n_u_APO_Stream __pyx_string_tab[173] +#define __pyx_n_u_APO_Stream_open_and_fill __pyx_string_tab[174] +#define __pyx_n_u_AROON __pyx_string_tab[175] +#define __pyx_n_u_AROONOSC __pyx_string_tab[176] +#define __pyx_n_u_AROONOSC_Stream __pyx_string_tab[177] +#define __pyx_n_u_AROONOSC_Stream_open_and_fill __pyx_string_tab[178] +#define __pyx_n_u_AROON_Stream __pyx_string_tab[179] +#define __pyx_n_u_AROON_Stream_open_and_fill __pyx_string_tab[180] +#define __pyx_n_u_ASI __pyx_string_tab[181] +#define __pyx_n_u_ASIN __pyx_string_tab[182] +#define __pyx_n_u_ASIN_Stream __pyx_string_tab[183] +#define __pyx_n_u_ASIN_Stream_open_and_fill __pyx_string_tab[184] +#define __pyx_n_u_ASI_Stream __pyx_string_tab[185] +#define __pyx_n_u_ASI_Stream_open_and_fill __pyx_string_tab[186] +#define __pyx_n_u_ATAN __pyx_string_tab[187] +#define __pyx_n_u_ATAN_Stream __pyx_string_tab[188] +#define __pyx_n_u_ATAN_Stream_open_and_fill __pyx_string_tab[189] +#define __pyx_n_u_ATR __pyx_string_tab[190] +#define __pyx_n_u_ATR_Stream __pyx_string_tab[191] +#define __pyx_n_u_ATR_Stream_open_and_fill __pyx_string_tab[192] +#define __pyx_n_u_AVGDEV __pyx_string_tab[193] +#define __pyx_n_u_AVGDEV_Stream __pyx_string_tab[194] +#define __pyx_n_u_AVGDEV_Stream_open_and_fill __pyx_string_tab[195] +#define __pyx_n_u_AVGPRICE __pyx_string_tab[196] +#define __pyx_n_u_AVGPRICE_Stream __pyx_string_tab[197] +#define __pyx_n_u_AVGPRICE_Stream_open_and_fill __pyx_string_tab[198] +#define __pyx_n_u_AllCandleSettings __pyx_string_tab[199] +#define __pyx_n_u_BBANDS __pyx_string_tab[200] +#define __pyx_n_u_BBANDS_Stream __pyx_string_tab[201] +#define __pyx_n_u_BBANDS_Stream_open_and_fill __pyx_string_tab[202] +#define __pyx_n_u_BBW __pyx_string_tab[203] +#define __pyx_n_u_BBW_Stream __pyx_string_tab[204] +#define __pyx_n_u_BBW_Stream_open_and_fill __pyx_string_tab[205] +#define __pyx_n_u_BETA __pyx_string_tab[206] +#define __pyx_n_u_BETA_Stream __pyx_string_tab[207] +#define __pyx_n_u_BETA_Stream_open_and_fill __pyx_string_tab[208] +#define __pyx_n_u_BOP __pyx_string_tab[209] +#define __pyx_n_u_BOP_Stream __pyx_string_tab[210] +#define __pyx_n_u_BOP_Stream_open_and_fill __pyx_string_tab[211] +#define __pyx_n_u_BodyDoji __pyx_string_tab[212] +#define __pyx_n_u_BodyLong __pyx_string_tab[213] +#define __pyx_n_u_BodyShort __pyx_string_tab[214] +#define __pyx_n_u_BodyVeryLong __pyx_string_tab[215] +#define __pyx_n_u_CCI __pyx_string_tab[216] +#define __pyx_n_u_CCI_Stream __pyx_string_tab[217] +#define __pyx_n_u_CCI_Stream_open_and_fill __pyx_string_tab[218] +#define __pyx_n_u_CDL2CROWS __pyx_string_tab[219] +#define __pyx_n_u_CDL2CROWS_Stream __pyx_string_tab[220] +#define __pyx_n_u_CDL2CROWS_Stream_open_and_fill __pyx_string_tab[221] +#define __pyx_n_u_CDL3BLACKCROWS __pyx_string_tab[222] +#define __pyx_n_u_CDL3BLACKCROWS_Stream __pyx_string_tab[223] +#define __pyx_n_u_CDL3BLACKCROWS_Stream_open_and_f __pyx_string_tab[224] +#define __pyx_n_u_CDL3INSIDE __pyx_string_tab[225] +#define __pyx_n_u_CDL3INSIDE_Stream __pyx_string_tab[226] +#define __pyx_n_u_CDL3INSIDE_Stream_open_and_fill __pyx_string_tab[227] +#define __pyx_n_u_CDL3LINESTRIKE __pyx_string_tab[228] +#define __pyx_n_u_CDL3LINESTRIKE_Stream __pyx_string_tab[229] +#define __pyx_n_u_CDL3LINESTRIKE_Stream_open_and_f __pyx_string_tab[230] +#define __pyx_n_u_CDL3OUTSIDE __pyx_string_tab[231] +#define __pyx_n_u_CDL3OUTSIDE_Stream __pyx_string_tab[232] +#define __pyx_n_u_CDL3OUTSIDE_Stream_open_and_fill __pyx_string_tab[233] +#define __pyx_n_u_CDL3STARSINSOUTH __pyx_string_tab[234] +#define __pyx_n_u_CDL3STARSINSOUTH_Stream __pyx_string_tab[235] +#define __pyx_n_u_CDL3STARSINSOUTH_Stream_open_and __pyx_string_tab[236] +#define __pyx_n_u_CDL3WHITESOLDIERS __pyx_string_tab[237] +#define __pyx_n_u_CDL3WHITESOLDIERS_Stream __pyx_string_tab[238] +#define __pyx_n_u_CDL3WHITESOLDIERS_Stream_open_an __pyx_string_tab[239] +#define __pyx_n_u_CDLABANDONEDBABY __pyx_string_tab[240] +#define __pyx_n_u_CDLABANDONEDBABY_Stream __pyx_string_tab[241] +#define __pyx_n_u_CDLABANDONEDBABY_Stream_open_and __pyx_string_tab[242] +#define __pyx_n_u_CDLADVANCEBLOCK __pyx_string_tab[243] +#define __pyx_n_u_CDLADVANCEBLOCK_Stream __pyx_string_tab[244] +#define __pyx_n_u_CDLADVANCEBLOCK_Stream_open_and __pyx_string_tab[245] +#define __pyx_n_u_CDLBELTHOLD __pyx_string_tab[246] +#define __pyx_n_u_CDLBELTHOLD_Stream __pyx_string_tab[247] +#define __pyx_n_u_CDLBELTHOLD_Stream_open_and_fill __pyx_string_tab[248] +#define __pyx_n_u_CDLBREAKAWAY __pyx_string_tab[249] +#define __pyx_n_u_CDLBREAKAWAY_Stream __pyx_string_tab[250] +#define __pyx_n_u_CDLBREAKAWAY_Stream_open_and_fil __pyx_string_tab[251] +#define __pyx_n_u_CDLCLOSINGMARUBOZU __pyx_string_tab[252] +#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream __pyx_string_tab[253] +#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream_open_a __pyx_string_tab[254] +#define __pyx_n_u_CDLCONCEALBABYSWALL __pyx_string_tab[255] +#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream __pyx_string_tab[256] +#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream_open __pyx_string_tab[257] +#define __pyx_n_u_CDLCOUNTERATTACK __pyx_string_tab[258] +#define __pyx_n_u_CDLCOUNTERATTACK_Stream __pyx_string_tab[259] +#define __pyx_n_u_CDLCOUNTERATTACK_Stream_open_and __pyx_string_tab[260] +#define __pyx_n_u_CDLDARKCLOUDCOVER __pyx_string_tab[261] +#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream __pyx_string_tab[262] +#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream_open_an __pyx_string_tab[263] +#define __pyx_n_u_CDLDOJI __pyx_string_tab[264] +#define __pyx_n_u_CDLDOJISTAR __pyx_string_tab[265] +#define __pyx_n_u_CDLDOJISTAR_Stream __pyx_string_tab[266] +#define __pyx_n_u_CDLDOJISTAR_Stream_open_and_fill __pyx_string_tab[267] +#define __pyx_n_u_CDLDOJI_Stream __pyx_string_tab[268] +#define __pyx_n_u_CDLDOJI_Stream_open_and_fill __pyx_string_tab[269] +#define __pyx_n_u_CDLDRAGONFLYDOJI __pyx_string_tab[270] +#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream __pyx_string_tab[271] +#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream_open_and __pyx_string_tab[272] +#define __pyx_n_u_CDLENGULFING __pyx_string_tab[273] +#define __pyx_n_u_CDLENGULFING_Stream __pyx_string_tab[274] +#define __pyx_n_u_CDLENGULFING_Stream_open_and_fil __pyx_string_tab[275] +#define __pyx_n_u_CDLEVENINGDOJISTAR __pyx_string_tab[276] +#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream __pyx_string_tab[277] +#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream_open_a __pyx_string_tab[278] +#define __pyx_n_u_CDLEVENINGSTAR __pyx_string_tab[279] +#define __pyx_n_u_CDLEVENINGSTAR_Stream __pyx_string_tab[280] +#define __pyx_n_u_CDLEVENINGSTAR_Stream_open_and_f __pyx_string_tab[281] +#define __pyx_n_u_CDLGAPSIDESIDEWHITE __pyx_string_tab[282] +#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream __pyx_string_tab[283] +#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream_open __pyx_string_tab[284] +#define __pyx_n_u_CDLGRAVESTONEDOJI __pyx_string_tab[285] +#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream __pyx_string_tab[286] +#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream_open_an __pyx_string_tab[287] +#define __pyx_n_u_CDLHAMMER __pyx_string_tab[288] +#define __pyx_n_u_CDLHAMMER_Stream __pyx_string_tab[289] +#define __pyx_n_u_CDLHAMMER_Stream_open_and_fill __pyx_string_tab[290] +#define __pyx_n_u_CDLHANGINGMAN __pyx_string_tab[291] +#define __pyx_n_u_CDLHANGINGMAN_Stream __pyx_string_tab[292] +#define __pyx_n_u_CDLHANGINGMAN_Stream_open_and_fi __pyx_string_tab[293] +#define __pyx_n_u_CDLHARAMI __pyx_string_tab[294] +#define __pyx_n_u_CDLHARAMICROSS __pyx_string_tab[295] +#define __pyx_n_u_CDLHARAMICROSS_Stream __pyx_string_tab[296] +#define __pyx_n_u_CDLHARAMICROSS_Stream_open_and_f __pyx_string_tab[297] +#define __pyx_n_u_CDLHARAMI_Stream __pyx_string_tab[298] +#define __pyx_n_u_CDLHARAMI_Stream_open_and_fill __pyx_string_tab[299] +#define __pyx_n_u_CDLHIGHWAVE __pyx_string_tab[300] +#define __pyx_n_u_CDLHIGHWAVE_Stream __pyx_string_tab[301] +#define __pyx_n_u_CDLHIGHWAVE_Stream_open_and_fill __pyx_string_tab[302] +#define __pyx_n_u_CDLHIKKAKE __pyx_string_tab[303] +#define __pyx_n_u_CDLHIKKAKEMOD __pyx_string_tab[304] +#define __pyx_n_u_CDLHIKKAKEMOD_Stream __pyx_string_tab[305] +#define __pyx_n_u_CDLHIKKAKEMOD_Stream_open_and_fi __pyx_string_tab[306] +#define __pyx_n_u_CDLHIKKAKE_Stream __pyx_string_tab[307] +#define __pyx_n_u_CDLHIKKAKE_Stream_open_and_fill __pyx_string_tab[308] +#define __pyx_n_u_CDLHOMINGPIGEON __pyx_string_tab[309] +#define __pyx_n_u_CDLHOMINGPIGEON_Stream __pyx_string_tab[310] +#define __pyx_n_u_CDLHOMINGPIGEON_Stream_open_and __pyx_string_tab[311] +#define __pyx_n_u_CDLIDENTICAL3CROWS __pyx_string_tab[312] +#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream __pyx_string_tab[313] +#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream_open_a __pyx_string_tab[314] +#define __pyx_n_u_CDLINNECK __pyx_string_tab[315] +#define __pyx_n_u_CDLINNECK_Stream __pyx_string_tab[316] +#define __pyx_n_u_CDLINNECK_Stream_open_and_fill __pyx_string_tab[317] +#define __pyx_n_u_CDLINVERTEDHAMMER __pyx_string_tab[318] +#define __pyx_n_u_CDLINVERTEDHAMMER_Stream __pyx_string_tab[319] +#define __pyx_n_u_CDLINVERTEDHAMMER_Stream_open_an __pyx_string_tab[320] +#define __pyx_n_u_CDLKICKING __pyx_string_tab[321] +#define __pyx_n_u_CDLKICKINGBYLENGTH __pyx_string_tab[322] +#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream __pyx_string_tab[323] +#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream_open_a __pyx_string_tab[324] +#define __pyx_n_u_CDLKICKING_Stream __pyx_string_tab[325] +#define __pyx_n_u_CDLKICKING_Stream_open_and_fill __pyx_string_tab[326] +#define __pyx_n_u_CDLLADDERBOTTOM __pyx_string_tab[327] +#define __pyx_n_u_CDLLADDERBOTTOM_Stream __pyx_string_tab[328] +#define __pyx_n_u_CDLLADDERBOTTOM_Stream_open_and __pyx_string_tab[329] +#define __pyx_n_u_CDLLONGLEGGEDDOJI __pyx_string_tab[330] +#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream __pyx_string_tab[331] +#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream_open_an __pyx_string_tab[332] +#define __pyx_n_u_CDLLONGLINE __pyx_string_tab[333] +#define __pyx_n_u_CDLLONGLINE_Stream __pyx_string_tab[334] +#define __pyx_n_u_CDLLONGLINE_Stream_open_and_fill __pyx_string_tab[335] +#define __pyx_n_u_CDLMARUBOZU __pyx_string_tab[336] +#define __pyx_n_u_CDLMARUBOZU_Stream __pyx_string_tab[337] +#define __pyx_n_u_CDLMARUBOZU_Stream_open_and_fill __pyx_string_tab[338] +#define __pyx_n_u_CDLMATCHINGLOW __pyx_string_tab[339] +#define __pyx_n_u_CDLMATCHINGLOW_Stream __pyx_string_tab[340] +#define __pyx_n_u_CDLMATCHINGLOW_Stream_open_and_f __pyx_string_tab[341] +#define __pyx_n_u_CDLMATHOLD __pyx_string_tab[342] +#define __pyx_n_u_CDLMATHOLD_Stream __pyx_string_tab[343] +#define __pyx_n_u_CDLMATHOLD_Stream_open_and_fill __pyx_string_tab[344] +#define __pyx_n_u_CDLMORNINGDOJISTAR __pyx_string_tab[345] +#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream __pyx_string_tab[346] +#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream_open_a __pyx_string_tab[347] +#define __pyx_n_u_CDLMORNINGSTAR __pyx_string_tab[348] +#define __pyx_n_u_CDLMORNINGSTAR_Stream __pyx_string_tab[349] +#define __pyx_n_u_CDLMORNINGSTAR_Stream_open_and_f __pyx_string_tab[350] +#define __pyx_n_u_CDLONNECK __pyx_string_tab[351] +#define __pyx_n_u_CDLONNECK_Stream __pyx_string_tab[352] +#define __pyx_n_u_CDLONNECK_Stream_open_and_fill __pyx_string_tab[353] +#define __pyx_n_u_CDLPIERCING __pyx_string_tab[354] +#define __pyx_n_u_CDLPIERCING_Stream __pyx_string_tab[355] +#define __pyx_n_u_CDLPIERCING_Stream_open_and_fill __pyx_string_tab[356] +#define __pyx_n_u_CDLRICKSHAWMAN __pyx_string_tab[357] +#define __pyx_n_u_CDLRICKSHAWMAN_Stream __pyx_string_tab[358] +#define __pyx_n_u_CDLRICKSHAWMAN_Stream_open_and_f __pyx_string_tab[359] +#define __pyx_n_u_CDLRISEFALL3METHODS __pyx_string_tab[360] +#define __pyx_n_u_CDLRISEFALL3METHODS_Stream __pyx_string_tab[361] +#define __pyx_n_u_CDLRISEFALL3METHODS_Stream_open __pyx_string_tab[362] +#define __pyx_n_u_CDLSEPARATINGLINES __pyx_string_tab[363] +#define __pyx_n_u_CDLSEPARATINGLINES_Stream __pyx_string_tab[364] +#define __pyx_n_u_CDLSEPARATINGLINES_Stream_open_a __pyx_string_tab[365] +#define __pyx_n_u_CDLSHOOTINGSTAR __pyx_string_tab[366] +#define __pyx_n_u_CDLSHOOTINGSTAR_Stream __pyx_string_tab[367] +#define __pyx_n_u_CDLSHOOTINGSTAR_Stream_open_and __pyx_string_tab[368] +#define __pyx_n_u_CDLSHORTLINE __pyx_string_tab[369] +#define __pyx_n_u_CDLSHORTLINE_Stream __pyx_string_tab[370] +#define __pyx_n_u_CDLSHORTLINE_Stream_open_and_fil __pyx_string_tab[371] +#define __pyx_n_u_CDLSPINNINGTOP __pyx_string_tab[372] +#define __pyx_n_u_CDLSPINNINGTOP_Stream __pyx_string_tab[373] +#define __pyx_n_u_CDLSPINNINGTOP_Stream_open_and_f __pyx_string_tab[374] +#define __pyx_n_u_CDLSTALLEDPATTERN __pyx_string_tab[375] +#define __pyx_n_u_CDLSTALLEDPATTERN_Stream __pyx_string_tab[376] +#define __pyx_n_u_CDLSTALLEDPATTERN_Stream_open_an __pyx_string_tab[377] +#define __pyx_n_u_CDLSTICKSANDWICH __pyx_string_tab[378] +#define __pyx_n_u_CDLSTICKSANDWICH_Stream __pyx_string_tab[379] +#define __pyx_n_u_CDLSTICKSANDWICH_Stream_open_and __pyx_string_tab[380] +#define __pyx_n_u_CDLTAKURI __pyx_string_tab[381] +#define __pyx_n_u_CDLTAKURI_Stream __pyx_string_tab[382] +#define __pyx_n_u_CDLTAKURI_Stream_open_and_fill __pyx_string_tab[383] +#define __pyx_n_u_CDLTASUKIGAP __pyx_string_tab[384] +#define __pyx_n_u_CDLTASUKIGAP_Stream __pyx_string_tab[385] +#define __pyx_n_u_CDLTASUKIGAP_Stream_open_and_fil __pyx_string_tab[386] +#define __pyx_n_u_CDLTHRUSTING __pyx_string_tab[387] +#define __pyx_n_u_CDLTHRUSTING_Stream __pyx_string_tab[388] +#define __pyx_n_u_CDLTHRUSTING_Stream_open_and_fil __pyx_string_tab[389] +#define __pyx_n_u_CDLTRISTAR __pyx_string_tab[390] +#define __pyx_n_u_CDLTRISTAR_Stream __pyx_string_tab[391] +#define __pyx_n_u_CDLTRISTAR_Stream_open_and_fill __pyx_string_tab[392] +#define __pyx_n_u_CDLUNIQUE3RIVER __pyx_string_tab[393] +#define __pyx_n_u_CDLUNIQUE3RIVER_Stream __pyx_string_tab[394] +#define __pyx_n_u_CDLUNIQUE3RIVER_Stream_open_and __pyx_string_tab[395] +#define __pyx_n_u_CDLUPSIDEGAP2CROWS __pyx_string_tab[396] +#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream __pyx_string_tab[397] +#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream_open_a __pyx_string_tab[398] +#define __pyx_n_u_CDLXSIDEGAP3METHODS __pyx_string_tab[399] +#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream __pyx_string_tab[400] +#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream_open __pyx_string_tab[401] +#define __pyx_n_u_CEIL __pyx_string_tab[402] +#define __pyx_n_u_CEIL_Stream __pyx_string_tab[403] +#define __pyx_n_u_CEIL_Stream_open_and_fill __pyx_string_tab[404] +#define __pyx_n_u_CG __pyx_string_tab[405] +#define __pyx_n_u_CG_Stream __pyx_string_tab[406] +#define __pyx_n_u_CG_Stream_open_and_fill __pyx_string_tab[407] +#define __pyx_n_u_CHOP __pyx_string_tab[408] +#define __pyx_n_u_CHOPTR __pyx_string_tab[409] +#define __pyx_n_u_CHOPTR_Stream __pyx_string_tab[410] +#define __pyx_n_u_CHOPTR_Stream_open_and_fill __pyx_string_tab[411] +#define __pyx_n_u_CHOP_Stream __pyx_string_tab[412] +#define __pyx_n_u_CHOP_Stream_open_and_fill __pyx_string_tab[413] +#define __pyx_n_u_CKSP __pyx_string_tab[414] +#define __pyx_n_u_CKSP_Stream __pyx_string_tab[415] +#define __pyx_n_u_CKSP_Stream_open_and_fill __pyx_string_tab[416] +#define __pyx_n_u_CMF __pyx_string_tab[417] +#define __pyx_n_u_CMF_Stream __pyx_string_tab[418] +#define __pyx_n_u_CMF_Stream_open_and_fill __pyx_string_tab[419] +#define __pyx_n_u_CMO __pyx_string_tab[420] +#define __pyx_n_u_CMOU __pyx_string_tab[421] +#define __pyx_n_u_CMOU_Stream __pyx_string_tab[422] +#define __pyx_n_u_CMOU_Stream_open_and_fill __pyx_string_tab[423] +#define __pyx_n_u_CMO_Stream __pyx_string_tab[424] +#define __pyx_n_u_CMO_Stream_open_and_fill __pyx_string_tab[425] +#define __pyx_n_u_COPPOCK __pyx_string_tab[426] +#define __pyx_n_u_COPPOCK_Stream __pyx_string_tab[427] +#define __pyx_n_u_COPPOCK_Stream_open_and_fill __pyx_string_tab[428] +#define __pyx_n_u_CORREL __pyx_string_tab[429] +#define __pyx_n_u_CORREL_Stream __pyx_string_tab[430] +#define __pyx_n_u_CORREL_Stream_open_and_fill __pyx_string_tab[431] +#define __pyx_n_u_COS __pyx_string_tab[432] +#define __pyx_n_u_COSH __pyx_string_tab[433] +#define __pyx_n_u_COSH_Stream __pyx_string_tab[434] +#define __pyx_n_u_COSH_Stream_open_and_fill __pyx_string_tab[435] +#define __pyx_n_u_COS_Stream __pyx_string_tab[436] +#define __pyx_n_u_COS_Stream_open_and_fill __pyx_string_tab[437] +#define __pyx_n_u_CRSI __pyx_string_tab[438] +#define __pyx_n_u_CRSI_Stream __pyx_string_tab[439] +#define __pyx_n_u_CRSI_Stream_open_and_fill __pyx_string_tab[440] +#define __pyx_n_u_CTI __pyx_string_tab[441] +#define __pyx_n_u_CTI_Stream __pyx_string_tab[442] +#define __pyx_n_u_CTI_Stream_open_and_fill __pyx_string_tab[443] +#define __pyx_n_u_CUMSUM __pyx_string_tab[444] +#define __pyx_n_u_CUMSUM_Stream __pyx_string_tab[445] +#define __pyx_n_u_CUMSUM_Stream_open_and_fill __pyx_string_tab[446] +#define __pyx_n_u_CVI __pyx_string_tab[447] +#define __pyx_n_u_CVI_Stream __pyx_string_tab[448] +#define __pyx_n_u_CVI_Stream_open_and_fill __pyx_string_tab[449] +#define __pyx_n_u_CandleSettingType __pyx_string_tab[450] +#define __pyx_n_u_DEFAULT __pyx_string_tab[451] +#define __pyx_n_u_DEMA __pyx_string_tab[452] +#define __pyx_n_u_DEMA_Stream __pyx_string_tab[453] +#define __pyx_n_u_DEMA_Stream_open_and_fill __pyx_string_tab[454] +#define __pyx_n_u_DISABLED __pyx_string_tab[455] +#define __pyx_n_u_DIV __pyx_string_tab[456] +#define __pyx_n_u_DIV_Stream __pyx_string_tab[457] +#define __pyx_n_u_DIV_Stream_open_and_fill __pyx_string_tab[458] +#define __pyx_n_u_DONCHIAN __pyx_string_tab[459] +#define __pyx_n_u_DONCHIAN_Stream __pyx_string_tab[460] +#define __pyx_n_u_DONCHIAN_Stream_open_and_fill __pyx_string_tab[461] +#define __pyx_n_u_DOSC __pyx_string_tab[462] +#define __pyx_n_u_DOSC_Stream __pyx_string_tab[463] +#define __pyx_n_u_DOSC_Stream_open_and_fill __pyx_string_tab[464] +#define __pyx_n_u_DPO __pyx_string_tab[465] +#define __pyx_n_u_DPO_Stream __pyx_string_tab[466] +#define __pyx_n_u_DPO_Stream_open_and_fill __pyx_string_tab[467] +#define __pyx_n_u_DX __pyx_string_tab[468] +#define __pyx_n_u_DX_Stream __pyx_string_tab[469] +#define __pyx_n_u_DX_Stream_open_and_fill __pyx_string_tab[470] +#define __pyx_n_u_DataFrame __pyx_string_tab[471] +#define __pyx_n_u_Dot __pyx_string_tab[472] +#define __pyx_n_u_EFI __pyx_string_tab[473] +#define __pyx_n_u_EFI_Stream __pyx_string_tab[474] +#define __pyx_n_u_EFI_Stream_open_and_fill __pyx_string_tab[475] +#define __pyx_n_u_EMA __pyx_string_tab[476] +#define __pyx_n_u_EMA_Stream __pyx_string_tab[477] +#define __pyx_n_u_EMA_Stream_open_and_fill __pyx_string_tab[478] +#define __pyx_n_u_EMV __pyx_string_tab[479] +#define __pyx_n_u_EMV_Stream __pyx_string_tab[480] +#define __pyx_n_u_EMV_Stream_open_and_fill __pyx_string_tab[481] +#define __pyx_n_u_ER __pyx_string_tab[482] +#define __pyx_n_u_ERI __pyx_string_tab[483] +#define __pyx_n_u_ERI_Stream __pyx_string_tab[484] +#define __pyx_n_u_ERI_Stream_open_and_fill __pyx_string_tab[485] +#define __pyx_n_u_ER_Stream __pyx_string_tab[486] +#define __pyx_n_u_ER_Stream_open_and_fill __pyx_string_tab[487] +#define __pyx_n_u_EXP __pyx_string_tab[488] +#define __pyx_n_u_EXP_Stream __pyx_string_tab[489] +#define __pyx_n_u_EXP_Stream_open_and_fill __pyx_string_tab[490] +#define __pyx_n_u_Equal __pyx_string_tab[491] +#define __pyx_n_u_FISHER __pyx_string_tab[492] +#define __pyx_n_u_FISHER_Stream __pyx_string_tab[493] +#define __pyx_n_u_FISHER_Stream_open_and_fill __pyx_string_tab[494] +#define __pyx_n_u_FLOOR __pyx_string_tab[495] +#define __pyx_n_u_FLOOR_Stream __pyx_string_tab[496] +#define __pyx_n_u_FLOOR_Stream_open_and_fill __pyx_string_tab[497] +#define __pyx_n_u_FOSC __pyx_string_tab[498] +#define __pyx_n_u_FOSC_Stream __pyx_string_tab[499] +#define __pyx_n_u_FOSC_Stream_open_and_fill __pyx_string_tab[500] +#define __pyx_n_u_FRACTAL __pyx_string_tab[501] +#define __pyx_n_u_FRACTAL_Stream __pyx_string_tab[502] +#define __pyx_n_u_FRACTAL_Stream_open_and_fill __pyx_string_tab[503] +#define __pyx_n_u_FRAMA __pyx_string_tab[504] +#define __pyx_n_u_FRAMA_Stream __pyx_string_tab[505] +#define __pyx_n_u_FRAMA_Stream_open_and_fill __pyx_string_tab[506] +#define __pyx_n_u_Far __pyx_string_tab[507] +#define __pyx_n_u_Function __pyx_string_tab[508] +#define __pyx_n_u_Function___call __pyx_string_tab[509] +#define __pyx_n_u_Function___call_function __pyx_string_tab[510] +#define __pyx_n_u_Function___check_opt_input_value __pyx_string_tab[511] +#define __pyx_n_u_Function___get_opt_input_value __pyx_string_tab[512] +#define __pyx_n_u_Function___init __pyx_string_tab[513] +#define __pyx_n_u_Function___input_price_series_na __pyx_string_tab[514] +#define __pyx_n_u_Function___local __pyx_string_tab[515] +#define __pyx_n_u_Function___repr __pyx_string_tab[516] +#define __pyx_n_u_Function___str __pyx_string_tab[517] +#define __pyx_n_u_Function___unicode __pyx_string_tab[518] +#define __pyx_n_u_Function_function_flags __pyx_string_tab[519] +#define __pyx_n_u_Function_get_input_arrays __pyx_string_tab[520] +#define __pyx_n_u_Function_get_input_names __pyx_string_tab[521] +#define __pyx_n_u_Function_get_parameters __pyx_string_tab[522] +#define __pyx_n_u_Function_info __pyx_string_tab[523] +#define __pyx_n_u_Function_lookback __pyx_string_tab[524] +#define __pyx_n_u_Function_output_flags __pyx_string_tab[525] +#define __pyx_n_u_Function_output_names __pyx_string_tab[526] +#define __pyx_n_u_Function_outputs __pyx_string_tab[527] +#define __pyx_n_u_Function_run __pyx_string_tab[528] +#define __pyx_n_u_Function_set_function_args __pyx_string_tab[529] +#define __pyx_n_u_Function_set_input_arrays __pyx_string_tab[530] +#define __pyx_n_u_Function_set_input_names __pyx_string_tab[531] +#define __pyx_n_u_Function_set_parameters __pyx_string_tab[532] +#define __pyx_n_u_HA __pyx_string_tab[533] +#define __pyx_n_u_HA_Stream __pyx_string_tab[534] +#define __pyx_n_u_HA_Stream_open_and_fill __pyx_string_tab[535] +#define __pyx_n_u_HMA __pyx_string_tab[536] +#define __pyx_n_u_HMA_Stream __pyx_string_tab[537] +#define __pyx_n_u_HMA_Stream_open_and_fill __pyx_string_tab[538] +#define __pyx_n_u_HT_DCPERIOD __pyx_string_tab[539] +#define __pyx_n_u_HT_DCPERIOD_Stream __pyx_string_tab[540] +#define __pyx_n_u_HT_DCPERIOD_Stream_open_and_fill __pyx_string_tab[541] +#define __pyx_n_u_HT_DCPHASE __pyx_string_tab[542] +#define __pyx_n_u_HT_DCPHASE_Stream __pyx_string_tab[543] +#define __pyx_n_u_HT_DCPHASE_Stream_open_and_fill __pyx_string_tab[544] +#define __pyx_n_u_HT_PHASOR __pyx_string_tab[545] +#define __pyx_n_u_HT_PHASOR_Stream __pyx_string_tab[546] +#define __pyx_n_u_HT_PHASOR_Stream_open_and_fill __pyx_string_tab[547] +#define __pyx_n_u_HT_SINE __pyx_string_tab[548] +#define __pyx_n_u_HT_SINE_Stream __pyx_string_tab[549] +#define __pyx_n_u_HT_SINE_Stream_open_and_fill __pyx_string_tab[550] +#define __pyx_n_u_HT_TRENDLINE __pyx_string_tab[551] +#define __pyx_n_u_HT_TRENDLINE_Stream __pyx_string_tab[552] +#define __pyx_n_u_HT_TRENDLINE_Stream_open_and_fil __pyx_string_tab[553] +#define __pyx_n_u_HT_TRENDMODE __pyx_string_tab[554] +#define __pyx_n_u_HT_TRENDMODE_Stream __pyx_string_tab[555] +#define __pyx_n_u_HT_TRENDMODE_Stream_open_and_fil __pyx_string_tab[556] +#define __pyx_n_u_HighLow __pyx_string_tab[557] +#define __pyx_n_u_Histogram __pyx_string_tab[558] +#define __pyx_n_u_IBS __pyx_string_tab[559] +#define __pyx_n_u_IBS_Stream __pyx_string_tab[560] +#define __pyx_n_u_IBS_Stream_open_and_fill __pyx_string_tab[561] +#define __pyx_n_u_ICHIMOKU __pyx_string_tab[562] +#define __pyx_n_u_ICHIMOKU_Stream __pyx_string_tab[563] +#define __pyx_n_u_ICHIMOKU_Stream_open_and_fill __pyx_string_tab[564] +#define __pyx_n_u_IMI __pyx_string_tab[565] +#define __pyx_n_u_IMI_Stream __pyx_string_tab[566] +#define __pyx_n_u_IMI_Stream_open_and_fill __pyx_string_tab[567] +#define __pyx_n_u_InsufficientHistory __pyx_string_tab[568] +#define __pyx_n_u_KAMA __pyx_string_tab[569] +#define __pyx_n_u_KAMA_Stream __pyx_string_tab[570] +#define __pyx_n_u_KAMA_Stream_open_and_fill __pyx_string_tab[571] +#define __pyx_n_u_KC __pyx_string_tab[572] +#define __pyx_n_u_KC_Stream __pyx_string_tab[573] +#define __pyx_n_u_KC_Stream_open_and_fill __pyx_string_tab[574] +#define __pyx_n_u_KDJ __pyx_string_tab[575] +#define __pyx_n_u_KDJ_Stream __pyx_string_tab[576] +#define __pyx_n_u_KDJ_Stream_open_and_fill __pyx_string_tab[577] +#define __pyx_n_u_KST __pyx_string_tab[578] +#define __pyx_n_u_KSTEXT __pyx_string_tab[579] +#define __pyx_n_u_KSTEXT_Stream __pyx_string_tab[580] +#define __pyx_n_u_KSTEXT_Stream_open_and_fill __pyx_string_tab[581] +#define __pyx_n_u_KST_Stream __pyx_string_tab[582] +#define __pyx_n_u_KST_Stream_open_and_fill __pyx_string_tab[583] +#define __pyx_n_u_KURTOSIS __pyx_string_tab[584] +#define __pyx_n_u_KURTOSIS_Stream __pyx_string_tab[585] +#define __pyx_n_u_KURTOSIS_Stream_open_and_fill __pyx_string_tab[586] +#define __pyx_n_u_KVO __pyx_string_tab[587] +#define __pyx_n_u_KVO_Stream __pyx_string_tab[588] +#define __pyx_n_u_KVO_Stream_open_and_fill __pyx_string_tab[589] +#define __pyx_n_u_LINEARREG __pyx_string_tab[590] +#define __pyx_n_u_LINEARREG_ANGLE __pyx_string_tab[591] +#define __pyx_n_u_LINEARREG_ANGLE_Stream __pyx_string_tab[592] +#define __pyx_n_u_LINEARREG_ANGLE_Stream_open_and __pyx_string_tab[593] +#define __pyx_n_u_LINEARREG_INTERCEPT __pyx_string_tab[594] +#define __pyx_n_u_LINEARREG_INTERCEPT_Stream __pyx_string_tab[595] +#define __pyx_n_u_LINEARREG_INTERCEPT_Stream_open __pyx_string_tab[596] +#define __pyx_n_u_LINEARREG_SLOPE __pyx_string_tab[597] +#define __pyx_n_u_LINEARREG_SLOPE_Stream __pyx_string_tab[598] +#define __pyx_n_u_LINEARREG_SLOPE_Stream_open_and __pyx_string_tab[599] +#define __pyx_n_u_LINEARREG_Stream __pyx_string_tab[600] +#define __pyx_n_u_LINEARREG_Stream_open_and_fill __pyx_string_tab[601] +#define __pyx_n_u_LN __pyx_string_tab[602] +#define __pyx_n_u_LN_Stream __pyx_string_tab[603] +#define __pyx_n_u_LN_Stream_open_and_fill __pyx_string_tab[604] +#define __pyx_n_u_LOG10 __pyx_string_tab[605] +#define __pyx_n_u_LOG10_Stream __pyx_string_tab[606] +#define __pyx_n_u_LOG10_Stream_open_and_fill __pyx_string_tab[607] +#define __pyx_n_u_Line __pyx_string_tab[608] +#define __pyx_n_u_MA __pyx_string_tab[609] +#define __pyx_n_u_MACD __pyx_string_tab[610] +#define __pyx_n_u_MACDEXT __pyx_string_tab[611] +#define __pyx_n_u_MACDEXT_Stream __pyx_string_tab[612] +#define __pyx_n_u_MACDEXT_Stream_open_and_fill __pyx_string_tab[613] +#define __pyx_n_u_MACDFIX __pyx_string_tab[614] +#define __pyx_n_u_MACDFIX_Stream __pyx_string_tab[615] +#define __pyx_n_u_MACDFIX_Stream_open_and_fill __pyx_string_tab[616] +#define __pyx_n_u_MACD_Stream __pyx_string_tab[617] +#define __pyx_n_u_MACD_Stream_open_and_fill __pyx_string_tab[618] +#define __pyx_n_u_MAMA __pyx_string_tab[619] +#define __pyx_n_u_MAMA_Stream __pyx_string_tab[620] +#define __pyx_n_u_MAMA_Stream_open_and_fill __pyx_string_tab[621] +#define __pyx_n_u_MARKETFI __pyx_string_tab[622] +#define __pyx_n_u_MARKETFI_Stream __pyx_string_tab[623] +#define __pyx_n_u_MARKETFI_Stream_open_and_fill __pyx_string_tab[624] +#define __pyx_n_u_MASSI __pyx_string_tab[625] +#define __pyx_n_u_MASSI_Stream __pyx_string_tab[626] +#define __pyx_n_u_MASSI_Stream_open_and_fill __pyx_string_tab[627] +#define __pyx_n_u_MAVP __pyx_string_tab[628] +#define __pyx_n_u_MAVP_Stream __pyx_string_tab[629] +#define __pyx_n_u_MAVP_Stream_open_and_fill __pyx_string_tab[630] +#define __pyx_n_u_MAX __pyx_string_tab[631] +#define __pyx_n_u_MAXINDEX __pyx_string_tab[632] +#define __pyx_n_u_MAXINDEX_Stream __pyx_string_tab[633] +#define __pyx_n_u_MAXINDEX_Stream_open_and_fill __pyx_string_tab[634] +#define __pyx_n_u_MAX_Stream __pyx_string_tab[635] +#define __pyx_n_u_MAX_Stream_open_and_fill __pyx_string_tab[636] +#define __pyx_n_u_MA_Stream __pyx_string_tab[637] +#define __pyx_n_u_MA_Stream_open_and_fill __pyx_string_tab[638] +#define __pyx_n_u_MA_Type __pyx_string_tab[639] +#define __pyx_n_u_MA_Type___getitem __pyx_string_tab[640] +#define __pyx_n_u_MA_Type___init __pyx_string_tab[641] +#define __pyx_n_u_MCGD __pyx_string_tab[642] +#define __pyx_n_u_MCGD_Stream __pyx_string_tab[643] +#define __pyx_n_u_MCGD_Stream_open_and_fill __pyx_string_tab[644] +#define __pyx_n_u_MEDIAN __pyx_string_tab[645] +#define __pyx_n_u_MEDIAN_Stream __pyx_string_tab[646] +#define __pyx_n_u_MEDIAN_Stream_open_and_fill __pyx_string_tab[647] +#define __pyx_n_u_MEDPRICE __pyx_string_tab[648] +#define __pyx_n_u_MEDPRICE_Stream __pyx_string_tab[649] +#define __pyx_n_u_MEDPRICE_Stream_open_and_fill __pyx_string_tab[650] +#define __pyx_n_u_MFI __pyx_string_tab[651] +#define __pyx_n_u_MFI_Stream __pyx_string_tab[652] +#define __pyx_n_u_MFI_Stream_open_and_fill __pyx_string_tab[653] +#define __pyx_n_u_MIDPOINT __pyx_string_tab[654] +#define __pyx_n_u_MIDPOINT_Stream __pyx_string_tab[655] +#define __pyx_n_u_MIDPOINT_Stream_open_and_fill __pyx_string_tab[656] +#define __pyx_n_u_MIDPRICE __pyx_string_tab[657] +#define __pyx_n_u_MIDPRICE_Stream __pyx_string_tab[658] +#define __pyx_n_u_MIDPRICE_Stream_open_and_fill __pyx_string_tab[659] +#define __pyx_n_u_MIN __pyx_string_tab[660] +#define __pyx_n_u_MININDEX __pyx_string_tab[661] +#define __pyx_n_u_MININDEX_Stream __pyx_string_tab[662] +#define __pyx_n_u_MININDEX_Stream_open_and_fill __pyx_string_tab[663] +#define __pyx_n_u_MINMAX __pyx_string_tab[664] +#define __pyx_n_u_MINMAXINDEX __pyx_string_tab[665] +#define __pyx_n_u_MINMAXINDEX_Stream __pyx_string_tab[666] +#define __pyx_n_u_MINMAXINDEX_Stream_open_and_fill __pyx_string_tab[667] +#define __pyx_n_u_MINMAX_Stream __pyx_string_tab[668] +#define __pyx_n_u_MINMAX_Stream_open_and_fill __pyx_string_tab[669] +#define __pyx_n_u_MINUS_DI __pyx_string_tab[670] +#define __pyx_n_u_MINUS_DI_Stream __pyx_string_tab[671] +#define __pyx_n_u_MINUS_DI_Stream_open_and_fill __pyx_string_tab[672] +#define __pyx_n_u_MINUS_DM __pyx_string_tab[673] +#define __pyx_n_u_MINUS_DM_Stream __pyx_string_tab[674] +#define __pyx_n_u_MINUS_DM_Stream_open_and_fill __pyx_string_tab[675] +#define __pyx_n_u_MIN_Stream __pyx_string_tab[676] +#define __pyx_n_u_MIN_Stream_open_and_fill __pyx_string_tab[677] +#define __pyx_n_u_MOM __pyx_string_tab[678] +#define __pyx_n_u_MOM_Stream __pyx_string_tab[679] +#define __pyx_n_u_MOM_Stream_open_and_fill __pyx_string_tab[680] +#define __pyx_n_u_MULT __pyx_string_tab[681] +#define __pyx_n_u_MULT_Stream __pyx_string_tab[682] +#define __pyx_n_u_MULT_Stream_open_and_fill __pyx_string_tab[683] +#define __pyx_n_u_NATR __pyx_string_tab[684] +#define __pyx_n_u_NATR_Stream __pyx_string_tab[685] +#define __pyx_n_u_NATR_Stream_open_and_fill __pyx_string_tab[686] +#define __pyx_n_u_NONE __pyx_string_tab[687] +#define __pyx_n_u_NVI __pyx_string_tab[688] +#define __pyx_n_u_NVI_Stream __pyx_string_tab[689] +#define __pyx_n_u_NVI_Stream_open_and_fill __pyx_string_tab[690] +#define __pyx_n_u_Near __pyx_string_tab[691] +#define __pyx_n_u_OBV __pyx_string_tab[692] +#define __pyx_n_u_OBV_Stream __pyx_string_tab[693] +#define __pyx_n_u_OBV_Stream_open_and_fill __pyx_string_tab[694] +#define __pyx_n_u_OrderedDict __pyx_string_tab[695] +#define __pyx_n_u_OutRange __pyx_string_tab[696] +#define __pyx_n_u_PERCENTB __pyx_string_tab[697] +#define __pyx_n_u_PERCENTB_Stream __pyx_string_tab[698] +#define __pyx_n_u_PERCENTB_Stream_open_and_fill __pyx_string_tab[699] +#define __pyx_n_u_PERCENTILE __pyx_string_tab[700] +#define __pyx_n_u_PERCENTILE_Stream __pyx_string_tab[701] +#define __pyx_n_u_PERCENTILE_Stream_open_and_fill __pyx_string_tab[702] +#define __pyx_n_u_PERCENTRANK __pyx_string_tab[703] +#define __pyx_n_u_PERCENTRANK_Stream __pyx_string_tab[704] +#define __pyx_n_u_PERCENTRANK_Stream_open_and_fill __pyx_string_tab[705] +#define __pyx_n_u_PLUS_DI __pyx_string_tab[706] +#define __pyx_n_u_PLUS_DI_Stream __pyx_string_tab[707] +#define __pyx_n_u_PLUS_DI_Stream_open_and_fill __pyx_string_tab[708] +#define __pyx_n_u_PLUS_DM __pyx_string_tab[709] +#define __pyx_n_u_PLUS_DM_Stream __pyx_string_tab[710] +#define __pyx_n_u_PLUS_DM_Stream_open_and_fill __pyx_string_tab[711] +#define __pyx_n_u_PPO __pyx_string_tab[712] +#define __pyx_n_u_PPO_Stream __pyx_string_tab[713] +#define __pyx_n_u_PPO_Stream_open_and_fill __pyx_string_tab[714] +#define __pyx_n_u_PSO __pyx_string_tab[715] +#define __pyx_n_u_PSO_Stream __pyx_string_tab[716] +#define __pyx_n_u_PSO_Stream_open_and_fill __pyx_string_tab[717] +#define __pyx_n_u_PVI __pyx_string_tab[718] +#define __pyx_n_u_PVI_Stream __pyx_string_tab[719] +#define __pyx_n_u_PVI_Stream_open_and_fill __pyx_string_tab[720] +#define __pyx_n_u_PVO __pyx_string_tab[721] +#define __pyx_n_u_PVO_Stream __pyx_string_tab[722] +#define __pyx_n_u_PVO_Stream_open_and_fill __pyx_string_tab[723] +#define __pyx_n_u_PVT __pyx_string_tab[724] +#define __pyx_n_u_PVT_Stream __pyx_string_tab[725] +#define __pyx_n_u_PVT_Stream_open_and_fill __pyx_string_tab[726] +#define __pyx_n_u_QSTICK __pyx_string_tab[727] +#define __pyx_n_u_QSTICK_Stream __pyx_string_tab[728] +#define __pyx_n_u_QSTICK_Stream_open_and_fill __pyx_string_tab[729] +#define __pyx_n_u_RMA __pyx_string_tab[730] +#define __pyx_n_u_RMA_Stream __pyx_string_tab[731] +#define __pyx_n_u_RMA_Stream_open_and_fill __pyx_string_tab[732] +#define __pyx_n_u_ROC __pyx_string_tab[733] +#define __pyx_n_u_ROCP __pyx_string_tab[734] +#define __pyx_n_u_ROCP_Stream __pyx_string_tab[735] +#define __pyx_n_u_ROCP_Stream_open_and_fill __pyx_string_tab[736] +#define __pyx_n_u_ROCR __pyx_string_tab[737] +#define __pyx_n_u_ROCR100 __pyx_string_tab[738] +#define __pyx_n_u_ROCR100_Stream __pyx_string_tab[739] +#define __pyx_n_u_ROCR100_Stream_open_and_fill __pyx_string_tab[740] +#define __pyx_n_u_ROCR_Stream __pyx_string_tab[741] +#define __pyx_n_u_ROCR_Stream_open_and_fill __pyx_string_tab[742] +#define __pyx_n_u_ROC_Stream __pyx_string_tab[743] +#define __pyx_n_u_ROC_Stream_open_and_fill __pyx_string_tab[744] +#define __pyx_n_u_ROGERSSATCHELL __pyx_string_tab[745] +#define __pyx_n_u_ROGERSSATCHELL_Stream __pyx_string_tab[746] +#define __pyx_n_u_ROGERSSATCHELL_Stream_open_and_f __pyx_string_tab[747] +#define __pyx_n_u_RSI __pyx_string_tab[748] +#define __pyx_n_u_RSI_Stream __pyx_string_tab[749] +#define __pyx_n_u_RSI_Stream_open_and_fill __pyx_string_tab[750] +#define __pyx_n_u_RVI __pyx_string_tab[751] +#define __pyx_n_u_RVIR __pyx_string_tab[752] +#define __pyx_n_u_RVIR_Stream __pyx_string_tab[753] +#define __pyx_n_u_RVIR_Stream_open_and_fill __pyx_string_tab[754] +#define __pyx_n_u_RVI_Stream __pyx_string_tab[755] +#define __pyx_n_u_RVI_Stream_open_and_fill __pyx_string_tab[756] +#define __pyx_n_u_RVOL __pyx_string_tab[757] +#define __pyx_n_u_RVOL_Stream __pyx_string_tab[758] +#define __pyx_n_u_RVOL_Stream_open_and_fill __pyx_string_tab[759] +#define __pyx_n_u_RangeType __pyx_string_tab[760] +#define __pyx_n_u_RealBody __pyx_string_tab[761] +#define __pyx_n_u_SAR __pyx_string_tab[762] +#define __pyx_n_u_SAREXT __pyx_string_tab[763] +#define __pyx_n_u_SAREXT_Stream __pyx_string_tab[764] +#define __pyx_n_u_SAREXT_Stream_open_and_fill __pyx_string_tab[765] +#define __pyx_n_u_SAR_Stream __pyx_string_tab[766] +#define __pyx_n_u_SAR_Stream_open_and_fill __pyx_string_tab[767] +#define __pyx_n_u_SI __pyx_string_tab[768] +#define __pyx_n_u_SIN __pyx_string_tab[769] +#define __pyx_n_u_SINH __pyx_string_tab[770] +#define __pyx_n_u_SINH_Stream __pyx_string_tab[771] +#define __pyx_n_u_SINH_Stream_open_and_fill __pyx_string_tab[772] +#define __pyx_n_u_SIN_Stream __pyx_string_tab[773] +#define __pyx_n_u_SIN_Stream_open_and_fill __pyx_string_tab[774] +#define __pyx_n_u_SI_Stream __pyx_string_tab[775] +#define __pyx_n_u_SI_Stream_open_and_fill __pyx_string_tab[776] +#define __pyx_n_u_SMA __pyx_string_tab[777] +#define __pyx_n_u_SMA_Stream __pyx_string_tab[778] +#define __pyx_n_u_SMA_Stream_open_and_fill __pyx_string_tab[779] +#define __pyx_n_u_SMI __pyx_string_tab[780] +#define __pyx_n_u_SMI_Stream __pyx_string_tab[781] +#define __pyx_n_u_SMI_Stream_open_and_fill __pyx_string_tab[782] +#define __pyx_n_u_SQRT __pyx_string_tab[783] +#define __pyx_n_u_SQRT_Stream __pyx_string_tab[784] +#define __pyx_n_u_SQRT_Stream_open_and_fill __pyx_string_tab[785] +#define __pyx_n_u_SQZMOM __pyx_string_tab[786] +#define __pyx_n_u_SQZMOM_Stream __pyx_string_tab[787] +#define __pyx_n_u_SQZMOM_Stream_open_and_fill __pyx_string_tab[788] +#define __pyx_n_u_STC __pyx_string_tab[789] +#define __pyx_n_u_STC_Stream __pyx_string_tab[790] +#define __pyx_n_u_STC_Stream_open_and_fill __pyx_string_tab[791] +#define __pyx_n_u_STDDEV __pyx_string_tab[792] +#define __pyx_n_u_STDDEV_Stream __pyx_string_tab[793] +#define __pyx_n_u_STDDEV_Stream_open_and_fill __pyx_string_tab[794] +#define __pyx_n_u_STOCH __pyx_string_tab[795] +#define __pyx_n_u_STOCHF __pyx_string_tab[796] +#define __pyx_n_u_STOCHF_Stream __pyx_string_tab[797] +#define __pyx_n_u_STOCHF_Stream_open_and_fill __pyx_string_tab[798] +#define __pyx_n_u_STOCHRSI __pyx_string_tab[799] +#define __pyx_n_u_STOCHRSI_Stream __pyx_string_tab[800] +#define __pyx_n_u_STOCHRSI_Stream_open_and_fill __pyx_string_tab[801] +#define __pyx_n_u_STOCH_Stream __pyx_string_tab[802] +#define __pyx_n_u_STOCH_Stream_open_and_fill __pyx_string_tab[803] +#define __pyx_n_u_SUB __pyx_string_tab[804] +#define __pyx_n_u_SUB_Stream __pyx_string_tab[805] +#define __pyx_n_u_SUB_Stream_open_and_fill __pyx_string_tab[806] +#define __pyx_n_u_SUM __pyx_string_tab[807] +#define __pyx_n_u_SUM_Stream __pyx_string_tab[808] +#define __pyx_n_u_SUM_Stream_open_and_fill __pyx_string_tab[809] +#define __pyx_n_u_SUPERTREND __pyx_string_tab[810] +#define __pyx_n_u_SUPERTREND_Stream __pyx_string_tab[811] +#define __pyx_n_u_SUPERTREND_Stream_open_and_fill __pyx_string_tab[812] +#define __pyx_n_u_SWAK_2PHP __pyx_string_tab[813] +#define __pyx_n_u_SWAK_2PHP_Stream __pyx_string_tab[814] +#define __pyx_n_u_SWAK_2PHP_Stream_open_and_fill __pyx_string_tab[815] +#define __pyx_n_u_SWAK_BP __pyx_string_tab[816] +#define __pyx_n_u_SWAK_BP_Stream __pyx_string_tab[817] +#define __pyx_n_u_SWAK_BP_Stream_open_and_fill __pyx_string_tab[818] +#define __pyx_n_u_SWAK_BUTTER __pyx_string_tab[819] +#define __pyx_n_u_SWAK_BUTTER_Stream __pyx_string_tab[820] +#define __pyx_n_u_SWAK_BUTTER_Stream_open_and_fill __pyx_string_tab[821] +#define __pyx_n_u_SWAK_GAUSS __pyx_string_tab[822] +#define __pyx_n_u_SWAK_GAUSS_Stream __pyx_string_tab[823] +#define __pyx_n_u_SWAK_GAUSS_Stream_open_and_fill __pyx_string_tab[824] +#define __pyx_n_u_SWAK_HP __pyx_string_tab[825] +#define __pyx_n_u_SWAK_HP_Stream __pyx_string_tab[826] +#define __pyx_n_u_SWAK_HP_Stream_open_and_fill __pyx_string_tab[827] +#define __pyx_n_u_Series __pyx_string_tab[828] +#define __pyx_n_u_ShadowLong __pyx_string_tab[829] +#define __pyx_n_u_ShadowShort __pyx_string_tab[830] +#define __pyx_n_u_ShadowVeryLong __pyx_string_tab[831] +#define __pyx_n_u_ShadowVeryShort __pyx_string_tab[832] +#define __pyx_n_u_Shadows __pyx_string_tab[833] +#define __pyx_n_u_Stream __pyx_string_tab[834] +#define __pyx_n_u_Stream___copy __pyx_string_tab[835] +#define __pyx_n_u_Stream___deepcopy __pyx_string_tab[836] +#define __pyx_n_u_Stream___reduce __pyx_string_tab[837] +#define __pyx_n_u_T3 __pyx_string_tab[838] +#define __pyx_n_u_T3_Stream __pyx_string_tab[839] +#define __pyx_n_u_T3_Stream_open_and_fill __pyx_string_tab[840] +#define __pyx_n_u_TAN __pyx_string_tab[841] +#define __pyx_n_u_TANH __pyx_string_tab[842] +#define __pyx_n_u_TANH_Stream __pyx_string_tab[843] +#define __pyx_n_u_TANH_Stream_open_and_fill __pyx_string_tab[844] +#define __pyx_n_u_TAN_Stream __pyx_string_tab[845] +#define __pyx_n_u_TAN_Stream_open_and_fill __pyx_string_tab[846] +#define __pyx_n_u_TA_AC __pyx_string_tab[847] +#define __pyx_n_u_TA_ACCBANDS __pyx_string_tab[848] +#define __pyx_n_u_TA_ACCBANDS_Clone __pyx_string_tab[849] +#define __pyx_n_u_TA_ACCBANDS_Open __pyx_string_tab[850] +#define __pyx_n_u_TA_ACCBANDS_OpenAndFill __pyx_string_tab[851] +#define __pyx_n_u_TA_ACCBANDS_Peek __pyx_string_tab[852] +#define __pyx_n_u_TA_ACCBANDS_Update __pyx_string_tab[853] +#define __pyx_n_u_TA_ACCBANDS_Value __pyx_string_tab[854] +#define __pyx_n_u_TA_ACOS __pyx_string_tab[855] +#define __pyx_n_u_TA_ACOS_Clone __pyx_string_tab[856] +#define __pyx_n_u_TA_ACOS_Open __pyx_string_tab[857] +#define __pyx_n_u_TA_ACOS_OpenAndFill __pyx_string_tab[858] +#define __pyx_n_u_TA_ACOS_Peek __pyx_string_tab[859] +#define __pyx_n_u_TA_ACOS_Update __pyx_string_tab[860] +#define __pyx_n_u_TA_ACOS_Value __pyx_string_tab[861] +#define __pyx_n_u_TA_AC_Clone __pyx_string_tab[862] +#define __pyx_n_u_TA_AC_Open __pyx_string_tab[863] +#define __pyx_n_u_TA_AC_OpenAndFill __pyx_string_tab[864] +#define __pyx_n_u_TA_AC_Peek __pyx_string_tab[865] +#define __pyx_n_u_TA_AC_Update __pyx_string_tab[866] +#define __pyx_n_u_TA_AC_Value __pyx_string_tab[867] +#define __pyx_n_u_TA_AD __pyx_string_tab[868] +#define __pyx_n_u_TA_ADD __pyx_string_tab[869] +#define __pyx_n_u_TA_ADD_Clone __pyx_string_tab[870] +#define __pyx_n_u_TA_ADD_Open __pyx_string_tab[871] +#define __pyx_n_u_TA_ADD_OpenAndFill __pyx_string_tab[872] +#define __pyx_n_u_TA_ADD_Peek __pyx_string_tab[873] +#define __pyx_n_u_TA_ADD_Update __pyx_string_tab[874] +#define __pyx_n_u_TA_ADD_Value __pyx_string_tab[875] +#define __pyx_n_u_TA_ADOSC __pyx_string_tab[876] +#define __pyx_n_u_TA_ADOSC_Clone __pyx_string_tab[877] +#define __pyx_n_u_TA_ADOSC_Open __pyx_string_tab[878] +#define __pyx_n_u_TA_ADOSC_OpenAndFill __pyx_string_tab[879] +#define __pyx_n_u_TA_ADOSC_Peek __pyx_string_tab[880] +#define __pyx_n_u_TA_ADOSC_Update __pyx_string_tab[881] +#define __pyx_n_u_TA_ADOSC_Value __pyx_string_tab[882] +#define __pyx_n_u_TA_ADR __pyx_string_tab[883] +#define __pyx_n_u_TA_ADR_Clone __pyx_string_tab[884] +#define __pyx_n_u_TA_ADR_Open __pyx_string_tab[885] +#define __pyx_n_u_TA_ADR_OpenAndFill __pyx_string_tab[886] +#define __pyx_n_u_TA_ADR_Peek __pyx_string_tab[887] +#define __pyx_n_u_TA_ADR_Update __pyx_string_tab[888] +#define __pyx_n_u_TA_ADR_Value __pyx_string_tab[889] +#define __pyx_n_u_TA_ADX __pyx_string_tab[890] +#define __pyx_n_u_TA_ADXR __pyx_string_tab[891] +#define __pyx_n_u_TA_ADXR_Clone __pyx_string_tab[892] +#define __pyx_n_u_TA_ADXR_Open __pyx_string_tab[893] +#define __pyx_n_u_TA_ADXR_OpenAndFill __pyx_string_tab[894] +#define __pyx_n_u_TA_ADXR_Peek __pyx_string_tab[895] +#define __pyx_n_u_TA_ADXR_Update __pyx_string_tab[896] +#define __pyx_n_u_TA_ADXR_Value __pyx_string_tab[897] +#define __pyx_n_u_TA_ADX_Clone __pyx_string_tab[898] +#define __pyx_n_u_TA_ADX_Open __pyx_string_tab[899] +#define __pyx_n_u_TA_ADX_OpenAndFill __pyx_string_tab[900] +#define __pyx_n_u_TA_ADX_Peek __pyx_string_tab[901] +#define __pyx_n_u_TA_ADX_Update __pyx_string_tab[902] +#define __pyx_n_u_TA_ADX_Value __pyx_string_tab[903] +#define __pyx_n_u_TA_AD_Clone __pyx_string_tab[904] +#define __pyx_n_u_TA_AD_Open __pyx_string_tab[905] +#define __pyx_n_u_TA_AD_OpenAndFill __pyx_string_tab[906] +#define __pyx_n_u_TA_AD_Peek __pyx_string_tab[907] +#define __pyx_n_u_TA_AD_Update __pyx_string_tab[908] +#define __pyx_n_u_TA_AD_Value __pyx_string_tab[909] +#define __pyx_n_u_TA_ALMA __pyx_string_tab[910] +#define __pyx_n_u_TA_ALMA_Clone __pyx_string_tab[911] +#define __pyx_n_u_TA_ALMA_Open __pyx_string_tab[912] +#define __pyx_n_u_TA_ALMA_OpenAndFill __pyx_string_tab[913] +#define __pyx_n_u_TA_ALMA_Peek __pyx_string_tab[914] +#define __pyx_n_u_TA_ALMA_Update __pyx_string_tab[915] +#define __pyx_n_u_TA_ALMA_Value __pyx_string_tab[916] +#define __pyx_n_u_TA_AO __pyx_string_tab[917] +#define __pyx_n_u_TA_AO_Clone __pyx_string_tab[918] +#define __pyx_n_u_TA_AO_Open __pyx_string_tab[919] +#define __pyx_n_u_TA_AO_OpenAndFill __pyx_string_tab[920] +#define __pyx_n_u_TA_AO_Peek __pyx_string_tab[921] +#define __pyx_n_u_TA_AO_Update __pyx_string_tab[922] +#define __pyx_n_u_TA_AO_Value __pyx_string_tab[923] +#define __pyx_n_u_TA_APO __pyx_string_tab[924] +#define __pyx_n_u_TA_APO_Clone __pyx_string_tab[925] +#define __pyx_n_u_TA_APO_Open __pyx_string_tab[926] +#define __pyx_n_u_TA_APO_OpenAndFill __pyx_string_tab[927] +#define __pyx_n_u_TA_APO_Peek __pyx_string_tab[928] +#define __pyx_n_u_TA_APO_Update __pyx_string_tab[929] +#define __pyx_n_u_TA_APO_Value __pyx_string_tab[930] +#define __pyx_n_u_TA_AROON __pyx_string_tab[931] +#define __pyx_n_u_TA_AROONOSC __pyx_string_tab[932] +#define __pyx_n_u_TA_AROONOSC_Clone __pyx_string_tab[933] +#define __pyx_n_u_TA_AROONOSC_Open __pyx_string_tab[934] +#define __pyx_n_u_TA_AROONOSC_OpenAndFill __pyx_string_tab[935] +#define __pyx_n_u_TA_AROONOSC_Peek __pyx_string_tab[936] +#define __pyx_n_u_TA_AROONOSC_Update __pyx_string_tab[937] +#define __pyx_n_u_TA_AROONOSC_Value __pyx_string_tab[938] +#define __pyx_n_u_TA_AROON_Clone __pyx_string_tab[939] +#define __pyx_n_u_TA_AROON_Open __pyx_string_tab[940] +#define __pyx_n_u_TA_AROON_OpenAndFill __pyx_string_tab[941] +#define __pyx_n_u_TA_AROON_Peek __pyx_string_tab[942] +#define __pyx_n_u_TA_AROON_Update __pyx_string_tab[943] +#define __pyx_n_u_TA_AROON_Value __pyx_string_tab[944] +#define __pyx_n_u_TA_ASI __pyx_string_tab[945] +#define __pyx_n_u_TA_ASIN __pyx_string_tab[946] +#define __pyx_n_u_TA_ASIN_Clone __pyx_string_tab[947] +#define __pyx_n_u_TA_ASIN_Open __pyx_string_tab[948] +#define __pyx_n_u_TA_ASIN_OpenAndFill __pyx_string_tab[949] +#define __pyx_n_u_TA_ASIN_Peek __pyx_string_tab[950] +#define __pyx_n_u_TA_ASIN_Update __pyx_string_tab[951] +#define __pyx_n_u_TA_ASIN_Value __pyx_string_tab[952] +#define __pyx_n_u_TA_ASI_Clone __pyx_string_tab[953] +#define __pyx_n_u_TA_ASI_Open __pyx_string_tab[954] +#define __pyx_n_u_TA_ASI_OpenAndFill __pyx_string_tab[955] +#define __pyx_n_u_TA_ASI_Peek __pyx_string_tab[956] +#define __pyx_n_u_TA_ASI_Update __pyx_string_tab[957] +#define __pyx_n_u_TA_ASI_Value __pyx_string_tab[958] +#define __pyx_n_u_TA_ATAN __pyx_string_tab[959] +#define __pyx_n_u_TA_ATAN_Clone __pyx_string_tab[960] +#define __pyx_n_u_TA_ATAN_Open __pyx_string_tab[961] +#define __pyx_n_u_TA_ATAN_OpenAndFill __pyx_string_tab[962] +#define __pyx_n_u_TA_ATAN_Peek __pyx_string_tab[963] +#define __pyx_n_u_TA_ATAN_Update __pyx_string_tab[964] +#define __pyx_n_u_TA_ATAN_Value __pyx_string_tab[965] +#define __pyx_n_u_TA_ATR __pyx_string_tab[966] +#define __pyx_n_u_TA_ATR_Clone __pyx_string_tab[967] +#define __pyx_n_u_TA_ATR_Open __pyx_string_tab[968] +#define __pyx_n_u_TA_ATR_OpenAndFill __pyx_string_tab[969] +#define __pyx_n_u_TA_ATR_Peek __pyx_string_tab[970] +#define __pyx_n_u_TA_ATR_Update __pyx_string_tab[971] +#define __pyx_n_u_TA_ATR_Value __pyx_string_tab[972] +#define __pyx_n_u_TA_AVGDEV __pyx_string_tab[973] +#define __pyx_n_u_TA_AVGDEV_Clone __pyx_string_tab[974] +#define __pyx_n_u_TA_AVGDEV_Open __pyx_string_tab[975] +#define __pyx_n_u_TA_AVGDEV_OpenAndFill __pyx_string_tab[976] +#define __pyx_n_u_TA_AVGDEV_Peek __pyx_string_tab[977] +#define __pyx_n_u_TA_AVGDEV_Update __pyx_string_tab[978] +#define __pyx_n_u_TA_AVGDEV_Value __pyx_string_tab[979] +#define __pyx_n_u_TA_AVGPRICE __pyx_string_tab[980] +#define __pyx_n_u_TA_AVGPRICE_Clone __pyx_string_tab[981] +#define __pyx_n_u_TA_AVGPRICE_Open __pyx_string_tab[982] +#define __pyx_n_u_TA_AVGPRICE_OpenAndFill __pyx_string_tab[983] +#define __pyx_n_u_TA_AVGPRICE_Peek __pyx_string_tab[984] +#define __pyx_n_u_TA_AVGPRICE_Update __pyx_string_tab[985] +#define __pyx_n_u_TA_AVGPRICE_Value __pyx_string_tab[986] +#define __pyx_n_u_TA_BBANDS __pyx_string_tab[987] +#define __pyx_n_u_TA_BBANDS_Clone __pyx_string_tab[988] +#define __pyx_n_u_TA_BBANDS_Open __pyx_string_tab[989] +#define __pyx_n_u_TA_BBANDS_OpenAndFill __pyx_string_tab[990] +#define __pyx_n_u_TA_BBANDS_Peek __pyx_string_tab[991] +#define __pyx_n_u_TA_BBANDS_Update __pyx_string_tab[992] +#define __pyx_n_u_TA_BBANDS_Value __pyx_string_tab[993] +#define __pyx_n_u_TA_BBW __pyx_string_tab[994] +#define __pyx_n_u_TA_BBW_Clone __pyx_string_tab[995] +#define __pyx_n_u_TA_BBW_Open __pyx_string_tab[996] +#define __pyx_n_u_TA_BBW_OpenAndFill __pyx_string_tab[997] +#define __pyx_n_u_TA_BBW_Peek __pyx_string_tab[998] +#define __pyx_n_u_TA_BBW_Update __pyx_string_tab[999] +#define __pyx_n_u_TA_BBW_Value __pyx_string_tab[1000] +#define __pyx_n_u_TA_BETA __pyx_string_tab[1001] +#define __pyx_n_u_TA_BETA_Clone __pyx_string_tab[1002] +#define __pyx_n_u_TA_BETA_Open __pyx_string_tab[1003] +#define __pyx_n_u_TA_BETA_OpenAndFill __pyx_string_tab[1004] +#define __pyx_n_u_TA_BETA_Peek __pyx_string_tab[1005] +#define __pyx_n_u_TA_BETA_Update __pyx_string_tab[1006] +#define __pyx_n_u_TA_BETA_Value __pyx_string_tab[1007] +#define __pyx_n_u_TA_BOP __pyx_string_tab[1008] +#define __pyx_n_u_TA_BOP_Clone __pyx_string_tab[1009] +#define __pyx_n_u_TA_BOP_Open __pyx_string_tab[1010] +#define __pyx_n_u_TA_BOP_OpenAndFill __pyx_string_tab[1011] +#define __pyx_n_u_TA_BOP_Peek __pyx_string_tab[1012] +#define __pyx_n_u_TA_BOP_Update __pyx_string_tab[1013] +#define __pyx_n_u_TA_BOP_Value __pyx_string_tab[1014] +#define __pyx_n_u_TA_CCI __pyx_string_tab[1015] +#define __pyx_n_u_TA_CCI_Clone __pyx_string_tab[1016] +#define __pyx_n_u_TA_CCI_Open __pyx_string_tab[1017] +#define __pyx_n_u_TA_CCI_OpenAndFill __pyx_string_tab[1018] +#define __pyx_n_u_TA_CCI_Peek __pyx_string_tab[1019] +#define __pyx_n_u_TA_CCI_Update __pyx_string_tab[1020] +#define __pyx_n_u_TA_CCI_Value __pyx_string_tab[1021] +#define __pyx_n_u_TA_CDL2CROWS __pyx_string_tab[1022] +#define __pyx_n_u_TA_CDL2CROWS_Clone __pyx_string_tab[1023] +#define __pyx_n_u_TA_CDL2CROWS_Open __pyx_string_tab[1024] +#define __pyx_n_u_TA_CDL2CROWS_OpenAndFill __pyx_string_tab[1025] +#define __pyx_n_u_TA_CDL2CROWS_Peek __pyx_string_tab[1026] +#define __pyx_n_u_TA_CDL2CROWS_Update __pyx_string_tab[1027] +#define __pyx_n_u_TA_CDL2CROWS_Value __pyx_string_tab[1028] +#define __pyx_n_u_TA_CDL3BLACKCROWS __pyx_string_tab[1029] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Clone __pyx_string_tab[1030] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Open __pyx_string_tab[1031] +#define __pyx_n_u_TA_CDL3BLACKCROWS_OpenAndFill __pyx_string_tab[1032] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Peek __pyx_string_tab[1033] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Update __pyx_string_tab[1034] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Value __pyx_string_tab[1035] +#define __pyx_n_u_TA_CDL3INSIDE __pyx_string_tab[1036] +#define __pyx_n_u_TA_CDL3INSIDE_Clone __pyx_string_tab[1037] +#define __pyx_n_u_TA_CDL3INSIDE_Open __pyx_string_tab[1038] +#define __pyx_n_u_TA_CDL3INSIDE_OpenAndFill __pyx_string_tab[1039] +#define __pyx_n_u_TA_CDL3INSIDE_Peek __pyx_string_tab[1040] +#define __pyx_n_u_TA_CDL3INSIDE_Update __pyx_string_tab[1041] +#define __pyx_n_u_TA_CDL3INSIDE_Value __pyx_string_tab[1042] +#define __pyx_n_u_TA_CDL3LINESTRIKE __pyx_string_tab[1043] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Clone __pyx_string_tab[1044] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Open __pyx_string_tab[1045] +#define __pyx_n_u_TA_CDL3LINESTRIKE_OpenAndFill __pyx_string_tab[1046] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Peek __pyx_string_tab[1047] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Update __pyx_string_tab[1048] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Value __pyx_string_tab[1049] +#define __pyx_n_u_TA_CDL3OUTSIDE __pyx_string_tab[1050] +#define __pyx_n_u_TA_CDL3OUTSIDE_Clone __pyx_string_tab[1051] +#define __pyx_n_u_TA_CDL3OUTSIDE_Open __pyx_string_tab[1052] +#define __pyx_n_u_TA_CDL3OUTSIDE_OpenAndFill __pyx_string_tab[1053] +#define __pyx_n_u_TA_CDL3OUTSIDE_Peek __pyx_string_tab[1054] +#define __pyx_n_u_TA_CDL3OUTSIDE_Update __pyx_string_tab[1055] +#define __pyx_n_u_TA_CDL3OUTSIDE_Value __pyx_string_tab[1056] +#define __pyx_n_u_TA_CDL3STARSINSOUTH __pyx_string_tab[1057] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Clone __pyx_string_tab[1058] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Open __pyx_string_tab[1059] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_OpenAndFill __pyx_string_tab[1060] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Peek __pyx_string_tab[1061] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Update __pyx_string_tab[1062] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Value __pyx_string_tab[1063] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS __pyx_string_tab[1064] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Clone __pyx_string_tab[1065] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Open __pyx_string_tab[1066] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_OpenAndFill __pyx_string_tab[1067] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Peek __pyx_string_tab[1068] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Update __pyx_string_tab[1069] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Value __pyx_string_tab[1070] +#define __pyx_n_u_TA_CDLABANDONEDBABY __pyx_string_tab[1071] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Clone __pyx_string_tab[1072] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Open __pyx_string_tab[1073] +#define __pyx_n_u_TA_CDLABANDONEDBABY_OpenAndFill __pyx_string_tab[1074] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Peek __pyx_string_tab[1075] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Update __pyx_string_tab[1076] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Value __pyx_string_tab[1077] +#define __pyx_n_u_TA_CDLADVANCEBLOCK __pyx_string_tab[1078] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Clone __pyx_string_tab[1079] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Open __pyx_string_tab[1080] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_OpenAndFill __pyx_string_tab[1081] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Peek __pyx_string_tab[1082] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Update __pyx_string_tab[1083] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Value __pyx_string_tab[1084] +#define __pyx_n_u_TA_CDLBELTHOLD __pyx_string_tab[1085] +#define __pyx_n_u_TA_CDLBELTHOLD_Clone __pyx_string_tab[1086] +#define __pyx_n_u_TA_CDLBELTHOLD_Open __pyx_string_tab[1087] +#define __pyx_n_u_TA_CDLBELTHOLD_OpenAndFill __pyx_string_tab[1088] +#define __pyx_n_u_TA_CDLBELTHOLD_Peek __pyx_string_tab[1089] +#define __pyx_n_u_TA_CDLBELTHOLD_Update __pyx_string_tab[1090] +#define __pyx_n_u_TA_CDLBELTHOLD_Value __pyx_string_tab[1091] +#define __pyx_n_u_TA_CDLBREAKAWAY __pyx_string_tab[1092] +#define __pyx_n_u_TA_CDLBREAKAWAY_Clone __pyx_string_tab[1093] +#define __pyx_n_u_TA_CDLBREAKAWAY_Open __pyx_string_tab[1094] +#define __pyx_n_u_TA_CDLBREAKAWAY_OpenAndFill __pyx_string_tab[1095] +#define __pyx_n_u_TA_CDLBREAKAWAY_Peek __pyx_string_tab[1096] +#define __pyx_n_u_TA_CDLBREAKAWAY_Update __pyx_string_tab[1097] +#define __pyx_n_u_TA_CDLBREAKAWAY_Value __pyx_string_tab[1098] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU __pyx_string_tab[1099] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Clone __pyx_string_tab[1100] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Open __pyx_string_tab[1101] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_OpenAndFil __pyx_string_tab[1102] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Peek __pyx_string_tab[1103] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Update __pyx_string_tab[1104] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Value __pyx_string_tab[1105] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL __pyx_string_tab[1106] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Clone __pyx_string_tab[1107] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Open __pyx_string_tab[1108] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_OpenAndFi __pyx_string_tab[1109] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Peek __pyx_string_tab[1110] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Update __pyx_string_tab[1111] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Value __pyx_string_tab[1112] +#define __pyx_n_u_TA_CDLCOUNTERATTACK __pyx_string_tab[1113] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Clone __pyx_string_tab[1114] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Open __pyx_string_tab[1115] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_OpenAndFill __pyx_string_tab[1116] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Peek __pyx_string_tab[1117] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Update __pyx_string_tab[1118] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Value __pyx_string_tab[1119] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER __pyx_string_tab[1120] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Clone __pyx_string_tab[1121] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Open __pyx_string_tab[1122] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_OpenAndFill __pyx_string_tab[1123] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Peek __pyx_string_tab[1124] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Update __pyx_string_tab[1125] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Value __pyx_string_tab[1126] +#define __pyx_n_u_TA_CDLDOJI __pyx_string_tab[1127] +#define __pyx_n_u_TA_CDLDOJISTAR __pyx_string_tab[1128] +#define __pyx_n_u_TA_CDLDOJISTAR_Clone __pyx_string_tab[1129] +#define __pyx_n_u_TA_CDLDOJISTAR_Open __pyx_string_tab[1130] +#define __pyx_n_u_TA_CDLDOJISTAR_OpenAndFill __pyx_string_tab[1131] +#define __pyx_n_u_TA_CDLDOJISTAR_Peek __pyx_string_tab[1132] +#define __pyx_n_u_TA_CDLDOJISTAR_Update __pyx_string_tab[1133] +#define __pyx_n_u_TA_CDLDOJISTAR_Value __pyx_string_tab[1134] +#define __pyx_n_u_TA_CDLDOJI_Clone __pyx_string_tab[1135] +#define __pyx_n_u_TA_CDLDOJI_Open __pyx_string_tab[1136] +#define __pyx_n_u_TA_CDLDOJI_OpenAndFill __pyx_string_tab[1137] +#define __pyx_n_u_TA_CDLDOJI_Peek __pyx_string_tab[1138] +#define __pyx_n_u_TA_CDLDOJI_Update __pyx_string_tab[1139] +#define __pyx_n_u_TA_CDLDOJI_Value __pyx_string_tab[1140] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI __pyx_string_tab[1141] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Clone __pyx_string_tab[1142] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Open __pyx_string_tab[1143] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_OpenAndFill __pyx_string_tab[1144] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Peek __pyx_string_tab[1145] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Update __pyx_string_tab[1146] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Value __pyx_string_tab[1147] +#define __pyx_n_u_TA_CDLENGULFING __pyx_string_tab[1148] +#define __pyx_n_u_TA_CDLENGULFING_Clone __pyx_string_tab[1149] +#define __pyx_n_u_TA_CDLENGULFING_Open __pyx_string_tab[1150] +#define __pyx_n_u_TA_CDLENGULFING_OpenAndFill __pyx_string_tab[1151] +#define __pyx_n_u_TA_CDLENGULFING_Peek __pyx_string_tab[1152] +#define __pyx_n_u_TA_CDLENGULFING_Update __pyx_string_tab[1153] +#define __pyx_n_u_TA_CDLENGULFING_Value __pyx_string_tab[1154] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR __pyx_string_tab[1155] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Clone __pyx_string_tab[1156] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Open __pyx_string_tab[1157] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_OpenAndFil __pyx_string_tab[1158] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Peek __pyx_string_tab[1159] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Update __pyx_string_tab[1160] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Value __pyx_string_tab[1161] +#define __pyx_n_u_TA_CDLEVENINGSTAR __pyx_string_tab[1162] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Clone __pyx_string_tab[1163] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Open __pyx_string_tab[1164] +#define __pyx_n_u_TA_CDLEVENINGSTAR_OpenAndFill __pyx_string_tab[1165] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Peek __pyx_string_tab[1166] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Update __pyx_string_tab[1167] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Value __pyx_string_tab[1168] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE __pyx_string_tab[1169] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Clone __pyx_string_tab[1170] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Open __pyx_string_tab[1171] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_OpenAndFi __pyx_string_tab[1172] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Peek __pyx_string_tab[1173] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Update __pyx_string_tab[1174] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Value __pyx_string_tab[1175] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI __pyx_string_tab[1176] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Clone __pyx_string_tab[1177] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Open __pyx_string_tab[1178] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_OpenAndFill __pyx_string_tab[1179] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Peek __pyx_string_tab[1180] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Update __pyx_string_tab[1181] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Value __pyx_string_tab[1182] +#define __pyx_n_u_TA_CDLHAMMER __pyx_string_tab[1183] +#define __pyx_n_u_TA_CDLHAMMER_Clone __pyx_string_tab[1184] +#define __pyx_n_u_TA_CDLHAMMER_Open __pyx_string_tab[1185] +#define __pyx_n_u_TA_CDLHAMMER_OpenAndFill __pyx_string_tab[1186] +#define __pyx_n_u_TA_CDLHAMMER_Peek __pyx_string_tab[1187] +#define __pyx_n_u_TA_CDLHAMMER_Update __pyx_string_tab[1188] +#define __pyx_n_u_TA_CDLHAMMER_Value __pyx_string_tab[1189] +#define __pyx_n_u_TA_CDLHANGINGMAN __pyx_string_tab[1190] +#define __pyx_n_u_TA_CDLHANGINGMAN_Clone __pyx_string_tab[1191] +#define __pyx_n_u_TA_CDLHANGINGMAN_Open __pyx_string_tab[1192] +#define __pyx_n_u_TA_CDLHANGINGMAN_OpenAndFill __pyx_string_tab[1193] +#define __pyx_n_u_TA_CDLHANGINGMAN_Peek __pyx_string_tab[1194] +#define __pyx_n_u_TA_CDLHANGINGMAN_Update __pyx_string_tab[1195] +#define __pyx_n_u_TA_CDLHANGINGMAN_Value __pyx_string_tab[1196] +#define __pyx_n_u_TA_CDLHARAMI __pyx_string_tab[1197] +#define __pyx_n_u_TA_CDLHARAMICROSS __pyx_string_tab[1198] +#define __pyx_n_u_TA_CDLHARAMICROSS_Clone __pyx_string_tab[1199] +#define __pyx_n_u_TA_CDLHARAMICROSS_Open __pyx_string_tab[1200] +#define __pyx_n_u_TA_CDLHARAMICROSS_OpenAndFill __pyx_string_tab[1201] +#define __pyx_n_u_TA_CDLHARAMICROSS_Peek __pyx_string_tab[1202] +#define __pyx_n_u_TA_CDLHARAMICROSS_Update __pyx_string_tab[1203] +#define __pyx_n_u_TA_CDLHARAMICROSS_Value __pyx_string_tab[1204] +#define __pyx_n_u_TA_CDLHARAMI_Clone __pyx_string_tab[1205] +#define __pyx_n_u_TA_CDLHARAMI_Open __pyx_string_tab[1206] +#define __pyx_n_u_TA_CDLHARAMI_OpenAndFill __pyx_string_tab[1207] +#define __pyx_n_u_TA_CDLHARAMI_Peek __pyx_string_tab[1208] +#define __pyx_n_u_TA_CDLHARAMI_Update __pyx_string_tab[1209] +#define __pyx_n_u_TA_CDLHARAMI_Value __pyx_string_tab[1210] +#define __pyx_n_u_TA_CDLHIGHWAVE __pyx_string_tab[1211] +#define __pyx_n_u_TA_CDLHIGHWAVE_Clone __pyx_string_tab[1212] +#define __pyx_n_u_TA_CDLHIGHWAVE_Open __pyx_string_tab[1213] +#define __pyx_n_u_TA_CDLHIGHWAVE_OpenAndFill __pyx_string_tab[1214] +#define __pyx_n_u_TA_CDLHIGHWAVE_Peek __pyx_string_tab[1215] +#define __pyx_n_u_TA_CDLHIGHWAVE_Update __pyx_string_tab[1216] +#define __pyx_n_u_TA_CDLHIGHWAVE_Value __pyx_string_tab[1217] +#define __pyx_n_u_TA_CDLHIKKAKE __pyx_string_tab[1218] +#define __pyx_n_u_TA_CDLHIKKAKEMOD __pyx_string_tab[1219] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Clone __pyx_string_tab[1220] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Open __pyx_string_tab[1221] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_OpenAndFill __pyx_string_tab[1222] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Peek __pyx_string_tab[1223] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Update __pyx_string_tab[1224] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Value __pyx_string_tab[1225] +#define __pyx_n_u_TA_CDLHIKKAKE_Clone __pyx_string_tab[1226] +#define __pyx_n_u_TA_CDLHIKKAKE_Open __pyx_string_tab[1227] +#define __pyx_n_u_TA_CDLHIKKAKE_OpenAndFill __pyx_string_tab[1228] +#define __pyx_n_u_TA_CDLHIKKAKE_Peek __pyx_string_tab[1229] +#define __pyx_n_u_TA_CDLHIKKAKE_Update __pyx_string_tab[1230] +#define __pyx_n_u_TA_CDLHIKKAKE_Value __pyx_string_tab[1231] +#define __pyx_n_u_TA_CDLHOMINGPIGEON __pyx_string_tab[1232] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Clone __pyx_string_tab[1233] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Open __pyx_string_tab[1234] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_OpenAndFill __pyx_string_tab[1235] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Peek __pyx_string_tab[1236] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Update __pyx_string_tab[1237] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Value __pyx_string_tab[1238] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS __pyx_string_tab[1239] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Clone __pyx_string_tab[1240] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Open __pyx_string_tab[1241] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_OpenAndFil __pyx_string_tab[1242] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Peek __pyx_string_tab[1243] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Update __pyx_string_tab[1244] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Value __pyx_string_tab[1245] +#define __pyx_n_u_TA_CDLINNECK __pyx_string_tab[1246] +#define __pyx_n_u_TA_CDLINNECK_Clone __pyx_string_tab[1247] +#define __pyx_n_u_TA_CDLINNECK_Open __pyx_string_tab[1248] +#define __pyx_n_u_TA_CDLINNECK_OpenAndFill __pyx_string_tab[1249] +#define __pyx_n_u_TA_CDLINNECK_Peek __pyx_string_tab[1250] +#define __pyx_n_u_TA_CDLINNECK_Update __pyx_string_tab[1251] +#define __pyx_n_u_TA_CDLINNECK_Value __pyx_string_tab[1252] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER __pyx_string_tab[1253] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Clone __pyx_string_tab[1254] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Open __pyx_string_tab[1255] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_OpenAndFill __pyx_string_tab[1256] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Peek __pyx_string_tab[1257] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Update __pyx_string_tab[1258] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Value __pyx_string_tab[1259] +#define __pyx_n_u_TA_CDLKICKING __pyx_string_tab[1260] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH __pyx_string_tab[1261] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Clone __pyx_string_tab[1262] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Open __pyx_string_tab[1263] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_OpenAndFil __pyx_string_tab[1264] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Peek __pyx_string_tab[1265] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Update __pyx_string_tab[1266] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Value __pyx_string_tab[1267] +#define __pyx_n_u_TA_CDLKICKING_Clone __pyx_string_tab[1268] +#define __pyx_n_u_TA_CDLKICKING_Open __pyx_string_tab[1269] +#define __pyx_n_u_TA_CDLKICKING_OpenAndFill __pyx_string_tab[1270] +#define __pyx_n_u_TA_CDLKICKING_Peek __pyx_string_tab[1271] +#define __pyx_n_u_TA_CDLKICKING_Update __pyx_string_tab[1272] +#define __pyx_n_u_TA_CDLKICKING_Value __pyx_string_tab[1273] +#define __pyx_n_u_TA_CDLLADDERBOTTOM __pyx_string_tab[1274] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Clone __pyx_string_tab[1275] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Open __pyx_string_tab[1276] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_OpenAndFill __pyx_string_tab[1277] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Peek __pyx_string_tab[1278] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Update __pyx_string_tab[1279] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Value __pyx_string_tab[1280] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI __pyx_string_tab[1281] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Clone __pyx_string_tab[1282] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Open __pyx_string_tab[1283] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_OpenAndFill __pyx_string_tab[1284] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Peek __pyx_string_tab[1285] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Update __pyx_string_tab[1286] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Value __pyx_string_tab[1287] +#define __pyx_n_u_TA_CDLLONGLINE __pyx_string_tab[1288] +#define __pyx_n_u_TA_CDLLONGLINE_Clone __pyx_string_tab[1289] +#define __pyx_n_u_TA_CDLLONGLINE_Open __pyx_string_tab[1290] +#define __pyx_n_u_TA_CDLLONGLINE_OpenAndFill __pyx_string_tab[1291] +#define __pyx_n_u_TA_CDLLONGLINE_Peek __pyx_string_tab[1292] +#define __pyx_n_u_TA_CDLLONGLINE_Update __pyx_string_tab[1293] +#define __pyx_n_u_TA_CDLLONGLINE_Value __pyx_string_tab[1294] +#define __pyx_n_u_TA_CDLMARUBOZU __pyx_string_tab[1295] +#define __pyx_n_u_TA_CDLMARUBOZU_Clone __pyx_string_tab[1296] +#define __pyx_n_u_TA_CDLMARUBOZU_Open __pyx_string_tab[1297] +#define __pyx_n_u_TA_CDLMARUBOZU_OpenAndFill __pyx_string_tab[1298] +#define __pyx_n_u_TA_CDLMARUBOZU_Peek __pyx_string_tab[1299] +#define __pyx_n_u_TA_CDLMARUBOZU_Update __pyx_string_tab[1300] +#define __pyx_n_u_TA_CDLMARUBOZU_Value __pyx_string_tab[1301] +#define __pyx_n_u_TA_CDLMATCHINGLOW __pyx_string_tab[1302] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Clone __pyx_string_tab[1303] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Open __pyx_string_tab[1304] +#define __pyx_n_u_TA_CDLMATCHINGLOW_OpenAndFill __pyx_string_tab[1305] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Peek __pyx_string_tab[1306] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Update __pyx_string_tab[1307] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Value __pyx_string_tab[1308] +#define __pyx_n_u_TA_CDLMATHOLD __pyx_string_tab[1309] +#define __pyx_n_u_TA_CDLMATHOLD_Clone __pyx_string_tab[1310] +#define __pyx_n_u_TA_CDLMATHOLD_Open __pyx_string_tab[1311] +#define __pyx_n_u_TA_CDLMATHOLD_OpenAndFill __pyx_string_tab[1312] +#define __pyx_n_u_TA_CDLMATHOLD_Peek __pyx_string_tab[1313] +#define __pyx_n_u_TA_CDLMATHOLD_Update __pyx_string_tab[1314] +#define __pyx_n_u_TA_CDLMATHOLD_Value __pyx_string_tab[1315] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR __pyx_string_tab[1316] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Clone __pyx_string_tab[1317] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Open __pyx_string_tab[1318] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_OpenAndFil __pyx_string_tab[1319] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Peek __pyx_string_tab[1320] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Update __pyx_string_tab[1321] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Value __pyx_string_tab[1322] +#define __pyx_n_u_TA_CDLMORNINGSTAR __pyx_string_tab[1323] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Clone __pyx_string_tab[1324] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Open __pyx_string_tab[1325] +#define __pyx_n_u_TA_CDLMORNINGSTAR_OpenAndFill __pyx_string_tab[1326] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Peek __pyx_string_tab[1327] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Update __pyx_string_tab[1328] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Value __pyx_string_tab[1329] +#define __pyx_n_u_TA_CDLONNECK __pyx_string_tab[1330] +#define __pyx_n_u_TA_CDLONNECK_Clone __pyx_string_tab[1331] +#define __pyx_n_u_TA_CDLONNECK_Open __pyx_string_tab[1332] +#define __pyx_n_u_TA_CDLONNECK_OpenAndFill __pyx_string_tab[1333] +#define __pyx_n_u_TA_CDLONNECK_Peek __pyx_string_tab[1334] +#define __pyx_n_u_TA_CDLONNECK_Update __pyx_string_tab[1335] +#define __pyx_n_u_TA_CDLONNECK_Value __pyx_string_tab[1336] +#define __pyx_n_u_TA_CDLPIERCING __pyx_string_tab[1337] +#define __pyx_n_u_TA_CDLPIERCING_Clone __pyx_string_tab[1338] +#define __pyx_n_u_TA_CDLPIERCING_Open __pyx_string_tab[1339] +#define __pyx_n_u_TA_CDLPIERCING_OpenAndFill __pyx_string_tab[1340] +#define __pyx_n_u_TA_CDLPIERCING_Peek __pyx_string_tab[1341] +#define __pyx_n_u_TA_CDLPIERCING_Update __pyx_string_tab[1342] +#define __pyx_n_u_TA_CDLPIERCING_Value __pyx_string_tab[1343] +#define __pyx_n_u_TA_CDLRICKSHAWMAN __pyx_string_tab[1344] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Clone __pyx_string_tab[1345] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Open __pyx_string_tab[1346] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_OpenAndFill __pyx_string_tab[1347] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Peek __pyx_string_tab[1348] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Update __pyx_string_tab[1349] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Value __pyx_string_tab[1350] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS __pyx_string_tab[1351] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Clone __pyx_string_tab[1352] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Open __pyx_string_tab[1353] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_OpenAndFi __pyx_string_tab[1354] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Peek __pyx_string_tab[1355] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Update __pyx_string_tab[1356] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Value __pyx_string_tab[1357] +#define __pyx_n_u_TA_CDLSEPARATINGLINES __pyx_string_tab[1358] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Clone __pyx_string_tab[1359] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Open __pyx_string_tab[1360] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_OpenAndFil __pyx_string_tab[1361] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Peek __pyx_string_tab[1362] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Update __pyx_string_tab[1363] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Value __pyx_string_tab[1364] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR __pyx_string_tab[1365] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Clone __pyx_string_tab[1366] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Open __pyx_string_tab[1367] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_OpenAndFill __pyx_string_tab[1368] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Peek __pyx_string_tab[1369] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Update __pyx_string_tab[1370] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Value __pyx_string_tab[1371] +#define __pyx_n_u_TA_CDLSHORTLINE __pyx_string_tab[1372] +#define __pyx_n_u_TA_CDLSHORTLINE_Clone __pyx_string_tab[1373] +#define __pyx_n_u_TA_CDLSHORTLINE_Open __pyx_string_tab[1374] +#define __pyx_n_u_TA_CDLSHORTLINE_OpenAndFill __pyx_string_tab[1375] +#define __pyx_n_u_TA_CDLSHORTLINE_Peek __pyx_string_tab[1376] +#define __pyx_n_u_TA_CDLSHORTLINE_Update __pyx_string_tab[1377] +#define __pyx_n_u_TA_CDLSHORTLINE_Value __pyx_string_tab[1378] +#define __pyx_n_u_TA_CDLSPINNINGTOP __pyx_string_tab[1379] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Clone __pyx_string_tab[1380] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Open __pyx_string_tab[1381] +#define __pyx_n_u_TA_CDLSPINNINGTOP_OpenAndFill __pyx_string_tab[1382] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Peek __pyx_string_tab[1383] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Update __pyx_string_tab[1384] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Value __pyx_string_tab[1385] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN __pyx_string_tab[1386] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Clone __pyx_string_tab[1387] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Open __pyx_string_tab[1388] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_OpenAndFill __pyx_string_tab[1389] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Peek __pyx_string_tab[1390] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Update __pyx_string_tab[1391] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Value __pyx_string_tab[1392] +#define __pyx_n_u_TA_CDLSTICKSANDWICH __pyx_string_tab[1393] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Clone __pyx_string_tab[1394] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Open __pyx_string_tab[1395] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_OpenAndFill __pyx_string_tab[1396] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Peek __pyx_string_tab[1397] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Update __pyx_string_tab[1398] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Value __pyx_string_tab[1399] +#define __pyx_n_u_TA_CDLTAKURI __pyx_string_tab[1400] +#define __pyx_n_u_TA_CDLTAKURI_Clone __pyx_string_tab[1401] +#define __pyx_n_u_TA_CDLTAKURI_Open __pyx_string_tab[1402] +#define __pyx_n_u_TA_CDLTAKURI_OpenAndFill __pyx_string_tab[1403] +#define __pyx_n_u_TA_CDLTAKURI_Peek __pyx_string_tab[1404] +#define __pyx_n_u_TA_CDLTAKURI_Update __pyx_string_tab[1405] +#define __pyx_n_u_TA_CDLTAKURI_Value __pyx_string_tab[1406] +#define __pyx_n_u_TA_CDLTASUKIGAP __pyx_string_tab[1407] +#define __pyx_n_u_TA_CDLTASUKIGAP_Clone __pyx_string_tab[1408] +#define __pyx_n_u_TA_CDLTASUKIGAP_Open __pyx_string_tab[1409] +#define __pyx_n_u_TA_CDLTASUKIGAP_OpenAndFill __pyx_string_tab[1410] +#define __pyx_n_u_TA_CDLTASUKIGAP_Peek __pyx_string_tab[1411] +#define __pyx_n_u_TA_CDLTASUKIGAP_Update __pyx_string_tab[1412] +#define __pyx_n_u_TA_CDLTASUKIGAP_Value __pyx_string_tab[1413] +#define __pyx_n_u_TA_CDLTHRUSTING __pyx_string_tab[1414] +#define __pyx_n_u_TA_CDLTHRUSTING_Clone __pyx_string_tab[1415] +#define __pyx_n_u_TA_CDLTHRUSTING_Open __pyx_string_tab[1416] +#define __pyx_n_u_TA_CDLTHRUSTING_OpenAndFill __pyx_string_tab[1417] +#define __pyx_n_u_TA_CDLTHRUSTING_Peek __pyx_string_tab[1418] +#define __pyx_n_u_TA_CDLTHRUSTING_Update __pyx_string_tab[1419] +#define __pyx_n_u_TA_CDLTHRUSTING_Value __pyx_string_tab[1420] +#define __pyx_n_u_TA_CDLTRISTAR __pyx_string_tab[1421] +#define __pyx_n_u_TA_CDLTRISTAR_Clone __pyx_string_tab[1422] +#define __pyx_n_u_TA_CDLTRISTAR_Open __pyx_string_tab[1423] +#define __pyx_n_u_TA_CDLTRISTAR_OpenAndFill __pyx_string_tab[1424] +#define __pyx_n_u_TA_CDLTRISTAR_Peek __pyx_string_tab[1425] +#define __pyx_n_u_TA_CDLTRISTAR_Update __pyx_string_tab[1426] +#define __pyx_n_u_TA_CDLTRISTAR_Value __pyx_string_tab[1427] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER __pyx_string_tab[1428] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Clone __pyx_string_tab[1429] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Open __pyx_string_tab[1430] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_OpenAndFill __pyx_string_tab[1431] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Peek __pyx_string_tab[1432] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Update __pyx_string_tab[1433] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Value __pyx_string_tab[1434] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS __pyx_string_tab[1435] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Clone __pyx_string_tab[1436] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Open __pyx_string_tab[1437] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_OpenAndFil __pyx_string_tab[1438] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Peek __pyx_string_tab[1439] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Update __pyx_string_tab[1440] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Value __pyx_string_tab[1441] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS __pyx_string_tab[1442] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Clone __pyx_string_tab[1443] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Open __pyx_string_tab[1444] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_OpenAndFi __pyx_string_tab[1445] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Peek __pyx_string_tab[1446] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Update __pyx_string_tab[1447] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Value __pyx_string_tab[1448] +#define __pyx_n_u_TA_CEIL __pyx_string_tab[1449] +#define __pyx_n_u_TA_CEIL_Clone __pyx_string_tab[1450] +#define __pyx_n_u_TA_CEIL_Open __pyx_string_tab[1451] +#define __pyx_n_u_TA_CEIL_OpenAndFill __pyx_string_tab[1452] +#define __pyx_n_u_TA_CEIL_Peek __pyx_string_tab[1453] +#define __pyx_n_u_TA_CEIL_Update __pyx_string_tab[1454] +#define __pyx_n_u_TA_CEIL_Value __pyx_string_tab[1455] +#define __pyx_n_u_TA_CG __pyx_string_tab[1456] +#define __pyx_n_u_TA_CG_Clone __pyx_string_tab[1457] +#define __pyx_n_u_TA_CG_Open __pyx_string_tab[1458] +#define __pyx_n_u_TA_CG_OpenAndFill __pyx_string_tab[1459] +#define __pyx_n_u_TA_CG_Peek __pyx_string_tab[1460] +#define __pyx_n_u_TA_CG_Update __pyx_string_tab[1461] +#define __pyx_n_u_TA_CG_Value __pyx_string_tab[1462] +#define __pyx_n_u_TA_CHOP __pyx_string_tab[1463] +#define __pyx_n_u_TA_CHOPTR __pyx_string_tab[1464] +#define __pyx_n_u_TA_CHOPTR_Clone __pyx_string_tab[1465] +#define __pyx_n_u_TA_CHOPTR_Open __pyx_string_tab[1466] +#define __pyx_n_u_TA_CHOPTR_OpenAndFill __pyx_string_tab[1467] +#define __pyx_n_u_TA_CHOPTR_Peek __pyx_string_tab[1468] +#define __pyx_n_u_TA_CHOPTR_Update __pyx_string_tab[1469] +#define __pyx_n_u_TA_CHOPTR_Value __pyx_string_tab[1470] +#define __pyx_n_u_TA_CHOP_Clone __pyx_string_tab[1471] +#define __pyx_n_u_TA_CHOP_Open __pyx_string_tab[1472] +#define __pyx_n_u_TA_CHOP_OpenAndFill __pyx_string_tab[1473] +#define __pyx_n_u_TA_CHOP_Peek __pyx_string_tab[1474] +#define __pyx_n_u_TA_CHOP_Update __pyx_string_tab[1475] +#define __pyx_n_u_TA_CHOP_Value __pyx_string_tab[1476] +#define __pyx_n_u_TA_CKSP __pyx_string_tab[1477] +#define __pyx_n_u_TA_CKSP_Clone __pyx_string_tab[1478] +#define __pyx_n_u_TA_CKSP_Open __pyx_string_tab[1479] +#define __pyx_n_u_TA_CKSP_OpenAndFill __pyx_string_tab[1480] +#define __pyx_n_u_TA_CKSP_Peek __pyx_string_tab[1481] +#define __pyx_n_u_TA_CKSP_Update __pyx_string_tab[1482] +#define __pyx_n_u_TA_CKSP_Value __pyx_string_tab[1483] +#define __pyx_n_u_TA_CMF __pyx_string_tab[1484] +#define __pyx_n_u_TA_CMF_Clone __pyx_string_tab[1485] +#define __pyx_n_u_TA_CMF_Open __pyx_string_tab[1486] +#define __pyx_n_u_TA_CMF_OpenAndFill __pyx_string_tab[1487] +#define __pyx_n_u_TA_CMF_Peek __pyx_string_tab[1488] +#define __pyx_n_u_TA_CMF_Update __pyx_string_tab[1489] +#define __pyx_n_u_TA_CMF_Value __pyx_string_tab[1490] +#define __pyx_n_u_TA_CMO __pyx_string_tab[1491] +#define __pyx_n_u_TA_CMOU __pyx_string_tab[1492] +#define __pyx_n_u_TA_CMOU_Clone __pyx_string_tab[1493] +#define __pyx_n_u_TA_CMOU_Open __pyx_string_tab[1494] +#define __pyx_n_u_TA_CMOU_OpenAndFill __pyx_string_tab[1495] +#define __pyx_n_u_TA_CMOU_Peek __pyx_string_tab[1496] +#define __pyx_n_u_TA_CMOU_Update __pyx_string_tab[1497] +#define __pyx_n_u_TA_CMOU_Value __pyx_string_tab[1498] +#define __pyx_n_u_TA_CMO_Clone __pyx_string_tab[1499] +#define __pyx_n_u_TA_CMO_Open __pyx_string_tab[1500] +#define __pyx_n_u_TA_CMO_OpenAndFill __pyx_string_tab[1501] +#define __pyx_n_u_TA_CMO_Peek __pyx_string_tab[1502] +#define __pyx_n_u_TA_CMO_Update __pyx_string_tab[1503] +#define __pyx_n_u_TA_CMO_Value __pyx_string_tab[1504] +#define __pyx_n_u_TA_COPPOCK __pyx_string_tab[1505] +#define __pyx_n_u_TA_COPPOCK_Clone __pyx_string_tab[1506] +#define __pyx_n_u_TA_COPPOCK_Open __pyx_string_tab[1507] +#define __pyx_n_u_TA_COPPOCK_OpenAndFill __pyx_string_tab[1508] +#define __pyx_n_u_TA_COPPOCK_Peek __pyx_string_tab[1509] +#define __pyx_n_u_TA_COPPOCK_Update __pyx_string_tab[1510] +#define __pyx_n_u_TA_COPPOCK_Value __pyx_string_tab[1511] +#define __pyx_n_u_TA_CORREL __pyx_string_tab[1512] +#define __pyx_n_u_TA_CORREL_Clone __pyx_string_tab[1513] +#define __pyx_n_u_TA_CORREL_Open __pyx_string_tab[1514] +#define __pyx_n_u_TA_CORREL_OpenAndFill __pyx_string_tab[1515] +#define __pyx_n_u_TA_CORREL_Peek __pyx_string_tab[1516] +#define __pyx_n_u_TA_CORREL_Update __pyx_string_tab[1517] +#define __pyx_n_u_TA_CORREL_Value __pyx_string_tab[1518] +#define __pyx_n_u_TA_COS __pyx_string_tab[1519] +#define __pyx_n_u_TA_COSH __pyx_string_tab[1520] +#define __pyx_n_u_TA_COSH_Clone __pyx_string_tab[1521] +#define __pyx_n_u_TA_COSH_Open __pyx_string_tab[1522] +#define __pyx_n_u_TA_COSH_OpenAndFill __pyx_string_tab[1523] +#define __pyx_n_u_TA_COSH_Peek __pyx_string_tab[1524] +#define __pyx_n_u_TA_COSH_Update __pyx_string_tab[1525] +#define __pyx_n_u_TA_COSH_Value __pyx_string_tab[1526] +#define __pyx_n_u_TA_COS_Clone __pyx_string_tab[1527] +#define __pyx_n_u_TA_COS_Open __pyx_string_tab[1528] +#define __pyx_n_u_TA_COS_OpenAndFill __pyx_string_tab[1529] +#define __pyx_n_u_TA_COS_Peek __pyx_string_tab[1530] +#define __pyx_n_u_TA_COS_Update __pyx_string_tab[1531] +#define __pyx_n_u_TA_COS_Value __pyx_string_tab[1532] +#define __pyx_n_u_TA_CRSI __pyx_string_tab[1533] +#define __pyx_n_u_TA_CRSI_Clone __pyx_string_tab[1534] +#define __pyx_n_u_TA_CRSI_Open __pyx_string_tab[1535] +#define __pyx_n_u_TA_CRSI_OpenAndFill __pyx_string_tab[1536] +#define __pyx_n_u_TA_CRSI_Peek __pyx_string_tab[1537] +#define __pyx_n_u_TA_CRSI_Update __pyx_string_tab[1538] +#define __pyx_n_u_TA_CRSI_Value __pyx_string_tab[1539] +#define __pyx_n_u_TA_CTI __pyx_string_tab[1540] +#define __pyx_n_u_TA_CTI_Clone __pyx_string_tab[1541] +#define __pyx_n_u_TA_CTI_Open __pyx_string_tab[1542] +#define __pyx_n_u_TA_CTI_OpenAndFill __pyx_string_tab[1543] +#define __pyx_n_u_TA_CTI_Peek __pyx_string_tab[1544] +#define __pyx_n_u_TA_CTI_Update __pyx_string_tab[1545] +#define __pyx_n_u_TA_CTI_Value __pyx_string_tab[1546] +#define __pyx_n_u_TA_CUMSUM __pyx_string_tab[1547] +#define __pyx_n_u_TA_CUMSUM_Clone __pyx_string_tab[1548] +#define __pyx_n_u_TA_CUMSUM_Open __pyx_string_tab[1549] +#define __pyx_n_u_TA_CUMSUM_OpenAndFill __pyx_string_tab[1550] +#define __pyx_n_u_TA_CUMSUM_Peek __pyx_string_tab[1551] +#define __pyx_n_u_TA_CUMSUM_Update __pyx_string_tab[1552] +#define __pyx_n_u_TA_CUMSUM_Value __pyx_string_tab[1553] +#define __pyx_n_u_TA_CVI __pyx_string_tab[1554] +#define __pyx_n_u_TA_CVI_Clone __pyx_string_tab[1555] +#define __pyx_n_u_TA_CVI_Open __pyx_string_tab[1556] +#define __pyx_n_u_TA_CVI_OpenAndFill __pyx_string_tab[1557] +#define __pyx_n_u_TA_CVI_Peek __pyx_string_tab[1558] +#define __pyx_n_u_TA_CVI_Update __pyx_string_tab[1559] +#define __pyx_n_u_TA_CVI_Value __pyx_string_tab[1560] +#define __pyx_n_u_TA_DEMA __pyx_string_tab[1561] +#define __pyx_n_u_TA_DEMA_Clone __pyx_string_tab[1562] +#define __pyx_n_u_TA_DEMA_Open __pyx_string_tab[1563] +#define __pyx_n_u_TA_DEMA_OpenAndFill __pyx_string_tab[1564] +#define __pyx_n_u_TA_DEMA_Peek __pyx_string_tab[1565] +#define __pyx_n_u_TA_DEMA_Update __pyx_string_tab[1566] +#define __pyx_n_u_TA_DEMA_Value __pyx_string_tab[1567] +#define __pyx_n_u_TA_DIV __pyx_string_tab[1568] +#define __pyx_n_u_TA_DIV_Clone __pyx_string_tab[1569] +#define __pyx_n_u_TA_DIV_Open __pyx_string_tab[1570] +#define __pyx_n_u_TA_DIV_OpenAndFill __pyx_string_tab[1571] +#define __pyx_n_u_TA_DIV_Peek __pyx_string_tab[1572] +#define __pyx_n_u_TA_DIV_Update __pyx_string_tab[1573] +#define __pyx_n_u_TA_DIV_Value __pyx_string_tab[1574] +#define __pyx_n_u_TA_DONCHIAN __pyx_string_tab[1575] +#define __pyx_n_u_TA_DONCHIAN_Clone __pyx_string_tab[1576] +#define __pyx_n_u_TA_DONCHIAN_Open __pyx_string_tab[1577] +#define __pyx_n_u_TA_DONCHIAN_OpenAndFill __pyx_string_tab[1578] +#define __pyx_n_u_TA_DONCHIAN_Peek __pyx_string_tab[1579] +#define __pyx_n_u_TA_DONCHIAN_Update __pyx_string_tab[1580] +#define __pyx_n_u_TA_DONCHIAN_Value __pyx_string_tab[1581] +#define __pyx_n_u_TA_DOSC __pyx_string_tab[1582] +#define __pyx_n_u_TA_DOSC_Clone __pyx_string_tab[1583] +#define __pyx_n_u_TA_DOSC_Open __pyx_string_tab[1584] +#define __pyx_n_u_TA_DOSC_OpenAndFill __pyx_string_tab[1585] +#define __pyx_n_u_TA_DOSC_Peek __pyx_string_tab[1586] +#define __pyx_n_u_TA_DOSC_Update __pyx_string_tab[1587] +#define __pyx_n_u_TA_DOSC_Value __pyx_string_tab[1588] +#define __pyx_n_u_TA_DPO __pyx_string_tab[1589] +#define __pyx_n_u_TA_DPO_Clone __pyx_string_tab[1590] +#define __pyx_n_u_TA_DPO_Open __pyx_string_tab[1591] +#define __pyx_n_u_TA_DPO_OpenAndFill __pyx_string_tab[1592] +#define __pyx_n_u_TA_DPO_Peek __pyx_string_tab[1593] +#define __pyx_n_u_TA_DPO_Update __pyx_string_tab[1594] +#define __pyx_n_u_TA_DPO_Value __pyx_string_tab[1595] +#define __pyx_n_u_TA_DX __pyx_string_tab[1596] +#define __pyx_n_u_TA_DX_Clone __pyx_string_tab[1597] +#define __pyx_n_u_TA_DX_Open __pyx_string_tab[1598] +#define __pyx_n_u_TA_DX_OpenAndFill __pyx_string_tab[1599] +#define __pyx_n_u_TA_DX_Peek __pyx_string_tab[1600] +#define __pyx_n_u_TA_DX_Update __pyx_string_tab[1601] +#define __pyx_n_u_TA_DX_Value __pyx_string_tab[1602] +#define __pyx_n_u_TA_EFI __pyx_string_tab[1603] +#define __pyx_n_u_TA_EFI_Clone __pyx_string_tab[1604] +#define __pyx_n_u_TA_EFI_Open __pyx_string_tab[1605] +#define __pyx_n_u_TA_EFI_OpenAndFill __pyx_string_tab[1606] +#define __pyx_n_u_TA_EFI_Peek __pyx_string_tab[1607] +#define __pyx_n_u_TA_EFI_Update __pyx_string_tab[1608] +#define __pyx_n_u_TA_EFI_Value __pyx_string_tab[1609] +#define __pyx_n_u_TA_EMA __pyx_string_tab[1610] +#define __pyx_n_u_TA_EMA_Clone __pyx_string_tab[1611] +#define __pyx_n_u_TA_EMA_Open __pyx_string_tab[1612] +#define __pyx_n_u_TA_EMA_OpenAndFill __pyx_string_tab[1613] +#define __pyx_n_u_TA_EMA_Peek __pyx_string_tab[1614] +#define __pyx_n_u_TA_EMA_Update __pyx_string_tab[1615] +#define __pyx_n_u_TA_EMA_Value __pyx_string_tab[1616] +#define __pyx_n_u_TA_EMV __pyx_string_tab[1617] +#define __pyx_n_u_TA_EMV_Clone __pyx_string_tab[1618] +#define __pyx_n_u_TA_EMV_Open __pyx_string_tab[1619] +#define __pyx_n_u_TA_EMV_OpenAndFill __pyx_string_tab[1620] +#define __pyx_n_u_TA_EMV_Peek __pyx_string_tab[1621] +#define __pyx_n_u_TA_EMV_Update __pyx_string_tab[1622] +#define __pyx_n_u_TA_EMV_Value __pyx_string_tab[1623] +#define __pyx_n_u_TA_ER __pyx_string_tab[1624] +#define __pyx_n_u_TA_ERI __pyx_string_tab[1625] +#define __pyx_n_u_TA_ERI_Clone __pyx_string_tab[1626] +#define __pyx_n_u_TA_ERI_Open __pyx_string_tab[1627] +#define __pyx_n_u_TA_ERI_OpenAndFill __pyx_string_tab[1628] +#define __pyx_n_u_TA_ERI_Peek __pyx_string_tab[1629] +#define __pyx_n_u_TA_ERI_Update __pyx_string_tab[1630] +#define __pyx_n_u_TA_ERI_Value __pyx_string_tab[1631] +#define __pyx_n_u_TA_ER_Clone __pyx_string_tab[1632] +#define __pyx_n_u_TA_ER_Open __pyx_string_tab[1633] +#define __pyx_n_u_TA_ER_OpenAndFill __pyx_string_tab[1634] +#define __pyx_n_u_TA_ER_Peek __pyx_string_tab[1635] +#define __pyx_n_u_TA_ER_Update __pyx_string_tab[1636] +#define __pyx_n_u_TA_ER_Value __pyx_string_tab[1637] +#define __pyx_n_u_TA_EXP __pyx_string_tab[1638] +#define __pyx_n_u_TA_EXP_Clone __pyx_string_tab[1639] +#define __pyx_n_u_TA_EXP_Open __pyx_string_tab[1640] +#define __pyx_n_u_TA_EXP_OpenAndFill __pyx_string_tab[1641] +#define __pyx_n_u_TA_EXP_Peek __pyx_string_tab[1642] +#define __pyx_n_u_TA_EXP_Update __pyx_string_tab[1643] +#define __pyx_n_u_TA_EXP_Value __pyx_string_tab[1644] +#define __pyx_n_u_TA_FISHER __pyx_string_tab[1645] +#define __pyx_n_u_TA_FISHER_Clone __pyx_string_tab[1646] +#define __pyx_n_u_TA_FISHER_Open __pyx_string_tab[1647] +#define __pyx_n_u_TA_FISHER_OpenAndFill __pyx_string_tab[1648] +#define __pyx_n_u_TA_FISHER_Peek __pyx_string_tab[1649] +#define __pyx_n_u_TA_FISHER_Update __pyx_string_tab[1650] +#define __pyx_n_u_TA_FISHER_Value __pyx_string_tab[1651] +#define __pyx_n_u_TA_FLOOR __pyx_string_tab[1652] +#define __pyx_n_u_TA_FLOOR_Clone __pyx_string_tab[1653] +#define __pyx_n_u_TA_FLOOR_Open __pyx_string_tab[1654] +#define __pyx_n_u_TA_FLOOR_OpenAndFill __pyx_string_tab[1655] +#define __pyx_n_u_TA_FLOOR_Peek __pyx_string_tab[1656] +#define __pyx_n_u_TA_FLOOR_Update __pyx_string_tab[1657] +#define __pyx_n_u_TA_FLOOR_Value __pyx_string_tab[1658] +#define __pyx_n_u_TA_FOSC __pyx_string_tab[1659] +#define __pyx_n_u_TA_FOSC_Clone __pyx_string_tab[1660] +#define __pyx_n_u_TA_FOSC_Open __pyx_string_tab[1661] +#define __pyx_n_u_TA_FOSC_OpenAndFill __pyx_string_tab[1662] +#define __pyx_n_u_TA_FOSC_Peek __pyx_string_tab[1663] +#define __pyx_n_u_TA_FOSC_Update __pyx_string_tab[1664] +#define __pyx_n_u_TA_FOSC_Value __pyx_string_tab[1665] +#define __pyx_n_u_TA_FRACTAL __pyx_string_tab[1666] +#define __pyx_n_u_TA_FRACTAL_Clone __pyx_string_tab[1667] +#define __pyx_n_u_TA_FRACTAL_Open __pyx_string_tab[1668] +#define __pyx_n_u_TA_FRACTAL_OpenAndFill __pyx_string_tab[1669] +#define __pyx_n_u_TA_FRACTAL_Peek __pyx_string_tab[1670] +#define __pyx_n_u_TA_FRACTAL_Update __pyx_string_tab[1671] +#define __pyx_n_u_TA_FRACTAL_Value __pyx_string_tab[1672] +#define __pyx_n_u_TA_FRAMA __pyx_string_tab[1673] +#define __pyx_n_u_TA_FRAMA_Clone __pyx_string_tab[1674] +#define __pyx_n_u_TA_FRAMA_Open __pyx_string_tab[1675] +#define __pyx_n_u_TA_FRAMA_OpenAndFill __pyx_string_tab[1676] +#define __pyx_n_u_TA_FRAMA_Peek __pyx_string_tab[1677] +#define __pyx_n_u_TA_FRAMA_Update __pyx_string_tab[1678] +#define __pyx_n_u_TA_FRAMA_Value __pyx_string_tab[1679] +#define __pyx_n_u_TA_FUNC_FLAGS __pyx_string_tab[1680] +#define __pyx_n_u_TA_FuncTableAlloc __pyx_string_tab[1681] +#define __pyx_n_u_TA_FuncTableFree __pyx_string_tab[1682] +#define __pyx_n_u_TA_GetFuncHandle __pyx_string_tab[1683] +#define __pyx_n_u_TA_GetFuncInfo __pyx_string_tab[1684] +#define __pyx_n_u_TA_GetInputParameterInfo __pyx_string_tab[1685] +#define __pyx_n_u_TA_GetLookback __pyx_string_tab[1686] +#define __pyx_n_u_TA_GetOptInputParameterInfo __pyx_string_tab[1687] +#define __pyx_n_u_TA_GetOutputParameterInfo __pyx_string_tab[1688] +#define __pyx_n_u_TA_GetRuntimeInfo __pyx_string_tab[1689] +#define __pyx_n_u_TA_GroupTableAlloc __pyx_string_tab[1690] +#define __pyx_n_u_TA_GroupTableFree __pyx_string_tab[1691] +#define __pyx_n_u_TA_HA __pyx_string_tab[1692] +#define __pyx_n_u_TA_HA_Clone __pyx_string_tab[1693] +#define __pyx_n_u_TA_HA_Open __pyx_string_tab[1694] +#define __pyx_n_u_TA_HA_OpenAndFill __pyx_string_tab[1695] +#define __pyx_n_u_TA_HA_Peek __pyx_string_tab[1696] +#define __pyx_n_u_TA_HA_Update __pyx_string_tab[1697] +#define __pyx_n_u_TA_HA_Value __pyx_string_tab[1698] +#define __pyx_n_u_TA_HMA __pyx_string_tab[1699] +#define __pyx_n_u_TA_HMA_Clone __pyx_string_tab[1700] +#define __pyx_n_u_TA_HMA_Open __pyx_string_tab[1701] +#define __pyx_n_u_TA_HMA_OpenAndFill __pyx_string_tab[1702] +#define __pyx_n_u_TA_HMA_Peek __pyx_string_tab[1703] +#define __pyx_n_u_TA_HMA_Update __pyx_string_tab[1704] +#define __pyx_n_u_TA_HMA_Value __pyx_string_tab[1705] +#define __pyx_n_u_TA_HT_DCPERIOD __pyx_string_tab[1706] +#define __pyx_n_u_TA_HT_DCPERIOD_Clone __pyx_string_tab[1707] +#define __pyx_n_u_TA_HT_DCPERIOD_Open __pyx_string_tab[1708] +#define __pyx_n_u_TA_HT_DCPERIOD_OpenAndFill __pyx_string_tab[1709] +#define __pyx_n_u_TA_HT_DCPERIOD_Peek __pyx_string_tab[1710] +#define __pyx_n_u_TA_HT_DCPERIOD_Update __pyx_string_tab[1711] +#define __pyx_n_u_TA_HT_DCPERIOD_Value __pyx_string_tab[1712] +#define __pyx_n_u_TA_HT_DCPHASE __pyx_string_tab[1713] +#define __pyx_n_u_TA_HT_DCPHASE_Clone __pyx_string_tab[1714] +#define __pyx_n_u_TA_HT_DCPHASE_Open __pyx_string_tab[1715] +#define __pyx_n_u_TA_HT_DCPHASE_OpenAndFill __pyx_string_tab[1716] +#define __pyx_n_u_TA_HT_DCPHASE_Peek __pyx_string_tab[1717] +#define __pyx_n_u_TA_HT_DCPHASE_Update __pyx_string_tab[1718] +#define __pyx_n_u_TA_HT_DCPHASE_Value __pyx_string_tab[1719] +#define __pyx_n_u_TA_HT_PHASOR __pyx_string_tab[1720] +#define __pyx_n_u_TA_HT_PHASOR_Clone __pyx_string_tab[1721] +#define __pyx_n_u_TA_HT_PHASOR_Open __pyx_string_tab[1722] +#define __pyx_n_u_TA_HT_PHASOR_OpenAndFill __pyx_string_tab[1723] +#define __pyx_n_u_TA_HT_PHASOR_Peek __pyx_string_tab[1724] +#define __pyx_n_u_TA_HT_PHASOR_Update __pyx_string_tab[1725] +#define __pyx_n_u_TA_HT_PHASOR_Value __pyx_string_tab[1726] +#define __pyx_n_u_TA_HT_SINE __pyx_string_tab[1727] +#define __pyx_n_u_TA_HT_SINE_Clone __pyx_string_tab[1728] +#define __pyx_n_u_TA_HT_SINE_Open __pyx_string_tab[1729] +#define __pyx_n_u_TA_HT_SINE_OpenAndFill __pyx_string_tab[1730] +#define __pyx_n_u_TA_HT_SINE_Peek __pyx_string_tab[1731] +#define __pyx_n_u_TA_HT_SINE_Update __pyx_string_tab[1732] +#define __pyx_n_u_TA_HT_SINE_Value __pyx_string_tab[1733] +#define __pyx_n_u_TA_HT_TRENDLINE __pyx_string_tab[1734] +#define __pyx_n_u_TA_HT_TRENDLINE_Clone __pyx_string_tab[1735] +#define __pyx_n_u_TA_HT_TRENDLINE_Open __pyx_string_tab[1736] +#define __pyx_n_u_TA_HT_TRENDLINE_OpenAndFill __pyx_string_tab[1737] +#define __pyx_n_u_TA_HT_TRENDLINE_Peek __pyx_string_tab[1738] +#define __pyx_n_u_TA_HT_TRENDLINE_Update __pyx_string_tab[1739] +#define __pyx_n_u_TA_HT_TRENDLINE_Value __pyx_string_tab[1740] +#define __pyx_n_u_TA_HT_TRENDMODE __pyx_string_tab[1741] +#define __pyx_n_u_TA_HT_TRENDMODE_Clone __pyx_string_tab[1742] +#define __pyx_n_u_TA_HT_TRENDMODE_Open __pyx_string_tab[1743] +#define __pyx_n_u_TA_HT_TRENDMODE_OpenAndFill __pyx_string_tab[1744] +#define __pyx_n_u_TA_HT_TRENDMODE_Peek __pyx_string_tab[1745] +#define __pyx_n_u_TA_HT_TRENDMODE_Update __pyx_string_tab[1746] +#define __pyx_n_u_TA_HT_TRENDMODE_Value __pyx_string_tab[1747] +#define __pyx_n_u_TA_IBS __pyx_string_tab[1748] +#define __pyx_n_u_TA_IBS_Clone __pyx_string_tab[1749] +#define __pyx_n_u_TA_IBS_Open __pyx_string_tab[1750] +#define __pyx_n_u_TA_IBS_OpenAndFill __pyx_string_tab[1751] +#define __pyx_n_u_TA_IBS_Peek __pyx_string_tab[1752] +#define __pyx_n_u_TA_IBS_Update __pyx_string_tab[1753] +#define __pyx_n_u_TA_IBS_Value __pyx_string_tab[1754] +#define __pyx_n_u_TA_ICHIMOKU __pyx_string_tab[1755] +#define __pyx_n_u_TA_ICHIMOKU_Clone __pyx_string_tab[1756] +#define __pyx_n_u_TA_ICHIMOKU_Open __pyx_string_tab[1757] +#define __pyx_n_u_TA_ICHIMOKU_OpenAndFill __pyx_string_tab[1758] +#define __pyx_n_u_TA_ICHIMOKU_Peek __pyx_string_tab[1759] +#define __pyx_n_u_TA_ICHIMOKU_Update __pyx_string_tab[1760] +#define __pyx_n_u_TA_ICHIMOKU_Value __pyx_string_tab[1761] +#define __pyx_n_u_TA_IMI __pyx_string_tab[1762] +#define __pyx_n_u_TA_IMI_Clone __pyx_string_tab[1763] +#define __pyx_n_u_TA_IMI_Open __pyx_string_tab[1764] +#define __pyx_n_u_TA_IMI_OpenAndFill __pyx_string_tab[1765] +#define __pyx_n_u_TA_IMI_Peek __pyx_string_tab[1766] +#define __pyx_n_u_TA_IMI_Update __pyx_string_tab[1767] +#define __pyx_n_u_TA_IMI_Value __pyx_string_tab[1768] +#define __pyx_n_u_TA_INPUT_FLAGS __pyx_string_tab[1769] +#define __pyx_n_u_TA_Initialize __pyx_string_tab[1770] +#define __pyx_n_u_TA_KAMA __pyx_string_tab[1771] +#define __pyx_n_u_TA_KAMA_Clone __pyx_string_tab[1772] +#define __pyx_n_u_TA_KAMA_Open __pyx_string_tab[1773] +#define __pyx_n_u_TA_KAMA_OpenAndFill __pyx_string_tab[1774] +#define __pyx_n_u_TA_KAMA_Peek __pyx_string_tab[1775] +#define __pyx_n_u_TA_KAMA_Update __pyx_string_tab[1776] +#define __pyx_n_u_TA_KAMA_Value __pyx_string_tab[1777] +#define __pyx_n_u_TA_KC __pyx_string_tab[1778] +#define __pyx_n_u_TA_KC_Clone __pyx_string_tab[1779] +#define __pyx_n_u_TA_KC_Open __pyx_string_tab[1780] +#define __pyx_n_u_TA_KC_OpenAndFill __pyx_string_tab[1781] +#define __pyx_n_u_TA_KC_Peek __pyx_string_tab[1782] +#define __pyx_n_u_TA_KC_Update __pyx_string_tab[1783] +#define __pyx_n_u_TA_KC_Value __pyx_string_tab[1784] +#define __pyx_n_u_TA_KDJ __pyx_string_tab[1785] +#define __pyx_n_u_TA_KDJ_Clone __pyx_string_tab[1786] +#define __pyx_n_u_TA_KDJ_Open __pyx_string_tab[1787] +#define __pyx_n_u_TA_KDJ_OpenAndFill __pyx_string_tab[1788] +#define __pyx_n_u_TA_KDJ_Peek __pyx_string_tab[1789] +#define __pyx_n_u_TA_KDJ_Update __pyx_string_tab[1790] +#define __pyx_n_u_TA_KDJ_Value __pyx_string_tab[1791] +#define __pyx_n_u_TA_KST __pyx_string_tab[1792] +#define __pyx_n_u_TA_KSTEXT __pyx_string_tab[1793] +#define __pyx_n_u_TA_KSTEXT_Clone __pyx_string_tab[1794] +#define __pyx_n_u_TA_KSTEXT_Open __pyx_string_tab[1795] +#define __pyx_n_u_TA_KSTEXT_OpenAndFill __pyx_string_tab[1796] +#define __pyx_n_u_TA_KSTEXT_Peek __pyx_string_tab[1797] +#define __pyx_n_u_TA_KSTEXT_Update __pyx_string_tab[1798] +#define __pyx_n_u_TA_KSTEXT_Value __pyx_string_tab[1799] +#define __pyx_n_u_TA_KST_Clone __pyx_string_tab[1800] +#define __pyx_n_u_TA_KST_Open __pyx_string_tab[1801] +#define __pyx_n_u_TA_KST_OpenAndFill __pyx_string_tab[1802] +#define __pyx_n_u_TA_KST_Peek __pyx_string_tab[1803] +#define __pyx_n_u_TA_KST_Update __pyx_string_tab[1804] +#define __pyx_n_u_TA_KST_Value __pyx_string_tab[1805] +#define __pyx_n_u_TA_KURTOSIS __pyx_string_tab[1806] +#define __pyx_n_u_TA_KURTOSIS_Clone __pyx_string_tab[1807] +#define __pyx_n_u_TA_KURTOSIS_Open __pyx_string_tab[1808] +#define __pyx_n_u_TA_KURTOSIS_OpenAndFill __pyx_string_tab[1809] +#define __pyx_n_u_TA_KURTOSIS_Peek __pyx_string_tab[1810] +#define __pyx_n_u_TA_KURTOSIS_Update __pyx_string_tab[1811] +#define __pyx_n_u_TA_KURTOSIS_Value __pyx_string_tab[1812] +#define __pyx_n_u_TA_KVO __pyx_string_tab[1813] +#define __pyx_n_u_TA_KVO_Clone __pyx_string_tab[1814] +#define __pyx_n_u_TA_KVO_Open __pyx_string_tab[1815] +#define __pyx_n_u_TA_KVO_OpenAndFill __pyx_string_tab[1816] +#define __pyx_n_u_TA_KVO_Peek __pyx_string_tab[1817] +#define __pyx_n_u_TA_KVO_Update __pyx_string_tab[1818] +#define __pyx_n_u_TA_KVO_Value __pyx_string_tab[1819] +#define __pyx_n_u_TA_LINEARREG __pyx_string_tab[1820] +#define __pyx_n_u_TA_LINEARREG_ANGLE __pyx_string_tab[1821] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Clone __pyx_string_tab[1822] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Open __pyx_string_tab[1823] +#define __pyx_n_u_TA_LINEARREG_ANGLE_OpenAndFill __pyx_string_tab[1824] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Peek __pyx_string_tab[1825] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Update __pyx_string_tab[1826] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Value __pyx_string_tab[1827] +#define __pyx_n_u_TA_LINEARREG_Clone __pyx_string_tab[1828] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT __pyx_string_tab[1829] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Clone __pyx_string_tab[1830] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Open __pyx_string_tab[1831] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_OpenAndFi __pyx_string_tab[1832] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Peek __pyx_string_tab[1833] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Update __pyx_string_tab[1834] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Value __pyx_string_tab[1835] +#define __pyx_n_u_TA_LINEARREG_Open __pyx_string_tab[1836] +#define __pyx_n_u_TA_LINEARREG_OpenAndFill __pyx_string_tab[1837] +#define __pyx_n_u_TA_LINEARREG_Peek __pyx_string_tab[1838] +#define __pyx_n_u_TA_LINEARREG_SLOPE __pyx_string_tab[1839] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Clone __pyx_string_tab[1840] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Open __pyx_string_tab[1841] +#define __pyx_n_u_TA_LINEARREG_SLOPE_OpenAndFill __pyx_string_tab[1842] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Peek __pyx_string_tab[1843] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Update __pyx_string_tab[1844] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Value __pyx_string_tab[1845] +#define __pyx_n_u_TA_LINEARREG_Update __pyx_string_tab[1846] +#define __pyx_n_u_TA_LINEARREG_Value __pyx_string_tab[1847] +#define __pyx_n_u_TA_LN __pyx_string_tab[1848] +#define __pyx_n_u_TA_LN_Clone __pyx_string_tab[1849] +#define __pyx_n_u_TA_LN_Open __pyx_string_tab[1850] +#define __pyx_n_u_TA_LN_OpenAndFill __pyx_string_tab[1851] +#define __pyx_n_u_TA_LN_Peek __pyx_string_tab[1852] +#define __pyx_n_u_TA_LN_Update __pyx_string_tab[1853] +#define __pyx_n_u_TA_LN_Value __pyx_string_tab[1854] +#define __pyx_n_u_TA_LOG10 __pyx_string_tab[1855] +#define __pyx_n_u_TA_LOG10_Clone __pyx_string_tab[1856] +#define __pyx_n_u_TA_LOG10_Open __pyx_string_tab[1857] +#define __pyx_n_u_TA_LOG10_OpenAndFill __pyx_string_tab[1858] +#define __pyx_n_u_TA_LOG10_Peek __pyx_string_tab[1859] +#define __pyx_n_u_TA_LOG10_Update __pyx_string_tab[1860] +#define __pyx_n_u_TA_LOG10_Value __pyx_string_tab[1861] +#define __pyx_n_u_TA_MA __pyx_string_tab[1862] +#define __pyx_n_u_TA_MACD __pyx_string_tab[1863] +#define __pyx_n_u_TA_MACDEXT __pyx_string_tab[1864] +#define __pyx_n_u_TA_MACDEXT_Clone __pyx_string_tab[1865] +#define __pyx_n_u_TA_MACDEXT_Open __pyx_string_tab[1866] +#define __pyx_n_u_TA_MACDEXT_OpenAndFill __pyx_string_tab[1867] +#define __pyx_n_u_TA_MACDEXT_Peek __pyx_string_tab[1868] +#define __pyx_n_u_TA_MACDEXT_Update __pyx_string_tab[1869] +#define __pyx_n_u_TA_MACDEXT_Value __pyx_string_tab[1870] +#define __pyx_n_u_TA_MACDFIX __pyx_string_tab[1871] +#define __pyx_n_u_TA_MACDFIX_Clone __pyx_string_tab[1872] +#define __pyx_n_u_TA_MACDFIX_Open __pyx_string_tab[1873] +#define __pyx_n_u_TA_MACDFIX_OpenAndFill __pyx_string_tab[1874] +#define __pyx_n_u_TA_MACDFIX_Peek __pyx_string_tab[1875] +#define __pyx_n_u_TA_MACDFIX_Update __pyx_string_tab[1876] +#define __pyx_n_u_TA_MACDFIX_Value __pyx_string_tab[1877] +#define __pyx_n_u_TA_MACD_Clone __pyx_string_tab[1878] +#define __pyx_n_u_TA_MACD_Open __pyx_string_tab[1879] +#define __pyx_n_u_TA_MACD_OpenAndFill __pyx_string_tab[1880] +#define __pyx_n_u_TA_MACD_Peek __pyx_string_tab[1881] +#define __pyx_n_u_TA_MACD_Update __pyx_string_tab[1882] +#define __pyx_n_u_TA_MACD_Value __pyx_string_tab[1883] +#define __pyx_n_u_TA_MAMA __pyx_string_tab[1884] +#define __pyx_n_u_TA_MAMA_Clone __pyx_string_tab[1885] +#define __pyx_n_u_TA_MAMA_Open __pyx_string_tab[1886] +#define __pyx_n_u_TA_MAMA_OpenAndFill __pyx_string_tab[1887] +#define __pyx_n_u_TA_MAMA_Peek __pyx_string_tab[1888] +#define __pyx_n_u_TA_MAMA_Update __pyx_string_tab[1889] +#define __pyx_n_u_TA_MAMA_Value __pyx_string_tab[1890] +#define __pyx_n_u_TA_MARKETFI __pyx_string_tab[1891] +#define __pyx_n_u_TA_MARKETFI_Clone __pyx_string_tab[1892] +#define __pyx_n_u_TA_MARKETFI_Open __pyx_string_tab[1893] +#define __pyx_n_u_TA_MARKETFI_OpenAndFill __pyx_string_tab[1894] +#define __pyx_n_u_TA_MARKETFI_Peek __pyx_string_tab[1895] +#define __pyx_n_u_TA_MARKETFI_Update __pyx_string_tab[1896] +#define __pyx_n_u_TA_MARKETFI_Value __pyx_string_tab[1897] +#define __pyx_n_u_TA_MASSI __pyx_string_tab[1898] +#define __pyx_n_u_TA_MASSI_Clone __pyx_string_tab[1899] +#define __pyx_n_u_TA_MASSI_Open __pyx_string_tab[1900] +#define __pyx_n_u_TA_MASSI_OpenAndFill __pyx_string_tab[1901] +#define __pyx_n_u_TA_MASSI_Peek __pyx_string_tab[1902] +#define __pyx_n_u_TA_MASSI_Update __pyx_string_tab[1903] +#define __pyx_n_u_TA_MASSI_Value __pyx_string_tab[1904] +#define __pyx_n_u_TA_MAVP __pyx_string_tab[1905] +#define __pyx_n_u_TA_MAVP_Clone __pyx_string_tab[1906] +#define __pyx_n_u_TA_MAVP_Open __pyx_string_tab[1907] +#define __pyx_n_u_TA_MAVP_OpenAndFill __pyx_string_tab[1908] +#define __pyx_n_u_TA_MAVP_Peek __pyx_string_tab[1909] +#define __pyx_n_u_TA_MAVP_Update __pyx_string_tab[1910] +#define __pyx_n_u_TA_MAVP_Value __pyx_string_tab[1911] +#define __pyx_n_u_TA_MAX __pyx_string_tab[1912] +#define __pyx_n_u_TA_MAXINDEX __pyx_string_tab[1913] +#define __pyx_n_u_TA_MAXINDEX_Clone __pyx_string_tab[1914] +#define __pyx_n_u_TA_MAXINDEX_Open __pyx_string_tab[1915] +#define __pyx_n_u_TA_MAXINDEX_OpenAndFill __pyx_string_tab[1916] +#define __pyx_n_u_TA_MAXINDEX_Peek __pyx_string_tab[1917] +#define __pyx_n_u_TA_MAXINDEX_Update __pyx_string_tab[1918] +#define __pyx_n_u_TA_MAXINDEX_Value __pyx_string_tab[1919] +#define __pyx_n_u_TA_MAX_Clone __pyx_string_tab[1920] +#define __pyx_n_u_TA_MAX_Open __pyx_string_tab[1921] +#define __pyx_n_u_TA_MAX_OpenAndFill __pyx_string_tab[1922] +#define __pyx_n_u_TA_MAX_Peek __pyx_string_tab[1923] +#define __pyx_n_u_TA_MAX_Update __pyx_string_tab[1924] +#define __pyx_n_u_TA_MAX_Value __pyx_string_tab[1925] +#define __pyx_n_u_TA_MA_Clone __pyx_string_tab[1926] +#define __pyx_n_u_TA_MA_Open __pyx_string_tab[1927] +#define __pyx_n_u_TA_MA_OpenAndFill __pyx_string_tab[1928] +#define __pyx_n_u_TA_MA_Peek __pyx_string_tab[1929] +#define __pyx_n_u_TA_MA_Update __pyx_string_tab[1930] +#define __pyx_n_u_TA_MA_Value __pyx_string_tab[1931] +#define __pyx_n_u_TA_MCGD __pyx_string_tab[1932] +#define __pyx_n_u_TA_MCGD_Clone __pyx_string_tab[1933] +#define __pyx_n_u_TA_MCGD_Open __pyx_string_tab[1934] +#define __pyx_n_u_TA_MCGD_OpenAndFill __pyx_string_tab[1935] +#define __pyx_n_u_TA_MCGD_Peek __pyx_string_tab[1936] +#define __pyx_n_u_TA_MCGD_Update __pyx_string_tab[1937] +#define __pyx_n_u_TA_MCGD_Value __pyx_string_tab[1938] +#define __pyx_n_u_TA_MEDIAN __pyx_string_tab[1939] +#define __pyx_n_u_TA_MEDIAN_Clone __pyx_string_tab[1940] +#define __pyx_n_u_TA_MEDIAN_Open __pyx_string_tab[1941] +#define __pyx_n_u_TA_MEDIAN_OpenAndFill __pyx_string_tab[1942] +#define __pyx_n_u_TA_MEDIAN_Peek __pyx_string_tab[1943] +#define __pyx_n_u_TA_MEDIAN_Update __pyx_string_tab[1944] +#define __pyx_n_u_TA_MEDIAN_Value __pyx_string_tab[1945] +#define __pyx_n_u_TA_MEDPRICE __pyx_string_tab[1946] +#define __pyx_n_u_TA_MEDPRICE_Clone __pyx_string_tab[1947] +#define __pyx_n_u_TA_MEDPRICE_Open __pyx_string_tab[1948] +#define __pyx_n_u_TA_MEDPRICE_OpenAndFill __pyx_string_tab[1949] +#define __pyx_n_u_TA_MEDPRICE_Peek __pyx_string_tab[1950] +#define __pyx_n_u_TA_MEDPRICE_Update __pyx_string_tab[1951] +#define __pyx_n_u_TA_MEDPRICE_Value __pyx_string_tab[1952] +#define __pyx_n_u_TA_MFI __pyx_string_tab[1953] +#define __pyx_n_u_TA_MFI_Clone __pyx_string_tab[1954] +#define __pyx_n_u_TA_MFI_Open __pyx_string_tab[1955] +#define __pyx_n_u_TA_MFI_OpenAndFill __pyx_string_tab[1956] +#define __pyx_n_u_TA_MFI_Peek __pyx_string_tab[1957] +#define __pyx_n_u_TA_MFI_Update __pyx_string_tab[1958] +#define __pyx_n_u_TA_MFI_Value __pyx_string_tab[1959] +#define __pyx_n_u_TA_MIDPOINT __pyx_string_tab[1960] +#define __pyx_n_u_TA_MIDPOINT_Clone __pyx_string_tab[1961] +#define __pyx_n_u_TA_MIDPOINT_Open __pyx_string_tab[1962] +#define __pyx_n_u_TA_MIDPOINT_OpenAndFill __pyx_string_tab[1963] +#define __pyx_n_u_TA_MIDPOINT_Peek __pyx_string_tab[1964] +#define __pyx_n_u_TA_MIDPOINT_Update __pyx_string_tab[1965] +#define __pyx_n_u_TA_MIDPOINT_Value __pyx_string_tab[1966] +#define __pyx_n_u_TA_MIDPRICE __pyx_string_tab[1967] +#define __pyx_n_u_TA_MIDPRICE_Clone __pyx_string_tab[1968] +#define __pyx_n_u_TA_MIDPRICE_Open __pyx_string_tab[1969] +#define __pyx_n_u_TA_MIDPRICE_OpenAndFill __pyx_string_tab[1970] +#define __pyx_n_u_TA_MIDPRICE_Peek __pyx_string_tab[1971] +#define __pyx_n_u_TA_MIDPRICE_Update __pyx_string_tab[1972] +#define __pyx_n_u_TA_MIDPRICE_Value __pyx_string_tab[1973] +#define __pyx_n_u_TA_MIN __pyx_string_tab[1974] +#define __pyx_n_u_TA_MININDEX __pyx_string_tab[1975] +#define __pyx_n_u_TA_MININDEX_Clone __pyx_string_tab[1976] +#define __pyx_n_u_TA_MININDEX_Open __pyx_string_tab[1977] +#define __pyx_n_u_TA_MININDEX_OpenAndFill __pyx_string_tab[1978] +#define __pyx_n_u_TA_MININDEX_Peek __pyx_string_tab[1979] +#define __pyx_n_u_TA_MININDEX_Update __pyx_string_tab[1980] +#define __pyx_n_u_TA_MININDEX_Value __pyx_string_tab[1981] +#define __pyx_n_u_TA_MINMAX __pyx_string_tab[1982] +#define __pyx_n_u_TA_MINMAXINDEX __pyx_string_tab[1983] +#define __pyx_n_u_TA_MINMAXINDEX_Clone __pyx_string_tab[1984] +#define __pyx_n_u_TA_MINMAXINDEX_Open __pyx_string_tab[1985] +#define __pyx_n_u_TA_MINMAXINDEX_OpenAndFill __pyx_string_tab[1986] +#define __pyx_n_u_TA_MINMAXINDEX_Peek __pyx_string_tab[1987] +#define __pyx_n_u_TA_MINMAXINDEX_Update __pyx_string_tab[1988] +#define __pyx_n_u_TA_MINMAXINDEX_Value __pyx_string_tab[1989] +#define __pyx_n_u_TA_MINMAX_Clone __pyx_string_tab[1990] +#define __pyx_n_u_TA_MINMAX_Open __pyx_string_tab[1991] +#define __pyx_n_u_TA_MINMAX_OpenAndFill __pyx_string_tab[1992] +#define __pyx_n_u_TA_MINMAX_Peek __pyx_string_tab[1993] +#define __pyx_n_u_TA_MINMAX_Update __pyx_string_tab[1994] +#define __pyx_n_u_TA_MINMAX_Value __pyx_string_tab[1995] +#define __pyx_n_u_TA_MINUS_DI __pyx_string_tab[1996] +#define __pyx_n_u_TA_MINUS_DI_Clone __pyx_string_tab[1997] +#define __pyx_n_u_TA_MINUS_DI_Open __pyx_string_tab[1998] +#define __pyx_n_u_TA_MINUS_DI_OpenAndFill __pyx_string_tab[1999] +#define __pyx_n_u_TA_MINUS_DI_Peek __pyx_string_tab[2000] +#define __pyx_n_u_TA_MINUS_DI_Update __pyx_string_tab[2001] +#define __pyx_n_u_TA_MINUS_DI_Value __pyx_string_tab[2002] +#define __pyx_n_u_TA_MINUS_DM __pyx_string_tab[2003] +#define __pyx_n_u_TA_MINUS_DM_Clone __pyx_string_tab[2004] +#define __pyx_n_u_TA_MINUS_DM_Open __pyx_string_tab[2005] +#define __pyx_n_u_TA_MINUS_DM_OpenAndFill __pyx_string_tab[2006] +#define __pyx_n_u_TA_MINUS_DM_Peek __pyx_string_tab[2007] +#define __pyx_n_u_TA_MINUS_DM_Update __pyx_string_tab[2008] +#define __pyx_n_u_TA_MINUS_DM_Value __pyx_string_tab[2009] +#define __pyx_n_u_TA_MIN_Clone __pyx_string_tab[2010] +#define __pyx_n_u_TA_MIN_Open __pyx_string_tab[2011] +#define __pyx_n_u_TA_MIN_OpenAndFill __pyx_string_tab[2012] +#define __pyx_n_u_TA_MIN_Peek __pyx_string_tab[2013] +#define __pyx_n_u_TA_MIN_Update __pyx_string_tab[2014] +#define __pyx_n_u_TA_MIN_Value __pyx_string_tab[2015] +#define __pyx_n_u_TA_MOM __pyx_string_tab[2016] +#define __pyx_n_u_TA_MOM_Clone __pyx_string_tab[2017] +#define __pyx_n_u_TA_MOM_Open __pyx_string_tab[2018] +#define __pyx_n_u_TA_MOM_OpenAndFill __pyx_string_tab[2019] +#define __pyx_n_u_TA_MOM_Peek __pyx_string_tab[2020] +#define __pyx_n_u_TA_MOM_Update __pyx_string_tab[2021] +#define __pyx_n_u_TA_MOM_Value __pyx_string_tab[2022] +#define __pyx_n_u_TA_MULT __pyx_string_tab[2023] +#define __pyx_n_u_TA_MULT_Clone __pyx_string_tab[2024] +#define __pyx_n_u_TA_MULT_Open __pyx_string_tab[2025] +#define __pyx_n_u_TA_MULT_OpenAndFill __pyx_string_tab[2026] +#define __pyx_n_u_TA_MULT_Peek __pyx_string_tab[2027] +#define __pyx_n_u_TA_MULT_Update __pyx_string_tab[2028] +#define __pyx_n_u_TA_MULT_Value __pyx_string_tab[2029] +#define __pyx_n_u_TA_NATR __pyx_string_tab[2030] +#define __pyx_n_u_TA_NATR_Clone __pyx_string_tab[2031] +#define __pyx_n_u_TA_NATR_Open __pyx_string_tab[2032] +#define __pyx_n_u_TA_NATR_OpenAndFill __pyx_string_tab[2033] +#define __pyx_n_u_TA_NATR_Peek __pyx_string_tab[2034] +#define __pyx_n_u_TA_NATR_Update __pyx_string_tab[2035] +#define __pyx_n_u_TA_NATR_Value __pyx_string_tab[2036] +#define __pyx_n_u_TA_NVI __pyx_string_tab[2037] +#define __pyx_n_u_TA_NVI_Clone __pyx_string_tab[2038] +#define __pyx_n_u_TA_NVI_Open __pyx_string_tab[2039] +#define __pyx_n_u_TA_NVI_OpenAndFill __pyx_string_tab[2040] +#define __pyx_n_u_TA_NVI_Peek __pyx_string_tab[2041] +#define __pyx_n_u_TA_NVI_Update __pyx_string_tab[2042] +#define __pyx_n_u_TA_NVI_Value __pyx_string_tab[2043] +#define __pyx_n_u_TA_OBV __pyx_string_tab[2044] +#define __pyx_n_u_TA_OBV_Clone __pyx_string_tab[2045] +#define __pyx_n_u_TA_OBV_Open __pyx_string_tab[2046] +#define __pyx_n_u_TA_OBV_OpenAndFill __pyx_string_tab[2047] +#define __pyx_n_u_TA_OBV_Peek __pyx_string_tab[2048] +#define __pyx_n_u_TA_OBV_Update __pyx_string_tab[2049] +#define __pyx_n_u_TA_OBV_Value __pyx_string_tab[2050] +#define __pyx_n_u_TA_OUTPUT_FLAGS __pyx_string_tab[2051] +#define __pyx_n_u_TA_PERCENTB __pyx_string_tab[2052] +#define __pyx_n_u_TA_PERCENTB_Clone __pyx_string_tab[2053] +#define __pyx_n_u_TA_PERCENTB_Open __pyx_string_tab[2054] +#define __pyx_n_u_TA_PERCENTB_OpenAndFill __pyx_string_tab[2055] +#define __pyx_n_u_TA_PERCENTB_Peek __pyx_string_tab[2056] +#define __pyx_n_u_TA_PERCENTB_Update __pyx_string_tab[2057] +#define __pyx_n_u_TA_PERCENTB_Value __pyx_string_tab[2058] +#define __pyx_n_u_TA_PERCENTILE __pyx_string_tab[2059] +#define __pyx_n_u_TA_PERCENTILE_Clone __pyx_string_tab[2060] +#define __pyx_n_u_TA_PERCENTILE_Open __pyx_string_tab[2061] +#define __pyx_n_u_TA_PERCENTILE_OpenAndFill __pyx_string_tab[2062] +#define __pyx_n_u_TA_PERCENTILE_Peek __pyx_string_tab[2063] +#define __pyx_n_u_TA_PERCENTILE_Update __pyx_string_tab[2064] +#define __pyx_n_u_TA_PERCENTILE_Value __pyx_string_tab[2065] +#define __pyx_n_u_TA_PERCENTRANK __pyx_string_tab[2066] +#define __pyx_n_u_TA_PERCENTRANK_Clone __pyx_string_tab[2067] +#define __pyx_n_u_TA_PERCENTRANK_Open __pyx_string_tab[2068] +#define __pyx_n_u_TA_PERCENTRANK_OpenAndFill __pyx_string_tab[2069] +#define __pyx_n_u_TA_PERCENTRANK_Peek __pyx_string_tab[2070] +#define __pyx_n_u_TA_PERCENTRANK_Update __pyx_string_tab[2071] +#define __pyx_n_u_TA_PERCENTRANK_Value __pyx_string_tab[2072] +#define __pyx_n_u_TA_PLUS_DI __pyx_string_tab[2073] +#define __pyx_n_u_TA_PLUS_DI_Clone __pyx_string_tab[2074] +#define __pyx_n_u_TA_PLUS_DI_Open __pyx_string_tab[2075] +#define __pyx_n_u_TA_PLUS_DI_OpenAndFill __pyx_string_tab[2076] +#define __pyx_n_u_TA_PLUS_DI_Peek __pyx_string_tab[2077] +#define __pyx_n_u_TA_PLUS_DI_Update __pyx_string_tab[2078] +#define __pyx_n_u_TA_PLUS_DI_Value __pyx_string_tab[2079] +#define __pyx_n_u_TA_PLUS_DM __pyx_string_tab[2080] +#define __pyx_n_u_TA_PLUS_DM_Clone __pyx_string_tab[2081] +#define __pyx_n_u_TA_PLUS_DM_Open __pyx_string_tab[2082] +#define __pyx_n_u_TA_PLUS_DM_OpenAndFill __pyx_string_tab[2083] +#define __pyx_n_u_TA_PLUS_DM_Peek __pyx_string_tab[2084] +#define __pyx_n_u_TA_PLUS_DM_Update __pyx_string_tab[2085] +#define __pyx_n_u_TA_PLUS_DM_Value __pyx_string_tab[2086] +#define __pyx_n_u_TA_PPO __pyx_string_tab[2087] +#define __pyx_n_u_TA_PPO_Clone __pyx_string_tab[2088] +#define __pyx_n_u_TA_PPO_Open __pyx_string_tab[2089] +#define __pyx_n_u_TA_PPO_OpenAndFill __pyx_string_tab[2090] +#define __pyx_n_u_TA_PPO_Peek __pyx_string_tab[2091] +#define __pyx_n_u_TA_PPO_Update __pyx_string_tab[2092] +#define __pyx_n_u_TA_PPO_Value __pyx_string_tab[2093] +#define __pyx_n_u_TA_PSO __pyx_string_tab[2094] +#define __pyx_n_u_TA_PSO_Clone __pyx_string_tab[2095] +#define __pyx_n_u_TA_PSO_Open __pyx_string_tab[2096] +#define __pyx_n_u_TA_PSO_OpenAndFill __pyx_string_tab[2097] +#define __pyx_n_u_TA_PSO_Peek __pyx_string_tab[2098] +#define __pyx_n_u_TA_PSO_Update __pyx_string_tab[2099] +#define __pyx_n_u_TA_PSO_Value __pyx_string_tab[2100] +#define __pyx_n_u_TA_PVI __pyx_string_tab[2101] +#define __pyx_n_u_TA_PVI_Clone __pyx_string_tab[2102] +#define __pyx_n_u_TA_PVI_Open __pyx_string_tab[2103] +#define __pyx_n_u_TA_PVI_OpenAndFill __pyx_string_tab[2104] +#define __pyx_n_u_TA_PVI_Peek __pyx_string_tab[2105] +#define __pyx_n_u_TA_PVI_Update __pyx_string_tab[2106] +#define __pyx_n_u_TA_PVI_Value __pyx_string_tab[2107] +#define __pyx_n_u_TA_PVO __pyx_string_tab[2108] +#define __pyx_n_u_TA_PVO_Clone __pyx_string_tab[2109] +#define __pyx_n_u_TA_PVO_Open __pyx_string_tab[2110] +#define __pyx_n_u_TA_PVO_OpenAndFill __pyx_string_tab[2111] +#define __pyx_n_u_TA_PVO_Peek __pyx_string_tab[2112] +#define __pyx_n_u_TA_PVO_Update __pyx_string_tab[2113] +#define __pyx_n_u_TA_PVO_Value __pyx_string_tab[2114] +#define __pyx_n_u_TA_PVT __pyx_string_tab[2115] +#define __pyx_n_u_TA_PVT_Clone __pyx_string_tab[2116] +#define __pyx_n_u_TA_PVT_Open __pyx_string_tab[2117] +#define __pyx_n_u_TA_PVT_OpenAndFill __pyx_string_tab[2118] +#define __pyx_n_u_TA_PVT_Peek __pyx_string_tab[2119] +#define __pyx_n_u_TA_PVT_Update __pyx_string_tab[2120] +#define __pyx_n_u_TA_PVT_Value __pyx_string_tab[2121] +#define __pyx_n_u_TA_ParamHolderAlloc __pyx_string_tab[2122] +#define __pyx_n_u_TA_ParamHolderFree __pyx_string_tab[2123] +#define __pyx_n_u_TA_QSTICK __pyx_string_tab[2124] +#define __pyx_n_u_TA_QSTICK_Clone __pyx_string_tab[2125] +#define __pyx_n_u_TA_QSTICK_Open __pyx_string_tab[2126] +#define __pyx_n_u_TA_QSTICK_OpenAndFill __pyx_string_tab[2127] +#define __pyx_n_u_TA_QSTICK_Peek __pyx_string_tab[2128] +#define __pyx_n_u_TA_QSTICK_Update __pyx_string_tab[2129] +#define __pyx_n_u_TA_QSTICK_Value __pyx_string_tab[2130] +#define __pyx_n_u_TA_RMA __pyx_string_tab[2131] +#define __pyx_n_u_TA_RMA_Clone __pyx_string_tab[2132] +#define __pyx_n_u_TA_RMA_Open __pyx_string_tab[2133] +#define __pyx_n_u_TA_RMA_OpenAndFill __pyx_string_tab[2134] +#define __pyx_n_u_TA_RMA_Peek __pyx_string_tab[2135] +#define __pyx_n_u_TA_RMA_Update __pyx_string_tab[2136] +#define __pyx_n_u_TA_RMA_Value __pyx_string_tab[2137] +#define __pyx_n_u_TA_ROC __pyx_string_tab[2138] +#define __pyx_n_u_TA_ROCP __pyx_string_tab[2139] +#define __pyx_n_u_TA_ROCP_Clone __pyx_string_tab[2140] +#define __pyx_n_u_TA_ROCP_Open __pyx_string_tab[2141] +#define __pyx_n_u_TA_ROCP_OpenAndFill __pyx_string_tab[2142] +#define __pyx_n_u_TA_ROCP_Peek __pyx_string_tab[2143] +#define __pyx_n_u_TA_ROCP_Update __pyx_string_tab[2144] +#define __pyx_n_u_TA_ROCP_Value __pyx_string_tab[2145] +#define __pyx_n_u_TA_ROCR __pyx_string_tab[2146] +#define __pyx_n_u_TA_ROCR100 __pyx_string_tab[2147] +#define __pyx_n_u_TA_ROCR100_Clone __pyx_string_tab[2148] +#define __pyx_n_u_TA_ROCR100_Open __pyx_string_tab[2149] +#define __pyx_n_u_TA_ROCR100_OpenAndFill __pyx_string_tab[2150] +#define __pyx_n_u_TA_ROCR100_Peek __pyx_string_tab[2151] +#define __pyx_n_u_TA_ROCR100_Update __pyx_string_tab[2152] +#define __pyx_n_u_TA_ROCR100_Value __pyx_string_tab[2153] +#define __pyx_n_u_TA_ROCR_Clone __pyx_string_tab[2154] +#define __pyx_n_u_TA_ROCR_Open __pyx_string_tab[2155] +#define __pyx_n_u_TA_ROCR_OpenAndFill __pyx_string_tab[2156] +#define __pyx_n_u_TA_ROCR_Peek __pyx_string_tab[2157] +#define __pyx_n_u_TA_ROCR_Update __pyx_string_tab[2158] +#define __pyx_n_u_TA_ROCR_Value __pyx_string_tab[2159] +#define __pyx_n_u_TA_ROC_Clone __pyx_string_tab[2160] +#define __pyx_n_u_TA_ROC_Open __pyx_string_tab[2161] +#define __pyx_n_u_TA_ROC_OpenAndFill __pyx_string_tab[2162] +#define __pyx_n_u_TA_ROC_Peek __pyx_string_tab[2163] +#define __pyx_n_u_TA_ROC_Update __pyx_string_tab[2164] +#define __pyx_n_u_TA_ROC_Value __pyx_string_tab[2165] +#define __pyx_n_u_TA_ROGERSSATCHELL __pyx_string_tab[2166] +#define __pyx_n_u_TA_ROGERSSATCHELL_Clone __pyx_string_tab[2167] +#define __pyx_n_u_TA_ROGERSSATCHELL_Open __pyx_string_tab[2168] +#define __pyx_n_u_TA_ROGERSSATCHELL_OpenAndFill __pyx_string_tab[2169] +#define __pyx_n_u_TA_ROGERSSATCHELL_Peek __pyx_string_tab[2170] +#define __pyx_n_u_TA_ROGERSSATCHELL_Update __pyx_string_tab[2171] +#define __pyx_n_u_TA_ROGERSSATCHELL_Value __pyx_string_tab[2172] +#define __pyx_n_u_TA_RSI __pyx_string_tab[2173] +#define __pyx_n_u_TA_RSI_Clone __pyx_string_tab[2174] +#define __pyx_n_u_TA_RSI_Open __pyx_string_tab[2175] +#define __pyx_n_u_TA_RSI_OpenAndFill __pyx_string_tab[2176] +#define __pyx_n_u_TA_RSI_Peek __pyx_string_tab[2177] +#define __pyx_n_u_TA_RSI_Update __pyx_string_tab[2178] +#define __pyx_n_u_TA_RSI_Value __pyx_string_tab[2179] +#define __pyx_n_u_TA_RVI __pyx_string_tab[2180] +#define __pyx_n_u_TA_RVIR __pyx_string_tab[2181] +#define __pyx_n_u_TA_RVIR_Clone __pyx_string_tab[2182] +#define __pyx_n_u_TA_RVIR_Open __pyx_string_tab[2183] +#define __pyx_n_u_TA_RVIR_OpenAndFill __pyx_string_tab[2184] +#define __pyx_n_u_TA_RVIR_Peek __pyx_string_tab[2185] +#define __pyx_n_u_TA_RVIR_Update __pyx_string_tab[2186] +#define __pyx_n_u_TA_RVIR_Value __pyx_string_tab[2187] +#define __pyx_n_u_TA_RVI_Clone __pyx_string_tab[2188] +#define __pyx_n_u_TA_RVI_Open __pyx_string_tab[2189] +#define __pyx_n_u_TA_RVI_OpenAndFill __pyx_string_tab[2190] +#define __pyx_n_u_TA_RVI_Peek __pyx_string_tab[2191] +#define __pyx_n_u_TA_RVI_Update __pyx_string_tab[2192] +#define __pyx_n_u_TA_RVI_Value __pyx_string_tab[2193] +#define __pyx_n_u_TA_RVOL __pyx_string_tab[2194] +#define __pyx_n_u_TA_RVOL_Clone __pyx_string_tab[2195] +#define __pyx_n_u_TA_RVOL_Open __pyx_string_tab[2196] +#define __pyx_n_u_TA_RVOL_OpenAndFill __pyx_string_tab[2197] +#define __pyx_n_u_TA_RVOL_Peek __pyx_string_tab[2198] +#define __pyx_n_u_TA_RVOL_Update __pyx_string_tab[2199] +#define __pyx_n_u_TA_RVOL_Value __pyx_string_tab[2200] +#define __pyx_n_u_TA_RestoreCandleDefaultSettings __pyx_string_tab[2201] +#define __pyx_n_u_TA_SAR __pyx_string_tab[2202] +#define __pyx_n_u_TA_SAREXT __pyx_string_tab[2203] +#define __pyx_n_u_TA_SAREXT_Clone __pyx_string_tab[2204] +#define __pyx_n_u_TA_SAREXT_Open __pyx_string_tab[2205] +#define __pyx_n_u_TA_SAREXT_OpenAndFill __pyx_string_tab[2206] +#define __pyx_n_u_TA_SAREXT_Peek __pyx_string_tab[2207] +#define __pyx_n_u_TA_SAREXT_Update __pyx_string_tab[2208] +#define __pyx_n_u_TA_SAREXT_Value __pyx_string_tab[2209] +#define __pyx_n_u_TA_SAR_Clone __pyx_string_tab[2210] +#define __pyx_n_u_TA_SAR_Open __pyx_string_tab[2211] +#define __pyx_n_u_TA_SAR_OpenAndFill __pyx_string_tab[2212] +#define __pyx_n_u_TA_SAR_Peek __pyx_string_tab[2213] +#define __pyx_n_u_TA_SAR_Update __pyx_string_tab[2214] +#define __pyx_n_u_TA_SAR_Value __pyx_string_tab[2215] +#define __pyx_n_u_TA_SI __pyx_string_tab[2216] +#define __pyx_n_u_TA_SIN __pyx_string_tab[2217] +#define __pyx_n_u_TA_SINH __pyx_string_tab[2218] +#define __pyx_n_u_TA_SINH_Clone __pyx_string_tab[2219] +#define __pyx_n_u_TA_SINH_Open __pyx_string_tab[2220] +#define __pyx_n_u_TA_SINH_OpenAndFill __pyx_string_tab[2221] +#define __pyx_n_u_TA_SINH_Peek __pyx_string_tab[2222] +#define __pyx_n_u_TA_SINH_Update __pyx_string_tab[2223] +#define __pyx_n_u_TA_SINH_Value __pyx_string_tab[2224] +#define __pyx_n_u_TA_SIN_Clone __pyx_string_tab[2225] +#define __pyx_n_u_TA_SIN_Open __pyx_string_tab[2226] +#define __pyx_n_u_TA_SIN_OpenAndFill __pyx_string_tab[2227] +#define __pyx_n_u_TA_SIN_Peek __pyx_string_tab[2228] +#define __pyx_n_u_TA_SIN_Update __pyx_string_tab[2229] +#define __pyx_n_u_TA_SIN_Value __pyx_string_tab[2230] +#define __pyx_n_u_TA_SI_Clone __pyx_string_tab[2231] +#define __pyx_n_u_TA_SI_Open __pyx_string_tab[2232] +#define __pyx_n_u_TA_SI_OpenAndFill __pyx_string_tab[2233] +#define __pyx_n_u_TA_SI_Peek __pyx_string_tab[2234] +#define __pyx_n_u_TA_SI_Update __pyx_string_tab[2235] +#define __pyx_n_u_TA_SI_Value __pyx_string_tab[2236] +#define __pyx_n_u_TA_SMA __pyx_string_tab[2237] +#define __pyx_n_u_TA_SMA_Clone __pyx_string_tab[2238] +#define __pyx_n_u_TA_SMA_Open __pyx_string_tab[2239] +#define __pyx_n_u_TA_SMA_OpenAndFill __pyx_string_tab[2240] +#define __pyx_n_u_TA_SMA_Peek __pyx_string_tab[2241] +#define __pyx_n_u_TA_SMA_Update __pyx_string_tab[2242] +#define __pyx_n_u_TA_SMA_Value __pyx_string_tab[2243] +#define __pyx_n_u_TA_SMI __pyx_string_tab[2244] +#define __pyx_n_u_TA_SMI_Clone __pyx_string_tab[2245] +#define __pyx_n_u_TA_SMI_Open __pyx_string_tab[2246] +#define __pyx_n_u_TA_SMI_OpenAndFill __pyx_string_tab[2247] +#define __pyx_n_u_TA_SMI_Peek __pyx_string_tab[2248] +#define __pyx_n_u_TA_SMI_Update __pyx_string_tab[2249] +#define __pyx_n_u_TA_SMI_Value __pyx_string_tab[2250] +#define __pyx_n_u_TA_SQRT __pyx_string_tab[2251] +#define __pyx_n_u_TA_SQRT_Clone __pyx_string_tab[2252] +#define __pyx_n_u_TA_SQRT_Open __pyx_string_tab[2253] +#define __pyx_n_u_TA_SQRT_OpenAndFill __pyx_string_tab[2254] +#define __pyx_n_u_TA_SQRT_Peek __pyx_string_tab[2255] +#define __pyx_n_u_TA_SQRT_Update __pyx_string_tab[2256] +#define __pyx_n_u_TA_SQRT_Value __pyx_string_tab[2257] +#define __pyx_n_u_TA_SQZMOM __pyx_string_tab[2258] +#define __pyx_n_u_TA_SQZMOM_Clone __pyx_string_tab[2259] +#define __pyx_n_u_TA_SQZMOM_Open __pyx_string_tab[2260] +#define __pyx_n_u_TA_SQZMOM_OpenAndFill __pyx_string_tab[2261] +#define __pyx_n_u_TA_SQZMOM_Peek __pyx_string_tab[2262] +#define __pyx_n_u_TA_SQZMOM_Update __pyx_string_tab[2263] +#define __pyx_n_u_TA_SQZMOM_Value __pyx_string_tab[2264] +#define __pyx_n_u_TA_STC __pyx_string_tab[2265] +#define __pyx_n_u_TA_STC_Clone __pyx_string_tab[2266] +#define __pyx_n_u_TA_STC_Open __pyx_string_tab[2267] +#define __pyx_n_u_TA_STC_OpenAndFill __pyx_string_tab[2268] +#define __pyx_n_u_TA_STC_Peek __pyx_string_tab[2269] +#define __pyx_n_u_TA_STC_Update __pyx_string_tab[2270] +#define __pyx_n_u_TA_STC_Value __pyx_string_tab[2271] +#define __pyx_n_u_TA_STDDEV __pyx_string_tab[2272] +#define __pyx_n_u_TA_STDDEV_Clone __pyx_string_tab[2273] +#define __pyx_n_u_TA_STDDEV_Open __pyx_string_tab[2274] +#define __pyx_n_u_TA_STDDEV_OpenAndFill __pyx_string_tab[2275] +#define __pyx_n_u_TA_STDDEV_Peek __pyx_string_tab[2276] +#define __pyx_n_u_TA_STDDEV_Update __pyx_string_tab[2277] +#define __pyx_n_u_TA_STDDEV_Value __pyx_string_tab[2278] +#define __pyx_n_u_TA_STOCH __pyx_string_tab[2279] +#define __pyx_n_u_TA_STOCHF __pyx_string_tab[2280] +#define __pyx_n_u_TA_STOCHF_Clone __pyx_string_tab[2281] +#define __pyx_n_u_TA_STOCHF_Open __pyx_string_tab[2282] +#define __pyx_n_u_TA_STOCHF_OpenAndFill __pyx_string_tab[2283] +#define __pyx_n_u_TA_STOCHF_Peek __pyx_string_tab[2284] +#define __pyx_n_u_TA_STOCHF_Update __pyx_string_tab[2285] +#define __pyx_n_u_TA_STOCHF_Value __pyx_string_tab[2286] +#define __pyx_n_u_TA_STOCHRSI __pyx_string_tab[2287] +#define __pyx_n_u_TA_STOCHRSI_Clone __pyx_string_tab[2288] +#define __pyx_n_u_TA_STOCHRSI_Open __pyx_string_tab[2289] +#define __pyx_n_u_TA_STOCHRSI_OpenAndFill __pyx_string_tab[2290] +#define __pyx_n_u_TA_STOCHRSI_Peek __pyx_string_tab[2291] +#define __pyx_n_u_TA_STOCHRSI_Update __pyx_string_tab[2292] +#define __pyx_n_u_TA_STOCHRSI_Value __pyx_string_tab[2293] +#define __pyx_n_u_TA_STOCH_Clone __pyx_string_tab[2294] +#define __pyx_n_u_TA_STOCH_Open __pyx_string_tab[2295] +#define __pyx_n_u_TA_STOCH_OpenAndFill __pyx_string_tab[2296] +#define __pyx_n_u_TA_STOCH_Peek __pyx_string_tab[2297] +#define __pyx_n_u_TA_STOCH_Update __pyx_string_tab[2298] +#define __pyx_n_u_TA_STOCH_Value __pyx_string_tab[2299] +#define __pyx_n_u_TA_SUB __pyx_string_tab[2300] +#define __pyx_n_u_TA_SUB_Clone __pyx_string_tab[2301] +#define __pyx_n_u_TA_SUB_Open __pyx_string_tab[2302] +#define __pyx_n_u_TA_SUB_OpenAndFill __pyx_string_tab[2303] +#define __pyx_n_u_TA_SUB_Peek __pyx_string_tab[2304] +#define __pyx_n_u_TA_SUB_Update __pyx_string_tab[2305] +#define __pyx_n_u_TA_SUB_Value __pyx_string_tab[2306] +#define __pyx_n_u_TA_SUM __pyx_string_tab[2307] +#define __pyx_n_u_TA_SUM_Clone __pyx_string_tab[2308] +#define __pyx_n_u_TA_SUM_Open __pyx_string_tab[2309] +#define __pyx_n_u_TA_SUM_OpenAndFill __pyx_string_tab[2310] +#define __pyx_n_u_TA_SUM_Peek __pyx_string_tab[2311] +#define __pyx_n_u_TA_SUM_Update __pyx_string_tab[2312] +#define __pyx_n_u_TA_SUM_Value __pyx_string_tab[2313] +#define __pyx_n_u_TA_SUPERTREND __pyx_string_tab[2314] +#define __pyx_n_u_TA_SUPERTREND_Clone __pyx_string_tab[2315] +#define __pyx_n_u_TA_SUPERTREND_Open __pyx_string_tab[2316] +#define __pyx_n_u_TA_SUPERTREND_OpenAndFill __pyx_string_tab[2317] +#define __pyx_n_u_TA_SUPERTREND_Peek __pyx_string_tab[2318] +#define __pyx_n_u_TA_SUPERTREND_Update __pyx_string_tab[2319] +#define __pyx_n_u_TA_SUPERTREND_Value __pyx_string_tab[2320] +#define __pyx_n_u_TA_SWAK_2PHP __pyx_string_tab[2321] +#define __pyx_n_u_TA_SWAK_2PHP_Clone __pyx_string_tab[2322] +#define __pyx_n_u_TA_SWAK_2PHP_Open __pyx_string_tab[2323] +#define __pyx_n_u_TA_SWAK_2PHP_OpenAndFill __pyx_string_tab[2324] +#define __pyx_n_u_TA_SWAK_2PHP_Peek __pyx_string_tab[2325] +#define __pyx_n_u_TA_SWAK_2PHP_Update __pyx_string_tab[2326] +#define __pyx_n_u_TA_SWAK_2PHP_Value __pyx_string_tab[2327] +#define __pyx_n_u_TA_SWAK_BP __pyx_string_tab[2328] +#define __pyx_n_u_TA_SWAK_BP_Clone __pyx_string_tab[2329] +#define __pyx_n_u_TA_SWAK_BP_Open __pyx_string_tab[2330] +#define __pyx_n_u_TA_SWAK_BP_OpenAndFill __pyx_string_tab[2331] +#define __pyx_n_u_TA_SWAK_BP_Peek __pyx_string_tab[2332] +#define __pyx_n_u_TA_SWAK_BP_Update __pyx_string_tab[2333] +#define __pyx_n_u_TA_SWAK_BP_Value __pyx_string_tab[2334] +#define __pyx_n_u_TA_SWAK_BUTTER __pyx_string_tab[2335] +#define __pyx_n_u_TA_SWAK_BUTTER_Clone __pyx_string_tab[2336] +#define __pyx_n_u_TA_SWAK_BUTTER_Open __pyx_string_tab[2337] +#define __pyx_n_u_TA_SWAK_BUTTER_OpenAndFill __pyx_string_tab[2338] +#define __pyx_n_u_TA_SWAK_BUTTER_Peek __pyx_string_tab[2339] +#define __pyx_n_u_TA_SWAK_BUTTER_Update __pyx_string_tab[2340] +#define __pyx_n_u_TA_SWAK_BUTTER_Value __pyx_string_tab[2341] +#define __pyx_n_u_TA_SWAK_GAUSS __pyx_string_tab[2342] +#define __pyx_n_u_TA_SWAK_GAUSS_Clone __pyx_string_tab[2343] +#define __pyx_n_u_TA_SWAK_GAUSS_Open __pyx_string_tab[2344] +#define __pyx_n_u_TA_SWAK_GAUSS_OpenAndFill __pyx_string_tab[2345] +#define __pyx_n_u_TA_SWAK_GAUSS_Peek __pyx_string_tab[2346] +#define __pyx_n_u_TA_SWAK_GAUSS_Update __pyx_string_tab[2347] +#define __pyx_n_u_TA_SWAK_GAUSS_Value __pyx_string_tab[2348] +#define __pyx_n_u_TA_SWAK_HP __pyx_string_tab[2349] +#define __pyx_n_u_TA_SWAK_HP_Clone __pyx_string_tab[2350] +#define __pyx_n_u_TA_SWAK_HP_Open __pyx_string_tab[2351] +#define __pyx_n_u_TA_SWAK_HP_OpenAndFill __pyx_string_tab[2352] +#define __pyx_n_u_TA_SWAK_HP_Peek __pyx_string_tab[2353] +#define __pyx_n_u_TA_SWAK_HP_Update __pyx_string_tab[2354] +#define __pyx_n_u_TA_SWAK_HP_Value __pyx_string_tab[2355] +#define __pyx_n_u_TA_SetCandleSettings __pyx_string_tab[2356] +#define __pyx_n_u_TA_SetCompatibility __pyx_string_tab[2357] +#define __pyx_n_u_TA_SetOptInputParamInteger __pyx_string_tab[2358] +#define __pyx_n_u_TA_SetOptInputParamReal __pyx_string_tab[2359] +#define __pyx_n_u_TA_SetUnstablePeriod __pyx_string_tab[2360] +#define __pyx_n_u_TA_Shutdown __pyx_string_tab[2361] +#define __pyx_n_u_TA_T3 __pyx_string_tab[2362] +#define __pyx_n_u_TA_T3_Clone __pyx_string_tab[2363] +#define __pyx_n_u_TA_T3_Open __pyx_string_tab[2364] +#define __pyx_n_u_TA_T3_OpenAndFill __pyx_string_tab[2365] +#define __pyx_n_u_TA_T3_Peek __pyx_string_tab[2366] +#define __pyx_n_u_TA_T3_Update __pyx_string_tab[2367] +#define __pyx_n_u_TA_T3_Value __pyx_string_tab[2368] +#define __pyx_n_u_TA_TAN __pyx_string_tab[2369] +#define __pyx_n_u_TA_TANH __pyx_string_tab[2370] +#define __pyx_n_u_TA_TANH_Clone __pyx_string_tab[2371] +#define __pyx_n_u_TA_TANH_Open __pyx_string_tab[2372] +#define __pyx_n_u_TA_TANH_OpenAndFill __pyx_string_tab[2373] +#define __pyx_n_u_TA_TANH_Peek __pyx_string_tab[2374] +#define __pyx_n_u_TA_TANH_Update __pyx_string_tab[2375] +#define __pyx_n_u_TA_TANH_Value __pyx_string_tab[2376] +#define __pyx_n_u_TA_TAN_Clone __pyx_string_tab[2377] +#define __pyx_n_u_TA_TAN_Open __pyx_string_tab[2378] +#define __pyx_n_u_TA_TAN_OpenAndFill __pyx_string_tab[2379] +#define __pyx_n_u_TA_TAN_Peek __pyx_string_tab[2380] +#define __pyx_n_u_TA_TAN_Update __pyx_string_tab[2381] +#define __pyx_n_u_TA_TAN_Value __pyx_string_tab[2382] +#define __pyx_n_u_TA_TEMA __pyx_string_tab[2383] +#define __pyx_n_u_TA_TEMA_Clone __pyx_string_tab[2384] +#define __pyx_n_u_TA_TEMA_Open __pyx_string_tab[2385] +#define __pyx_n_u_TA_TEMA_OpenAndFill __pyx_string_tab[2386] +#define __pyx_n_u_TA_TEMA_Peek __pyx_string_tab[2387] +#define __pyx_n_u_TA_TEMA_Update __pyx_string_tab[2388] +#define __pyx_n_u_TA_TEMA_Value __pyx_string_tab[2389] +#define __pyx_n_u_TA_TRANGE __pyx_string_tab[2390] +#define __pyx_n_u_TA_TRANGE_Clone __pyx_string_tab[2391] +#define __pyx_n_u_TA_TRANGE_Open __pyx_string_tab[2392] +#define __pyx_n_u_TA_TRANGE_OpenAndFill __pyx_string_tab[2393] +#define __pyx_n_u_TA_TRANGE_Peek __pyx_string_tab[2394] +#define __pyx_n_u_TA_TRANGE_Update __pyx_string_tab[2395] +#define __pyx_n_u_TA_TRANGE_Value __pyx_string_tab[2396] +#define __pyx_n_u_TA_TRIMA __pyx_string_tab[2397] +#define __pyx_n_u_TA_TRIMA_Clone __pyx_string_tab[2398] +#define __pyx_n_u_TA_TRIMA_Open __pyx_string_tab[2399] +#define __pyx_n_u_TA_TRIMA_OpenAndFill __pyx_string_tab[2400] +#define __pyx_n_u_TA_TRIMA_Peek __pyx_string_tab[2401] +#define __pyx_n_u_TA_TRIMA_Update __pyx_string_tab[2402] +#define __pyx_n_u_TA_TRIMA_Value __pyx_string_tab[2403] +#define __pyx_n_u_TA_TRIX __pyx_string_tab[2404] +#define __pyx_n_u_TA_TRIX_Clone __pyx_string_tab[2405] +#define __pyx_n_u_TA_TRIX_Open __pyx_string_tab[2406] +#define __pyx_n_u_TA_TRIX_OpenAndFill __pyx_string_tab[2407] +#define __pyx_n_u_TA_TRIX_Peek __pyx_string_tab[2408] +#define __pyx_n_u_TA_TRIX_Update __pyx_string_tab[2409] +#define __pyx_n_u_TA_TRIX_Value __pyx_string_tab[2410] +#define __pyx_n_u_TA_TSF __pyx_string_tab[2411] +#define __pyx_n_u_TA_TSF_Clone __pyx_string_tab[2412] +#define __pyx_n_u_TA_TSF_Open __pyx_string_tab[2413] +#define __pyx_n_u_TA_TSF_OpenAndFill __pyx_string_tab[2414] +#define __pyx_n_u_TA_TSF_Peek __pyx_string_tab[2415] +#define __pyx_n_u_TA_TSF_Update __pyx_string_tab[2416] +#define __pyx_n_u_TA_TSF_Value __pyx_string_tab[2417] +#define __pyx_n_u_TA_TSI __pyx_string_tab[2418] +#define __pyx_n_u_TA_TSI_Clone __pyx_string_tab[2419] +#define __pyx_n_u_TA_TSI_Open __pyx_string_tab[2420] +#define __pyx_n_u_TA_TSI_OpenAndFill __pyx_string_tab[2421] +#define __pyx_n_u_TA_TSI_Peek __pyx_string_tab[2422] +#define __pyx_n_u_TA_TSI_Update __pyx_string_tab[2423] +#define __pyx_n_u_TA_TSI_Value __pyx_string_tab[2424] +#define __pyx_n_u_TA_TYPPRICE __pyx_string_tab[2425] +#define __pyx_n_u_TA_TYPPRICE_Clone __pyx_string_tab[2426] +#define __pyx_n_u_TA_TYPPRICE_Open __pyx_string_tab[2427] +#define __pyx_n_u_TA_TYPPRICE_OpenAndFill __pyx_string_tab[2428] +#define __pyx_n_u_TA_TYPPRICE_Peek __pyx_string_tab[2429] +#define __pyx_n_u_TA_TYPPRICE_Update __pyx_string_tab[2430] +#define __pyx_n_u_TA_TYPPRICE_Value __pyx_string_tab[2431] +#define __pyx_n_u_TA_ULTOSC __pyx_string_tab[2432] +#define __pyx_n_u_TA_ULTOSC_Clone __pyx_string_tab[2433] +#define __pyx_n_u_TA_ULTOSC_Open __pyx_string_tab[2434] +#define __pyx_n_u_TA_ULTOSC_OpenAndFill __pyx_string_tab[2435] +#define __pyx_n_u_TA_ULTOSC_Peek __pyx_string_tab[2436] +#define __pyx_n_u_TA_ULTOSC_Update __pyx_string_tab[2437] +#define __pyx_n_u_TA_ULTOSC_Value __pyx_string_tab[2438] +#define __pyx_n_u_TA_VAR __pyx_string_tab[2439] +#define __pyx_n_u_TA_VAR_Clone __pyx_string_tab[2440] +#define __pyx_n_u_TA_VAR_Open __pyx_string_tab[2441] +#define __pyx_n_u_TA_VAR_OpenAndFill __pyx_string_tab[2442] +#define __pyx_n_u_TA_VAR_Peek __pyx_string_tab[2443] +#define __pyx_n_u_TA_VAR_Update __pyx_string_tab[2444] +#define __pyx_n_u_TA_VAR_Value __pyx_string_tab[2445] +#define __pyx_n_u_TA_VHF __pyx_string_tab[2446] +#define __pyx_n_u_TA_VHF_Clone __pyx_string_tab[2447] +#define __pyx_n_u_TA_VHF_Open __pyx_string_tab[2448] +#define __pyx_n_u_TA_VHF_OpenAndFill __pyx_string_tab[2449] +#define __pyx_n_u_TA_VHF_Peek __pyx_string_tab[2450] +#define __pyx_n_u_TA_VHF_Update __pyx_string_tab[2451] +#define __pyx_n_u_TA_VHF_Value __pyx_string_tab[2452] +#define __pyx_n_u_TA_VIDYA __pyx_string_tab[2453] +#define __pyx_n_u_TA_VIDYA_Clone __pyx_string_tab[2454] +#define __pyx_n_u_TA_VIDYA_Open __pyx_string_tab[2455] +#define __pyx_n_u_TA_VIDYA_OpenAndFill __pyx_string_tab[2456] +#define __pyx_n_u_TA_VIDYA_Peek __pyx_string_tab[2457] +#define __pyx_n_u_TA_VIDYA_Update __pyx_string_tab[2458] +#define __pyx_n_u_TA_VIDYA_Value __pyx_string_tab[2459] +#define __pyx_n_u_TA_VORTEX __pyx_string_tab[2460] +#define __pyx_n_u_TA_VORTEX_Clone __pyx_string_tab[2461] +#define __pyx_n_u_TA_VORTEX_Open __pyx_string_tab[2462] +#define __pyx_n_u_TA_VORTEX_OpenAndFill __pyx_string_tab[2463] +#define __pyx_n_u_TA_VORTEX_Peek __pyx_string_tab[2464] +#define __pyx_n_u_TA_VORTEX_Update __pyx_string_tab[2465] +#define __pyx_n_u_TA_VORTEX_Value __pyx_string_tab[2466] +#define __pyx_n_u_TA_VWAP __pyx_string_tab[2467] +#define __pyx_n_u_TA_VWAP_Clone __pyx_string_tab[2468] +#define __pyx_n_u_TA_VWAP_Open __pyx_string_tab[2469] +#define __pyx_n_u_TA_VWAP_OpenAndFill __pyx_string_tab[2470] +#define __pyx_n_u_TA_VWAP_Peek __pyx_string_tab[2471] +#define __pyx_n_u_TA_VWAP_Update __pyx_string_tab[2472] +#define __pyx_n_u_TA_VWAP_Value __pyx_string_tab[2473] +#define __pyx_n_u_TA_VWMA __pyx_string_tab[2474] +#define __pyx_n_u_TA_VWMA_Clone __pyx_string_tab[2475] +#define __pyx_n_u_TA_VWMA_Open __pyx_string_tab[2476] +#define __pyx_n_u_TA_VWMA_OpenAndFill __pyx_string_tab[2477] +#define __pyx_n_u_TA_VWMA_Peek __pyx_string_tab[2478] +#define __pyx_n_u_TA_VWMA_Update __pyx_string_tab[2479] +#define __pyx_n_u_TA_VWMA_Value __pyx_string_tab[2480] +#define __pyx_n_u_TA_WAD __pyx_string_tab[2481] +#define __pyx_n_u_TA_WAD_Clone __pyx_string_tab[2482] +#define __pyx_n_u_TA_WAD_Open __pyx_string_tab[2483] +#define __pyx_n_u_TA_WAD_OpenAndFill __pyx_string_tab[2484] +#define __pyx_n_u_TA_WAD_Peek __pyx_string_tab[2485] +#define __pyx_n_u_TA_WAD_Update __pyx_string_tab[2486] +#define __pyx_n_u_TA_WAD_Value __pyx_string_tab[2487] +#define __pyx_n_u_TA_WAVETREND __pyx_string_tab[2488] +#define __pyx_n_u_TA_WAVETREND_Clone __pyx_string_tab[2489] +#define __pyx_n_u_TA_WAVETREND_Open __pyx_string_tab[2490] +#define __pyx_n_u_TA_WAVETREND_OpenAndFill __pyx_string_tab[2491] +#define __pyx_n_u_TA_WAVETREND_Peek __pyx_string_tab[2492] +#define __pyx_n_u_TA_WAVETREND_Update __pyx_string_tab[2493] +#define __pyx_n_u_TA_WAVETREND_Value __pyx_string_tab[2494] +#define __pyx_n_u_TA_WCLPRICE __pyx_string_tab[2495] +#define __pyx_n_u_TA_WCLPRICE_Clone __pyx_string_tab[2496] +#define __pyx_n_u_TA_WCLPRICE_Open __pyx_string_tab[2497] +#define __pyx_n_u_TA_WCLPRICE_OpenAndFill __pyx_string_tab[2498] +#define __pyx_n_u_TA_WCLPRICE_Peek __pyx_string_tab[2499] +#define __pyx_n_u_TA_WCLPRICE_Update __pyx_string_tab[2500] +#define __pyx_n_u_TA_WCLPRICE_Value __pyx_string_tab[2501] +#define __pyx_n_u_TA_WILLR __pyx_string_tab[2502] +#define __pyx_n_u_TA_WILLR_Clone __pyx_string_tab[2503] +#define __pyx_n_u_TA_WILLR_Open __pyx_string_tab[2504] +#define __pyx_n_u_TA_WILLR_OpenAndFill __pyx_string_tab[2505] +#define __pyx_n_u_TA_WILLR_Peek __pyx_string_tab[2506] +#define __pyx_n_u_TA_WILLR_Update __pyx_string_tab[2507] +#define __pyx_n_u_TA_WILLR_Value __pyx_string_tab[2508] +#define __pyx_n_u_TA_WMA __pyx_string_tab[2509] +#define __pyx_n_u_TA_WMA_Clone __pyx_string_tab[2510] +#define __pyx_n_u_TA_WMA_Open __pyx_string_tab[2511] +#define __pyx_n_u_TA_WMA_OpenAndFill __pyx_string_tab[2512] +#define __pyx_n_u_TA_WMA_Peek __pyx_string_tab[2513] +#define __pyx_n_u_TA_WMA_Update __pyx_string_tab[2514] +#define __pyx_n_u_TA_WMA_Value __pyx_string_tab[2515] +#define __pyx_n_u_TA_ZIGZAG __pyx_string_tab[2516] +#define __pyx_n_u_TA_ZIGZAG_Clone __pyx_string_tab[2517] +#define __pyx_n_u_TA_ZIGZAG_Open __pyx_string_tab[2518] +#define __pyx_n_u_TA_ZIGZAG_OpenAndFill __pyx_string_tab[2519] +#define __pyx_n_u_TA_ZIGZAG_Peek __pyx_string_tab[2520] +#define __pyx_n_u_TA_ZIGZAG_Update __pyx_string_tab[2521] +#define __pyx_n_u_TA_ZIGZAG_Value __pyx_string_tab[2522] +#define __pyx_n_u_TA_ZLEMA __pyx_string_tab[2523] +#define __pyx_n_u_TA_ZLEMA_Clone __pyx_string_tab[2524] +#define __pyx_n_u_TA_ZLEMA_Open __pyx_string_tab[2525] +#define __pyx_n_u_TA_ZLEMA_OpenAndFill __pyx_string_tab[2526] +#define __pyx_n_u_TA_ZLEMA_Peek __pyx_string_tab[2527] +#define __pyx_n_u_TA_ZLEMA_Update __pyx_string_tab[2528] +#define __pyx_n_u_TA_ZLEMA_Value __pyx_string_tab[2529] +#define __pyx_n_u_TEMA __pyx_string_tab[2530] +#define __pyx_n_u_TEMA_Stream __pyx_string_tab[2531] +#define __pyx_n_u_TEMA_Stream_open_and_fill __pyx_string_tab[2532] +#define __pyx_n_u_TRANGE __pyx_string_tab[2533] +#define __pyx_n_u_TRANGE_Stream __pyx_string_tab[2534] +#define __pyx_n_u_TRANGE_Stream_open_and_fill __pyx_string_tab[2535] +#define __pyx_n_u_TRIMA __pyx_string_tab[2536] +#define __pyx_n_u_TRIMA_Stream __pyx_string_tab[2537] +#define __pyx_n_u_TRIMA_Stream_open_and_fill __pyx_string_tab[2538] +#define __pyx_n_u_TRIX __pyx_string_tab[2539] +#define __pyx_n_u_TRIX_Stream __pyx_string_tab[2540] +#define __pyx_n_u_TRIX_Stream_open_and_fill __pyx_string_tab[2541] +#define __pyx_n_u_TSF __pyx_string_tab[2542] +#define __pyx_n_u_TSF_Stream __pyx_string_tab[2543] +#define __pyx_n_u_TSF_Stream_open_and_fill __pyx_string_tab[2544] +#define __pyx_n_u_TSI __pyx_string_tab[2545] +#define __pyx_n_u_TSI_Stream __pyx_string_tab[2546] +#define __pyx_n_u_TSI_Stream_open_and_fill __pyx_string_tab[2547] +#define __pyx_n_u_TYPPRICE __pyx_string_tab[2548] +#define __pyx_n_u_TYPPRICE_Stream __pyx_string_tab[2549] +#define __pyx_n_u_TYPPRICE_Stream_open_and_fill __pyx_string_tab[2550] +#define __pyx_n_u_ULTOSC __pyx_string_tab[2551] +#define __pyx_n_u_ULTOSC_Stream __pyx_string_tab[2552] +#define __pyx_n_u_ULTOSC_Stream_open_and_fill __pyx_string_tab[2553] +#define __pyx_n_u_UNSTABLE_AUTO_PREC_4 __pyx_string_tab[2554] +#define __pyx_n_u_UNSTABLE_AUTO_PREC_8 __pyx_string_tab[2555] +#define __pyx_n_u_VAR __pyx_string_tab[2556] +#define __pyx_n_u_VAR_Stream __pyx_string_tab[2557] +#define __pyx_n_u_VAR_Stream_open_and_fill __pyx_string_tab[2558] +#define __pyx_n_u_VHF __pyx_string_tab[2559] +#define __pyx_n_u_VHF_Stream __pyx_string_tab[2560] +#define __pyx_n_u_VHF_Stream_open_and_fill __pyx_string_tab[2561] +#define __pyx_n_u_VIDYA __pyx_string_tab[2562] +#define __pyx_n_u_VIDYA_Stream __pyx_string_tab[2563] +#define __pyx_n_u_VIDYA_Stream_open_and_fill __pyx_string_tab[2564] +#define __pyx_n_u_VORTEX __pyx_string_tab[2565] +#define __pyx_n_u_VORTEX_Stream __pyx_string_tab[2566] +#define __pyx_n_u_VORTEX_Stream_open_and_fill __pyx_string_tab[2567] +#define __pyx_n_u_VWAP __pyx_string_tab[2568] +#define __pyx_n_u_VWAP_Stream __pyx_string_tab[2569] +#define __pyx_n_u_VWAP_Stream_open_and_fill __pyx_string_tab[2570] +#define __pyx_n_u_VWMA __pyx_string_tab[2571] +#define __pyx_n_u_VWMA_Stream __pyx_string_tab[2572] +#define __pyx_n_u_VWMA_Stream_open_and_fill __pyx_string_tab[2573] +#define __pyx_n_u_WAD __pyx_string_tab[2574] +#define __pyx_n_u_WAD_Stream __pyx_string_tab[2575] +#define __pyx_n_u_WAD_Stream_open_and_fill __pyx_string_tab[2576] +#define __pyx_n_u_WAVETREND __pyx_string_tab[2577] +#define __pyx_n_u_WAVETREND_Stream __pyx_string_tab[2578] +#define __pyx_n_u_WAVETREND_Stream_open_and_fill __pyx_string_tab[2579] +#define __pyx_n_u_WCLPRICE __pyx_string_tab[2580] +#define __pyx_n_u_WCLPRICE_Stream __pyx_string_tab[2581] +#define __pyx_n_u_WCLPRICE_Stream_open_and_fill __pyx_string_tab[2582] +#define __pyx_n_u_WILLR __pyx_string_tab[2583] +#define __pyx_n_u_WILLR_Stream __pyx_string_tab[2584] +#define __pyx_n_u_WILLR_Stream_open_and_fill __pyx_string_tab[2585] +#define __pyx_n_u_WMA __pyx_string_tab[2586] +#define __pyx_n_u_WMA_Stream __pyx_string_tab[2587] +#define __pyx_n_u_WMA_Stream_open_and_fill __pyx_string_tab[2588] +#define __pyx_n_u_ZIGZAG __pyx_string_tab[2589] +#define __pyx_n_u_ZIGZAG_Stream __pyx_string_tab[2590] +#define __pyx_n_u_ZIGZAG_Stream_open_and_fill __pyx_string_tab[2591] +#define __pyx_n_u_ZLEMA __pyx_string_tab[2592] +#define __pyx_n_u_ZLEMA_Stream __pyx_string_tab[2593] +#define __pyx_n_u_ZLEMA_Stream_open_and_fill __pyx_string_tab[2594] +#define __pyx_n_u_ARRAY_TYPES __pyx_string_tab[2595] +#define __pyx_n_u_Function__call_function __pyx_string_tab[2596] +#define __pyx_n_u_Function__check_opt_input_value __pyx_string_tab[2597] +#define __pyx_n_u_Function__get_opt_input_value __pyx_string_tab[2598] +#define __pyx_n_u_Function__input_price_series_na __pyx_string_tab[2599] +#define __pyx_n_u_Function__local __pyx_string_tab[2600] +#define __pyx_n_u_Function__localdata __pyx_string_tab[2601] +#define __pyx_n_u_Function__name __pyx_string_tab[2602] +#define __pyx_n_u_Function__namestr __pyx_string_tab[2603] +#define __pyx_n_u_INPUT_ARRAYS_TYPES __pyx_string_tab[2604] +#define __pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS __pyx_string_tab[2605] +#define __pyx_n_u_PANDAS_DATAFRAME __pyx_string_tab[2606] +#define __pyx_n_u_PANDAS_SERIES __pyx_string_tab[2607] +#define __pyx_n_u_POLARS_DATAFRAME __pyx_string_tab[2608] +#define __pyx_n_u_POLARS_SERIES __pyx_string_tab[2609] +#define __pyx_n_u_TA_ReadLease __pyx_string_tab[2610] +#define __pyx_n_u_TA_ReadLease___enter __pyx_string_tab[2611] +#define __pyx_n_u_TA_ReadLease___exit __pyx_string_tab[2612] +#define __pyx_n_u_TA_ReadLease___reduce_cython __pyx_string_tab[2613] +#define __pyx_n_u_TA_ReadLease___setstate_cython __pyx_string_tab[2614] +#define __pyx_n_u_TA_WriteLease __pyx_string_tab[2615] +#define __pyx_n_u_TA_WriteLease___enter __pyx_string_tab[2616] +#define __pyx_n_u_TA_WriteLease___exit __pyx_string_tab[2617] +#define __pyx_n_u_TA_WriteLease___reduce_cython __pyx_string_tab[2618] +#define __pyx_n_u_TA_WriteLease___setstate_cython __pyx_string_tab[2619] +#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[2620] +#define __pyx_n_u_TA_FUNCTION_NAMES __pyx_string_tab[2621] +#define __pyx_n_u_all __pyx_string_tab[2622] +#define __pyx_n_u_annotate __pyx_string_tab[2623] +#define __pyx_n_u_call __pyx_string_tab[2624] +#define __pyx_n_u_call_function __pyx_string_tab[2625] +#define __pyx_n_u_check_opt_input_value __pyx_string_tab[2626] +#define __pyx_n_u_class_getitem __pyx_string_tab[2627] +#define __pyx_n_u_copy_2 __pyx_string_tab[2628] +#define __pyx_n_u_deepcopy __pyx_string_tab[2629] +#define __pyx_n_u_dict __pyx_string_tab[2630] +#define __pyx_n_u_doc __pyx_string_tab[2631] +#define __pyx_n_u_enter __pyx_string_tab[2632] +#define __pyx_n_u_exit __pyx_string_tab[2633] +#define __pyx_n_u_func __pyx_string_tab[2634] +#define __pyx_n_u_get_flags __pyx_string_tab[2635] +#define __pyx_n_u_get_opt_input_value __pyx_string_tab[2636] +#define __pyx_n_u_getitem __pyx_string_tab[2637] +#define __pyx_n_u_getstate __pyx_string_tab[2638] +#define __pyx_n_u_init __pyx_string_tab[2639] +#define __pyx_n_u_input_price_series_names_2 __pyx_string_tab[2640] +#define __pyx_n_u_local_2 __pyx_string_tab[2641] +#define __pyx_n_u_main __pyx_string_tab[2642] +#define __pyx_n_u_metaclass __pyx_string_tab[2643] +#define __pyx_n_u_module __pyx_string_tab[2644] +#define __pyx_n_u_mro_entries __pyx_string_tab[2645] +#define __pyx_n_u_name_2 __pyx_string_tab[2646] +#define __pyx_n_u_new __pyx_string_tab[2647] +#define __pyx_n_u_prepare __pyx_string_tab[2648] +#define __pyx_n_u_pyx_checksum __pyx_string_tab[2649] +#define __pyx_n_u_pyx_result __pyx_string_tab[2650] +#define __pyx_n_u_pyx_state __pyx_string_tab[2651] +#define __pyx_n_u_pyx_type __pyx_string_tab[2652] +#define __pyx_n_u_pyx_unpickle__TA_ReadLease __pyx_string_tab[2653] +#define __pyx_n_u_pyx_unpickle__TA_WriteLease __pyx_string_tab[2654] +#define __pyx_n_u_pyx_vtable __pyx_string_tab[2655] +#define __pyx_n_u_qualname __pyx_string_tab[2656] +#define __pyx_n_u_reduce __pyx_string_tab[2657] +#define __pyx_n_u_reduce_cython __pyx_string_tab[2658] +#define __pyx_n_u_reduce_ex __pyx_string_tab[2659] +#define __pyx_n_u_repr __pyx_string_tab[2660] +#define __pyx_n_u_set_name __pyx_string_tab[2661] +#define __pyx_n_u_setstate __pyx_string_tab[2662] +#define __pyx_n_u_setstate_cython __pyx_string_tab[2663] +#define __pyx_n_u_str __pyx_string_tab[2664] +#define __pyx_n_u_ta_version __pyx_string_tab[2665] +#define __pyx_n_u_test __pyx_string_tab[2666] +#define __pyx_n_u_unicode __pyx_string_tab[2667] +#define __pyx_n_u_dict_2 __pyx_string_tab[2668] +#define __pyx_n_u_get_defaults_and_docs __pyx_string_tab[2669] +#define __pyx_n_u_is_coroutine __pyx_string_tab[2670] +#define __pyx_n_u_lookup __pyx_string_tab[2671] +#define __pyx_n_u_ta_check_success __pyx_string_tab[2672] +#define __pyx_n_u_ta_func_unst_id __pyx_string_tab[2673] +#define __pyx_n_u_ta_func_unst_ids __pyx_string_tab[2674] +#define __pyx_n_u_ta_func_unst_retired __pyx_string_tab[2675] +#define __pyx_n_u_ta_getFuncInfo __pyx_string_tab[2676] +#define __pyx_n_u_ta_getFuncTable __pyx_string_tab[2677] +#define __pyx_n_u_ta_getGroupTable __pyx_string_tab[2678] +#define __pyx_n_u_ta_getInputParameterInfo __pyx_string_tab[2679] +#define __pyx_n_u_ta_getOptInputParameterInfo __pyx_string_tab[2680] +#define __pyx_n_u_ta_getOutputParameterInfo __pyx_string_tab[2681] +#define __pyx_n_u_ta_get_compatibility __pyx_string_tab[2682] +#define __pyx_n_u_ta_get_runtime_info __pyx_string_tab[2683] +#define __pyx_n_u_ta_get_unstable_period __pyx_string_tab[2684] +#define __pyx_n_u_ta_initialize __pyx_string_tab[2685] +#define __pyx_n_u_ta_restore_candle_default_setti __pyx_string_tab[2686] +#define __pyx_n_u_ta_set_candle_settings __pyx_string_tab[2687] +#define __pyx_n_u_ta_set_compatibility __pyx_string_tab[2688] +#define __pyx_n_u_ta_set_unstable_period __pyx_string_tab[2689] +#define __pyx_n_u_ta_shutdown __pyx_string_tab[2690] +#define __pyx_n_u_a_close __pyx_string_tab[2691] +#define __pyx_n_u_a_high __pyx_string_tab[2692] +#define __pyx_n_u_a_low __pyx_string_tab[2693] +#define __pyx_n_u_a_open __pyx_string_tab[2694] +#define __pyx_n_u_a_periods __pyx_string_tab[2695] +#define __pyx_n_u_a_real __pyx_string_tab[2696] +#define __pyx_n_u_a_real0 __pyx_string_tab[2697] +#define __pyx_n_u_a_real1 __pyx_string_tab[2698] +#define __pyx_n_u_a_volume __pyx_string_tab[2699] +#define __pyx_n_u_acceleration __pyx_string_tab[2700] +#define __pyx_n_u_accelerationinitlong __pyx_string_tab[2701] +#define __pyx_n_u_accelerationinitshort __pyx_string_tab[2702] +#define __pyx_n_u_accelerationlong __pyx_string_tab[2703] +#define __pyx_n_u_accelerationmaxlong __pyx_string_tab[2704] +#define __pyx_n_u_accelerationmaxshort __pyx_string_tab[2705] +#define __pyx_n_u_accelerationshort __pyx_string_tab[2706] +#define __pyx_n_u_acquired __pyx_string_tab[2707] +#define __pyx_n_u_annualization __pyx_string_tab[2708] +#define __pyx_n_u_append __pyx_string_tab[2709] +#define __pyx_n_u_arg __pyx_string_tab[2710] +#define __pyx_n_u_args __pyx_string_tab[2711] +#define __pyx_n_u_arrays __pyx_string_tab[2712] +#define __pyx_n_u_ascii __pyx_string_tab[2713] +#define __pyx_n_u_astype __pyx_string_tab[2714] +#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[2715] +#define __pyx_n_u_at_exit __pyx_string_tab[2716] +#define __pyx_n_u_atrperiod __pyx_string_tab[2717] +#define __pyx_n_u_averageperiod __pyx_string_tab[2718] +#define __pyx_n_u_avgperiod __pyx_string_tab[2719] +#define __pyx_n_u_b __pyx_string_tab[2720] +#define __pyx_n_u_bbperiod __pyx_string_tab[2721] +#define __pyx_n_u_begidx __pyx_string_tab[2722] +#define __pyx_n_u_bit __pyx_string_tab[2723] +#define __pyx_n_u_bytes2str __pyx_string_tab[2724] +#define __pyx_n_u_c_key __pyx_string_tab[2725] +#define __pyx_n_u_c_period __pyx_string_tab[2726] +#define __pyx_n_u_c_value __pyx_string_tab[2727] +#define __pyx_n_u_candlestick __pyx_string_tab[2728] +#define __pyx_n_u_channelperiod __pyx_string_tab[2729] +#define __pyx_n_u_cline_in_traceback __pyx_string_tab[2730] +#define __pyx_n_u_clone __pyx_string_tab[2731] +#define __pyx_n_u_close __pyx_string_tab[2732] +#define __pyx_n_u_cmoperiod __pyx_string_tab[2733] +#define __pyx_n_u_collections __pyx_string_tab[2734] +#define __pyx_n_u_column_stack __pyx_string_tab[2735] +#define __pyx_n_u_columns __pyx_string_tab[2736] +#define __pyx_n_u_copy __pyx_string_tab[2737] +#define __pyx_n_u_cycleperiod __pyx_string_tab[2738] +#define __pyx_n_u_d __pyx_string_tab[2739] +#define __pyx_n_u_decode __pyx_string_tab[2740] +#define __pyx_n_u_default_value __pyx_string_tab[2741] +#define __pyx_n_u_defaults __pyx_string_tab[2742] +#define __pyx_n_u_delta __pyx_string_tab[2743] +#define __pyx_n_u_description __pyx_string_tab[2744] +#define __pyx_n_u_display_name __pyx_string_tab[2745] +#define __pyx_n_u_docs __pyx_string_tab[2746] +#define __pyx_n_u_documentation __pyx_string_tab[2747] +#define __pyx_n_u_emaperiod __pyx_string_tab[2748] +#define __pyx_n_u_empty __pyx_string_tab[2749] +#define __pyx_n_u_encode __pyx_string_tab[2750] +#define __pyx_n_u_endidx __pyx_string_tab[2751] +#define __pyx_n_u_endswith __pyx_string_tab[2752] +#define __pyx_n_u_enumerate __pyx_string_tab[2753] +#define __pyx_n_u_factor __pyx_string_tab[2754] +#define __pyx_n_u_factornarrow __pyx_string_tab[2755] +#define __pyx_n_u_factornormal __pyx_string_tab[2756] +#define __pyx_n_u_factorwide __pyx_string_tab[2757] +#define __pyx_n_u_fastd_matype __pyx_string_tab[2758] +#define __pyx_n_u_fastd_period __pyx_string_tab[2759] +#define __pyx_n_u_fastk_period __pyx_string_tab[2760] +#define __pyx_n_u_fastlimit __pyx_string_tab[2761] +#define __pyx_n_u_fastmatype __pyx_string_tab[2762] +#define __pyx_n_u_fastperiod __pyx_string_tab[2763] +#define __pyx_n_u_firstperiod __pyx_string_tab[2764] +#define __pyx_n_u_flag __pyx_string_tab[2765] +#define __pyx_n_u_flags __pyx_string_tab[2766] +#define __pyx_n_u_flags_lookup_dict __pyx_string_tab[2767] +#define __pyx_n_u_func_args __pyx_string_tab[2768] +#define __pyx_n_u_func_info __pyx_string_tab[2769] +#define __pyx_n_u_func_line __pyx_string_tab[2770] +#define __pyx_n_u_func_object __pyx_string_tab[2771] +#define __pyx_n_u_function_flags __pyx_string_tab[2772] +#define __pyx_n_u_function_name __pyx_string_tab[2773] +#define __pyx_n_u_functions __pyx_string_tab[2774] +#define __pyx_n_u_get_input_arrays __pyx_string_tab[2775] +#define __pyx_n_u_get_input_names __pyx_string_tab[2776] +#define __pyx_n_u_get_parameters __pyx_string_tab[2777] +#define __pyx_n_u_group __pyx_string_tab[2778] +#define __pyx_n_u_groups __pyx_string_tab[2779] +#define __pyx_n_u_handle __pyx_string_tab[2780] +#define __pyx_n_u_help __pyx_string_tab[2781] +#define __pyx_n_u_high __pyx_string_tab[2782] +#define __pyx_n_u_historylen __pyx_string_tab[2783] +#define __pyx_n_u_holder __pyx_string_tab[2784] +#define __pyx_n_u_i __pyx_string_tab[2785] +#define __pyx_n_u_id __pyx_string_tab[2786] +#define __pyx_n_u_idx __pyx_string_tab[2787] +#define __pyx_n_u_import_error __pyx_string_tab[2788] +#define __pyx_n_u_in __pyx_string_tab[2789] +#define __pyx_n_u_index __pyx_string_tab[2790] +#define __pyx_n_u_info __pyx_string_tab[2791] +#define __pyx_n_u_input_arrays __pyx_string_tab[2792] +#define __pyx_n_u_input_name __pyx_string_tab[2793] +#define __pyx_n_u_input_names __pyx_string_tab[2794] +#define __pyx_n_u_input_price_series_names __pyx_string_tab[2795] +#define __pyx_n_u_integer __pyx_string_tab[2796] +#define __pyx_n_u_is_empty __pyx_string_tab[2797] +#define __pyx_n_u_items __pyx_string_tab[2798] +#define __pyx_n_u_k __pyx_string_tab[2799] +#define __pyx_n_u_kcperiod __pyx_string_tab[2800] +#define __pyx_n_u_key __pyx_string_tab[2801] +#define __pyx_n_u_keys __pyx_string_tab[2802] +#define __pyx_n_u_kijunperiod __pyx_string_tab[2803] +#define __pyx_n_u_kwargs __pyx_string_tab[2804] +#define __pyx_n_u_leftbars __pyx_string_tab[2805] +#define __pyx_n_u_length __pyx_string_tab[2806] +#define __pyx_n_u_limitmove __pyx_string_tab[2807] +#define __pyx_n_u_local __pyx_string_tab[2808] +#define __pyx_n_u_lookback __pyx_string_tab[2809] +#define __pyx_n_u_low __pyx_string_tab[2810] +#define __pyx_n_u_lower __pyx_string_tab[2811] +#define __pyx_n_u_ma1period __pyx_string_tab[2812] +#define __pyx_n_u_ma2period __pyx_string_tab[2813] +#define __pyx_n_u_ma3period __pyx_string_tab[2814] +#define __pyx_n_u_ma4period __pyx_string_tab[2815] +#define __pyx_n_u_matype __pyx_string_tab[2816] +#define __pyx_n_u_maximum __pyx_string_tab[2817] +#define __pyx_n_u_maxperiod __pyx_string_tab[2818] +#define __pyx_n_u_memo __pyx_string_tab[2819] +#define __pyx_n_u_minperiod __pyx_string_tab[2820] +#define __pyx_n_u_mintrendlength __pyx_string_tab[2821] +#define __pyx_n_u_missing __pyx_string_tab[2822] +#define __pyx_n_u_missing_keys __pyx_string_tab[2823] +#define __pyx_n_u_module_2 __pyx_string_tab[2824] +#define __pyx_n_u_msg __pyx_string_tab[2825] +#define __pyx_n_u_multiplier __pyx_string_tab[2826] +#define __pyx_n_u_n __pyx_string_tab[2827] +#define __pyx_n_u_name __pyx_string_tab[2828] +#define __pyx_n_u_namedtuple __pyx_string_tab[2829] +#define __pyx_n_u_nan __pyx_string_tab[2830] +#define __pyx_n_u_nbdev __pyx_string_tab[2831] +#define __pyx_n_u_nbdevdn __pyx_string_tab[2832] +#define __pyx_n_u_nbdevup __pyx_string_tab[2833] +#define __pyx_n_u_no_existing_input_arrays __pyx_string_tab[2834] +#define __pyx_n_u_num_inputs __pyx_string_tab[2835] +#define __pyx_n_u_num_opt_inputs __pyx_string_tab[2836] +#define __pyx_n_u_num_outputs __pyx_string_tab[2837] +#define __pyx_n_u_numpy __pyx_string_tab[2838] +#define __pyx_n_u_object __pyx_string_tab[2839] +#define __pyx_n_u_offset __pyx_string_tab[2840] +#define __pyx_n_u_offsetonreverse __pyx_string_tab[2841] +#define __pyx_n_u_open __pyx_string_tab[2842] +#define __pyx_n_u_openInterest __pyx_string_tab[2843] +#define __pyx_n_u_open_and_fill __pyx_string_tab[2844] +#define __pyx_n_u_optIn __pyx_string_tab[2845] +#define __pyx_n_u_opt_input __pyx_string_tab[2846] +#define __pyx_n_u_opt_input_values __pyx_string_tab[2847] +#define __pyx_n_u_opt_inputs __pyx_string_tab[2848] +#define __pyx_n_u_ordereddict __pyx_string_tab[2849] +#define __pyx_n_u_out __pyx_string_tab[2850] +#define __pyx_n_u_outaroondown __pyx_string_tab[2851] +#define __pyx_n_u_outaroonup __pyx_string_tab[2852] +#define __pyx_n_u_outbearpower __pyx_string_tab[2853] +#define __pyx_n_u_outbegidx __pyx_string_tab[2854] +#define __pyx_n_u_outbullpower __pyx_string_tab[2855] +#define __pyx_n_u_outd __pyx_string_tab[2856] +#define __pyx_n_u_outfama __pyx_string_tab[2857] +#define __pyx_n_u_outfastd __pyx_string_tab[2858] +#define __pyx_n_u_outfastk __pyx_string_tab[2859] +#define __pyx_n_u_outfisher __pyx_string_tab[2860] +#define __pyx_n_u_outhaclose __pyx_string_tab[2861] +#define __pyx_n_u_outhahigh __pyx_string_tab[2862] +#define __pyx_n_u_outhalow __pyx_string_tab[2863] +#define __pyx_n_u_outhaopen __pyx_string_tab[2864] +#define __pyx_n_u_outhighstop __pyx_string_tab[2865] +#define __pyx_n_u_outinphase __pyx_string_tab[2866] +#define __pyx_n_u_outinteger __pyx_string_tab[2867] +#define __pyx_n_u_outinteger_data __pyx_string_tab[2868] +#define __pyx_n_u_outj __pyx_string_tab[2869] +#define __pyx_n_u_outk __pyx_string_tab[2870] +#define __pyx_n_u_outkijunsen __pyx_string_tab[2871] +#define __pyx_n_u_outkst __pyx_string_tab[2872] +#define __pyx_n_u_outkstsignal __pyx_string_tab[2873] +#define __pyx_n_u_outkvo __pyx_string_tab[2874] +#define __pyx_n_u_outkvosignal __pyx_string_tab[2875] +#define __pyx_n_u_outleadsine __pyx_string_tab[2876] +#define __pyx_n_u_outlowerband __pyx_string_tab[2877] +#define __pyx_n_u_outlowstop __pyx_string_tab[2878] +#define __pyx_n_u_outmacd __pyx_string_tab[2879] +#define __pyx_n_u_outmacdhist __pyx_string_tab[2880] +#define __pyx_n_u_outmacdsignal __pyx_string_tab[2881] +#define __pyx_n_u_outmama __pyx_string_tab[2882] +#define __pyx_n_u_outmax __pyx_string_tab[2883] +#define __pyx_n_u_outmaxidx __pyx_string_tab[2884] +#define __pyx_n_u_outmaxidx_data __pyx_string_tab[2885] +#define __pyx_n_u_outmiddleband __pyx_string_tab[2886] +#define __pyx_n_u_outmin __pyx_string_tab[2887] +#define __pyx_n_u_outminidx __pyx_string_tab[2888] +#define __pyx_n_u_outminidx_data __pyx_string_tab[2889] +#define __pyx_n_u_outminusvi __pyx_string_tab[2890] +#define __pyx_n_u_outmomentum __pyx_string_tab[2891] +#define __pyx_n_u_outnbelement __pyx_string_tab[2892] +#define __pyx_n_u_outpivotidx __pyx_string_tab[2893] +#define __pyx_n_u_outpivotidx_data __pyx_string_tab[2894] +#define __pyx_n_u_outplusvi __pyx_string_tab[2895] +#define __pyx_n_u_output __pyx_string_tab[2896] +#define __pyx_n_u_output_flags __pyx_string_tab[2897] +#define __pyx_n_u_output_name __pyx_string_tab[2898] +#define __pyx_n_u_output_names __pyx_string_tab[2899] +#define __pyx_n_u_outputs __pyx_string_tab[2900] +#define __pyx_n_u_outputs_valid __pyx_string_tab[2901] +#define __pyx_n_u_outquadrature __pyx_string_tab[2902] +#define __pyx_n_u_outreal __pyx_string_tab[2903] +#define __pyx_n_u_outreallowerband __pyx_string_tab[2904] +#define __pyx_n_u_outrealmiddleband __pyx_string_tab[2905] +#define __pyx_n_u_outrealupperband __pyx_string_tab[2906] +#define __pyx_n_u_outsenkouspana __pyx_string_tab[2907] +#define __pyx_n_u_outsenkouspanb __pyx_string_tab[2908] +#define __pyx_n_u_outsine __pyx_string_tab[2909] +#define __pyx_n_u_outslowd __pyx_string_tab[2910] +#define __pyx_n_u_outslowk __pyx_string_tab[2911] +#define __pyx_n_u_outsmi __pyx_string_tab[2912] +#define __pyx_n_u_outsmisignal __pyx_string_tab[2913] +#define __pyx_n_u_outsqueeze __pyx_string_tab[2914] +#define __pyx_n_u_outsupertrend __pyx_string_tab[2915] +#define __pyx_n_u_outswinghigh __pyx_string_tab[2916] +#define __pyx_n_u_outswinglow __pyx_string_tab[2917] +#define __pyx_n_u_outtenkansen __pyx_string_tab[2918] +#define __pyx_n_u_outtrend __pyx_string_tab[2919] +#define __pyx_n_u_outtrigger __pyx_string_tab[2920] +#define __pyx_n_u_outupperband __pyx_string_tab[2921] +#define __pyx_n_u_outwt1 __pyx_string_tab[2922] +#define __pyx_n_u_outwt2 __pyx_string_tab[2923] +#define __pyx_n_u_outzigzag __pyx_string_tab[2924] +#define __pyx_n_u_pandas __pyx_string_tab[2925] +#define __pyx_n_u_param __pyx_string_tab[2926] +#define __pyx_n_u_param_name __pyx_string_tab[2927] +#define __pyx_n_u_parameters __pyx_string_tab[2928] +#define __pyx_n_u_params __pyx_string_tab[2929] +#define __pyx_n_u_penetration __pyx_string_tab[2930] +#define __pyx_n_u_percentile __pyx_string_tab[2931] +#define __pyx_n_u_period __pyx_string_tab[2932] +#define __pyx_n_u_periods __pyx_string_tab[2933] +#define __pyx_n_u_polars __pyx_string_tab[2934] +#define __pyx_n_u_pop __pyx_string_tab[2935] +#define __pyx_n_u_price __pyx_string_tab[2936] +#define __pyx_n_u_price0 __pyx_string_tab[2937] +#define __pyx_n_u_price1 __pyx_string_tab[2938] +#define __pyx_n_u_price_series __pyx_string_tab[2939] +#define __pyx_n_u_price_series_name_values __pyx_string_tab[2940] +#define __pyx_n_u_prices __pyx_string_tab[2941] +#define __pyx_n_u_property __pyx_string_tab[2942] +#define __pyx_n_u_rangetype __pyx_string_tab[2943] +#define __pyx_n_u_rankperiod __pyx_string_tab[2944] +#define __pyx_n_u_real __pyx_string_tab[2945] +#define __pyx_n_u_real0 __pyx_string_tab[2946] +#define __pyx_n_u_real1 __pyx_string_tab[2947] +#define __pyx_n_u_replace __pyx_string_tab[2948] +#define __pyx_n_u_results __pyx_string_tab[2949] +#define __pyx_n_u_ret __pyx_string_tab[2950] +#define __pyx_n_u_retCode __pyx_string_tab[2951] +#define __pyx_n_u_ret_code __pyx_string_tab[2952] +#define __pyx_n_u_rightbars __pyx_string_tab[2953] +#define __pyx_n_u_roc1period __pyx_string_tab[2954] +#define __pyx_n_u_roc2period __pyx_string_tab[2955] +#define __pyx_n_u_roc3period __pyx_string_tab[2956] +#define __pyx_n_u_roc4period __pyx_string_tab[2957] +#define __pyx_n_u_rocmatype __pyx_string_tab[2958] +#define __pyx_n_u_rocperiod __pyx_string_tab[2959] +#define __pyx_n_u_run __pyx_string_tab[2960] +#define __pyx_n_u_s __pyx_string_tab[2961] +#define __pyx_n_u_schema __pyx_string_tab[2962] +#define __pyx_n_u_secondperiod __pyx_string_tab[2963] +#define __pyx_n_u_self __pyx_string_tab[2964] +#define __pyx_n_u_senkoubperiod __pyx_string_tab[2965] +#define __pyx_n_u_sensitivity __pyx_string_tab[2966] +#define __pyx_n_u_series __pyx_string_tab[2967] +#define __pyx_n_u_set_function_args __pyx_string_tab[2968] +#define __pyx_n_u_set_input_arrays __pyx_string_tab[2969] +#define __pyx_n_u_set_input_names __pyx_string_tab[2970] +#define __pyx_n_u_set_parameters __pyx_string_tab[2971] +#define __pyx_n_u_setdefault __pyx_string_tab[2972] +#define __pyx_n_u_settingtype __pyx_string_tab[2973] +#define __pyx_n_u_sigma __pyx_string_tab[2974] +#define __pyx_n_u_signalmatype __pyx_string_tab[2975] +#define __pyx_n_u_signalperiod __pyx_string_tab[2976] +#define __pyx_n_u_skip_first __pyx_string_tab[2977] +#define __pyx_n_u_slowd_matype __pyx_string_tab[2978] +#define __pyx_n_u_slowd_period __pyx_string_tab[2979] +#define __pyx_n_u_slowk_matype __pyx_string_tab[2980] +#define __pyx_n_u_slowk_period __pyx_string_tab[2981] +#define __pyx_n_u_slowlimit __pyx_string_tab[2982] +#define __pyx_n_u_slowmatype __pyx_string_tab[2983] +#define __pyx_n_u_slowperiod __pyx_string_tab[2984] +#define __pyx_n_u_sma1period __pyx_string_tab[2985] +#define __pyx_n_u_sma2period __pyx_string_tab[2986] +#define __pyx_n_u_sma3period __pyx_string_tab[2987] +#define __pyx_n_u_sma4period __pyx_string_tab[2988] +#define __pyx_n_u_stacklevel __pyx_string_tab[2989] +#define __pyx_n_u_startvalue __pyx_string_tab[2990] +#define __pyx_n_u_state __pyx_string_tab[2991] +#define __pyx_n_u_staticmethod __pyx_string_tab[2992] +#define __pyx_n_u_stddevperiod __pyx_string_tab[2993] +#define __pyx_n_u_stopperiod __pyx_string_tab[2994] +#define __pyx_n_u_str2bytes __pyx_string_tab[2995] +#define __pyx_n_u_streakperiod __pyx_string_tab[2996] +#define __pyx_n_u_stream __pyx_string_tab[2997] +#define __pyx_n_u_sys __pyx_string_tab[2998] +#define __pyx_n_u_table __pyx_string_tab[2999] +#define __pyx_n_u_talib__ta_lib __pyx_string_tab[3000] +#define __pyx_n_u_tenkanperiod __pyx_string_tab[3001] +#define __pyx_n_u_threading __pyx_string_tab[3002] +#define __pyx_n_u_timeStamp __pyx_string_tab[3003] +#define __pyx_n_u_timeperiod __pyx_string_tab[3004] +#define __pyx_n_u_timeperiod1 __pyx_string_tab[3005] +#define __pyx_n_u_timeperiod2 __pyx_string_tab[3006] +#define __pyx_n_u_timeperiod3 __pyx_string_tab[3007] +#define __pyx_n_u_to_numpy __pyx_string_tab[3008] +#define __pyx_n_u_type_2 __pyx_string_tab[3009] +#define __pyx_n_u_type __pyx_string_tab[3010] +#define __pyx_n_u_unst_id __pyx_string_tab[3011] +#define __pyx_n_u_update __pyx_string_tab[3012] +#define __pyx_n_u_update_info __pyx_string_tab[3013] +#define __pyx_n_u_updates __pyx_string_tab[3014] +#define __pyx_n_u_upper __pyx_string_tab[3015] +#define __pyx_n_u_use_setstate __pyx_string_tab[3016] +#define __pyx_n_u_value __pyx_string_tab[3017] +#define __pyx_n_u_values __pyx_string_tab[3018] +#define __pyx_n_u_version __pyx_string_tab[3019] +#define __pyx_n_u_vfactor __pyx_string_tab[3020] +#define __pyx_n_u_volume __pyx_string_tab[3021] +#define __pyx_n_u_volumedivisor __pyx_string_tab[3022] +#define __pyx_n_u_warn __pyx_string_tab[3023] +#define __pyx_n_u_warnings __pyx_string_tab[3024] +#define __pyx_n_u_wmaperiod __pyx_string_tab[3025] +#define __pyx_kp_b_iso88591_q_4q_nA_Q_q_a __pyx_string_tab[3026] +#define __pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ __pyx_string_tab[3027] +#define __pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q __pyx_string_tab[3028] +#define __pyx_kp_b_iso88591_1F __pyx_string_tab[3029] +#define __pyx_kp_b_iso88591_AV1 __pyx_string_tab[3030] +#define __pyx_kp_b_iso88591_Q_s_a_AS_Q_1_1 __pyx_string_tab[3031] +#define __pyx_kp_b_iso88591_q_q_aq_Q_Q __pyx_string_tab[3032] +#define __pyx_kp_b_iso88591_q_0_kQR_7_q0_a_1 __pyx_string_tab[3033] +#define __pyx_kp_b_iso88591_q_0_kQR_7_0_1B_PQ_1 __pyx_string_tab[3034] +#define __pyx_kp_b_iso88591_a_1_1 __pyx_string_tab[3035] +#define __pyx_kp_b_iso88591_q_q_ST_Q_a __pyx_string_tab[3036] +#define __pyx_kp_b_iso88591_q_1_Q_9 __pyx_string_tab[3037] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A __pyx_string_tab[3038] +#define __pyx_kp_b_iso88591_1_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3039] +#define __pyx_kp_b_iso88591_1_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2 __pyx_string_tab[3040] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32 __pyx_string_tab[3041] +#define __pyx_kp_b_iso88591_A_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2 __pyx_string_tab[3042] +#define __pyx_kp_b_iso88591_A_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3043] +#define __pyx_kp_b_iso88591_SSjjk_aq_T_q_wc_A_axz_Q_U_7_A_A __pyx_string_tab[3044] +#define __pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_axz_Q_U_7_A_A_w __pyx_string_tab[3045] +#define __pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_axz_Q_U_7_A_A_w_2 __pyx_string_tab[3046] +#define __pyx_kp_b_iso88591_TTl_m_E_E_u_u_M_M_e_e_f_aq_T_q __pyx_string_tab[3047] +#define __pyx_kp_b_iso88591_Q_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3048] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B __pyx_string_tab[3049] +#define __pyx_kp_b_iso88591_PPQ_aq_T_q_wc_A_axz_Q_U_7_A_A_w __pyx_string_tab[3050] +#define __pyx_kp_b_iso88591_UUV2_aq_T_q_wc_D_9_TARRSSVVW_ax __pyx_string_tab[3051] +#define __pyx_kp_b_iso88591_VVppq_aq_T_q_wc_A_axz_Q_U_7_A_A __pyx_string_tab[3052] +#define __pyx_kp_b_iso88591_WWX_aq_T_q_wc_A_axz_Q_U_7_A_A_w_2 __pyx_string_tab[3053] +#define __pyx_kp_b_iso88591_a_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A __pyx_string_tab[3054] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5R __pyx_string_tab[3055] +#define __pyx_kp_b_iso88591_a_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3056] +#define __pyx_kp_b_iso88591_VVW_V6_wc_A_axz_q_U_7_A_A_we_32 __pyx_string_tab[3057] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_6b __pyx_string_tab[3058] +#define __pyx_kp_b_iso88591_V6_wc_A_axz_q_U_7_A_A_we_4Ba_1H __pyx_string_tab[3059] +#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w_3 __pyx_string_tab[3060] +#define __pyx_kp_b_iso88591_q_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3061] +#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_wc_D_9_TARRSSVVW __pyx_string_tab[3062] +#define __pyx_kp_b_iso88591_WWo_p_H_H_____v_v_M_M_d_d_P_P_Q __pyx_string_tab[3063] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_7r __pyx_string_tab[3064] +#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_TARRSSVVW_axz_Q_U __pyx_string_tab[3065] +#define __pyx_kp_b_iso88591_WWX_aq_T_q_wc_A_axz_Q_U_7_A_A_w __pyx_string_tab[3066] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_7r_2 __pyx_string_tab[3067] +#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_wc_D_9_TARR __pyx_string_tab[3068] +#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_8 __pyx_string_tab[3069] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_8 __pyx_string_tab[3070] +#define __pyx_kp_b_iso88591_AAXXoop_aq_T_q_wc_A_axz_Q_U_7_A __pyx_string_tab[3071] +#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_wc_D_9_Q_axz_Q_U __pyx_string_tab[3072] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_9 __pyx_string_tab[3073] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A_3 __pyx_string_tab[3074] +#define __pyx_kp_b_iso88591_C1_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3075] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2Q __pyx_string_tab[3076] +#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_1Cq_axz_Q_U_7_A_A __pyx_string_tab[3077] +#define __pyx_kp_b_iso88591_01_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3078] +#define __pyx_kp_b_iso88591_45_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3079] +#define __pyx_kp_b_iso88591_UUV_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[3080] +#define __pyx_kp_b_iso88591_UUmmn_aq_Qa_6_wc_A_axz_XZs_U_7 __pyx_string_tab[3081] +#define __pyx_kp_b_iso88591_aq_Qa_6_wc_A_axz_XZs_U_7_A_A_we __pyx_string_tab[3082] +#define __pyx_kp_b_iso88591_VVW_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[3083] +#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[3084] +#define __pyx_kp_b_iso88591_WWX_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[3085] +#define __pyx_kp_b_iso88591_A_aq_Qa_6_wc_A_axz_XZs_U_7_A_A __pyx_string_tab[3086] +#define __pyx_kp_b_iso88591_A_aq_Kq_6_wc_A_axz_XZuA_U_7_A_A __pyx_string_tab[3087] +#define __pyx_kp_b_iso88591_A_aq_Qa_6_wc_D_9_Q_axz_XZs_U_7 __pyx_string_tab[3088] +#define __pyx_kp_b_iso88591_XXY_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[3089] +#define __pyx_kp_b_iso88591_AB_aq_Qa_6_wc_D_9_Q_axz_XZs_U_7 __pyx_string_tab[3090] +#define __pyx_kp_b_iso88591_AZZ_0_aq_Qa_6_wc_D_as_nASPQ_axz __pyx_string_tab[3091] +#define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[3092] +#define __pyx_kp_b_iso88591_BC_aq_Qa_6_wc_A_axz_XZs_U_7_A_A __pyx_string_tab[3093] +#define __pyx_kp_b_iso88591_BC_Kq_7_wc_A_axz_hj_a_U_7_A_A_w __pyx_string_tab[3094] +#define __pyx_kp_b_iso88591_BC_aq_6_wc_A_axz_XZvQ_U_7_A_A_w __pyx_string_tab[3095] +#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A __pyx_string_tab[3096] +#define __pyx_kp_b_iso88591_BXXY_aq_Qa_6_wc_Qc_1Cq_axz_XZs __pyx_string_tab[3097] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_axz_XZs_U_7_A_A __pyx_string_tab[3098] +#define __pyx_kp_b_iso88591_CD_aq_Kq_6_wc_A_axz_XZuA_U_7_A __pyx_string_tab[3099] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_wc_D_9_TARRSSVVW_axz __pyx_string_tab[3100] +#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_wc_A_axz_XZwa_U_7 __pyx_string_tab[3101] +#define __pyx_kp_b_iso88591_C_vvw6_aq_Qa_6_wc_D_9_TARRSSVVZ __pyx_string_tab[3102] +#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A __pyx_string_tab[3103] +#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_wc_A_axz_XZs_R __pyx_string_tab[3104] +#define __pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_wc_D __pyx_string_tab[3105] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a __pyx_string_tab[3106] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_D_9_Q_axz_XZs __pyx_string_tab[3107] +#define __pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_w __pyx_string_tab[3108] +#define __pyx_kp_b_iso88591_Zttu_aq_Qa_Kq_6_a_wc_A_axz_XZs __pyx_string_tab[3109] +#define __pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_wc __pyx_string_tab[3110] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab __pyx_string_tab[3111] +#define __pyx_kp_b_iso88591_sst_aq_Qa_6_a_wc_A_axz_XZs_R_bb __pyx_string_tab[3112] +#define __pyx_kp_b_iso88591_s_t_L_L_M_aq_Qa_Kq_6_a_wc_D_9_Q __pyx_string_tab[3113] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_6 __pyx_string_tab[3114] +#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_wc __pyx_string_tab[3115] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_2 __pyx_string_tab[3116] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_Q_axz_XZs_R __pyx_string_tab[3117] +#define __pyx_kp_b_iso88591_s_t_I_I_____y_y_U_U_V_4_aq_Qa_K __pyx_string_tab[3118] +#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_wc_A_axz __pyx_string_tab[3119] +#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_wc_D_9_Q __pyx_string_tab[3120] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a_2 __pyx_string_tab[3121] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a __pyx_string_tab[3122] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_TARRSSVVW __pyx_string_tab[3123] +#define __pyx_kp_b_iso88591_W_W_X_aq_Qa_Kq_6_a_wc_D_9_Q_axz __pyx_string_tab[3124] +#define __pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_wc_D_as_axz_X __pyx_string_tab[3125] +#define __pyx_kp_b_iso88591_tu_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZ __pyx_string_tab[3126] +#define __pyx_kp_b_iso88591_uv_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZ __pyx_string_tab[3127] +#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R __pyx_string_tab[3128] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_13 __pyx_string_tab[3129] +#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[3130] +#define __pyx_kp_b_iso88591_A_Y_Y_Z_aq_aq_Qa_Kq_6_uA_wc_A_a __pyx_string_tab[3131] +#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[3132] +#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[3133] +#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[3134] +#define __pyx_kp_b_iso88591_x_P_P_h_h_i_aq_Qa_Kq_6_gQ_wc_D __pyx_string_tab[3135] +#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_wc_A_axz __pyx_string_tab[3136] +#define __pyx_kp_b_iso88591_aq_xs_q_a_Qa_1 __pyx_string_tab[3137] +#define __pyx_kp_b_iso88591_aq_xs_q_q_q_A_Q_a __pyx_string_tab[3138] +#define __pyx_kp_b_iso88591_q_l_vWE_Q_q_q_q_d_7_WA_d_7_Q __pyx_string_tab[3139] +#define __pyx_kp_b_iso88591_q_l_vWE_Q_q_q_q_t1G_gQ_t1G_a __pyx_string_tab[3140] +#define __pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1 __pyx_string_tab[3141] +#define __pyx_kp_b_iso88591_Qa_a_Q_a_4q_a_Qd_c_a_Qd_s_4q __pyx_string_tab[3142] +#define __pyx_kp_b_iso88591_Qa_a_2_85_Q_2_9AT_4q_1G6_wc_t81 __pyx_string_tab[3143] +#define __pyx_kp_b_iso88591_Qa_a_31HE_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[3144] +#define __pyx_kp_b_iso88591_Qa_a_5Qhe1A_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[3145] +#define __pyx_kp_b_iso88591_a_1G1A_q_V1E_q_WAQ_aq_Q_2_1 __pyx_string_tab[3146] +#define __pyx_kp_b_iso88591_a_AQa_0_Q_V1E_gQfAU_q_Q_31_1 __pyx_string_tab[3147] +#define __pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q __pyx_string_tab[3148] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R_aa __pyx_string_tab[3149] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R_aa_2 __pyx_string_tab[3150] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_3 __pyx_string_tab[3151] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_4 __pyx_string_tab[3152] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_5 __pyx_string_tab[3153] +#define __pyx_kp_b_iso88591_aq_Qa_6_a_wc_A_axz_XZs_R_bbc_U __pyx_string_tab[3154] +#define __pyx_kp_b_iso88591_aq_Qa_6_wc_A_axz_XZs_U_7_A_A_we_2 __pyx_string_tab[3155] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_11 __pyx_string_tab[3156] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8 __pyx_string_tab[3157] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_3 __pyx_string_tab[3158] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4 __pyx_string_tab[3159] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8 __pyx_string_tab[3160] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_12 __pyx_string_tab[3161] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2 __pyx_string_tab[3162] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7 __pyx_string_tab[3163] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_5 __pyx_string_tab[3164] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6 __pyx_string_tab[3165] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9 __pyx_string_tab[3166] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_10 __pyx_string_tab[3167] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZt8S_2 __pyx_string_tab[3168] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZt8S __pyx_string_tab[3169] +#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_A __pyx_string_tab[3170] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1H_2 __pyx_string_tab[3171] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_31 __pyx_string_tab[3172] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A __pyx_string_tab[3173] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5Q __pyx_string_tab[3174] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_6a __pyx_string_tab[3175] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1H __pyx_string_tab[3176] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1 __pyx_string_tab[3177] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A_2 __pyx_string_tab[3178] +#define __pyx_kp_b_iso88591_Kq_7_wc_A_axz_hj_a_U_7_A_A_we_3 __pyx_string_tab[3179] +#define __pyx_kp_b_iso88591_aq_6_wc_A_axz_XZvQ_U_7_A_A_we_3 __pyx_string_tab[3180] +#define __pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w __pyx_string_tab[3181] +#define __pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w_2 __pyx_string_tab[3182] +#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w_2 __pyx_string_tab[3183] +#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w __pyx_string_tab[3184] +#define __pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_wc_D_9_TARRS __pyx_string_tab[3185] +#define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81 __pyx_string_tab[3186] +#define __pyx_kp_b_iso88591_A_iq_46d_5 __pyx_string_tab[3187] +#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[3188] +#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[3189] +#define __pyx_kp_b_iso88591_A_t5 __pyx_string_tab[3190] +#define __pyx_kp_b_iso88591_A_t81A __pyx_string_tab[3191] +#define __pyx_kp_b_iso88591_A_uAS __pyx_string_tab[3192] +#define __pyx_kp_b_iso88591_A_uBd __pyx_string_tab[3193] +#define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[3194] +#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[3195] +#define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[3196] +#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_gU_axq_wgQa_uA_a __pyx_string_tab[3197] +#define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A __pyx_string_tab[3198] +#define __pyx_kp_b_iso88591_A __pyx_string_tab[3199] +#define __pyx_kp_b_iso88591_A_2 __pyx_string_tab[3200] +#define __pyx_kp_b_iso88591_A_3 __pyx_string_tab[3201] +#define __pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_81A_7_1 __pyx_string_tab[3202] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_7_aq_q_1AXY __pyx_string_tab[3203] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q __pyx_string_tab[3204] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2 __pyx_string_tab[3205] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq_2 __pyx_string_tab[3206] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_1_q_q_bPX __pyx_string_tab[3207] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1A_q_0 __pyx_string_tab[3208] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1 __pyx_string_tab[3209] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1_2 __pyx_string_tab[3210] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_1_7xq_7_Qa_q __pyx_string_tab[3211] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_9_7_aq_q_31 __pyx_string_tab[3212] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_q_4_2 __pyx_string_tab[3213] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_2_C81A_7_C1A __pyx_string_tab[3214] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_6Q_11K8STTU_7 __pyx_string_tab[3215] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_1_axq_axq __pyx_string_tab[3216] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_axq __pyx_string_tab[3217] +#define __pyx_kp_b_iso88591_A_a_aq_Q_aq_axq_oQha_A_7_a_1_q_1 __pyx_string_tab[3218] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_A __pyx_string_tab[3219] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_q_q_q_bPX __pyx_string_tab[3220] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1L_q_0 __pyx_string_tab[3221] +#define __pyx_kp_b_iso88591_A_SST_aq_Q_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[3222] +#define __pyx_kp_b_iso88591_A_A_aq_Q_aq_axq_oQha_q_xq_7_9_a __pyx_string_tab[3223] +#define __pyx_kp_b_iso88591_A_B_aq_Q_aq_axq_oQha_A_7_a_1_q_1 __pyx_string_tab[3224] +#define __pyx_kp_b_iso88591_A_BBTTkk_Y_Y_Z_aq_Q_aq_axq_oQha __pyx_string_tab[3225] +#define __pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_Q_81A_7 __pyx_string_tab[3226] +#define __pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_Q_81A __pyx_string_tab[3227] +#define __pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_oXQa __pyx_string_tab[3228] +#define __pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_M_7_y __pyx_string_tab[3229] +#define __pyx_kp_b_iso88591_A_BBYYp_q_G_G_s_s_I_I_b_b_x_x_L __pyx_string_tab[3230] +#define __pyx_kp_b_iso88591_A_BBYYp_q_H_H_____v_v_M_M_f_f_g __pyx_string_tab[3231] +#define __pyx_kp_b_iso88591_A_BBZZ_aq_Q_aq_axq_oQha_Q_81A_7 __pyx_string_tab[3232] +#define __pyx_kp_b_iso88591_A_BB_aq_Q_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[3233] +#define __pyx_kp_b_iso88591_A_CC_uuv_aq_Q_aq_axq_oQha_a_XQa __pyx_string_tab[3234] +#define __pyx_kp_b_iso88591_A_DA_aq_Q_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[3235] +#define __pyx_kp_b_iso88591_A_DD_aq_Q_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[3236] +#define __pyx_kp_b_iso88591_A_DD_vvw_aq_Q_aq_axq_oQha_oXQa_7 __pyx_string_tab[3237] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_A_9_7_a_1 __pyx_string_tab[3238] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[3239] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1A_q_Qh __pyx_string_tab[3240] +#define __pyx_kp_b_iso88591_A_Q_aq_axq_oQha_a_XQa_7_8_q_Qaxy __pyx_string_tab[3241] +#define __pyx_kp_b_iso88591_A_DDWWX_Q_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[3242] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[3243] +#define __pyx_kp_b_iso88591_A_DA_aq_Qa_XQ_aq_axq_oQha_81A_7 __pyx_string_tab[3244] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_Q_81A_7 __pyx_string_tab[3245] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_q_xq_7_2 __pyx_string_tab[3246] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_81A_7_1 __pyx_string_tab[3247] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7 __pyx_string_tab[3248] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_q_xq_7 __pyx_string_tab[3249] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_M_7_1_8 __pyx_string_tab[3250] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7_2 __pyx_string_tab[3251] +#define __pyx_kp_b_iso88591_A0Fa_aq_Qa_XQ_aq_axq_oQha_Q_81A __pyx_string_tab[3252] +#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_A_7_a __pyx_string_tab[3253] +#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_q_xq_7 __pyx_string_tab[3254] +#define __pyx_kp_b_iso88591_A0GG_a_aq_Qa_XQ_aq_axq_oQha_A_7 __pyx_string_tab[3255] +#define __pyx_kp_b_iso88591_A0I_aq_Qa_XQ_aq_axq_oQha_a_XQa_7 __pyx_string_tab[3256] +#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_Q_81A_7 __pyx_string_tab[3257] +#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_M_7_1_q __pyx_string_tab[3258] +#define __pyx_kp_b_iso88591_A2JJdde_aq_Qa_XQ_aq_axq_oQha_oXQ __pyx_string_tab[3259] +#define __pyx_kp_b_iso88591_A34_aq_XQ_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[3260] +#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[3261] +#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_M_7_1_q_q __pyx_string_tab[3262] +#define __pyx_kp_b_iso88591_A3II_aq_M_XQ_aq_axq_oQha_a_XQa_7 __pyx_string_tab[3263] +#define __pyx_kp_b_iso88591_A3QQt_u_T_T_v_v_Z_Z_z_z_aq_Qa_XQ __pyx_string_tab[3264] +#define __pyx_kp_b_iso88591_A45_q_Ya_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[3265] +#define __pyx_kp_b_iso88591_A4LA_aq_Qa_XQ_aq_axq_oQha_M_7_Qh __pyx_string_tab[3266] +#define __pyx_kp_b_iso88591_A5J_aq_Qa_XQ_aq_axq_oQha_Q_81A_7 __pyx_string_tab[3267] +#define __pyx_kp_b_iso88591_A5JJ_x_y_T_T_o_o_p_aq_Qa_q_XWA_a __pyx_string_tab[3268] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_A_7 __pyx_string_tab[3269] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81 __pyx_string_tab[3270] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_a_XQ __pyx_string_tab[3271] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_q_xq __pyx_string_tab[3272] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_M_7 __pyx_string_tab[3273] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_81A __pyx_string_tab[3274] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_oXQa_2 __pyx_string_tab[3275] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81_2 __pyx_string_tab[3276] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_M_7_2 __pyx_string_tab[3277] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_oXQa __pyx_string_tab[3278] +#define __pyx_kp_b_iso88591_A7MMbbc_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[3279] +#define __pyx_kp_b_iso88591_A7NNee_aq_Qa_q_XWA_aq_axq_oQha_Q __pyx_string_tab[3280] +#define __pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_A __pyx_string_tab[3281] +#define __pyx_kp_b_iso88591_A7QQeef_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[3282] +#define __pyx_kp_b_iso88591_A8PPhhi_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[3283] +#define __pyx_kp_b_iso88591_A8UUV_aq_Qa_XWA_aq_axq_oQha_Q_81 __pyx_string_tab[3284] +#define __pyx_kp_b_iso88591_A9Oq_aq_Qa_q_XWA_aq_axq_oQha_Q_8 __pyx_string_tab[3285] +#define __pyx_kp_b_iso88591_A9RRkkl_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[3286] +#define __pyx_kp_b_iso88591_A9RRkk_Y_Y_Z_aq_Qa_q_XWA_aq_axq __pyx_string_tab[3287] +#define __pyx_kp_b_iso88591_A9RRk_l_A_A_Z_Z_aq_Qa_q_XWA_aq_a __pyx_string_tab[3288] +#define __pyx_kp_b_iso88591_A_TTmmn_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[3289] +#define __pyx_kp_b_iso88591_A_ZZ_aq_aq_Qa_q_XXWA_aq_axq_oQha __pyx_string_tab[3290] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_Q_81A __pyx_string_tab[3291] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A_3 __pyx_string_tab[3292] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q __pyx_string_tab[3293] +#define __pyx_kp_b_iso88591_A_VVW_aq_Qa_q_XWIQ_aq_axq_oQha_q __pyx_string_tab[3294] +#define __pyx_kp_b_iso88591_A_VVoop_aq_Qa_q_XWIQ_aq_axq_oQha __pyx_string_tab[3295] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_5 __pyx_string_tab[3296] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4 __pyx_string_tab[3297] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha __pyx_string_tab[3298] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_2 __pyx_string_tab[3299] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3 __pyx_string_tab[3300] +#define __pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1 __pyx_string_tab[3301] +#define __pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T __pyx_string_tab[3302] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_7_a_q_1AXYf __pyx_string_tab[3303] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q_2 __pyx_string_tab[3304] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q __pyx_string_tab[3305] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq __pyx_string_tab[3306] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_q_q_bPXXd __pyx_string_tab[3307] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_9_7_a_q_31A __pyx_string_tab[3308] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_q_4 __pyx_string_tab[3309] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_q_5Qa __pyx_string_tab[3310] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_q_5Qa_2 __pyx_string_tab[3311] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1_q_1HA __pyx_string_tab[3312] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_1_7xq_7_Q_81 __pyx_string_tab[3313] +#define __pyx_kp_b_iso88591_A_aq_Qa_XQ_aq_axq_oQha_oXQa_7_A __pyx_string_tab[3314] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_Q_81A __pyx_string_tab[3315] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_M_7_q __pyx_string_tab[3316] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_oXQa_7 __pyx_string_tab[3317] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_A_7_a __pyx_string_tab[3318] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_a_XQa __pyx_string_tab[3319] +#define __pyx_kp_b_iso88591_A_aq_Qa_XWA_aq_axq_oQha_oXQa_7_A __pyx_string_tab[3320] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_2 __pyx_string_tab[3321] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_81 __pyx_string_tab[3322] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_oX __pyx_string_tab[3323] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1 __pyx_string_tab[3324] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A __pyx_string_tab[3325] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_3 __pyx_string_tab[3326] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a __pyx_string_tab[3327] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_0q __pyx_string_tab[3328] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2 __pyx_string_tab[3329] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2 __pyx_string_tab[3330] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_3 __pyx_string_tab[3331] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41 __pyx_string_tab[3332] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A __pyx_string_tab[3333] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_6Q __pyx_string_tab[3334] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A_2 __pyx_string_tab[3335] +#define __pyx_kp_b_iso88591_A_aq_XQ_aq_axq_oQha_Q_81A_7_7q_q __pyx_string_tab[3336] +#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[3337] +#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_a_XQa_7_8_q __pyx_string_tab[3338] +#define __pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_Q_81A_7_7q_q __pyx_string_tab[3339] +#define __pyx_kp_b_iso88591_A_a_4q_aq __pyx_string_tab[3340] +#define __pyx_kp_b_iso88591_A_A_WA_5_q_5_V1_5_U __pyx_string_tab[3341] +#define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[3342] +#define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[3343] +#define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[3344] +#define __pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S __pyx_string_tab[3345] +#define __pyx_kp_b_iso88591_A_d_q_4z_q_aq_q __pyx_string_tab[3346] +#define __pyx_kp_b_iso88591_A_t85 __pyx_string_tab[3347] +#define __pyx_kp_b_iso88591_A_t85_Q_2 __pyx_string_tab[3348] +#define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[3349] +#define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[3350] +#define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[3351] +#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_WE_5_q_E_a_s __pyx_string_tab[3352] +#define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[3353] +#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_WA_d_Q_d_1_q_s_A __pyx_string_tab[3354] +#define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[3355] +#define __pyx_kp_b_iso88591_t1_1_l_1_1_l_QoQ_a __pyx_string_tab[3356] +#define __pyx_kp_b_iso88591_Q_A_1_G7_gYj_a_d_2_7_G9A_AV1Kq __pyx_string_tab[3357] +#define __pyx_float_0_1 __pyx_number_tab[0] +#define __pyx_float_0_2 __pyx_number_tab[1] +#define __pyx_float_0_3 __pyx_number_tab[2] +#define __pyx_float_0_5 __pyx_number_tab[3] +#define __pyx_float_1_0 __pyx_number_tab[4] +#define __pyx_float_3_0 __pyx_number_tab[5] +#define __pyx_float_5_0 __pyx_number_tab[6] +#define __pyx_float_6_0 __pyx_number_tab[7] +#define __pyx_float_0_02 __pyx_number_tab[8] +#define __pyx_float_0_85 __pyx_number_tab[9] +#define __pyx_float_neg_4e37 __pyx_number_tab[10] +#define __pyx_float_50_0 __pyx_number_tab[11] +#define __pyx_float_252_0 __pyx_number_tab[12] +#define __pyx_int_0 __pyx_number_tab[13] +#define __pyx_int_neg_1 __pyx_number_tab[14] +#define __pyx_int_1 __pyx_number_tab[15] +#define __pyx_int_2 __pyx_number_tab[16] +#define __pyx_int_3 __pyx_number_tab[17] +#define __pyx_int_4 __pyx_number_tab[18] +#define __pyx_int_8 __pyx_number_tab[19] +#define __pyx_int_12 __pyx_number_tab[20] +#define __pyx_int_13 __pyx_number_tab[21] +#define __pyx_int_16 __pyx_number_tab[22] +#define __pyx_int_32 __pyx_number_tab[23] +#define __pyx_int_64 __pyx_number_tab[24] +#define __pyx_int_128 __pyx_number_tab[25] +#define __pyx_int_256 __pyx_number_tab[26] +#define __pyx_int_512 __pyx_number_tab[27] +#define __pyx_int_1024 __pyx_number_tab[28] +#define __pyx_int_2048 __pyx_number_tab[29] +#define __pyx_int_4096 __pyx_number_tab[30] +#define __pyx_int_8192 __pyx_number_tab[31] +#define __pyx_int_16384 __pyx_number_tab[32] +#define __pyx_int_32768 __pyx_number_tab[33] +#define __pyx_int_16777216 __pyx_number_tab[34] +#define __pyx_int_33554432 __pyx_number_tab[35] +#define __pyx_int_67108864 __pyx_number_tab[36] +#define __pyx_int_134217728 __pyx_number_tab[37] +#define __pyx_int_238750788 __pyx_number_tab[38] +#define __pyx_int_268435456 __pyx_number_tab[39] +#define __pyx_int_536870912 __pyx_number_tab[40] +#define __pyx_int_1073741824 __pyx_number_tab[41] +#define __pyx_int_neg_2147483648 __pyx_number_tab[42] /* #### Code section: module_state_clear ### */ #if CYTHON_USE_MODULE_STATE static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { @@ -17547,6 +19973,8 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ADX_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ADXR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ALMA_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_AO_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_AO_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_APO_Stream); @@ -17555,6 +19983,8 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_AROON_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_AROONOSC_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ASI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ASI_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ASIN_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream); @@ -17567,6 +19997,8 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_AVGPRICE_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_BBANDS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_BBW_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_BBW_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_BETA_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_BETA_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_BOP_Stream); @@ -17697,6 +20129,14 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CEIL_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CG_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CG_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CHOP_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CHOPTR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CKSP_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CMF_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CMF_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CMO_Stream); @@ -17711,6 +20151,10 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_COS_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_COSH_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_COSH_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CRSI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CTI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CTI_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CUMSUM_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CVI_Stream); @@ -17721,6 +20165,8 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_DIV_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_DONCHIAN_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_DOSC_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_DPO_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_DPO_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_DX_Stream); @@ -17729,18 +20175,24 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_EFI_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_EMA_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_EMA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_EMV_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_EMV_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ER_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ER_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ERI_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ERI_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_EXP_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_EXP_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_FISHER_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_FLOOR_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_FOSC_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_FRACTAL_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_FRAMA_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_HA_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_HA_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_HMA_Stream); @@ -17757,6 +20209,10 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_IBS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_IBS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ICHIMOKU_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_IMI_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_IMI_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream); @@ -17765,6 +20221,14 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_KC_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_KDJ_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_KST_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_KST_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_KSTEXT_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_KURTOSIS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_KVO_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_KVO_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_LINEARREG_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream); @@ -17797,6 +20261,10 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MAX_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MAXINDEX_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MCGD_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MEDIAN_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MEDPRICE_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MFI_Stream); @@ -17827,6 +20295,8 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_NVI_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_OBV_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_OBV_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PERCENTB_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PERCENTILE_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream); @@ -17837,6 +20307,8 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PLUS_DM_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PPO_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PPO_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PSO_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PSO_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PVI_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PVI_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PVO_Stream); @@ -17855,16 +20327,22 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ROCR_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ROCR100_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ROGERSSATCHELL_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_RSI_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_RSI_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_RVI_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_RVI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_RVIR_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_RVOL_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SAR_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SAR_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SAREXT_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SI_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SIN_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SIN_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SINH_Stream); @@ -17875,6 +20353,10 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SMI_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SQRT_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SQZMOM_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_STC_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_STC_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_STDDEV_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream); @@ -17889,6 +20371,16 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SUM_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SUPERTREND_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SWAK_2PHP_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SWAK_BP_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SWAK_BUTTER_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SWAK_GAUSS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SWAK_HP_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_T3_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_T3_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_TAN_Stream); @@ -17915,6 +20407,8 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_VAR_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_VHF_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_VHF_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_VIDYA_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_VORTEX_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream); @@ -17923,21 +20417,25 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_VWMA_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_WAD_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_WAD_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_WAVETREND_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_WCLPRICE_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_WILLR_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_WMA_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_WMA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ZIGZAG_Stream); Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream); Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ZLEMA_Stream); Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_items.method); Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_pop.method); Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_values.method); - for (int i=0; i<37; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); } - for (int i=0; i<463; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<2882; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } - for (int i=0; i<38; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } + for (int i=0; i<46; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); } + for (int i=0; i<536; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } + for (int i=0; i<3358; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } + for (int i=0; i<43; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_clear_contents ### */ /* CommonTypesMetaclass.module_state_clear */ Py_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType); @@ -18000,6 +20498,8 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ADX_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ADXR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ALMA_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_AO_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_AO_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_APO_Stream); @@ -18008,6 +20508,8 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_AROON_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_AROONOSC_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ASI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ASI_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ASIN_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream); @@ -18020,6 +20522,8 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_AVGPRICE_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_BBANDS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_BBW_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_BBW_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_BETA_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_BETA_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_BOP_Stream); @@ -18150,6 +20654,14 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CEIL_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CG_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CG_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CHOP_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CHOPTR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CKSP_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CMF_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CMF_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CMO_Stream); @@ -18164,6 +20676,10 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_COS_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_COSH_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_COSH_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CRSI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CTI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CTI_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CUMSUM_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CVI_Stream); @@ -18174,6 +20690,8 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_DIV_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_DONCHIAN_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_DOSC_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_DPO_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_DPO_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_DX_Stream); @@ -18182,18 +20700,24 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_EFI_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_EMA_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_EMA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_EMV_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_EMV_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ER_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ER_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ERI_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ERI_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_EXP_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_EXP_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_FISHER_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_FLOOR_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_FOSC_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_FRACTAL_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_FRAMA_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_HA_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_HA_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_HMA_Stream); @@ -18210,6 +20734,10 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_IBS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_IBS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ICHIMOKU_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_IMI_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_IMI_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream); @@ -18218,6 +20746,14 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_KC_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_KDJ_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_KST_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_KST_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_KSTEXT_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_KURTOSIS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_KVO_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_KVO_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_LINEARREG_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream); @@ -18250,6 +20786,10 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MAX_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MAXINDEX_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MCGD_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MEDIAN_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MEDPRICE_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MFI_Stream); @@ -18280,6 +20820,8 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_NVI_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_OBV_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_OBV_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PERCENTB_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PERCENTILE_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream); @@ -18290,6 +20832,8 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PLUS_DM_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PPO_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PPO_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PSO_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PSO_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PVI_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PVI_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PVO_Stream); @@ -18308,16 +20852,22 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ROCR_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ROCR100_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ROGERSSATCHELL_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_RSI_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_RSI_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_RVI_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_RVI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_RVIR_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_RVOL_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SAR_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SAR_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SAREXT_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SI_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SIN_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SIN_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SINH_Stream); @@ -18328,6 +20878,10 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SMI_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SQRT_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SQZMOM_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_STC_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_STC_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_STDDEV_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream); @@ -18342,6 +20896,16 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SUM_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SUPERTREND_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SWAK_2PHP_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SWAK_BP_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SWAK_BUTTER_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SWAK_GAUSS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SWAK_HP_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_T3_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_T3_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_TAN_Stream); @@ -18368,6 +20932,8 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_VAR_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_VHF_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_VHF_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_VIDYA_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_VORTEX_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream); @@ -18376,21 +20942,25 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_VWMA_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_WAD_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_WAD_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_WAVETREND_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_WCLPRICE_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_WILLR_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_WMA_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_WMA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ZIGZAG_Stream); Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream); Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ZLEMA_Stream); Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_items.method); Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_pop.method); Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_values.method); - for (int i=0; i<37; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); } - for (int i=0; i<463; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<2882; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } - for (int i=0; i<38; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } + for (int i=0; i<46; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); } + for (int i=0; i<536; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } + for (int i=0; i<3358; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } + for (int i=0; i<43; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_traverse_contents ### */ /* CommonTypesMetaclass.module_state_traverse */ Py_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType); @@ -21921,7 +24491,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = __Pyx_PyDict_NewPresized(14); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 173, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(16); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); @@ -22035,6 +24605,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Wilder_s_Smoothed_Moving_Average) < (0)) __PYX_ERR(1, 173, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_VIDYA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Variable_Index_Dynamic_Average) < (0)) __PYX_ERR(1, 173, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ALMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Arnaud_Legoux_Moving_Average) < (0)) __PYX_ERR(1, 173, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lookup, __pyx_t_1) < (0)) __PYX_ERR(1, 172, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -22096,39 +24682,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_type,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 189, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 191, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 189, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 191, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 189, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 191, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__getitem__", 0) < (0)) __PYX_ERR(1, 189, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__getitem__", 0) < (0)) __PYX_ERR(1, 191, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, i); __PYX_ERR(1, 189, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, i); __PYX_ERR(1, 191, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 189, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 191, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 189, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 191, __pyx_L3_error) } __pyx_v_self = values[0]; __pyx_v_type_ = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 189, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 191, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -22159,9 +24745,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getitem__", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lookup); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 190, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lookup); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_type_); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 190, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_type_); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; { @@ -22229,32 +24815,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 238, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 253, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 238, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 253, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_func_unst_id", 0) < (0)) __PYX_ERR(1, 238, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_func_unst_id", 0) < (0)) __PYX_ERR(1, 253, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_func_unst_id", 1, 1, 1, i); __PYX_ERR(1, 238, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_func_unst_id", 1, 1, 1, i); __PYX_ERR(1, 253, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 238, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 253, __pyx_L3_error) } __pyx_v_name = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_func_unst_id", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 238, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_func_unst_id", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 253, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -22294,28 +24880,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(CYTHON_UNUSED PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_func_unst_id", 0); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 239, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 239, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 254, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 240, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 240, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 242, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 242, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 242, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_7), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 242, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_7), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u_unstable_period; @@ -22332,7 +24918,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(CYTHON_UNUSED PyObje __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_8[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_8[3]); #endif __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_8, 4, __pyx_t_9, __pyx_t_10); - if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 241, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -22353,13 +24939,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(CYTHON_UNUSED PyObje PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_7, ((PyObject *)(((PyTypeObject*)PyExc_DeprecationWarning))), __pyx_mstate_global->__pyx_int_3}; #if CYTHON_VECTORCALL __pyx_t_6 = __pyx_mstate_global->__pyx_tuple[1]; - if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 240, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 255, __pyx_L1_error) __Pyx_INCREF(__pyx_t_6); #else { PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_stacklevel}; __pyx_t_6 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+3, 1); - if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 240, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } #endif @@ -22368,7 +24954,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(CYTHON_UNUSED PyObje __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 240, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -22385,9 +24971,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(CYTHON_UNUSED PyObje } - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 245, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 245, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; { @@ -22460,39 +25046,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_period,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 247, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 262, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 262, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 262, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_unstable_period", 0) < (0)) __PYX_ERR(1, 247, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_unstable_period", 0) < (0)) __PYX_ERR(1, 262, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, i); __PYX_ERR(1, 247, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, i); __PYX_ERR(1, 262, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 262, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 262, __pyx_L3_error) } __pyx_v_name = values[0]; __pyx_v_period = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 247, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 262, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -22538,7 +25124,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED __Pyx_RefNannySetupContext("_ta_set_unstable_period", 0); __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 251, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS @@ -22557,7 +25143,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 251, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_unst_id = __pyx_t_1; @@ -22579,10 +25165,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED } - __pyx_t_6 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_v_unst_id); if (unlikely((__pyx_t_6 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 254, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_v_unst_id); if (unlikely((__pyx_t_6 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 269, __pyx_L1_error) __pyx_v_id = __pyx_t_6; - __pyx_t_7 = __Pyx_PyLong_As_unsigned_int(__pyx_v_period); if (unlikely((__pyx_t_7 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(1, 255, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_As_unsigned_int(__pyx_v_period); if (unlikely((__pyx_t_7 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(1, 270, __pyx_L1_error) __pyx_v_c_period = __pyx_t_7; /*with:*/ { @@ -22592,13 +25178,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_WriteLease, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 256, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 271, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } - __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 256, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = NULL; - __pyx_t_9 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 256, __pyx_L4_error) + __pyx_t_9 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 271, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS @@ -22617,7 +25203,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 256, __pyx_L4_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 271, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -22654,7 +25240,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED if (__pyx_t_8) { __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_mstate_global->__pyx_tuple[0], NULL); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 256, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } @@ -22669,7 +25255,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED __pyx_L17:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetUnstablePeriod, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 259, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetUnstablePeriod, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -22735,32 +25321,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 261, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 276, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_get_unstable_period", 0) < (0)) __PYX_ERR(1, 261, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_get_unstable_period", 0) < (0)) __PYX_ERR(1, 276, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_get_unstable_period", 1, 1, 1, i); __PYX_ERR(1, 261, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_get_unstable_period", 1, 1, 1, i); __PYX_ERR(1, 276, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 276, __pyx_L3_error) } __pyx_v_name = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_get_unstable_period", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 261, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_get_unstable_period", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 276, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -22804,7 +25390,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(CYTHON_UNUSE __Pyx_RefNannySetupContext("_ta_get_unstable_period", 0); __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 264, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS @@ -22823,7 +25409,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(CYTHON_UNUSE __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 264, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_unst_id = __pyx_t_1; @@ -22846,7 +25432,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(CYTHON_UNUSE } - __pyx_t_6 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_v_unst_id); if (unlikely((__pyx_t_6 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 267, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_v_unst_id); if (unlikely((__pyx_t_6 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 282, __pyx_L1_error) __pyx_v_id = __pyx_t_6; /*with:*/ { @@ -22856,13 +25442,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(CYTHON_UNUSE PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 268, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 283, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } - __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 268, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = NULL; - __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 268, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 283, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS @@ -22881,7 +25467,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(CYTHON_UNUSE __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 268, __pyx_L4_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 283, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -22918,7 +25504,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(CYTHON_UNUSE if (__pyx_t_7) { __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_mstate_global->__pyx_tuple[0], NULL); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 268, __pyx_L1_error) + if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } @@ -22933,7 +25519,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(CYTHON_UNUSE __pyx_L17:; } - __pyx_t_1 = __Pyx_PyLong_From_unsigned_int(__pyx_v_period); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 271, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_unsigned_int(__pyx_v_period); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -23005,32 +25591,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_value,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 273, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 288, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 288, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_compatibility", 0) < (0)) __PYX_ERR(1, 273, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_compatibility", 0) < (0)) __PYX_ERR(1, 288, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_compatibility", 1, 1, 1, i); __PYX_ERR(1, 273, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_compatibility", 1, 1, 1, i); __PYX_ERR(1, 288, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 288, __pyx_L3_error) } __pyx_v_value = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_set_compatibility", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 273, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_set_compatibility", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 288, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -23071,7 +25657,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(CYTHON_UNUSED int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_set_compatibility", 0); - __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 275, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 290, __pyx_L1_error) __pyx_v_c_value = __pyx_t_1; /*with:*/ { @@ -23081,13 +25667,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(CYTHON_UNUSED PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_WriteLease, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 276, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 291, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_2); } - __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 276, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; - __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 276, __pyx_L3_error) + __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 291, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS @@ -23106,7 +25692,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(CYTHON_UNUSED __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 276, __pyx_L3_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 291, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -23143,7 +25729,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(CYTHON_UNUSED if (__pyx_t_5) { __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 276, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -23158,7 +25744,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(CYTHON_UNUSED __pyx_L16:; } - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetCompatibility, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 279, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetCompatibility, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -23183,23 +25769,275 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14_ta_get_compatibility, "_ta_get_compatibility()"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15_ta_get_compatibility = {"_ta_get_compatibility", (PyCFunction)__pyx_pw_5talib_7_ta_lib_15_ta_get_compatibility, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_14_ta_get_compatibility}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_get_runtime_info(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14_ta_get_runtime_info, "_ta_get_runtime_info(key)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15_ta_get_runtime_info = {"_ta_get_runtime_info", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15_ta_get_runtime_info, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14_ta_get_runtime_info}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_get_runtime_info(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_key = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_get_runtime_info (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_key,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 296, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_get_runtime_info", 0) < (0)) __PYX_ERR(1, 296, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_get_runtime_info", 1, 1, 1, i); __PYX_ERR(1, 296, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 296, __pyx_L3_error) + } + __pyx_v_key = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_get_runtime_info", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 296, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_get_runtime_info", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14_ta_get_runtime_info(__pyx_self, __pyx_v_key); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_runtime_info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_key) { + TA_RetCode __pyx_v_ret_code; + int __pyx_v_value; + PyObject *__pyx_v_c_key = 0; + char const *__pyx_v_k; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + char const *__pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_get_runtime_info", 0); + + __pyx_v_value = 0; + + __pyx_t_2 = __pyx_v_key; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ascii}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(1, 299, __pyx_L1_error) + __pyx_v_c_key = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + if (unlikely(__pyx_v_c_key == Py_None)) { + PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); + __PYX_ERR(1, 300, __pyx_L1_error) + } + __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_v_c_key); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(1, 300, __pyx_L1_error) + __pyx_v_k = __pyx_t_4; + + /*with:*/ { + __pyx_t_2 = NULL; + __pyx_t_3 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 301, __pyx_L1_error) + __Pyx_GOTREF((PyObject *)__pyx_t_1); + } + __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 301, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_3 = 1; + #if CYTHON_UNPACK_METHODS + if (likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); + __pyx_t_3 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 301, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0; + /*try:*/ { + { + (void)__pyx_t_8; (void)__pyx_t_9; (void)__pyx_t_10; /* mark used */ + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_ret_code = TA_GetRuntimeInfo(__pyx_v_k, (&__pyx_v_value)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + + } + } + } + /*finally:*/ { + /*normal exit:*/{ + if (__pyx_t_5) { + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + goto __pyx_L6; + } + __pyx_L6:; + } + goto __pyx_L16; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L1_error; + __pyx_L16:; + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetRuntimeInfo, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib._ta_get_runtime_info", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF(__pyx_v_c_key); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16_ta_get_compatibility, "_ta_get_compatibility()"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17_ta_get_compatibility = {"_ta_get_compatibility", (PyCFunction)__pyx_pw_5talib_7_ta_lib_17_ta_get_compatibility, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_16_ta_get_compatibility}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_ta_get_compatibility (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(__pyx_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16_ta_get_compatibility(__pyx_self); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self) { int __pyx_v_value; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -23224,13 +26062,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 283, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 309, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } - __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 283, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; - __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 283, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 309, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS @@ -23249,7 +26087,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 283, __pyx_L3_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 309, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -23286,7 +26124,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED if (__pyx_t_4) { __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 283, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } @@ -23301,7 +26139,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED __pyx_L16:; } - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 286, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -23332,16 +26170,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_set_candle_settings(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19_ta_set_candle_settings(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16_ta_set_candle_settings, "_ta_set_candle_settings(int settingtype, int rangetype, int avgperiod, double factor)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17_ta_set_candle_settings = {"_ta_set_candle_settings", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17_ta_set_candle_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16_ta_set_candle_settings}; -static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_set_candle_settings(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18_ta_set_candle_settings, "_ta_set_candle_settings(int settingtype, int rangetype, int avgperiod, double factor)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19_ta_set_candle_settings = {"_ta_set_candle_settings", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19_ta_set_candle_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18_ta_set_candle_settings}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19_ta_set_candle_settings(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -23374,53 +26212,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_settingtype,&__pyx_mstate_global->__pyx_n_u_rangetype,&__pyx_mstate_global->__pyx_n_u_avgperiod,&__pyx_mstate_global->__pyx_n_u_factor,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 300, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 326, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 300, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 300, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 300, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 300, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_candle_settings", 0) < (0)) __PYX_ERR(1, 300, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_candle_settings", 0) < (0)) __PYX_ERR(1, 326, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, i); __PYX_ERR(1, 300, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, i); __PYX_ERR(1, 326, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 300, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 326, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 300, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 326, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 300, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 326, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 300, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 326, __pyx_L3_error) } - __pyx_v_settingtype = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_settingtype == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 300, __pyx_L3_error) - __pyx_v_rangetype = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_rangetype == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 300, __pyx_L3_error) - __pyx_v_avgperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_avgperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 300, __pyx_L3_error) - __pyx_v_factor = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_factor == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 300, __pyx_L3_error) + __pyx_v_settingtype = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_settingtype == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 326, __pyx_L3_error) + __pyx_v_rangetype = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_rangetype == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 326, __pyx_L3_error) + __pyx_v_avgperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_avgperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 326, __pyx_L3_error) + __pyx_v_factor = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_factor == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 326, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, __pyx_nargs); __PYX_ERR(1, 300, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, __pyx_nargs); __PYX_ERR(1, 326, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -23431,7 +26269,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(__pyx_self, __pyx_v_settingtype, __pyx_v_rangetype, __pyx_v_avgperiod, __pyx_v_factor); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18_ta_set_candle_settings(__pyx_self, __pyx_v_settingtype, __pyx_v_rangetype, __pyx_v_avgperiod, __pyx_v_factor); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -23445,7 +26283,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_settingtype, int __pyx_v_rangetype, int __pyx_v_avgperiod, double __pyx_v_factor) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18_ta_set_candle_settings(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_settingtype, int __pyx_v_rangetype, int __pyx_v_avgperiod, double __pyx_v_factor) { TA_RetCode __pyx_v_ret_code; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -23470,13 +26308,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(CYTHON_UNUSE PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_WriteLease, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 302, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 328, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } - __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 302, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; - __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 302, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 328, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS @@ -23495,7 +26333,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(CYTHON_UNUSE __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 302, __pyx_L3_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 328, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -23532,7 +26370,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(CYTHON_UNUSE if (__pyx_t_4) { __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 302, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } @@ -23547,7 +26385,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(CYTHON_UNUSE __pyx_L16:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetCandleSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 305, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetCandleSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -23571,16 +26409,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(CYTHON_UNUSE /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19_ta_restore_candle_default_settings(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21_ta_restore_candle_default_settings(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18_ta_restore_candle_default_settings, "_ta_restore_candle_default_settings(int settingtype)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19_ta_restore_candle_default_settings = {"_ta_restore_candle_default_settings", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19_ta_restore_candle_default_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18_ta_restore_candle_default_settings}; -static PyObject *__pyx_pw_5talib_7_ta_lib_19_ta_restore_candle_default_settings(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20_ta_restore_candle_default_settings, "_ta_restore_candle_default_settings(int settingtype)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21_ta_restore_candle_default_settings = {"_ta_restore_candle_default_settings", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21_ta_restore_candle_default_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20_ta_restore_candle_default_settings}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21_ta_restore_candle_default_settings(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -23610,32 +26448,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_settingtype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 307, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 333, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 333, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_restore_candle_default_settings", 0) < (0)) __PYX_ERR(1, 307, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_restore_candle_default_settings", 0) < (0)) __PYX_ERR(1, 333, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_restore_candle_default_settings", 1, 1, 1, i); __PYX_ERR(1, 307, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_restore_candle_default_settings", 1, 1, 1, i); __PYX_ERR(1, 333, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 333, __pyx_L3_error) } - __pyx_v_settingtype = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_settingtype == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 307, __pyx_L3_error) + __pyx_v_settingtype = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_settingtype == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 333, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_restore_candle_default_settings", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 307, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_restore_candle_default_settings", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 333, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -23646,7 +26484,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings(__pyx_self, __pyx_v_settingtype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20_ta_restore_candle_default_settings(__pyx_self, __pyx_v_settingtype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -23657,7 +26495,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_settingtype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_20_ta_restore_candle_default_settings(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_settingtype) { TA_RetCode __pyx_v_ret_code; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -23682,13 +26520,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings( PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_WriteLease, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 309, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 335, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } - __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 309, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; - __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 309, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 335, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS @@ -23707,7 +26545,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings( __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 309, __pyx_L3_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 335, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -23744,7 +26582,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings( if (__pyx_t_4) { __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 309, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } @@ -23759,7 +26597,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings( __pyx_L16:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RestoreCandleDefaultSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 312, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RestoreCandleDefaultSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -24540,16 +27378,16 @@ static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp __pyx_v_le /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21AC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_23AC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20AC, "AC(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nAC(high, low[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nAccelerator/Decelerator Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\n signalperiod: 5\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21AC = {"AC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21AC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20AC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_21AC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22AC, "AC(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nAC(high, low[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nAccelerator/Decelerator Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\n signalperiod: 5\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23AC = {"AC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23AC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22AC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_23AC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -24670,7 +27508,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 146, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 146, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_20AC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22AC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ goto __pyx_L0; @@ -24692,7 +27530,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_20AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -24935,16 +27773,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20AC(CYTHON_UNUSED PyObject *__pyx_sel /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23ACCBANDS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25ACCBANDS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22ACCBANDS, "ACCBANDS(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nACCBANDS(high, low, close[, timeperiod=?])\n\nAcceleration Bands (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23ACCBANDS = {"ACCBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23ACCBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22ACCBANDS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_23ACCBANDS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24ACCBANDS, "ACCBANDS(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nACCBANDS(high, low, close[, timeperiod=?])\n\nAcceleration Bands (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25ACCBANDS = {"ACCBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25ACCBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24ACCBANDS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25ACCBANDS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -25046,7 +27884,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 190, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 190, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 190, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_22ACCBANDS(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24ACCBANDS(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -25066,7 +27904,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -25365,16 +28203,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22ACCBANDS(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25ACOS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_27ACOS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24ACOS, "ACOS(ndarray real)\n\nACOS(real)\n\nVector Trigonometric ACos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25ACOS = {"ACOS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25ACOS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24ACOS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_25ACOS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26ACOS, "ACOS(ndarray real)\n\nACOS(real)\n\nVector Trigonometric ACos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_27ACOS = {"ACOS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_27ACOS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26ACOS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_27ACOS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -25441,7 +28279,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 239, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_24ACOS(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26ACOS(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -25460,7 +28298,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -25694,16 +28532,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24ACOS(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_27AD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_29AD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26AD, "AD(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nAD(high, low, close, volume)\n\nChaikin A/D Line (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_27AD = {"AD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_27AD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26AD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_27AD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_28AD, "AD(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nAD(high, low, close, volume)\n\nChaikin A/D Line (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_29AD = {"AD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_29AD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_28AD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_29AD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -25797,7 +28635,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 278, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 278, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 278, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_26AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_28AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ goto __pyx_L0; @@ -25816,7 +28654,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_28AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -26073,16 +28911,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26AD(CYTHON_UNUSED PyObject *__pyx_sel /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_29ADD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_31ADD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_28ADD, "ADD(ndarray real0, ndarray real1)\n\nADD(real0, real1)\n\nVector Arithmetic Add (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_29ADD = {"ADD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_29ADD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_28ADD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_29ADD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_30ADD, "ADD(ndarray real0, ndarray real1)\n\nADD(real0, real1)\n\nVector Arithmetic Add (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_31ADD = {"ADD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_31ADD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_30ADD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_31ADD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -26158,7 +28996,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(6, 320, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(6, 320, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_28ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_30ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1); /* function exit code */ goto __pyx_L0; @@ -26177,7 +29015,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_28ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_30ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -26420,16 +29258,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_28ADD(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_31ADOSC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_33ADOSC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_30ADOSC, "ADOSC(ndarray high, ndarray low, ndarray close, ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\nChaikin A/D Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n fastperiod: 3\n slowperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_31ADOSC = {"ADOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_31ADOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_30ADOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_31ADOSC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_32ADOSC, "ADOSC(ndarray high, ndarray low, ndarray close, ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\nChaikin A/D Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n fastperiod: 3\n slowperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_33ADOSC = {"ADOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_33ADOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_32ADOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_33ADOSC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -26554,7 +29392,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 361, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 361, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 361, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_30ADOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_32ADOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); /* function exit code */ goto __pyx_L0; @@ -26575,7 +29413,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_30ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_32ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -26832,16 +29670,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_30ADOSC(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_33ADR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_35ADR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_32ADR, "ADR(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nADR(high, low[, timeperiod=?])\n\nAverage Day Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_33ADR = {"ADR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_33ADR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_32ADR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_33ADR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_34ADR, "ADR(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nADR(high, low[, timeperiod=?])\n\nAverage Day Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_35ADR = {"ADR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_35ADR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_34ADR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_35ADR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -26934,7 +29772,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 406, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 406, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_32ADR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_34ADR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -26954,7 +29792,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_32ADR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_34ADR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -27197,16 +30035,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_32ADR(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_35ADX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_37ADX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_34ADX, "ADX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADX(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_35ADX = {"ADX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_35ADX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_34ADX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_35ADX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_36ADX, "ADX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADX(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_37ADX = {"ADX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_37ADX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_36ADX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_37ADX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -27308,7 +30146,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 448, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 448, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 448, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_34ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_36ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -27328,7 +30166,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_34ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_36ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -27578,16 +30416,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_34ADX(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_37ADXR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_39ADXR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_36ADXR, "ADXR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADXR(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index Rating (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_37ADXR = {"ADXR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_37ADXR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_36ADXR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_37ADXR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_38ADXR, "ADXR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADXR(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index Rating (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_39ADXR = {"ADXR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_39ADXR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_38ADXR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_39ADXR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -27689,7 +30527,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 491, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 491, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 491, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_36ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_38ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -27709,7 +30547,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_36ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_38ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -27959,26 +30797,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_36ADXR(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_39AO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_41ALMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_38AO, "AO(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nAO(high, low[, fastperiod=?, slowperiod=?])\n\nAwesome Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_39AO = {"AO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_39AO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_38AO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_39AO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_40ALMA, "ALMA(ndarray real, int timeperiod=-0x80000000, double sigma=6.0, double offset=0.85)\n\nALMA(real[, timeperiod=?, sigma=?, offset=?])\n\nArnaud Legoux Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 9\n sigma: 6.0\n offset: 0.85\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_41ALMA = {"ALMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_41ALMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_40ALMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_41ALMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_sigma; + double __pyx_v_offset; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -27989,7 +30827,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AO (wrapper)", 0); + __Pyx_RefNannySetupContext("ALMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -27999,7 +30837,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_sigma,&__pyx_mstate_global->__pyx_n_u_offset,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 532, __pyx_L3_error) if (__pyx_kwds_len > 0) { @@ -28024,9 +30862,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AO", 0) < (0)) __PYX_ERR(6, 532, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, i); __PYX_ERR(6, 532, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ALMA", 0) < (0)) __PYX_ERR(6, 532, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ALMA", 0, 1, 4, i); __PYX_ERR(6, 532, __pyx_L3_error) } } } else { switch (__pyx_nargs) { @@ -28041,41 +30879,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 532, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 532, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 534, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 534, __pyx_L3_error) + __pyx_v_sigma = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 534, __pyx_L3_error) } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); + __pyx_v_sigma = ((double)((double)6.0)); } if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 534, __pyx_L3_error) + __pyx_v_offset = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offset == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 534, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); + __pyx_v_offset = ((double)((double)0.85)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, __pyx_nargs); __PYX_ERR(6, 532, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ALMA", 0, 1, 4, __pyx_nargs); __PYX_ERR(6, 532, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ALMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 534, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 534, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_38AO(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 534, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_40ALMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_sigma, __pyx_v_offset); /* function exit code */ goto __pyx_L0; @@ -28092,11 +30935,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_40ALMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_sigma, double __pyx_v_offset) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -28108,40 +30952,32 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_sel PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 554, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("ALMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 555, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 556, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 558, __pyx_L1_error) @@ -28165,7 +31001,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_sel __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -28190,7 +31026,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_sel __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ALMA_Lookback(__pyx_v_timeperiod, __pyx_v_sigma, __pyx_v_offset)); } /*finally:*/ { @@ -28214,7 +31050,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_sel __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_AO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ALMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_sigma, __pyx_v_offset, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -28254,17 +31090,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_sel /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -28285,22 +31121,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_sel } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 572, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ALMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -28319,7 +31155,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_sel /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ALMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -28330,8 +31166,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_sel __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -28339,26 +31174,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_sel /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_41APO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_43AO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_40APO, "APO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nAPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nAbsolute Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_41APO = {"APO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_41APO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_40APO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_41APO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_42AO, "AO(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nAO(high, low[, fastperiod=?, slowperiod=?])\n\nAwesome Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_43AO = {"AO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_43AO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_42AO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_43AO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; int __pyx_v_fastperiod; int __pyx_v_slowperiod; - int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -28369,7 +31204,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("APO (wrapper)", 0); + __Pyx_RefNannySetupContext("AO (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -28379,7 +31214,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 575, __pyx_L3_error) if (__pyx_kwds_len > 0) { @@ -28404,9 +31239,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "APO", 0) < (0)) __PYX_ERR(6, 575, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, i); __PYX_ERR(6, 575, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AO", 0) < (0)) __PYX_ERR(6, 575, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, i); __PYX_ERR(6, 575, __pyx_L3_error) } } } else { switch (__pyx_nargs) { @@ -28421,46 +31256,41 @@ PyObject *__pyx_args, PyObject *__pyx_kwds case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 575, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 575, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 577, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 577, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 577, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); + __pyx_v_fastperiod = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 577, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 577, __pyx_L3_error) } else { - __pyx_v_matype = ((int)((int)1)); + __pyx_v_slowperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, __pyx_nargs); __PYX_ERR(6, 575, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, __pyx_nargs); __PYX_ERR(6, 575, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.APO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AO", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 577, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_40APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 577, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 577, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_42AO(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); /* function exit code */ goto __pyx_L0; @@ -28477,12 +31307,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_42AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -28494,32 +31323,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("APO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("AO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 598, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 599, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 601, __pyx_L1_error) @@ -28543,7 +31380,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -28568,7 +31405,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); } /*finally:*/ { @@ -28592,7 +31429,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_APO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_AO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -28632,17 +31469,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_se /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -28663,22 +31500,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_se } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 615, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -28697,7 +31534,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.APO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -28708,7 +31545,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_se __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -28716,36 +31554,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_43AROON(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_45APO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_42AROON, "AROON(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROON(high, low[, timeperiod=?])\n\nAroon (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n aroondown\n aroonup"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_43AROON = {"AROON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_43AROON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_42AROON}; -static PyObject *__pyx_pw_5talib_7_ta_lib_43AROON(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_44APO, "APO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nAPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nAbsolute Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_45APO = {"APO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_45APO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_44APO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_45APO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AROON (wrapper)", 0); + __Pyx_RefNannySetupContext("APO (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -28755,11 +31594,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 618, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 618, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 618, __pyx_L3_error) @@ -28776,12 +31619,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROON", 0) < (0)) __PYX_ERR(6, 618, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, i); __PYX_ERR(6, 618, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "APO", 0) < (0)) __PYX_ERR(6, 618, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, i); __PYX_ERR(6, 618, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 618, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 618, __pyx_L3_error) @@ -28789,36 +31636,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 618, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 618, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 620, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 620, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 620, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 620, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)1)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 618, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, __pyx_nargs); __PYX_ERR(6, 618, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.APO", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 620, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 620, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_42AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 620, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_44APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -28834,11 +31691,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_44APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -28846,70 +31705,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outaroondown = 0; - PyArrayObject *__pyx_v_outaroonup = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - char const *__pyx_t_8; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AROON", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 641, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("APO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 642, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 643, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 645, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 645, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 645, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 645, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 645, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -28920,7 +31758,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -28935,7 +31773,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 649, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 648, __pyx_L1_error) /*try:*/ { @@ -28945,7 +31783,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_AROON_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); } /*finally:*/ { @@ -28958,15 +31796,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 653, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 654, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 652, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -28974,7 +31807,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_AROON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroondown)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroonup)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_APO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -29014,19 +31847,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); - if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -29047,51 +31878,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_ } } } - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 660, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 661, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF((PyObject *)__pyx_v_outaroondown); - __Pyx_GIVEREF((PyObject *)__pyx_v_outaroondown); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outaroondown)) != (0)) __PYX_ERR(6, 661, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outaroonup); - __Pyx_GIVEREF((PyObject *)__pyx_v_outaroonup); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outaroonup)) != (0)) __PYX_ERR(6, 661, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.APO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -29101,10 +31922,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outaroondown); - __Pyx_XDECREF((PyObject *)__pyx_v_outaroonup); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -29112,16 +31931,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_45AROONOSC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_47AROON(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_44AROONOSC, "AROONOSC(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROONOSC(high, low[, timeperiod=?])\n\nAroon Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_45AROONOSC = {"AROONOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_45AROONOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_44AROONOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_45AROONOSC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_46AROON, "AROON(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROON(high, low[, timeperiod=?])\n\nAroon (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n aroondown\n aroonup"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_47AROON = {"AROON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_47AROON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_46AROON}; +static PyObject *__pyx_pw_5talib_7_ta_lib_47AROON(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -29141,7 +31960,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AROONOSC (wrapper)", 0); + __Pyx_RefNannySetupContext("AROON (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29153,40 +31972,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 663, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 661, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROONOSC", 0) < (0)) __PYX_ERR(6, 663, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROON", 0) < (0)) __PYX_ERR(6, 661, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, i); __PYX_ERR(6, 663, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, i); __PYX_ERR(6, 661, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 661, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 661, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -29194,27 +32013,27 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 665, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 663, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 663, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 661, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 665, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 665, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_44AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 663, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 663, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_46AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -29234,7 +32053,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_46AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -29242,25 +32061,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__p TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outaroondown = 0; + PyArrayObject *__pyx_v_outaroonup = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; int __pyx_t_3; - int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AROONOSC", 0); + __Pyx_RefNannySetupContext("AROON", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); @@ -29284,15 +32106,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__p __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 688, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 688, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; } @@ -29328,7 +32160,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_AROONOSC_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_AROON_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -29341,10 +32173,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__p } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 696, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 696, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 697, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; { PyThreadState * _save; @@ -29352,7 +32189,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_AROONOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_AROON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroondown)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroonup)) + __pyx_v_lookback)); } /*finally:*/ { @@ -29392,17 +32229,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__p /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; { { PyThreadState * _save; @@ -29423,41 +32262,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__p } } } - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 704, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outaroondown); + __Pyx_GIVEREF((PyObject *)__pyx_v_outaroondown); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outaroondown)) != (0)) __PYX_ERR(6, 704, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outaroonup); + __Pyx_GIVEREF((PyObject *)__pyx_v_outaroonup); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outaroonup)) != (0)) __PYX_ERR(6, 704, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -29467,7 +32316,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__p - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outaroondown); + __Pyx_XDECREF((PyObject *)__pyx_v_outaroonup); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); @@ -29477,34 +32327,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_47ASIN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_49AROONOSC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_46ASIN, "ASIN(ndarray real)\n\nASIN(real)\n\nVector Trigonometric ASin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_47ASIN = {"ASIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_47ASIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_46ASIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_47ASIN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_48AROONOSC, "AROONOSC(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROONOSC(high, low[, timeperiod=?])\n\nAroon Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_49AROONOSC = {"AROONOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_49AROONOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_48AROONOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_49AROONOSC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ASIN (wrapper)", 0); + __Pyx_RefNannySetupContext("AROONOSC (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29514,46 +32366,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 705, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 706, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 706, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 706, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 706, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ASIN", 0) < (0)) __PYX_ERR(6, 705, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, i); __PYX_ERR(6, 705, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROONOSC", 0) < (0)) __PYX_ERR(6, 706, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, i); __PYX_ERR(6, 706, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 705, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 706, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 706, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 706, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 708, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 705, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 706, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 707, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_46ASIN(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 708, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 708, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_48AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -29568,11 +32444,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_48AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -29584,35 +32461,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ASIN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("AROONOSC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 724, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 729, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 727, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -29633,7 +32518,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -29648,7 +32533,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 731, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 735, __pyx_L1_error) /*try:*/ { @@ -29658,7 +32543,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ASIN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_AROONOSC_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -29671,7 +32556,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 735, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 739, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -29682,7 +32567,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ASIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_AROONOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -29722,17 +32607,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -29753,22 +32638,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 741, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -29787,7 +32672,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -29798,7 +32683,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -29806,34 +32692,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_49ATAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_51ASI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_48ATAN, "ATAN(ndarray real)\n\nATAN(real)\n\nVector Trigonometric ATan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_49ATAN = {"ATAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_49ATAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_48ATAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_49ATAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_50ASI, "ASI(ndarray open, ndarray high, ndarray low, ndarray close, double limitmove=-4e37)\n\nASI(open, high, low, close[, limitmove=?])\n\nWilder Accumulative Swing Index (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n limitmove: 3.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_51ASI = {"ASI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_51ASI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_50ASI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_51ASI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + double __pyx_v_limitmove; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ATAN (wrapper)", 0); + __Pyx_RefNannySetupContext("ASI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29843,46 +32733,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_limitmove,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 744, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 748, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 748, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 744, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATAN", 0) < (0)) __PYX_ERR(6, 744, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, i); __PYX_ERR(6, 744, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ASI", 0) < (0)) __PYX_ERR(6, 748, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ASI", 0, 4, 5, i); __PYX_ERR(6, 748, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 744, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 748, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 748, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 748, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 748, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_limitmove = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_limitmove == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 750, __pyx_L3_error) + } else { + __pyx_v_limitmove = ((double)((double)-4e37)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 744, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ASI", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 748, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ASI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 746, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_48ATAN(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 750, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 750, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 750, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 750, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_50ASI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_limitmove); /* function exit code */ goto __pyx_L0; @@ -29897,11 +32827,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_50ASI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_limitmove) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -29913,35 +32844,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ATAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("ASI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 763, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 773, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 766, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -29962,7 +32913,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -29977,7 +32928,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 770, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 779, __pyx_L1_error) /*try:*/ { @@ -29987,7 +32938,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ATAN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_ASI_Lookback(__pyx_v_limitmove)); } /*finally:*/ { @@ -30000,7 +32951,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 774, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 783, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -30011,7 +32962,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ATAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ASI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_limitmove, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -30051,17 +33002,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -30082,22 +33033,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 780, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -30116,7 +33067,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ASI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -30127,7 +33078,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -30135,37 +33089,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_51ATR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_53ASIN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_50ATR, "ATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nATR(high, low, close[, timeperiod=?])\n\nAverage True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_51ATR = {"ATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_51ATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_50ATR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_51ATR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_52ASIN, "ASIN(ndarray real)\n\nASIN(real)\n\nVector Trigonometric ASin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_53ASIN = {"ASIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_53ASIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_52ASIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_53ASIN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ATR (wrapper)", 0); + __Pyx_RefNannySetupContext("ASIN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30175,78 +33126,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 783, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 792, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 783, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 783, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 783, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 783, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 792, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATR", 0) < (0)) __PYX_ERR(6, 783, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, i); __PYX_ERR(6, 783, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 783, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 783, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 783, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 783, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ASIN", 0) < (0)) __PYX_ERR(6, 792, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, i); __PYX_ERR(6, 792, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 785, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 792, __pyx_L3_error) } + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 783, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 792, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 785, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 785, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 785, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_50ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 794, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_52ASIN(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -30261,12 +33180,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_52ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -30278,49 +33196,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ATR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 804, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 805, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("ASIN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 806, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 807, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 809, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -30341,7 +33245,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -30356,7 +33260,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_se __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 813, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 818, __pyx_L1_error) /*try:*/ { @@ -30366,7 +33270,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ATR_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ASIN_Lookback()); } /*finally:*/ { @@ -30379,7 +33283,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_se } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 817, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 822, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -30390,7 +33294,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ASIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -30430,17 +33334,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_se /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -30461,22 +33365,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_se } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 823, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -30495,7 +33399,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -30506,9 +33410,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_se __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -30516,16 +33418,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_53AVGDEV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_55ATAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_52AVGDEV, "AVGDEV(ndarray real, int timeperiod=-0x80000000)\n\nAVGDEV(real[, timeperiod=?])\n\nAverage Deviation (Price Transform)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_53AVGDEV = {"AVGDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_53AVGDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_52AVGDEV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_53AVGDEV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_54ATAN, "ATAN(ndarray real)\n\nATAN(real)\n\nVector Trigonometric ATan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_55ATAN = {"ATAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_55ATAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_54ATAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_55ATAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -30533,18 +33435,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AVGDEV (wrapper)", 0); + __Pyx_RefNannySetupContext("ATAN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30554,62 +33455,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 826, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 831, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 826, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 826, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 831, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGDEV", 0) < (0)) __PYX_ERR(6, 826, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATAN", 0) < (0)) __PYX_ERR(6, 831, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, i); __PYX_ERR(6, 826, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, i); __PYX_ERR(6, 831, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 826, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 826, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 831, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 828, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 826, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 831, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 828, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_52AVGDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 833, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_54ATAN(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -30624,12 +33509,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_54ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -30654,10 +33538,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AVGDEV", 0); + __Pyx_RefNannySetupContext("ATAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 847, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -30669,7 +33553,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 850, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -30705,7 +33589,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 854, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 857, __pyx_L1_error) /*try:*/ { @@ -30715,7 +33599,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_AVGDEV_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ATAN_Lookback()); } /*finally:*/ { @@ -30728,7 +33612,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 858, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 861, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -30739,7 +33623,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_AVGDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ATAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -30825,7 +33709,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 864, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -30844,7 +33728,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -30863,26 +33747,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_55AVGPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_57ATR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_54AVGPRICE, "AVGPRICE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nAVGPRICE(open, high, low, close)\n\nAverage Price (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_55AVGPRICE = {"AVGPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_55AVGPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_54AVGPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_55AVGPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_56ATR, "ATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nATR(high, low, close[, timeperiod=?])\n\nAverage True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_57ATR = {"ATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_57ATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_56ATR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_57ATR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -30893,7 +33777,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AVGPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("ATR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30903,70 +33787,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 867, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 870, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 867, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 870, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 867, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 870, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 867, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 870, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 867, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 870, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGPRICE", 0) < (0)) __PYX_ERR(6, 867, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, i); __PYX_ERR(6, 867, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATR", 0) < (0)) __PYX_ERR(6, 870, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, i); __PYX_ERR(6, 870, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 867, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 867, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 867, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 867, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 870, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 870, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 870, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 870, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 872, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 867, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 870, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 869, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 869, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 869, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 869, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_54AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 872, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 872, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 872, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_56ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -30981,11 +33873,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_56ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -31011,33 +33904,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AVGPRICE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_RefNannySetupContext("ATR", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 886, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 887, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 888, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 889, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 890, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 894, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -31045,7 +33932,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 892, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -31066,7 +33953,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -31081,7 +33968,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 896, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 900, __pyx_L1_error) /*try:*/ { @@ -31091,7 +33978,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_AVGPRICE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_ATR_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -31104,7 +33991,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 900, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 904, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -31115,7 +34002,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_AVGPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -31201,7 +34088,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 906, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -31220,7 +34107,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -31231,7 +34118,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_open); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XDECREF((PyObject *)__pyx_v_close); @@ -31242,16 +34128,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_57BBANDS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_59AVGDEV(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_56BBANDS, "BBANDS(ndarray real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_57BBANDS = {"BBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_57BBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_56BBANDS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_57BBANDS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_58AVGDEV, "AVGDEV(ndarray real, int timeperiod=-0x80000000)\n\nAVGDEV(real[, timeperiod=?])\n\nAverage Deviation (Price Transform)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_59AVGDEV = {"AVGDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_59AVGDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_58AVGDEV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_59AVGDEV(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -31260,20 +34146,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - double __pyx_v_nbdevup; - double __pyx_v_nbdevdn; - int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("BBANDS (wrapper)", 0); + __Pyx_RefNannySetupContext("AVGDEV (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31283,101 +34166,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 909, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 913, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 909, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 909, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 909, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 909, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 909, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BBANDS", 0) < (0)) __PYX_ERR(6, 909, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGDEV", 0) < (0)) __PYX_ERR(6, 913, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, i); __PYX_ERR(6, 909, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, i); __PYX_ERR(6, 913, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 909, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 909, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 909, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 909, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 909, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 913, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 911, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 915, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } - if (values[2]) { - __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 911, __pyx_L3_error) - } else { - __pyx_v_nbdevup = ((double)((double)-4e37)); - } - if (values[3]) { - __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 911, __pyx_L3_error) - } else { - __pyx_v_nbdevdn = ((double)((double)-4e37)); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 911, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, __pyx_nargs); __PYX_ERR(6, 909, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 913, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 911, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_56BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 915, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_58AVGDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -31393,14 +34237,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_58AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -31408,32 +34249,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outrealupperband = 0; - PyArrayObject *__pyx_v_outrealmiddleband = 0; - PyArrayObject *__pyx_v_outreallowerband = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - char const *__pyx_t_8; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("BBANDS", 0); + __Pyx_RefNannySetupContext("AVGDEV", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 937, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -31445,32 +34281,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 940, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 940, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 940, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 940, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 940, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 940, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(6, 940, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -31496,7 +34317,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 944, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 941, __pyx_L1_error) /*try:*/ { @@ -31506,7 +34327,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_AVGDEV_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -31519,20 +34340,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx } } - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 948, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 949, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 950, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 945, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -31540,7 +34351,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_BBANDS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_AVGDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -31580,20 +34391,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); - if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -31614,55 +34422,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx } } } - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 956, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 957, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(6, 957, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(6, 957, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(6, 957, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -31672,9 +34466,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx - __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -31683,36 +34475,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_59BETA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_61AVGPRICE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_58BETA, "BETA(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nBETA(real0, real1[, timeperiod=?])\n\nBeta (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_59BETA = {"BETA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_59BETA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_58BETA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_59BETA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_60AVGPRICE, "AVGPRICE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nAVGPRICE(open, high, low, close)\n\nAverage Price (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_61AVGPRICE = {"AVGPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_61AVGPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_60AVGPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_61AVGPRICE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("BETA (wrapper)", 0); + __Pyx_RefNannySetupContext("AVGPRICE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31722,70 +34515,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 959, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 954, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 954, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 954, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 954, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 954, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BETA", 0) < (0)) __PYX_ERR(6, 959, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, i); __PYX_ERR(6, 959, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 959, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 959, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 959, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGPRICE", 0) < (0)) __PYX_ERR(6, 954, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, i); __PYX_ERR(6, 954, __pyx_L3_error) } } - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 961, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 954, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 954, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 954, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 954, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 959, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 954, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(6, 961, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(6, 961, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_58BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 956, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 956, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 956, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 956, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_60AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -31800,12 +34593,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_60AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -31831,21 +34623,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("BETA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); + __Pyx_RefNannySetupContext("AVGPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 981, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 982, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 983, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 977, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -31853,7 +34657,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 985, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -31874,7 +34678,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -31889,7 +34693,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 989, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 983, __pyx_L1_error) /*try:*/ { @@ -31899,7 +34703,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_BETA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_AVGPRICE_Lookback()); } /*finally:*/ { @@ -31912,7 +34716,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 993, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 987, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -31923,7 +34727,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_BETA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_AVGPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -32009,7 +34813,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 999, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -32028,7 +34832,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -32039,8 +34843,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -32048,37 +34854,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_61BOP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_63BBANDS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_60BOP, "BOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nBOP(open, high, low, close)\n\nBalance Of Power (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_61BOP = {"BOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_61BOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_60BOP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_61BOP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_62BBANDS, "BBANDS(ndarray real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_63BBANDS = {"BBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_63BBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_62BBANDS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_63BBANDS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("BOP (wrapper)", 0); + __Pyx_RefNannySetupContext("BBANDS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32088,70 +34895,101 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1002, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 996, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 996, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1002, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 996, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1002, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 996, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1002, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 996, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1002, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 996, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BOP", 0) < (0)) __PYX_ERR(6, 1002, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, i); __PYX_ERR(6, 1002, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BBANDS", 0) < (0)) __PYX_ERR(6, 996, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, i); __PYX_ERR(6, 996, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1002, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1002, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1002, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1002, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 996, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 996, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 996, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 996, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 996, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 998, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 998, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)((double)-4e37)); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 998, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)((double)-4e37)); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 998, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1002, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, __pyx_nargs); __PYX_ERR(6, 996, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1004, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1004, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1004, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1004, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_60BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 998, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_62BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -32166,11 +35004,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_62BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -32178,69 +35020,69 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_se TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outrealupperband = 0; + PyArrayObject *__pyx_v_outrealmiddleband = 0; + PyArrayObject *__pyx_v_outreallowerband = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("BOP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1021, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1022, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1023, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("BBANDS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1024, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1025, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 1027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 1027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 1027, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 1027, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(6, 1027, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; } @@ -32251,7 +35093,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -32276,7 +35118,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_BOP_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); } /*finally:*/ { @@ -32289,10 +35131,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_se } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1035, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1035, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1036, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1037, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; { PyThreadState * _save; @@ -32300,7 +35152,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_BOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_BBANDS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); } /*finally:*/ { @@ -32340,17 +35192,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_se /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; { { PyThreadState * _save; @@ -32371,41 +35226,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_se } } } - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1041, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(6, 1044, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(6, 1044, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(6, 1044, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -32415,11 +35284,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_se - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -32427,37 +35295,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_63CCI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_65BBW(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_62CCI, "CCI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nCCI(high, low, close[, timeperiod=?])\n\nCommodity Channel Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_63CCI = {"CCI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_63CCI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_62CCI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_63CCI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_64BBW, "BBW(ndarray real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBW(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger BandWidth (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_65BBW = {"BBW", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_65BBW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_64BBW}; +static PyObject *__pyx_pw_5talib_7_ta_lib_65BBW(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CCI (wrapper)", 0); + __Pyx_RefNannySetupContext("BBW (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32467,78 +35336,101 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1044, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1046, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1046, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1044, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1046, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1044, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1046, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1044, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1046, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1044, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1046, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CCI", 0) < (0)) __PYX_ERR(6, 1044, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, i); __PYX_ERR(6, 1044, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BBW", 0) < (0)) __PYX_ERR(6, 1046, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BBW", 0, 1, 5, i); __PYX_ERR(6, 1046, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1046, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1044, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1046, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1044, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1046, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1044, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1046, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1044, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1046, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 1046, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 1048, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 1048, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)((double)-4e37)); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 1048, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)((double)-4e37)); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 1048, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 1044, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("BBW", 0, 1, 5, __pyx_nargs); __PYX_ERR(6, 1046, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.BBW", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1046, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1046, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1046, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_62CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 1048, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_64BBW(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -32554,11 +35446,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_64BBW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -32570,49 +35465,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CCI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1065, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1066, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("BBW", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1067, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1068, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1070, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -32633,7 +35514,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -32648,7 +35529,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1074, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1077, __pyx_L1_error) /*try:*/ { @@ -32658,7 +35539,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CCI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_BBW_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); } /*finally:*/ { @@ -32671,7 +35552,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1078, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1081, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -32682,7 +35563,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CCI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_BBW(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -32722,17 +35603,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -32753,22 +35634,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1084, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -32787,7 +35668,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.BBW", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -32798,9 +35679,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -32808,37 +35687,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_65CDL2CROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_67BETA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_64CDL2CROWS, "CDL2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL2CROWS(open, high, low, close)\n\nTwo Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_65CDL2CROWS = {"CDL2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_65CDL2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_64CDL2CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_65CDL2CROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_66BETA, "BETA(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nBETA(real0, real1[, timeperiod=?])\n\nBeta (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_67BETA = {"BETA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_67BETA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_66BETA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_67BETA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL2CROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("BETA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32848,70 +35726,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1087, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1090, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1087, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL2CROWS", 0) < (0)) __PYX_ERR(6, 1087, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, i); __PYX_ERR(6, 1087, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BETA", 0) < (0)) __PYX_ERR(6, 1090, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, i); __PYX_ERR(6, 1090, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1087, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1087, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1087, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1087, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1090, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1090, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1090, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 1092, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1087, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 1090, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1089, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1089, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1089, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1089, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_64CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(6, 1092, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(6, 1092, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_66BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -32926,11 +35804,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_66BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -32938,7 +35817,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -32956,33 +35835,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL2CROWS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1106, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("BETA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1108, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1109, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1110, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1114, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -32990,7 +35857,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1112, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -33011,7 +35878,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); } /*finally:*/ { @@ -33026,7 +35893,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1116, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1120, __pyx_L1_error) /*try:*/ { @@ -33036,7 +35903,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL2CROWS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_BETA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -33049,9 +35916,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1120, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1124, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -33060,7 +35927,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_BETA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -33146,7 +36013,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1126, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -33154,8 +36021,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -33165,7 +36032,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -33175,11 +36042,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -33187,16 +36052,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_67CDL3BLACKCROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_69BOP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_66CDL3BLACKCROWS, "CDL3BLACKCROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3BLACKCROWS(open, high, low, close)\n\nThree Black Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_67CDL3BLACKCROWS = {"CDL3BLACKCROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_67CDL3BLACKCROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_66CDL3BLACKCROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_67CDL3BLACKCROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_68BOP, "BOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nBOP(open, high, low, close)\n\nBalance Of Power (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_69BOP = {"BOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_69BOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_68BOP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_69BOP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -33217,7 +36082,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3BLACKCROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("BOP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -33229,44 +36094,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1129, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1133, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1133, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1133, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1133, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1133, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3BLACKCROWS", 0) < (0)) __PYX_ERR(6, 1129, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BOP", 0) < (0)) __PYX_ERR(6, 1133, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, i); __PYX_ERR(6, 1129, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, i); __PYX_ERR(6, 1133, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1133, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1133, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1133, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1133, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -33275,22 +36140,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1129, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1133, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1131, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1131, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1131, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1131, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1135, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1135, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1135, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1135, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_68BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -33309,7 +36174,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_68BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -33317,7 +36182,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -33335,33 +36200,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3BLACKCROWS", 0); + __Pyx_RefNannySetupContext("BOP", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1148, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1149, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1150, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1151, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1152, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1156, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -33369,7 +36234,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1154, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -33405,7 +36270,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1158, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1162, __pyx_L1_error) /*try:*/ { @@ -33415,7 +36280,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3BLACKCROWS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_BOP_Lookback()); } /*finally:*/ { @@ -33428,9 +36293,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1162, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1166, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -33439,7 +36304,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL3BLACKCROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_BOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -33525,7 +36390,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1168, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -33533,8 +36398,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -33544,7 +36409,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -33554,7 +36419,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_open); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); @@ -33566,26 +36431,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_71CCI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_68CDL3INSIDE, "CDL3INSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_69CDL3INSIDE = {"CDL3INSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_68CDL3INSIDE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_70CCI, "CCI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nCCI(high, low, close[, timeperiod=?])\n\nCommodity Channel Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_71CCI = {"CCI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_71CCI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_70CCI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_71CCI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -33596,7 +36461,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3INSIDE (wrapper)", 0); + __Pyx_RefNannySetupContext("CCI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -33606,70 +36471,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1171, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1175, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1175, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1175, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1175, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1175, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3INSIDE", 0) < (0)) __PYX_ERR(6, 1171, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, i); __PYX_ERR(6, 1171, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CCI", 0) < (0)) __PYX_ERR(6, 1175, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, i); __PYX_ERR(6, 1175, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1171, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1171, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1171, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1171, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1175, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1175, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1175, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1175, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 1177, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1171, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 1175, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1173, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1173, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1173, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1173, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1177, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1177, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1177, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_70CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -33684,11 +36557,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_70CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -33696,7 +36570,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -33714,33 +36588,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3INSIDE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_RefNannySetupContext("CCI", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1191, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1192, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1193, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1194, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1199, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -33748,7 +36616,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1196, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -33769,7 +36637,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -33784,7 +36652,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1200, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1205, __pyx_L1_error) /*try:*/ { @@ -33794,7 +36662,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3INSIDE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CCI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -33807,9 +36675,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1204, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1209, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -33818,7 +36686,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL3INSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CCI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -33904,7 +36772,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1210, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -33912,8 +36780,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -33923,7 +36791,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -33933,8 +36801,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XDECREF((PyObject *)__pyx_v_close); @@ -33945,16 +36812,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_73CDL2CROWS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_70CDL3LINESTRIKE, "CDL3LINESTRIKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_71CDL3LINESTRIKE = {"CDL3LINESTRIKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_70CDL3LINESTRIKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_72CDL2CROWS, "CDL2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL2CROWS(open, high, low, close)\n\nTwo Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_73CDL2CROWS = {"CDL2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_73CDL2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_72CDL2CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_73CDL2CROWS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -33975,7 +36842,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3LINESTRIKE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL2CROWS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -33987,44 +36854,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1213, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1218, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1218, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1218, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1218, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1218, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3LINESTRIKE", 0) < (0)) __PYX_ERR(6, 1213, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL2CROWS", 0) < (0)) __PYX_ERR(6, 1218, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, i); __PYX_ERR(6, 1213, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, i); __PYX_ERR(6, 1218, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1218, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1218, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1218, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1218, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -34033,22 +36900,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1213, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1218, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1215, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1215, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1215, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1215, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1220, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1220, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1220, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1220, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_72CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -34067,7 +36934,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -34093,33 +36960,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObjec int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3LINESTRIKE", 0); + __Pyx_RefNannySetupContext("CDL2CROWS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1232, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1233, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1234, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1235, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1236, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1241, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -34127,7 +36994,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObjec if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1238, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -34163,7 +37030,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObjec __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1242, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1247, __pyx_L1_error) /*try:*/ { @@ -34173,7 +37040,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3LINESTRIKE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL2CROWS_Lookback()); } /*finally:*/ { @@ -34186,7 +37053,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1246, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1251, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -34197,7 +37064,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL3LINESTRIKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -34283,7 +37150,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObjec __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1252, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -34302,7 +37169,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObjec /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -34324,16 +37191,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_73CDL3OUTSIDE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_75CDL3BLACKCROWS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_72CDL3OUTSIDE, "CDL3OUTSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3OUTSIDE(open, high, low, close)\n\nThree Outside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_73CDL3OUTSIDE = {"CDL3OUTSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_73CDL3OUTSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_72CDL3OUTSIDE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_73CDL3OUTSIDE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_74CDL3BLACKCROWS, "CDL3BLACKCROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3BLACKCROWS(open, high, low, close)\n\nThree Black Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_75CDL3BLACKCROWS = {"CDL3BLACKCROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_75CDL3BLACKCROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_74CDL3BLACKCROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_75CDL3BLACKCROWS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -34354,7 +37221,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3OUTSIDE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL3BLACKCROWS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -34366,44 +37233,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1255, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1260, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1260, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1260, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1260, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1260, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3OUTSIDE", 0) < (0)) __PYX_ERR(6, 1255, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3BLACKCROWS", 0) < (0)) __PYX_ERR(6, 1260, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, i); __PYX_ERR(6, 1255, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, i); __PYX_ERR(6, 1260, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1260, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1260, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1260, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1260, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -34412,22 +37279,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1255, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1260, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1257, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1257, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1257, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1257, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1262, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1262, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1262, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1262, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_74CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -34446,7 +37313,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -34472,33 +37339,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3OUTSIDE", 0); + __Pyx_RefNannySetupContext("CDL3BLACKCROWS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1274, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1275, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1276, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1277, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1278, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1283, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -34506,7 +37373,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject * if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1280, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -34542,7 +37409,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject * __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1284, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1289, __pyx_L1_error) /*try:*/ { @@ -34552,7 +37419,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3OUTSIDE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3BLACKCROWS_Lookback()); } /*finally:*/ { @@ -34565,7 +37432,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1288, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1293, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -34576,7 +37443,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL3OUTSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL3BLACKCROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -34662,7 +37529,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject * __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1294, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -34681,7 +37548,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -34703,16 +37570,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_75CDL3STARSINSOUTH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_77CDL3INSIDE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_74CDL3STARSINSOUTH, "CDL3STARSINSOUTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3STARSINSOUTH(open, high, low, close)\n\nThree Stars In The South (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_75CDL3STARSINSOUTH = {"CDL3STARSINSOUTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_75CDL3STARSINSOUTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_74CDL3STARSINSOUTH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_75CDL3STARSINSOUTH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_76CDL3INSIDE, "CDL3INSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_77CDL3INSIDE = {"CDL3INSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_77CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_76CDL3INSIDE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_77CDL3INSIDE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -34733,7 +37600,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3STARSINSOUTH (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL3INSIDE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -34745,44 +37612,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1297, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1302, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1297, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1302, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1297, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1302, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1297, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1302, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1297, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1302, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3STARSINSOUTH", 0) < (0)) __PYX_ERR(6, 1297, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3INSIDE", 0) < (0)) __PYX_ERR(6, 1302, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, i); __PYX_ERR(6, 1297, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, i); __PYX_ERR(6, 1302, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1297, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1302, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1297, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1302, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1297, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1302, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1297, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1302, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -34791,22 +37658,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1297, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1302, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1299, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1299, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1299, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1299, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1304, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1304, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1304, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1304, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_76CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -34825,7 +37692,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -34851,33 +37718,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3STARSINSOUTH", 0); + __Pyx_RefNannySetupContext("CDL3INSIDE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1316, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1317, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1318, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1319, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1320, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1325, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -34885,7 +37752,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObj if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1322, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -34921,7 +37788,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObj __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1326, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1331, __pyx_L1_error) /*try:*/ { @@ -34931,7 +37798,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3STARSINSOUTH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3INSIDE_Lookback()); } /*finally:*/ { @@ -34944,7 +37811,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1330, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1335, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -34955,7 +37822,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL3STARSINSOUTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL3INSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -35041,7 +37908,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObj __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1336, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -35060,7 +37927,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -35082,16 +37949,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_77CDL3WHITESOLDIERS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_79CDL3LINESTRIKE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_76CDL3WHITESOLDIERS, "CDL3WHITESOLDIERS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3WHITESOLDIERS(open, high, low, close)\n\nThree Advancing White Soldiers (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_77CDL3WHITESOLDIERS = {"CDL3WHITESOLDIERS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_77CDL3WHITESOLDIERS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_76CDL3WHITESOLDIERS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_77CDL3WHITESOLDIERS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_78CDL3LINESTRIKE, "CDL3LINESTRIKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_79CDL3LINESTRIKE = {"CDL3LINESTRIKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_79CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_78CDL3LINESTRIKE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_79CDL3LINESTRIKE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -35112,7 +37979,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL3LINESTRIKE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35124,44 +37991,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1339, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1344, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1339, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1344, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1339, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1344, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1339, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1344, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1339, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1344, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3WHITESOLDIERS", 0) < (0)) __PYX_ERR(6, 1339, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3LINESTRIKE", 0) < (0)) __PYX_ERR(6, 1344, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, i); __PYX_ERR(6, 1339, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, i); __PYX_ERR(6, 1344, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1339, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1344, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1339, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1344, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1339, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1344, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1339, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1344, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -35170,22 +38037,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1339, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1344, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1341, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1341, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1341, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1341, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1346, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1346, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1346, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1346, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_78CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -35204,7 +38071,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_78CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -35230,33 +38097,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS", 0); + __Pyx_RefNannySetupContext("CDL3LINESTRIKE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1358, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1359, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1360, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1361, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1362, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1367, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -35264,7 +38131,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1364, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -35300,7 +38167,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1368, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1373, __pyx_L1_error) /*try:*/ { @@ -35310,7 +38177,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3WHITESOLDIERS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3LINESTRIKE_Lookback()); } /*finally:*/ { @@ -35323,7 +38190,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1372, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1377, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -35334,7 +38201,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL3WHITESOLDIERS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL3LINESTRIKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -35420,7 +38287,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1378, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -35439,7 +38306,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -35461,16 +38328,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_79CDLABANDONEDBABY(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_81CDL3OUTSIDE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_78CDLABANDONEDBABY, "CDLABANDONEDBABY(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\nAbandoned Baby (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_79CDLABANDONEDBABY = {"CDLABANDONEDBABY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_79CDLABANDONEDBABY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_78CDLABANDONEDBABY}; -static PyObject *__pyx_pw_5talib_7_ta_lib_79CDLABANDONEDBABY(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_80CDL3OUTSIDE, "CDL3OUTSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3OUTSIDE(open, high, low, close)\n\nThree Outside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_81CDL3OUTSIDE = {"CDL3OUTSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_81CDL3OUTSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_80CDL3OUTSIDE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_81CDL3OUTSIDE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -35481,18 +38348,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLABANDONEDBABY (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL3OUTSIDE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35502,86 +38368,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1381, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1386, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1381, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1386, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1386, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1386, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1386, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLABANDONEDBABY", 0) < (0)) __PYX_ERR(6, 1381, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3OUTSIDE", 0) < (0)) __PYX_ERR(6, 1386, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, i); __PYX_ERR(6, 1381, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, i); __PYX_ERR(6, 1386, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1381, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1381, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1381, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1381, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1381, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1386, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1386, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1386, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1386, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 1383, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 1381, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1386, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1383, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1383, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1383, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1383, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1388, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1388, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1388, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1388, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_80CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -35596,12 +38446,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_80CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -35627,33 +38476,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLABANDONEDBABY", 0); + __Pyx_RefNannySetupContext("CDL3OUTSIDE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1402, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1403, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1404, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1405, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1406, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1409, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -35661,7 +38510,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObj if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1408, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -35697,7 +38546,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObj __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1412, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1415, __pyx_L1_error) /*try:*/ { @@ -35707,7 +38556,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3OUTSIDE_Lookback()); } /*finally:*/ { @@ -35720,7 +38569,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1416, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1419, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -35731,7 +38580,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLABANDONEDBABY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL3OUTSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -35817,7 +38666,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObj __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1422, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -35836,7 +38685,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -35858,16 +38707,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_81CDLADVANCEBLOCK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_83CDL3STARSINSOUTH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_80CDLADVANCEBLOCK, "CDLADVANCEBLOCK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLADVANCEBLOCK(open, high, low, close)\n\nAdvance Block (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_81CDLADVANCEBLOCK = {"CDLADVANCEBLOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_81CDLADVANCEBLOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_80CDLADVANCEBLOCK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_81CDLADVANCEBLOCK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_82CDL3STARSINSOUTH, "CDL3STARSINSOUTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3STARSINSOUTH(open, high, low, close)\n\nThree Stars In The South (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_83CDL3STARSINSOUTH = {"CDL3STARSINSOUTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_83CDL3STARSINSOUTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_82CDL3STARSINSOUTH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_83CDL3STARSINSOUTH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -35888,7 +38737,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLADVANCEBLOCK (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL3STARSINSOUTH (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35900,44 +38749,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1425, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1428, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1428, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1428, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1428, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1428, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLADVANCEBLOCK", 0) < (0)) __PYX_ERR(6, 1425, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3STARSINSOUTH", 0) < (0)) __PYX_ERR(6, 1428, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, i); __PYX_ERR(6, 1425, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, i); __PYX_ERR(6, 1428, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1428, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1428, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1428, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1428, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -35946,22 +38795,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1425, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1428, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1427, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1427, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1427, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1427, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1430, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1430, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1430, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1430, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_82CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -35980,7 +38829,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_82CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -36006,33 +38855,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLADVANCEBLOCK", 0); + __Pyx_RefNannySetupContext("CDL3STARSINSOUTH", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1444, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1445, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1446, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1447, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1448, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1451, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -36040,7 +38889,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObje if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1450, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -36076,7 +38925,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObje __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1454, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1457, __pyx_L1_error) /*try:*/ { @@ -36086,7 +38935,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLADVANCEBLOCK_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3STARSINSOUTH_Lookback()); } /*finally:*/ { @@ -36099,7 +38948,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1458, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1461, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -36110,7 +38959,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLADVANCEBLOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL3STARSINSOUTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -36196,7 +39045,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObje __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1464, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -36215,7 +39064,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -36237,16 +39086,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_85CDL3WHITESOLDIERS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_82CDLBELTHOLD, "CDLBELTHOLD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_83CDLBELTHOLD = {"CDLBELTHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_82CDLBELTHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_84CDL3WHITESOLDIERS, "CDL3WHITESOLDIERS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3WHITESOLDIERS(open, high, low, close)\n\nThree Advancing White Soldiers (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_85CDL3WHITESOLDIERS = {"CDL3WHITESOLDIERS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_85CDL3WHITESOLDIERS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_84CDL3WHITESOLDIERS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_85CDL3WHITESOLDIERS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -36267,7 +39116,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLBELTHOLD (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36279,44 +39128,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1467, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1470, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1470, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1470, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1470, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1470, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBELTHOLD", 0) < (0)) __PYX_ERR(6, 1467, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3WHITESOLDIERS", 0) < (0)) __PYX_ERR(6, 1470, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, i); __PYX_ERR(6, 1467, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, i); __PYX_ERR(6, 1470, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1470, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1470, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1470, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1470, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -36325,22 +39174,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1467, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1470, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1469, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1469, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1469, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1469, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1472, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1472, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1472, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1472, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_84CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -36359,7 +39208,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_84CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -36385,33 +39234,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLBELTHOLD", 0); + __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1486, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1487, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1488, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1489, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1490, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1493, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -36419,7 +39268,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject * if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1492, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -36455,7 +39304,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject * __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1496, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1499, __pyx_L1_error) /*try:*/ { @@ -36465,7 +39314,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3WHITESOLDIERS_Lookback()); } /*finally:*/ { @@ -36478,7 +39327,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1500, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1503, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -36489,7 +39338,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLBELTHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL3WHITESOLDIERS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -36575,7 +39424,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject * __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1506, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -36594,7 +39443,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -36616,16 +39465,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLABANDONEDBABY(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_84CDLBREAKAWAY, "CDLBREAKAWAY(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_85CDLBREAKAWAY = {"CDLBREAKAWAY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_84CDLBREAKAWAY}; -static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_86CDLABANDONEDBABY, "CDLABANDONEDBABY(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\nAbandoned Baby (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_87CDLABANDONEDBABY = {"CDLABANDONEDBABY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_87CDLABANDONEDBABY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_86CDLABANDONEDBABY}; +static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLABANDONEDBABY(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -36636,17 +39485,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLBREAKAWAY (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLABANDONEDBABY (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36656,70 +39506,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1509, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1512, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1512, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1509, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1512, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1509, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1512, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1509, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1512, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1509, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1512, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBREAKAWAY", 0) < (0)) __PYX_ERR(6, 1509, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLABANDONEDBABY", 0) < (0)) __PYX_ERR(6, 1512, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, i); __PYX_ERR(6, 1509, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, i); __PYX_ERR(6, 1512, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1509, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1509, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1509, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1509, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1512, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1512, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1512, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1512, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1512, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 1514, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1509, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 1512, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1511, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1511, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1511, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1511, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1514, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1514, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1514, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1514, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_86CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -36734,11 +39600,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -36764,33 +39631,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLBREAKAWAY", 0); + __Pyx_RefNannySetupContext("CDLABANDONEDBABY", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1528, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1529, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1530, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1531, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1532, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1537, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -36798,7 +39665,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1534, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -36834,7 +39701,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1538, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1543, __pyx_L1_error) /*try:*/ { @@ -36844,7 +39711,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBREAKAWAY_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration)); } /*finally:*/ { @@ -36857,7 +39724,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1542, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1547, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -36868,7 +39735,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLBREAKAWAY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLABANDONEDBABY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -36954,7 +39821,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1548, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -36973,7 +39840,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -36995,16 +39862,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLADVANCEBLOCK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU, "CDLCLOSINGMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU = {"CDLCLOSINGMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_88CDLADVANCEBLOCK, "CDLADVANCEBLOCK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLADVANCEBLOCK(open, high, low, close)\n\nAdvance Block (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_89CDLADVANCEBLOCK = {"CDLADVANCEBLOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_89CDLADVANCEBLOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_88CDLADVANCEBLOCK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLADVANCEBLOCK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -37025,7 +39892,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLADVANCEBLOCK (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37037,44 +39904,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1551, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1556, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCLOSINGMARUBOZU", 0) < (0)) __PYX_ERR(6, 1551, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLADVANCEBLOCK", 0) < (0)) __PYX_ERR(6, 1556, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, i); __PYX_ERR(6, 1551, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, i); __PYX_ERR(6, 1556, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1556, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1556, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1556, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1556, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -37083,22 +39950,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1551, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1556, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1553, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1553, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1553, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1553, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1558, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1558, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1558, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1558, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_88CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -37117,7 +39984,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -37143,33 +40010,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU", 0); + __Pyx_RefNannySetupContext("CDLADVANCEBLOCK", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1570, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1571, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1572, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1573, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1574, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1579, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -37177,7 +40044,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1576, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -37213,7 +40080,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1580, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1585, __pyx_L1_error) /*try:*/ { @@ -37223,7 +40090,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCLOSINGMARUBOZU_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLADVANCEBLOCK_Lookback()); } /*finally:*/ { @@ -37236,7 +40103,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1584, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1589, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -37247,7 +40114,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLADVANCEBLOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -37333,7 +40200,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1590, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -37352,7 +40219,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -37374,16 +40241,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLBELTHOLD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_88CDLCONCEALBABYSWALL, "CDLCONCEALBABYSWALL(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_89CDLCONCEALBABYSWALL = {"CDLCONCEALBABYSWALL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_88CDLCONCEALBABYSWALL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_90CDLBELTHOLD, "CDLBELTHOLD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_91CDLBELTHOLD = {"CDLBELTHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_91CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_90CDLBELTHOLD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLBELTHOLD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -37404,7 +40271,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLBELTHOLD (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37416,44 +40283,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1593, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1598, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1598, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1598, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1598, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1598, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCONCEALBABYSWALL", 0) < (0)) __PYX_ERR(6, 1593, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBELTHOLD", 0) < (0)) __PYX_ERR(6, 1598, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, i); __PYX_ERR(6, 1593, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, i); __PYX_ERR(6, 1598, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1598, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1598, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1598, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1598, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -37462,22 +40329,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1593, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1598, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1595, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1595, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1595, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1595, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1600, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1600, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1600, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1600, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_90CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -37496,7 +40363,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -37522,33 +40389,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL", 0); + __Pyx_RefNannySetupContext("CDLBELTHOLD", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1612, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1613, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1614, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1615, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1616, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1621, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -37556,7 +40423,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED Py if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1618, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -37592,7 +40459,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED Py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1622, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1627, __pyx_L1_error) /*try:*/ { @@ -37602,7 +40469,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCONCEALBABYSWALL_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_Lookback()); } /*finally:*/ { @@ -37615,7 +40482,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1626, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1631, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -37626,7 +40493,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLCONCEALBABYSWALL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLBELTHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -37712,7 +40579,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED Py __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1632, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -37731,7 +40598,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -37753,16 +40620,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLBREAKAWAY(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_90CDLCOUNTERATTACK, "CDLCOUNTERATTACK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_91CDLCOUNTERATTACK = {"CDLCOUNTERATTACK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_90CDLCOUNTERATTACK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_92CDLBREAKAWAY, "CDLBREAKAWAY(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_93CDLBREAKAWAY = {"CDLBREAKAWAY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_93CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_92CDLBREAKAWAY}; +static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLBREAKAWAY(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -37783,7 +40650,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLCOUNTERATTACK (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLBREAKAWAY (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37795,44 +40662,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1635, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1640, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1635, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1635, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1635, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1635, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCOUNTERATTACK", 0) < (0)) __PYX_ERR(6, 1635, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBREAKAWAY", 0) < (0)) __PYX_ERR(6, 1640, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, i); __PYX_ERR(6, 1635, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, i); __PYX_ERR(6, 1640, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1635, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1640, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1635, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1640, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1635, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1640, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1635, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1640, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -37841,22 +40708,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1635, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1640, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1637, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1637, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1637, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1637, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1642, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1642, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1642, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1642, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_92CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -37875,7 +40742,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -37901,33 +40768,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLCOUNTERATTACK", 0); + __Pyx_RefNannySetupContext("CDLBREAKAWAY", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1654, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1655, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1656, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1657, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1658, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1663, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -37935,7 +40802,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObj if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1660, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -37971,7 +40838,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObj __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1664, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1669, __pyx_L1_error) /*try:*/ { @@ -37981,7 +40848,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCOUNTERATTACK_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBREAKAWAY_Lookback()); } /*finally:*/ { @@ -37994,7 +40861,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1668, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1673, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -38005,7 +40872,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLCOUNTERATTACK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLBREAKAWAY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -38091,7 +40958,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObj __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1674, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -38110,7 +40977,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -38132,16 +40999,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLCLOSINGMARUBOZU(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_92CDLDARKCLOUDCOVER, "CDLDARKCLOUDCOVER(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_93CDLDARKCLOUDCOVER = {"CDLDARKCLOUDCOVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_92CDLDARKCLOUDCOVER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_94CDLCLOSINGMARUBOZU, "CDLCLOSINGMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_95CDLCLOSINGMARUBOZU = {"CDLCLOSINGMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_95CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_94CDLCLOSINGMARUBOZU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLCLOSINGMARUBOZU(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -38152,18 +41019,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -38173,86 +41039,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1677, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1682, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1677, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDARKCLOUDCOVER", 0) < (0)) __PYX_ERR(6, 1677, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCLOSINGMARUBOZU", 0) < (0)) __PYX_ERR(6, 1682, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, i); __PYX_ERR(6, 1677, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, i); __PYX_ERR(6, 1682, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1677, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1677, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1677, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1677, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1677, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1682, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1682, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1682, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1682, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 1679, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.5)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 1677, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1682, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1679, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1679, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1679, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1679, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1684, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1684, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1684, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1684, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_94CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -38267,12 +41117,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -38298,33 +41147,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER", 0); + __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1698, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1699, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1700, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1701, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1702, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1705, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -38332,7 +41181,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1704, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -38368,7 +41217,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1708, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1711, __pyx_L1_error) /*try:*/ { @@ -38378,7 +41227,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCLOSINGMARUBOZU_Lookback()); } /*finally:*/ { @@ -38391,7 +41240,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1712, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1715, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -38402,7 +41251,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLDARKCLOUDCOVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -38488,7 +41337,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1718, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -38507,7 +41356,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -38529,16 +41378,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLCONCEALBABYSWALL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_94CDLDOJI, "CDLDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_95CDLDOJI = {"CDLDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_95CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_94CDLDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_96CDLCONCEALBABYSWALL, "CDLCONCEALBABYSWALL(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_97CDLCONCEALBABYSWALL = {"CDLCONCEALBABYSWALL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_97CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_96CDLCONCEALBABYSWALL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLCONCEALBABYSWALL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -38559,7 +41408,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -38571,44 +41420,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1721, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1724, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1724, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1724, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1724, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1724, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJI", 0) < (0)) __PYX_ERR(6, 1721, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCONCEALBABYSWALL", 0) < (0)) __PYX_ERR(6, 1724, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, i); __PYX_ERR(6, 1721, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, i); __PYX_ERR(6, 1724, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1724, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1724, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1724, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1724, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -38617,22 +41466,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1721, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1724, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1723, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1723, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1723, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1723, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_94CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1726, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1726, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1726, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1726, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_96CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -38651,7 +41500,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -38677,33 +41526,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDOJI", 0); + __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1740, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1741, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1742, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1743, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1744, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1747, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -38711,7 +41560,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__py if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1746, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -38747,7 +41596,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1750, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1753, __pyx_L1_error) /*try:*/ { @@ -38757,7 +41606,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCONCEALBABYSWALL_Lookback()); } /*finally:*/ { @@ -38770,7 +41619,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1754, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1757, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -38781,7 +41630,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -38867,7 +41716,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__py __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1760, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -38886,7 +41735,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -38908,16 +41757,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLCOUNTERATTACK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_96CDLDOJISTAR, "CDLDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_97CDLDOJISTAR = {"CDLDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_96CDLDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_98CDLCOUNTERATTACK, "CDLCOUNTERATTACK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_99CDLCOUNTERATTACK = {"CDLCOUNTERATTACK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_99CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_98CDLCOUNTERATTACK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLCOUNTERATTACK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -38938,7 +41787,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLCOUNTERATTACK (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -38950,44 +41799,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1763, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1766, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1766, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1766, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1766, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1766, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJISTAR", 0) < (0)) __PYX_ERR(6, 1763, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCOUNTERATTACK", 0) < (0)) __PYX_ERR(6, 1766, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, i); __PYX_ERR(6, 1763, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, i); __PYX_ERR(6, 1766, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1766, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1766, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1766, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1766, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -38996,22 +41845,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1763, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1766, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1765, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1765, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1765, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1765, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1768, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1768, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1768, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1768, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_98CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -39030,7 +41879,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -39056,33 +41905,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDOJISTAR", 0); + __Pyx_RefNannySetupContext("CDLCOUNTERATTACK", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1782, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1783, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1784, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1785, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1786, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1789, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -39090,7 +41939,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject * if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1788, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -39126,7 +41975,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject * __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1792, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1795, __pyx_L1_error) /*try:*/ { @@ -39136,7 +41985,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJISTAR_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCOUNTERATTACK_Lookback()); } /*finally:*/ { @@ -39149,7 +41998,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1796, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1799, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -39160,7 +42009,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLCOUNTERATTACK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -39246,7 +42095,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject * __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1802, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39265,7 +42114,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -39287,16 +42136,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLDARKCLOUDCOVER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_98CDLDRAGONFLYDOJI, "CDLDRAGONFLYDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_99CDLDRAGONFLYDOJI = {"CDLDRAGONFLYDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_98CDLDRAGONFLYDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_100CDLDARKCLOUDCOVER, "CDLDARKCLOUDCOVER(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_101CDLDARKCLOUDCOVER = {"CDLDARKCLOUDCOVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_101CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_100CDLDARKCLOUDCOVER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLDARKCLOUDCOVER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -39307,17 +42156,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -39327,70 +42177,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1805, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1808, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1808, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1808, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1808, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1808, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1808, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDRAGONFLYDOJI", 0) < (0)) __PYX_ERR(6, 1805, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDARKCLOUDCOVER", 0) < (0)) __PYX_ERR(6, 1808, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, i); __PYX_ERR(6, 1805, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, i); __PYX_ERR(6, 1808, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1805, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1805, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1805, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1805, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1808, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1808, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1808, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1808, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1808, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 1810, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.5)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1805, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 1808, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1807, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1807, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1807, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1807, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1810, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1810, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1810, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1810, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_100CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -39405,11 +42271,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -39435,33 +42302,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI", 0); + __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1824, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1825, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1826, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1827, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1828, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1833, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -39469,7 +42336,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1830, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -39505,7 +42372,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1834, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1839, __pyx_L1_error) /*try:*/ { @@ -39515,7 +42382,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDRAGONFLYDOJI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration)); } /*finally:*/ { @@ -39528,7 +42395,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1838, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1843, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -39539,7 +42406,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLDRAGONFLYDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -39625,7 +42492,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1844, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39644,7 +42511,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -39666,16 +42533,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLENGULFING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_100CDLENGULFING, "CDLENGULFING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_101CDLENGULFING = {"CDLENGULFING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_101CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_100CDLENGULFING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLENGULFING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_102CDLDOJI, "CDLDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_103CDLDOJI = {"CDLDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_103CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_102CDLDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -39696,7 +42563,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLENGULFING (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLDOJI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -39708,44 +42575,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1847, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1852, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1847, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1852, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1847, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1852, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1847, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1852, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1847, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1852, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLENGULFING", 0) < (0)) __PYX_ERR(6, 1847, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJI", 0) < (0)) __PYX_ERR(6, 1852, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, i); __PYX_ERR(6, 1847, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, i); __PYX_ERR(6, 1852, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1847, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1852, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1847, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1852, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1847, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1852, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1847, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1852, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -39754,22 +42621,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1847, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1852, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1849, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1849, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1849, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1849, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_100CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1854, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1854, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1854, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1854, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_102CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -39788,7 +42655,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -39814,33 +42681,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLENGULFING", 0); + __Pyx_RefNannySetupContext("CDLDOJI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1866, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1867, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1868, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1869, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1870, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1875, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -39848,7 +42715,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1872, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -39884,7 +42751,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1876, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1881, __pyx_L1_error) /*try:*/ { @@ -39894,7 +42761,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLENGULFING_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJI_Lookback()); } /*finally:*/ { @@ -39907,7 +42774,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1880, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1885, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -39918,7 +42785,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLENGULFING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -40004,7 +42871,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1886, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -40023,7 +42890,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -40045,16 +42912,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLDOJISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_102CDLEVENINGDOJISTAR, "CDLEVENINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_103CDLEVENINGDOJISTAR = {"CDLEVENINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_102CDLEVENINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_104CDLDOJISTAR, "CDLDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_105CDLDOJISTAR = {"CDLDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_105CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_104CDLDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLDOJISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -40065,18 +42932,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLDOJISTAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -40086,86 +42952,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1889, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1894, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1889, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1894, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1894, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1894, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1894, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGDOJISTAR", 0) < (0)) __PYX_ERR(6, 1889, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJISTAR", 0) < (0)) __PYX_ERR(6, 1894, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(6, 1889, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, i); __PYX_ERR(6, 1894, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1889, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1889, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1889, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1889, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1889, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1894, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1894, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1894, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1894, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 1891, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 1889, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1894, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1891, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1891, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1891, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1891, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1896, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1896, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1896, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1896, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_104CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -40180,12 +43030,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -40211,33 +43060,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR", 0); + __Pyx_RefNannySetupContext("CDLDOJISTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1910, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1911, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1912, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1913, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1914, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1917, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -40245,7 +43094,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED Py if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1916, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -40281,7 +43130,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED Py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1920, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1923, __pyx_L1_error) /*try:*/ { @@ -40291,7 +43140,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJISTAR_Lookback()); } /*finally:*/ { @@ -40304,7 +43153,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1924, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1927, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -40315,7 +43164,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLEVENINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -40401,7 +43250,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED Py __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1930, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -40420,7 +43269,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -40442,16 +43291,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLDRAGONFLYDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_104CDLEVENINGSTAR, "CDLEVENINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_105CDLEVENINGSTAR = {"CDLEVENINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_104CDLEVENINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_106CDLDRAGONFLYDOJI, "CDLDRAGONFLYDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_107CDLDRAGONFLYDOJI = {"CDLDRAGONFLYDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_107CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_106CDLDRAGONFLYDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLDRAGONFLYDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -40462,18 +43311,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLEVENINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -40483,86 +43331,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1933, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1936, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1933, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1933, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1936, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1933, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1936, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1933, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1936, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1933, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1936, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGSTAR", 0) < (0)) __PYX_ERR(6, 1933, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDRAGONFLYDOJI", 0) < (0)) __PYX_ERR(6, 1936, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, i); __PYX_ERR(6, 1933, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, i); __PYX_ERR(6, 1936, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 1933, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1933, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1933, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1933, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1933, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1936, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1936, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1936, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1936, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 1935, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 1933, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1936, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1935, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1935, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1935, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1935, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1938, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1938, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1938, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1938, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_106CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -40577,12 +43409,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -40608,33 +43439,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLEVENINGSTAR", 0); + __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1954, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1955, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1956, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1957, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1958, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 1959, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -40642,7 +43473,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObje if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1960, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -40678,7 +43509,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObje __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1964, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 1965, __pyx_L1_error) /*try:*/ { @@ -40688,7 +43519,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDRAGONFLYDOJI_Lookback()); } /*finally:*/ { @@ -40701,7 +43532,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1968, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1969, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -40712,7 +43543,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLEVENINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -40798,7 +43629,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObje __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1974, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -40817,7 +43648,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -40839,16 +43670,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLENGULFING(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE, "CDLGAPSIDESIDEWHITE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE = {"CDLGAPSIDESIDEWHITE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_108CDLENGULFING, "CDLENGULFING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_109CDLENGULFING = {"CDLENGULFING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_109CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_108CDLENGULFING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLENGULFING(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -40869,7 +43700,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLENGULFING (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -40881,44 +43712,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1977, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 1978, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGAPSIDESIDEWHITE", 0) < (0)) __PYX_ERR(6, 1977, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLENGULFING", 0) < (0)) __PYX_ERR(6, 1978, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, i); __PYX_ERR(6, 1977, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, i); __PYX_ERR(6, 1978, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 1978, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 1978, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 1978, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 1978, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -40927,22 +43758,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1977, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 1978, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1979, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1979, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1979, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1979, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 1980, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 1980, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 1980, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 1980, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_108CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -40961,7 +43792,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -40987,33 +43818,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED P int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE", 0); + __Pyx_RefNannySetupContext("CDLENGULFING", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1996, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1997, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1998, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 1999, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2000, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2001, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -41021,7 +43852,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED P if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2002, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -41057,7 +43888,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED P __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2006, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2007, __pyx_L1_error) /*try:*/ { @@ -41067,7 +43898,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGAPSIDESIDEWHITE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLENGULFING_Lookback()); } /*finally:*/ { @@ -41080,7 +43911,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED P } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2010, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2011, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -41091,7 +43922,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLENGULFING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -41177,7 +44008,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED P __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2016, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -41196,7 +44027,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED P /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -41218,16 +44049,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLEVENINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_108CDLGRAVESTONEDOJI, "CDLGRAVESTONEDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_109CDLGRAVESTONEDOJI = {"CDLGRAVESTONEDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_108CDLGRAVESTONEDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_110CDLEVENINGDOJISTAR, "CDLEVENINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_111CDLEVENINGDOJISTAR = {"CDLEVENINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_111CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_110CDLEVENINGDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLEVENINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -41238,17 +44069,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -41258,70 +44090,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2019, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2020, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2020, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2019, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2019, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2019, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2019, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGRAVESTONEDOJI", 0) < (0)) __PYX_ERR(6, 2019, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGDOJISTAR", 0) < (0)) __PYX_ERR(6, 2020, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, i); __PYX_ERR(6, 2019, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(6, 2020, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2019, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2019, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2019, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2019, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2020, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2020, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2020, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2020, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2020, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 2022, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2019, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 2020, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2021, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2021, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2021, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2021, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2022, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2022, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2022, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2022, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_110CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -41336,11 +44184,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -41366,33 +44215,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI", 0); + __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2038, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2039, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2040, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2041, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2042, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2045, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -41400,7 +44249,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2044, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -41436,7 +44285,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2048, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2051, __pyx_L1_error) /*try:*/ { @@ -41446,7 +44295,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGRAVESTONEDOJI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration)); } /*finally:*/ { @@ -41459,7 +44308,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2052, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2055, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -41470,7 +44319,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLGRAVESTONEDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -41556,7 +44405,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2058, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -41575,7 +44424,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -41597,16 +44446,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHAMMER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLEVENINGSTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_110CDLHAMMER, "CDLHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_111CDLHAMMER = {"CDLHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_111CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_110CDLHAMMER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHAMMER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_112CDLEVENINGSTAR, "CDLEVENINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_113CDLEVENINGSTAR = {"CDLEVENINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_113CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_112CDLEVENINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLEVENINGSTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -41617,17 +44466,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHAMMER (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLEVENINGSTAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -41637,70 +44487,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2061, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2064, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2064, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2061, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2061, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2061, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2061, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHAMMER", 0) < (0)) __PYX_ERR(6, 2061, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGSTAR", 0) < (0)) __PYX_ERR(6, 2064, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, i); __PYX_ERR(6, 2061, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, i); __PYX_ERR(6, 2064, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2061, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2061, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2061, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2061, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2064, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2064, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2064, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2064, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2064, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 2066, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2061, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 2064, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2063, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2063, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2063, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2063, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_110CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2066, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2066, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2066, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2066, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_112CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -41715,11 +44581,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -41745,33 +44612,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHAMMER", 0); + __Pyx_RefNannySetupContext("CDLEVENINGSTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2080, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2081, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2082, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2083, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2084, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2089, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -41779,7 +44646,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *_ if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2086, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -41815,7 +44682,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2090, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2095, __pyx_L1_error) /*try:*/ { @@ -41825,7 +44692,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHAMMER_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration)); } /*finally:*/ { @@ -41838,7 +44705,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2094, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2099, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -41849,7 +44716,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLEVENINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -41935,7 +44802,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2100, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -41954,7 +44821,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -41976,16 +44843,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_112CDLHANGINGMAN, "CDLHANGINGMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_113CDLHANGINGMAN = {"CDLHANGINGMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_112CDLHANGINGMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_114CDLGAPSIDESIDEWHITE, "CDLGAPSIDESIDEWHITE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_115CDLGAPSIDESIDEWHITE = {"CDLGAPSIDESIDEWHITE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_115CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_114CDLGAPSIDESIDEWHITE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -42006,7 +44873,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHANGINGMAN (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -42018,44 +44885,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2103, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2108, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHANGINGMAN", 0) < (0)) __PYX_ERR(6, 2103, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGAPSIDESIDEWHITE", 0) < (0)) __PYX_ERR(6, 2108, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, i); __PYX_ERR(6, 2103, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, i); __PYX_ERR(6, 2108, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2108, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2108, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2108, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2108, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -42064,22 +44931,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2103, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2108, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2105, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2105, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2105, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2105, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2110, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2110, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2110, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2110, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_114CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -42098,7 +44965,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -42124,33 +44991,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObjec int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHANGINGMAN", 0); + __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2122, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2123, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2124, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2125, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2126, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2131, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -42158,7 +45025,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObjec if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2128, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -42194,7 +45061,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObjec __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2132, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2137, __pyx_L1_error) /*try:*/ { @@ -42204,7 +45071,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHANGINGMAN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGAPSIDESIDEWHITE_Lookback()); } /*finally:*/ { @@ -42217,7 +45084,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2136, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2141, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -42228,7 +45095,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHANGINGMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -42314,7 +45181,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObjec __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2142, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -42333,7 +45200,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObjec /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -42355,16 +45222,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHARAMI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLGRAVESTONEDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_114CDLHARAMI, "CDLHARAMI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_115CDLHARAMI = {"CDLHARAMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_115CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_114CDLHARAMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHARAMI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_116CDLGRAVESTONEDOJI, "CDLGRAVESTONEDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_117CDLGRAVESTONEDOJI = {"CDLGRAVESTONEDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_117CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_116CDLGRAVESTONEDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLGRAVESTONEDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -42385,7 +45252,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHARAMI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -42397,44 +45264,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2145, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2150, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2145, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2150, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2145, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2150, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2145, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2150, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2145, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2150, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMI", 0) < (0)) __PYX_ERR(6, 2145, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGRAVESTONEDOJI", 0) < (0)) __PYX_ERR(6, 2150, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, i); __PYX_ERR(6, 2145, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, i); __PYX_ERR(6, 2150, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2145, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2150, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2145, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2150, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2145, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2150, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2145, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2150, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -42443,22 +45310,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2145, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2150, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2147, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2147, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2147, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2147, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_114CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2152, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2152, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2152, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2152, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_116CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -42477,7 +45344,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -42503,33 +45370,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHARAMI", 0); + __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2164, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2165, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2166, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2167, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2168, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2173, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -42537,7 +45404,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *_ if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2170, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -42573,7 +45440,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2174, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2179, __pyx_L1_error) /*try:*/ { @@ -42583,7 +45450,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGRAVESTONEDOJI_Lookback()); } /*finally:*/ { @@ -42596,7 +45463,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2178, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2183, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -42607,7 +45474,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHARAMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -42693,7 +45560,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2184, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -42712,7 +45579,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -42734,16 +45601,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHAMMER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_116CDLHARAMICROSS, "CDLHARAMICROSS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_117CDLHARAMICROSS = {"CDLHARAMICROSS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_116CDLHARAMICROSS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_118CDLHAMMER, "CDLHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_119CDLHAMMER = {"CDLHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_119CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_118CDLHAMMER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHAMMER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -42764,7 +45631,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHARAMICROSS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHAMMER (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -42776,44 +45643,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2187, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2192, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2192, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2192, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2192, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2192, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMICROSS", 0) < (0)) __PYX_ERR(6, 2187, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHAMMER", 0) < (0)) __PYX_ERR(6, 2192, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, i); __PYX_ERR(6, 2187, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, i); __PYX_ERR(6, 2192, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2192, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2192, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2192, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2192, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -42822,22 +45689,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2187, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2192, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2189, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2189, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2189, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2189, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2194, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2194, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2194, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2194, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_118CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -42856,7 +45723,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -42882,33 +45749,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHARAMICROSS", 0); + __Pyx_RefNannySetupContext("CDLHAMMER", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2206, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2207, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2208, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2209, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2210, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2215, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -42916,7 +45783,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObje if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2212, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -42952,7 +45819,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObje __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2216, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2221, __pyx_L1_error) /*try:*/ { @@ -42962,7 +45829,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMICROSS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHAMMER_Lookback()); } /*finally:*/ { @@ -42975,7 +45842,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2220, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2225, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -42986,7 +45853,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHARAMICROSS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -43072,7 +45939,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObje __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2226, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -43091,7 +45958,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -43113,16 +45980,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHANGINGMAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_118CDLHIGHWAVE, "CDLHIGHWAVE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_119CDLHIGHWAVE = {"CDLHIGHWAVE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_118CDLHIGHWAVE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_120CDLHANGINGMAN, "CDLHANGINGMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_121CDLHANGINGMAN = {"CDLHANGINGMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_121CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_120CDLHANGINGMAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHANGINGMAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -43143,7 +46010,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHIGHWAVE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHANGINGMAN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -43155,44 +46022,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2229, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2234, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2234, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2234, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2234, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2234, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIGHWAVE", 0) < (0)) __PYX_ERR(6, 2229, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHANGINGMAN", 0) < (0)) __PYX_ERR(6, 2234, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, i); __PYX_ERR(6, 2229, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, i); __PYX_ERR(6, 2234, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2234, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2234, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2234, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2234, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -43201,22 +46068,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2229, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2234, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2231, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2231, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2231, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2231, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2236, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2236, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2236, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2236, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_120CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -43235,7 +46102,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -43261,33 +46128,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHIGHWAVE", 0); + __Pyx_RefNannySetupContext("CDLHANGINGMAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2248, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2249, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2250, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2251, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2252, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2257, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -43295,7 +46162,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2254, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -43331,7 +46198,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2258, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2263, __pyx_L1_error) /*try:*/ { @@ -43341,7 +46208,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIGHWAVE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHANGINGMAN_Lookback()); } /*finally:*/ { @@ -43354,7 +46221,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2262, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2267, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -43365,7 +46232,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHIGHWAVE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHANGINGMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -43451,7 +46318,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2268, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -43470,7 +46337,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -43492,16 +46359,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHARAMI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_120CDLHIKKAKE, "CDLHIKKAKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_121CDLHIKKAKE = {"CDLHIKKAKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_120CDLHIKKAKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_122CDLHARAMI, "CDLHARAMI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_123CDLHARAMI = {"CDLHARAMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_123CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_122CDLHARAMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHARAMI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -43522,7 +46389,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHIKKAKE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHARAMI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -43534,44 +46401,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2271, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2276, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKE", 0) < (0)) __PYX_ERR(6, 2271, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMI", 0) < (0)) __PYX_ERR(6, 2276, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, i); __PYX_ERR(6, 2271, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, i); __PYX_ERR(6, 2276, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2276, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2276, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2276, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2276, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -43580,22 +46447,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2271, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2276, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2273, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2273, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2273, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2273, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2278, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2278, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2278, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2278, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_122CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -43614,7 +46481,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -43640,33 +46507,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHIKKAKE", 0); + __Pyx_RefNannySetupContext("CDLHARAMI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2290, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2291, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2292, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2293, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2294, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2299, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -43674,7 +46541,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject * if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2296, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -43710,7 +46577,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject * __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2300, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2305, __pyx_L1_error) /*try:*/ { @@ -43720,7 +46587,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMI_Lookback()); } /*finally:*/ { @@ -43733,7 +46600,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2304, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2309, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -43744,7 +46611,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHIKKAKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHARAMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -43830,7 +46697,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject * __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2310, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -43849,7 +46716,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -43871,16 +46738,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLHARAMICROSS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_122CDLHIKKAKEMOD, "CDLHIKKAKEMOD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_123CDLHIKKAKEMOD = {"CDLHIKKAKEMOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_122CDLHIKKAKEMOD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_124CDLHARAMICROSS, "CDLHARAMICROSS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_125CDLHARAMICROSS = {"CDLHARAMICROSS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_125CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_124CDLHARAMICROSS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLHARAMICROSS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -43901,7 +46768,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHIKKAKEMOD (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHARAMICROSS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -43913,44 +46780,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2313, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2318, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2318, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2318, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2318, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2318, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKEMOD", 0) < (0)) __PYX_ERR(6, 2313, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMICROSS", 0) < (0)) __PYX_ERR(6, 2318, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, i); __PYX_ERR(6, 2313, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, i); __PYX_ERR(6, 2318, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2318, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2318, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2318, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2318, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -43959,22 +46826,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2313, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2318, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2315, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2315, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2315, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2315, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2320, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2320, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2320, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2320, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_124CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -43993,7 +46860,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -44019,33 +46886,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHIKKAKEMOD", 0); + __Pyx_RefNannySetupContext("CDLHARAMICROSS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2332, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2333, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2334, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2335, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2336, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2341, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -44053,7 +46920,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2338, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -44089,7 +46956,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2342, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2347, __pyx_L1_error) /*try:*/ { @@ -44099,7 +46966,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKEMOD_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMICROSS_Lookback()); } /*finally:*/ { @@ -44112,7 +46979,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2346, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2351, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -44123,7 +46990,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHIKKAKEMOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHARAMICROSS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -44209,7 +47076,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2352, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -44228,7 +47095,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -44250,16 +47117,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLHOMINGPIGEON(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLHIGHWAVE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_124CDLHOMINGPIGEON, "CDLHOMINGPIGEON(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHOMINGPIGEON(open, high, low, close)\n\nHoming Pigeon (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_125CDLHOMINGPIGEON = {"CDLHOMINGPIGEON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_125CDLHOMINGPIGEON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_124CDLHOMINGPIGEON}; -static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLHOMINGPIGEON(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_126CDLHIGHWAVE, "CDLHIGHWAVE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_127CDLHIGHWAVE = {"CDLHIGHWAVE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_127CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_126CDLHIGHWAVE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLHIGHWAVE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -44280,7 +47147,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHOMINGPIGEON (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHIGHWAVE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -44292,44 +47159,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2355, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2360, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2355, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2355, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2355, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2355, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHOMINGPIGEON", 0) < (0)) __PYX_ERR(6, 2355, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIGHWAVE", 0) < (0)) __PYX_ERR(6, 2360, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, i); __PYX_ERR(6, 2355, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, i); __PYX_ERR(6, 2360, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2355, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2360, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2355, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2360, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2355, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2360, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2355, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2360, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -44338,22 +47205,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2355, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2360, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2357, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2357, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2357, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2357, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2362, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2362, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2362, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2362, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_126CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -44372,7 +47239,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -44398,33 +47265,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHOMINGPIGEON", 0); + __Pyx_RefNannySetupContext("CDLHIGHWAVE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2374, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2375, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2376, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2377, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2378, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2383, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -44432,7 +47299,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObj if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2380, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -44468,7 +47335,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObj __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2384, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2389, __pyx_L1_error) /*try:*/ { @@ -44478,7 +47345,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHOMINGPIGEON_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIGHWAVE_Lookback()); } /*finally:*/ { @@ -44491,7 +47358,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2388, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2393, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -44502,7 +47369,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHOMINGPIGEON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHIGHWAVE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -44588,7 +47455,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObj __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2394, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -44607,7 +47474,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -44629,16 +47496,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLIDENTICAL3CROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLHIKKAKE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_126CDLIDENTICAL3CROWS, "CDLIDENTICAL3CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLIDENTICAL3CROWS(open, high, low, close)\n\nIdentical Three Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_127CDLIDENTICAL3CROWS = {"CDLIDENTICAL3CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_127CDLIDENTICAL3CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_126CDLIDENTICAL3CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLIDENTICAL3CROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_128CDLHIKKAKE, "CDLHIKKAKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_129CDLHIKKAKE = {"CDLHIKKAKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_129CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_128CDLHIKKAKE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLHIKKAKE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -44659,7 +47526,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHIKKAKE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -44671,44 +47538,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2397, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2402, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2397, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2402, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2397, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2402, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2397, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2402, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2397, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2402, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLIDENTICAL3CROWS", 0) < (0)) __PYX_ERR(6, 2397, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKE", 0) < (0)) __PYX_ERR(6, 2402, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, i); __PYX_ERR(6, 2397, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, i); __PYX_ERR(6, 2402, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2397, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2402, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2397, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2402, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2397, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2402, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2397, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2402, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -44717,22 +47584,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2397, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2402, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2399, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2399, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2399, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2399, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2404, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2404, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2404, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2404, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_128CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -44751,7 +47618,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -44777,33 +47644,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS", 0); + __Pyx_RefNannySetupContext("CDLHIKKAKE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2416, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2417, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2418, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2419, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2420, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2425, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -44811,7 +47678,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED Py if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2422, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -44847,7 +47714,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED Py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2426, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2431, __pyx_L1_error) /*try:*/ { @@ -44857,7 +47724,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLIDENTICAL3CROWS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKE_Lookback()); } /*finally:*/ { @@ -44870,7 +47737,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2430, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2435, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -44881,7 +47748,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLIDENTICAL3CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHIKKAKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -44967,7 +47834,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED Py __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2436, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -44986,7 +47853,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -45008,16 +47875,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLINNECK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLHIKKAKEMOD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_128CDLINNECK, "CDLINNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINNECK(open, high, low, close)\n\nIn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_129CDLINNECK = {"CDLINNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_129CDLINNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_128CDLINNECK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLINNECK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_130CDLHIKKAKEMOD, "CDLHIKKAKEMOD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_131CDLHIKKAKEMOD = {"CDLHIKKAKEMOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_131CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_130CDLHIKKAKEMOD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLHIKKAKEMOD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -45038,7 +47905,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLINNECK (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHIKKAKEMOD (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -45050,44 +47917,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2439, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2444, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2444, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2444, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2444, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2444, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINNECK", 0) < (0)) __PYX_ERR(6, 2439, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKEMOD", 0) < (0)) __PYX_ERR(6, 2444, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, i); __PYX_ERR(6, 2439, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, i); __PYX_ERR(6, 2444, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2444, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2444, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2444, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2444, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -45096,22 +47963,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2439, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2444, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2441, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2441, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2441, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2441, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_128CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2446, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2446, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2446, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2446, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_130CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -45130,7 +47997,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -45156,33 +48023,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLINNECK", 0); + __Pyx_RefNannySetupContext("CDLHIKKAKEMOD", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2458, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2459, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2460, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2461, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2462, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2467, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -45190,7 +48057,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *_ if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2464, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -45226,7 +48093,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2468, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2473, __pyx_L1_error) /*try:*/ { @@ -45236,7 +48103,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINNECK_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKEMOD_Lookback()); } /*finally:*/ { @@ -45249,7 +48116,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2472, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2477, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -45260,7 +48127,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLINNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHIKKAKEMOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -45346,7 +48213,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2478, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -45365,7 +48232,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -45387,16 +48254,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLINVERTEDHAMMER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLHOMINGPIGEON(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_130CDLINVERTEDHAMMER, "CDLINVERTEDHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINVERTEDHAMMER(open, high, low, close)\n\nInverted Hammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_131CDLINVERTEDHAMMER = {"CDLINVERTEDHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_131CDLINVERTEDHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_130CDLINVERTEDHAMMER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLINVERTEDHAMMER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_132CDLHOMINGPIGEON, "CDLHOMINGPIGEON(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHOMINGPIGEON(open, high, low, close)\n\nHoming Pigeon (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_133CDLHOMINGPIGEON = {"CDLHOMINGPIGEON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_133CDLHOMINGPIGEON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_132CDLHOMINGPIGEON}; +static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLHOMINGPIGEON(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -45417,7 +48284,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHOMINGPIGEON (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -45429,44 +48296,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2481, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2486, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2481, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2481, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2481, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2481, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINVERTEDHAMMER", 0) < (0)) __PYX_ERR(6, 2481, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHOMINGPIGEON", 0) < (0)) __PYX_ERR(6, 2486, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, i); __PYX_ERR(6, 2481, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, i); __PYX_ERR(6, 2486, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2481, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2486, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2481, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2486, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2481, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2486, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2481, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2486, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -45475,22 +48342,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2481, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2486, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2483, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2483, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2483, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2483, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2488, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2488, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2488, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2488, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_132CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -45509,7 +48376,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -45535,33 +48402,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyO int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER", 0); + __Pyx_RefNannySetupContext("CDLHOMINGPIGEON", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2500, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2501, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2502, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2503, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2504, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2509, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -45569,7 +48436,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyO if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2506, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -45605,7 +48472,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyO __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2510, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2515, __pyx_L1_error) /*try:*/ { @@ -45615,7 +48482,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINVERTEDHAMMER_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHOMINGPIGEON_Lookback()); } /*finally:*/ { @@ -45628,7 +48495,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyO } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2514, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2519, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -45639,7 +48506,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLINVERTEDHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHOMINGPIGEON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -45725,7 +48592,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyO __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2520, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -45744,7 +48611,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -45766,16 +48633,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLKICKING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLIDENTICAL3CROWS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_132CDLKICKING, "CDLKICKING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKING(open, high, low, close)\n\nKicking (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_133CDLKICKING = {"CDLKICKING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_133CDLKICKING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_132CDLKICKING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLKICKING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_134CDLIDENTICAL3CROWS, "CDLIDENTICAL3CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLIDENTICAL3CROWS(open, high, low, close)\n\nIdentical Three Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_135CDLIDENTICAL3CROWS = {"CDLIDENTICAL3CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_135CDLIDENTICAL3CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_134CDLIDENTICAL3CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLIDENTICAL3CROWS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -45796,7 +48663,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLKICKING (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -45808,44 +48675,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2523, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2528, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2528, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2528, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2528, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2528, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKING", 0) < (0)) __PYX_ERR(6, 2523, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLIDENTICAL3CROWS", 0) < (0)) __PYX_ERR(6, 2528, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, i); __PYX_ERR(6, 2523, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, i); __PYX_ERR(6, 2528, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2528, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2528, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2528, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2528, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -45854,22 +48721,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2523, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2528, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2525, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2525, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2525, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2525, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_132CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2530, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2530, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2530, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2530, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_134CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -45888,7 +48755,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -45914,33 +48781,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLKICKING", 0); + __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2542, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2543, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2544, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2545, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2546, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2551, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -45948,7 +48815,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject * if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2548, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -45984,7 +48851,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject * __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2552, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2557, __pyx_L1_error) /*try:*/ { @@ -45994,7 +48861,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKING_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLIDENTICAL3CROWS_Lookback()); } /*finally:*/ { @@ -46007,7 +48874,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2556, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2561, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -46018,7 +48885,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLKICKING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -46104,7 +48971,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject * __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2562, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -46123,7 +48990,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -46145,16 +49012,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLINNECK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_134CDLKICKINGBYLENGTH, "CDLKICKINGBYLENGTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_135CDLKICKINGBYLENGTH = {"CDLKICKINGBYLENGTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_134CDLKICKINGBYLENGTH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_136CDLINNECK, "CDLINNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINNECK(open, high, low, close)\n\nIn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_137CDLINNECK = {"CDLINNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_137CDLINNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_136CDLINNECK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLINNECK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -46175,7 +49042,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLINNECK (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -46187,44 +49054,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2565, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2570, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2570, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2570, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2570, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2570, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKINGBYLENGTH", 0) < (0)) __PYX_ERR(6, 2565, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINNECK", 0) < (0)) __PYX_ERR(6, 2570, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, i); __PYX_ERR(6, 2565, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, i); __PYX_ERR(6, 2570, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2570, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2570, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2570, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2570, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -46233,22 +49100,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2565, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2570, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2567, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2567, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2567, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2567, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2572, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2572, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2572, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2572, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_136CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -46267,7 +49134,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -46293,33 +49160,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH", 0); + __Pyx_RefNannySetupContext("CDLINNECK", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2584, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2585, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2586, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2587, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2588, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2593, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -46327,7 +49194,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED Py if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2590, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -46363,7 +49230,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED Py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2594, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2599, __pyx_L1_error) /*try:*/ { @@ -46373,7 +49240,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKINGBYLENGTH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINNECK_Lookback()); } /*finally:*/ { @@ -46386,7 +49253,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2598, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2603, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -46397,7 +49264,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLKICKINGBYLENGTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLINNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -46483,7 +49350,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED Py __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2604, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -46502,7 +49369,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -46524,16 +49391,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLINVERTEDHAMMER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_136CDLLADDERBOTTOM, "CDLLADDERBOTTOM(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_137CDLLADDERBOTTOM = {"CDLLADDERBOTTOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_136CDLLADDERBOTTOM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_138CDLINVERTEDHAMMER, "CDLINVERTEDHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINVERTEDHAMMER(open, high, low, close)\n\nInverted Hammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_139CDLINVERTEDHAMMER = {"CDLINVERTEDHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_139CDLINVERTEDHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_138CDLINVERTEDHAMMER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLINVERTEDHAMMER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -46554,7 +49421,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLLADDERBOTTOM (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -46566,44 +49433,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2607, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2612, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2612, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2612, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2612, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2612, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLADDERBOTTOM", 0) < (0)) __PYX_ERR(6, 2607, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINVERTEDHAMMER", 0) < (0)) __PYX_ERR(6, 2612, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, i); __PYX_ERR(6, 2607, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, i); __PYX_ERR(6, 2612, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2612, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2612, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2612, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2612, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -46612,22 +49479,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2607, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2612, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2609, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2609, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2609, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2609, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2614, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2614, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2614, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2614, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_138CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -46646,7 +49513,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -46672,33 +49539,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLLADDERBOTTOM", 0); + __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2626, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2627, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2628, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2629, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2630, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2635, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -46706,7 +49573,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObj if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2632, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -46742,7 +49609,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObj __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2636, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2641, __pyx_L1_error) /*try:*/ { @@ -46752,7 +49619,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLADDERBOTTOM_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINVERTEDHAMMER_Lookback()); } /*finally:*/ { @@ -46765,7 +49632,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2640, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2645, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -46776,7 +49643,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLLADDERBOTTOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLINVERTEDHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -46862,7 +49729,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObj __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2646, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -46881,7 +49748,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -46903,16 +49770,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLKICKING(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI, "CDLLONGLEGGEDDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI = {"CDLLONGLEGGEDDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_140CDLKICKING, "CDLKICKING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKING(open, high, low, close)\n\nKicking (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_141CDLKICKING = {"CDLKICKING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_141CDLKICKING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_140CDLKICKING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLKICKING(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -46933,7 +49800,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLKICKING (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -46945,44 +49812,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2649, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2654, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2654, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2654, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2654, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2654, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLEGGEDDOJI", 0) < (0)) __PYX_ERR(6, 2649, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKING", 0) < (0)) __PYX_ERR(6, 2654, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, i); __PYX_ERR(6, 2649, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, i); __PYX_ERR(6, 2654, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2654, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2654, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2654, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2654, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -46991,22 +49858,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2649, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2654, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2651, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2651, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2651, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2651, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2656, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2656, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2656, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2656, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_140CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -47025,7 +49892,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -47051,33 +49918,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI", 0); + __Pyx_RefNannySetupContext("CDLKICKING", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2668, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2669, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2670, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2671, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2672, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2677, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -47085,7 +49952,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2674, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -47121,7 +49988,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2678, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2683, __pyx_L1_error) /*try:*/ { @@ -47131,7 +49998,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLEGGEDDOJI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKING_Lookback()); } /*finally:*/ { @@ -47144,7 +50011,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2682, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2687, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -47155,7 +50022,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLKICKING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -47241,7 +50108,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2688, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -47260,7 +50127,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -47282,16 +50149,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLKICKINGBYLENGTH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_140CDLLONGLINE, "CDLLONGLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_141CDLLONGLINE = {"CDLLONGLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_140CDLLONGLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_142CDLKICKINGBYLENGTH, "CDLKICKINGBYLENGTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_143CDLKICKINGBYLENGTH = {"CDLKICKINGBYLENGTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_143CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_142CDLKICKINGBYLENGTH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLKICKINGBYLENGTH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -47312,7 +50179,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLLONGLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -47324,44 +50191,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2691, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2696, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2696, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2696, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2696, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2696, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLINE", 0) < (0)) __PYX_ERR(6, 2691, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKINGBYLENGTH", 0) < (0)) __PYX_ERR(6, 2696, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, i); __PYX_ERR(6, 2691, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, i); __PYX_ERR(6, 2696, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2696, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2696, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2696, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2696, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -47370,22 +50237,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2691, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2696, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2693, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2693, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2693, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2693, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2698, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2698, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2698, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2698, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_142CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -47404,7 +50271,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -47430,33 +50297,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLLONGLINE", 0); + __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2710, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2711, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2712, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2713, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2714, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2719, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -47464,7 +50331,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2716, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -47500,7 +50367,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2720, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2725, __pyx_L1_error) /*try:*/ { @@ -47510,7 +50377,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLINE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKINGBYLENGTH_Lookback()); } /*finally:*/ { @@ -47523,7 +50390,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2724, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2729, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -47534,7 +50401,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLLONGLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -47620,7 +50487,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2730, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -47639,7 +50506,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -47661,16 +50528,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLLADDERBOTTOM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_142CDLMARUBOZU, "CDLMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_143CDLMARUBOZU = {"CDLMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_142CDLMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_144CDLLADDERBOTTOM, "CDLLADDERBOTTOM(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_145CDLLADDERBOTTOM = {"CDLLADDERBOTTOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_145CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_144CDLLADDERBOTTOM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLLADDERBOTTOM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -47691,7 +50558,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMARUBOZU (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLLADDERBOTTOM (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -47703,44 +50570,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2733, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2738, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2738, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2738, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2738, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2738, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMARUBOZU", 0) < (0)) __PYX_ERR(6, 2733, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLADDERBOTTOM", 0) < (0)) __PYX_ERR(6, 2738, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, i); __PYX_ERR(6, 2733, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, i); __PYX_ERR(6, 2738, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2738, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2738, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2738, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2738, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -47749,22 +50616,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2733, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2738, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2735, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2735, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2735, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2735, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2740, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2740, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2740, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2740, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_144CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -47783,7 +50650,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -47809,33 +50676,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMARUBOZU", 0); + __Pyx_RefNannySetupContext("CDLLADDERBOTTOM", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2752, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2753, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2754, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2755, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2756, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2761, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -47843,7 +50710,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2758, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -47879,7 +50746,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2762, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2767, __pyx_L1_error) /*try:*/ { @@ -47889,7 +50756,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMARUBOZU_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLADDERBOTTOM_Lookback()); } /*finally:*/ { @@ -47902,7 +50769,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2766, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2771, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -47913,7 +50780,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLLADDERBOTTOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -47999,7 +50866,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2772, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -48018,7 +50885,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -48040,16 +50907,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLLONGLEGGEDDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_144CDLMATCHINGLOW, "CDLMATCHINGLOW(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_145CDLMATCHINGLOW = {"CDLMATCHINGLOW", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_144CDLMATCHINGLOW}; -static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_146CDLLONGLEGGEDDOJI, "CDLLONGLEGGEDDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_147CDLLONGLEGGEDDOJI = {"CDLLONGLEGGEDDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_147CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_146CDLLONGLEGGEDDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLLONGLEGGEDDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -48070,7 +50937,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMATCHINGLOW (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -48082,44 +50949,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2775, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2780, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2775, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2775, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2775, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2775, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATCHINGLOW", 0) < (0)) __PYX_ERR(6, 2775, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLEGGEDDOJI", 0) < (0)) __PYX_ERR(6, 2780, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, i); __PYX_ERR(6, 2775, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, i); __PYX_ERR(6, 2780, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2775, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2780, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2775, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2780, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2775, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2780, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2775, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2780, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -48128,22 +50995,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2775, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2780, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2777, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2777, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2777, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2777, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2782, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2782, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2782, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2782, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_146CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -48162,7 +51029,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -48188,33 +51055,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMATCHINGLOW", 0); + __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2794, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2795, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2796, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2797, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2798, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2803, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -48222,7 +51089,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObje if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2800, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -48258,7 +51125,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObje __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2804, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2809, __pyx_L1_error) /*try:*/ { @@ -48268,7 +51135,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATCHINGLOW_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLEGGEDDOJI_Lookback()); } /*finally:*/ { @@ -48281,7 +51148,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2808, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2813, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -48292,7 +51159,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLMATCHINGLOW(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -48378,7 +51245,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObje __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2814, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -48397,7 +51264,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -48419,16 +51286,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLLONGLINE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_146CDLMATHOLD, "CDLMATHOLD(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_147CDLMATHOLD = {"CDLMATHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_146CDLMATHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_148CDLLONGLINE, "CDLLONGLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_149CDLLONGLINE = {"CDLLONGLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_149CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_148CDLLONGLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLLONGLINE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -48439,18 +51306,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMATHOLD (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLLONGLINE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -48460,86 +51326,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2817, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2822, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2817, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATHOLD", 0) < (0)) __PYX_ERR(6, 2817, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLINE", 0) < (0)) __PYX_ERR(6, 2822, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, i); __PYX_ERR(6, 2817, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, i); __PYX_ERR(6, 2822, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2817, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2817, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2817, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2817, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2817, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2822, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2822, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2822, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2822, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 2819, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.5)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 2817, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2822, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2819, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2819, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2819, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2819, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2824, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2824, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2824, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2824, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_148CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -48554,12 +51404,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -48585,33 +51434,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMATHOLD", 0); + __Pyx_RefNannySetupContext("CDLLONGLINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2838, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2839, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2840, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2841, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2842, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2845, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -48619,7 +51468,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject * if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2844, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -48655,7 +51504,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject * __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2848, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2851, __pyx_L1_error) /*try:*/ { @@ -48665,7 +51514,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATHOLD_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLINE_Lookback()); } /*finally:*/ { @@ -48678,7 +51527,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2852, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2855, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -48689,7 +51538,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLMATHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLLONGLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -48775,7 +51624,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject * __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2858, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -48794,7 +51643,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -48816,16 +51665,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMARUBOZU(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_148CDLMORNINGDOJISTAR, "CDLMORNINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_149CDLMORNINGDOJISTAR = {"CDLMORNINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_148CDLMORNINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_150CDLMARUBOZU, "CDLMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_151CDLMARUBOZU = {"CDLMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_151CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_150CDLMARUBOZU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMARUBOZU(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -48836,18 +51685,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMARUBOZU (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -48857,86 +51705,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2861, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2864, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2861, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2861, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2864, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2861, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2864, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2861, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2864, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2861, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2864, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGDOJISTAR", 0) < (0)) __PYX_ERR(6, 2861, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMARUBOZU", 0) < (0)) __PYX_ERR(6, 2864, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(6, 2861, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, i); __PYX_ERR(6, 2864, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2861, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2861, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2861, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2861, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2861, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2864, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2864, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2864, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2864, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 2863, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 2861, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2864, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2863, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2863, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2863, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2863, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2866, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2866, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2866, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2866, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_150CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -48951,12 +51783,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -48982,33 +51813,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR", 0); + __Pyx_RefNannySetupContext("CDLMARUBOZU", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2882, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2883, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2884, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2885, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2886, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2887, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -49016,7 +51847,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED Py if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2888, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -49052,7 +51883,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED Py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2892, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2893, __pyx_L1_error) /*try:*/ { @@ -49062,7 +51893,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMARUBOZU_Lookback()); } /*finally:*/ { @@ -49075,7 +51906,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2896, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2897, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -49086,7 +51917,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLMORNINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -49172,7 +52003,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED Py __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2902, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -49191,7 +52022,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -49213,16 +52044,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLMATCHINGLOW(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_150CDLMORNINGSTAR, "CDLMORNINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_151CDLMORNINGSTAR = {"CDLMORNINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_150CDLMORNINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_152CDLMATCHINGLOW, "CDLMATCHINGLOW(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_153CDLMATCHINGLOW = {"CDLMATCHINGLOW", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_153CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_152CDLMATCHINGLOW}; +static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLMATCHINGLOW(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -49233,18 +52064,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMORNINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMATCHINGLOW (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -49254,86 +52084,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2905, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2906, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2905, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2906, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2906, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2906, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2906, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGSTAR", 0) < (0)) __PYX_ERR(6, 2905, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATCHINGLOW", 0) < (0)) __PYX_ERR(6, 2906, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, i); __PYX_ERR(6, 2905, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, i); __PYX_ERR(6, 2906, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2905, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2905, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2905, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2905, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2905, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2906, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2906, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2906, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2906, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 2907, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 2905, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2906, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2907, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2907, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2907, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2907, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2908, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2908, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2908, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2908, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_152CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -49348,12 +52162,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -49379,33 +52192,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMORNINGSTAR", 0); + __Pyx_RefNannySetupContext("CDLMATCHINGLOW", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2926, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2927, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2928, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2929, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2930, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2929, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -49413,7 +52226,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObje if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2932, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -49449,7 +52262,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObje __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2936, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2935, __pyx_L1_error) /*try:*/ { @@ -49459,7 +52272,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATCHINGLOW_Lookback()); } /*finally:*/ { @@ -49472,7 +52285,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2940, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2939, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -49483,7 +52296,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLMORNINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMATCHINGLOW(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -49569,7 +52382,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObje __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2946, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -49588,7 +52401,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -49610,16 +52423,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLONNECK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLMATHOLD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_152CDLONNECK, "CDLONNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_153CDLONNECK = {"CDLONNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_153CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_152CDLONNECK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLONNECK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_154CDLMATHOLD, "CDLMATHOLD(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_155CDLMATHOLD = {"CDLMATHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_155CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_154CDLMATHOLD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLMATHOLD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -49630,17 +52443,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLONNECK (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMATHOLD (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -49650,70 +52464,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2949, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2948, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2948, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2949, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2948, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2949, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2948, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2949, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2948, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2949, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2948, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLONNECK", 0) < (0)) __PYX_ERR(6, 2949, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATHOLD", 0) < (0)) __PYX_ERR(6, 2948, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, i); __PYX_ERR(6, 2949, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, i); __PYX_ERR(6, 2948, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2949, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2949, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2949, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2949, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2948, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2948, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2948, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2948, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 2950, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.5)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2949, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 2948, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2951, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2951, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2951, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2951, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_152CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2950, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2950, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2950, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2950, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_154CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -49728,11 +52558,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -49758,33 +52589,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLONNECK", 0); + __Pyx_RefNannySetupContext("CDLMATHOLD", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2968, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2969, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2970, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2971, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2972, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 2973, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -49792,7 +52623,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *_ if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2974, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -49828,7 +52659,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2978, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 2979, __pyx_L1_error) /*try:*/ { @@ -49838,7 +52669,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLONNECK_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATHOLD_Lookback(__pyx_v_penetration)); } /*finally:*/ { @@ -49851,7 +52682,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2982, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2983, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -49862,7 +52693,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLONNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMATHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -49948,7 +52779,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2988, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -49967,7 +52798,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -49989,16 +52820,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLPIERCING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLMORNINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_154CDLPIERCING, "CDLPIERCING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_155CDLPIERCING = {"CDLPIERCING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_155CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_154CDLPIERCING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLPIERCING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_156CDLMORNINGDOJISTAR, "CDLMORNINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_157CDLMORNINGDOJISTAR = {"CDLMORNINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_157CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_156CDLMORNINGDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLMORNINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -50009,17 +52840,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLPIERCING (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -50029,70 +52861,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2991, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 2992, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2992, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLPIERCING", 0) < (0)) __PYX_ERR(6, 2991, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGDOJISTAR", 0) < (0)) __PYX_ERR(6, 2992, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, i); __PYX_ERR(6, 2991, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(6, 2992, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2991, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2991, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2991, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2991, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 2992, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 2992, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 2992, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 2992, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 2992, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 2994, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 2991, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 2992, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2993, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2993, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2993, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2993, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_154CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 2994, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 2994, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 2994, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 2994, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_156CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -50107,11 +52955,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -50137,33 +52986,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLPIERCING", 0); + __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3010, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3011, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3012, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3013, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3014, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3017, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -50171,7 +53020,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3016, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -50207,7 +53056,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3020, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3023, __pyx_L1_error) /*try:*/ { @@ -50217,7 +53066,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLPIERCING_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration)); } /*finally:*/ { @@ -50230,7 +53079,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3024, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3027, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -50241,7 +53090,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLPIERCING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -50327,7 +53176,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3030, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -50346,7 +53195,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -50368,16 +53217,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLMORNINGSTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_156CDLRICKSHAWMAN, "CDLRICKSHAWMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_157CDLRICKSHAWMAN = {"CDLRICKSHAWMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_156CDLRICKSHAWMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_158CDLMORNINGSTAR, "CDLMORNINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_159CDLMORNINGSTAR = {"CDLMORNINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_159CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_158CDLMORNINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLMORNINGSTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -50388,17 +53237,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLRICKSHAWMAN (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMORNINGSTAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -50408,70 +53258,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3033, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3036, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 3036, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3033, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3036, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3033, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3036, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3033, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3036, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3033, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3036, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRICKSHAWMAN", 0) < (0)) __PYX_ERR(6, 3033, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGSTAR", 0) < (0)) __PYX_ERR(6, 3036, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, i); __PYX_ERR(6, 3033, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, i); __PYX_ERR(6, 3036, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3033, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3033, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3033, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3033, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 3036, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3036, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3036, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3036, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3036, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 3038, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3033, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 3036, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3035, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3035, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3035, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3035, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3038, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3038, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3038, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3038, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_158CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -50486,11 +53352,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -50516,33 +53383,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLRICKSHAWMAN", 0); + __Pyx_RefNannySetupContext("CDLMORNINGSTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3052, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3053, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3054, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3055, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3056, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3061, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -50550,7 +53417,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObje if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3058, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -50586,7 +53453,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObje __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3062, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3067, __pyx_L1_error) /*try:*/ { @@ -50596,7 +53463,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRICKSHAWMAN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration)); } /*finally:*/ { @@ -50609,7 +53476,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3066, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3071, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -50620,7 +53487,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLRICKSHAWMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMORNINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -50706,7 +53573,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObje __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3072, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -50725,7 +53592,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -50747,16 +53614,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLONNECK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_158CDLRISEFALL3METHODS, "CDLRISEFALL3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_159CDLRISEFALL3METHODS = {"CDLRISEFALL3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_158CDLRISEFALL3METHODS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_160CDLONNECK, "CDLONNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_161CDLONNECK = {"CDLONNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_161CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_160CDLONNECK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLONNECK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -50777,7 +53644,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLONNECK (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -50789,44 +53656,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3075, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3080, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3080, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3080, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3080, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3080, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRISEFALL3METHODS", 0) < (0)) __PYX_ERR(6, 3075, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLONNECK", 0) < (0)) __PYX_ERR(6, 3080, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, i); __PYX_ERR(6, 3075, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, i); __PYX_ERR(6, 3080, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3080, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3080, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3080, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3080, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -50835,22 +53702,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3075, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3080, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3077, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3077, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3077, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3077, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3082, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3082, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3082, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3082, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_160CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -50869,7 +53736,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -50895,33 +53762,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED P int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS", 0); + __Pyx_RefNannySetupContext("CDLONNECK", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3094, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3095, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3096, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3097, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3098, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3103, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -50929,7 +53796,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED P if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3100, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -50965,7 +53832,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED P __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3104, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3109, __pyx_L1_error) /*try:*/ { @@ -50975,7 +53842,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRISEFALL3METHODS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLONNECK_Lookback()); } /*finally:*/ { @@ -50988,7 +53855,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED P } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3108, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3113, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -50999,7 +53866,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLRISEFALL3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLONNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -51085,7 +53952,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED P __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3114, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -51104,7 +53971,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED P /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -51126,16 +53993,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLPIERCING(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_160CDLSEPARATINGLINES, "CDLSEPARATINGLINES(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_161CDLSEPARATINGLINES = {"CDLSEPARATINGLINES", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_160CDLSEPARATINGLINES}; -static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_162CDLPIERCING, "CDLPIERCING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_163CDLPIERCING = {"CDLPIERCING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_163CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_162CDLPIERCING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLPIERCING(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -51156,7 +54023,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSEPARATINGLINES (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLPIERCING (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51168,44 +54035,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3117, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3122, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSEPARATINGLINES", 0) < (0)) __PYX_ERR(6, 3117, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLPIERCING", 0) < (0)) __PYX_ERR(6, 3122, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, i); __PYX_ERR(6, 3117, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, i); __PYX_ERR(6, 3122, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3122, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3122, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3122, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3122, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -51214,22 +54081,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3117, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3122, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3119, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3119, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3119, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3119, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3124, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3124, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3124, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3124, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_162CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -51248,7 +54115,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -51274,33 +54141,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSEPARATINGLINES", 0); + __Pyx_RefNannySetupContext("CDLPIERCING", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3136, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3137, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3138, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3139, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3140, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3145, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -51308,7 +54175,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED Py if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3142, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -51344,7 +54211,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED Py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3146, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3151, __pyx_L1_error) /*try:*/ { @@ -51354,7 +54221,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSEPARATINGLINES_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLPIERCING_Lookback()); } /*finally:*/ { @@ -51367,7 +54234,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3150, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3155, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -51378,7 +54245,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLSEPARATINGLINES(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLPIERCING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -51464,7 +54331,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED Py __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3156, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -51483,7 +54350,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -51505,16 +54372,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLRICKSHAWMAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_162CDLSHOOTINGSTAR, "CDLSHOOTINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_163CDLSHOOTINGSTAR = {"CDLSHOOTINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_162CDLSHOOTINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_164CDLRICKSHAWMAN, "CDLRICKSHAWMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_165CDLRICKSHAWMAN = {"CDLRICKSHAWMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_165CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_164CDLRICKSHAWMAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLRICKSHAWMAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -51535,7 +54402,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLRICKSHAWMAN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51547,44 +54414,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3159, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3164, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3159, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3159, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3159, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3159, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHOOTINGSTAR", 0) < (0)) __PYX_ERR(6, 3159, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRICKSHAWMAN", 0) < (0)) __PYX_ERR(6, 3164, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, i); __PYX_ERR(6, 3159, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, i); __PYX_ERR(6, 3164, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3159, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3164, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3159, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3164, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3159, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3164, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3159, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3164, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -51593,22 +54460,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3159, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3164, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3161, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3161, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3161, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3161, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3166, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3166, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3166, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3166, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_164CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -51627,7 +54494,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -51653,33 +54520,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR", 0); + __Pyx_RefNannySetupContext("CDLRICKSHAWMAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3178, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3179, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3180, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3181, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3182, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3187, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -51687,7 +54554,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3184, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -51723,7 +54590,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3188, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3193, __pyx_L1_error) /*try:*/ { @@ -51733,7 +54600,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHOOTINGSTAR_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRICKSHAWMAN_Lookback()); } /*finally:*/ { @@ -51746,7 +54613,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3192, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3197, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -51757,7 +54624,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLSHOOTINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLRICKSHAWMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -51843,7 +54710,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3198, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -51862,7 +54729,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -51884,16 +54751,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLRISEFALL3METHODS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_164CDLSHORTLINE, "CDLSHORTLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_165CDLSHORTLINE = {"CDLSHORTLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_164CDLSHORTLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_166CDLRISEFALL3METHODS, "CDLRISEFALL3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_167CDLRISEFALL3METHODS = {"CDLRISEFALL3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_167CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_166CDLRISEFALL3METHODS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLRISEFALL3METHODS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -51914,7 +54781,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSHORTLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51926,44 +54793,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3201, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3206, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3201, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3201, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3201, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3201, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHORTLINE", 0) < (0)) __PYX_ERR(6, 3201, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRISEFALL3METHODS", 0) < (0)) __PYX_ERR(6, 3206, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, i); __PYX_ERR(6, 3201, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, i); __PYX_ERR(6, 3206, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3201, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3206, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3201, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3206, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3201, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3206, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3201, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3206, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -51972,22 +54839,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3201, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3206, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3203, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3203, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3203, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3203, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3208, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3208, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3208, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3208, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_166CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -52006,7 +54873,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -52032,33 +54899,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSHORTLINE", 0); + __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3220, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3221, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3222, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3223, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3224, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3229, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -52066,7 +54933,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3226, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -52102,7 +54969,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3230, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3235, __pyx_L1_error) /*try:*/ { @@ -52112,7 +54979,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHORTLINE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRISEFALL3METHODS_Lookback()); } /*finally:*/ { @@ -52125,7 +54992,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3234, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3239, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -52136,7 +55003,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLSHORTLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLRISEFALL3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -52222,7 +55089,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3240, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -52241,7 +55108,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -52263,16 +55130,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLSEPARATINGLINES(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_166CDLSPINNINGTOP, "CDLSPINNINGTOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_167CDLSPINNINGTOP = {"CDLSPINNINGTOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_166CDLSPINNINGTOP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_168CDLSEPARATINGLINES, "CDLSEPARATINGLINES(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_169CDLSEPARATINGLINES = {"CDLSEPARATINGLINES", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_169CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_168CDLSEPARATINGLINES}; +static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLSEPARATINGLINES(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -52293,7 +55160,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSPINNINGTOP (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSEPARATINGLINES (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -52305,44 +55172,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3243, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3248, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3248, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3248, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3248, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3248, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSPINNINGTOP", 0) < (0)) __PYX_ERR(6, 3243, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSEPARATINGLINES", 0) < (0)) __PYX_ERR(6, 3248, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, i); __PYX_ERR(6, 3243, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, i); __PYX_ERR(6, 3248, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3248, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3248, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3248, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3248, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -52351,22 +55218,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3243, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3248, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3245, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3245, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3245, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3245, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3250, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3250, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3250, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3250, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_168CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -52385,7 +55252,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -52411,33 +55278,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSPINNINGTOP", 0); + __Pyx_RefNannySetupContext("CDLSEPARATINGLINES", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3262, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3263, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3264, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3265, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3266, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3271, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -52445,7 +55312,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObje if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3268, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -52481,7 +55348,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObje __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3272, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3277, __pyx_L1_error) /*try:*/ { @@ -52491,7 +55358,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSPINNINGTOP_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSEPARATINGLINES_Lookback()); } /*finally:*/ { @@ -52504,7 +55371,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3276, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3281, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -52515,7 +55382,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLSPINNINGTOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSEPARATINGLINES(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -52601,7 +55468,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObje __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3282, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -52620,7 +55487,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -52642,16 +55509,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLSTALLEDPATTERN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLSHOOTINGSTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_168CDLSTALLEDPATTERN, "CDLSTALLEDPATTERN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTALLEDPATTERN(open, high, low, close)\n\nStalled Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_169CDLSTALLEDPATTERN = {"CDLSTALLEDPATTERN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_169CDLSTALLEDPATTERN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_168CDLSTALLEDPATTERN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLSTALLEDPATTERN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_170CDLSHOOTINGSTAR, "CDLSHOOTINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_171CDLSHOOTINGSTAR = {"CDLSHOOTINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_171CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_170CDLSHOOTINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLSHOOTINGSTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -52672,7 +55539,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -52684,44 +55551,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3285, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3290, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTALLEDPATTERN", 0) < (0)) __PYX_ERR(6, 3285, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHOOTINGSTAR", 0) < (0)) __PYX_ERR(6, 3290, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, i); __PYX_ERR(6, 3285, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, i); __PYX_ERR(6, 3290, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3290, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3290, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3290, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3290, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -52730,22 +55597,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3285, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3290, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3287, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3287, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3287, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3287, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3292, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3292, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3292, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3292, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_170CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -52764,7 +55631,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -52790,33 +55657,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyO int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN", 0); + __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3304, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3305, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3306, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3307, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3308, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3313, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -52824,7 +55691,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyO if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3310, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -52860,7 +55727,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyO __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3314, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3319, __pyx_L1_error) /*try:*/ { @@ -52870,7 +55737,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTALLEDPATTERN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHOOTINGSTAR_Lookback()); } /*finally:*/ { @@ -52883,7 +55750,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyO } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3318, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3323, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -52894,7 +55761,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLSTALLEDPATTERN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSHOOTINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -52980,7 +55847,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyO __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3324, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -52999,7 +55866,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -53021,16 +55888,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLSTICKSANDWICH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLSHORTLINE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_170CDLSTICKSANDWICH, "CDLSTICKSANDWICH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTICKSANDWICH(open, high, low, close)\n\nStick Sandwich (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_171CDLSTICKSANDWICH = {"CDLSTICKSANDWICH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_171CDLSTICKSANDWICH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_170CDLSTICKSANDWICH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLSTICKSANDWICH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_172CDLSHORTLINE, "CDLSHORTLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_173CDLSHORTLINE = {"CDLSHORTLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_173CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_172CDLSHORTLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLSHORTLINE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -53051,7 +55918,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSTICKSANDWICH (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSHORTLINE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -53063,44 +55930,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3327, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3332, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTICKSANDWICH", 0) < (0)) __PYX_ERR(6, 3327, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHORTLINE", 0) < (0)) __PYX_ERR(6, 3332, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, i); __PYX_ERR(6, 3327, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, i); __PYX_ERR(6, 3332, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3332, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3332, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3332, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3332, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -53109,22 +55976,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3327, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3332, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3329, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3329, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3329, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3329, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3334, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3334, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3334, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3334, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_172CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -53143,7 +56010,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -53169,33 +56036,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyOb int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSTICKSANDWICH", 0); + __Pyx_RefNannySetupContext("CDLSHORTLINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3346, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3347, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3348, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3349, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3350, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3355, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -53203,7 +56070,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyOb if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3352, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -53239,7 +56106,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyOb __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3356, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3361, __pyx_L1_error) /*try:*/ { @@ -53249,7 +56116,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTICKSANDWICH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHORTLINE_Lookback()); } /*finally:*/ { @@ -53262,7 +56129,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyOb } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3360, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3365, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -53273,7 +56140,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLSTICKSANDWICH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSHORTLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -53359,7 +56226,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyOb __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3366, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -53378,7 +56245,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyOb /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -53400,16 +56267,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLTAKURI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_175CDLSPINNINGTOP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_172CDLTAKURI, "CDLTAKURI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTAKURI(open, high, low, close)\n\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_173CDLTAKURI = {"CDLTAKURI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_173CDLTAKURI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_172CDLTAKURI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLTAKURI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_174CDLSPINNINGTOP, "CDLSPINNINGTOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_175CDLSPINNINGTOP = {"CDLSPINNINGTOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_175CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_174CDLSPINNINGTOP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_175CDLSPINNINGTOP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -53430,7 +56297,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLTAKURI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSPINNINGTOP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -53442,44 +56309,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3369, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3374, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3374, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3374, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3374, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3374, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTAKURI", 0) < (0)) __PYX_ERR(6, 3369, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSPINNINGTOP", 0) < (0)) __PYX_ERR(6, 3374, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, i); __PYX_ERR(6, 3369, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, i); __PYX_ERR(6, 3374, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3374, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3374, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3374, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3374, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -53488,22 +56355,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3369, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3374, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3371, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3371, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3371, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3371, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_172CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3376, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3376, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3376, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3376, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_174CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -53522,7 +56389,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -53548,33 +56415,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLTAKURI", 0); + __Pyx_RefNannySetupContext("CDLSPINNINGTOP", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3388, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3389, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3390, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3391, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3392, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3397, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -53582,7 +56449,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *_ if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3394, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -53618,7 +56485,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3398, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3403, __pyx_L1_error) /*try:*/ { @@ -53628,7 +56495,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTAKURI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSPINNINGTOP_Lookback()); } /*finally:*/ { @@ -53641,7 +56508,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3402, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3407, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -53652,7 +56519,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLTAKURI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSPINNINGTOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -53738,7 +56605,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3408, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -53757,7 +56624,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -53779,16 +56646,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_175CDLTASUKIGAP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_177CDLSTALLEDPATTERN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_174CDLTASUKIGAP, "CDLTASUKIGAP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTASUKIGAP(open, high, low, close)\n\nTasuki Gap (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_175CDLTASUKIGAP = {"CDLTASUKIGAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_175CDLTASUKIGAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_174CDLTASUKIGAP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_175CDLTASUKIGAP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_176CDLSTALLEDPATTERN, "CDLSTALLEDPATTERN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTALLEDPATTERN(open, high, low, close)\n\nStalled Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_177CDLSTALLEDPATTERN = {"CDLSTALLEDPATTERN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_177CDLSTALLEDPATTERN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_176CDLSTALLEDPATTERN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_177CDLSTALLEDPATTERN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -53809,7 +56676,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLTASUKIGAP (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -53821,44 +56688,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3411, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3416, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3416, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3416, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3416, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3416, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTASUKIGAP", 0) < (0)) __PYX_ERR(6, 3411, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTALLEDPATTERN", 0) < (0)) __PYX_ERR(6, 3416, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, i); __PYX_ERR(6, 3411, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, i); __PYX_ERR(6, 3416, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3416, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3416, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3416, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3416, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -53867,22 +56734,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3411, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3416, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3413, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3413, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3413, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3413, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3418, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3418, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3418, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3418, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_176CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -53901,7 +56768,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -53927,33 +56794,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLTASUKIGAP", 0); + __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3430, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3431, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3432, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3433, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3434, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3439, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -53961,7 +56828,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3436, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -53997,7 +56864,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3440, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3445, __pyx_L1_error) /*try:*/ { @@ -54007,7 +56874,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTASUKIGAP_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTALLEDPATTERN_Lookback()); } /*finally:*/ { @@ -54020,7 +56887,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3444, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3449, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -54031,7 +56898,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLTASUKIGAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSTALLEDPATTERN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -54117,7 +56984,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3450, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -54136,7 +57003,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -54158,16 +57025,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_177CDLTHRUSTING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_179CDLSTICKSANDWICH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_176CDLTHRUSTING, "CDLTHRUSTING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTHRUSTING(open, high, low, close)\n\nThrusting Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_177CDLTHRUSTING = {"CDLTHRUSTING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_177CDLTHRUSTING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_176CDLTHRUSTING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_177CDLTHRUSTING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_178CDLSTICKSANDWICH, "CDLSTICKSANDWICH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTICKSANDWICH(open, high, low, close)\n\nStick Sandwich (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_179CDLSTICKSANDWICH = {"CDLSTICKSANDWICH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_179CDLSTICKSANDWICH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_178CDLSTICKSANDWICH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_179CDLSTICKSANDWICH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -54188,7 +57055,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLTHRUSTING (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSTICKSANDWICH (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -54200,44 +57067,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3453, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3458, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3453, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3458, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3453, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3458, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3453, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3458, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3453, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3458, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTHRUSTING", 0) < (0)) __PYX_ERR(6, 3453, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTICKSANDWICH", 0) < (0)) __PYX_ERR(6, 3458, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, i); __PYX_ERR(6, 3453, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, i); __PYX_ERR(6, 3458, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3453, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3458, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3453, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3458, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3453, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3458, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3453, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3458, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -54246,22 +57113,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3453, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3458, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3455, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3455, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3455, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3455, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3460, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3460, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3460, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3460, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_178CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -54280,7 +57147,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -54306,33 +57173,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLTHRUSTING", 0); + __Pyx_RefNannySetupContext("CDLSTICKSANDWICH", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3472, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3473, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3474, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3475, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3476, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3481, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -54340,7 +57207,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3478, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -54376,7 +57243,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3482, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3487, __pyx_L1_error) /*try:*/ { @@ -54386,7 +57253,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTHRUSTING_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTICKSANDWICH_Lookback()); } /*finally:*/ { @@ -54399,7 +57266,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3486, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3491, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -54410,7 +57277,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLTHRUSTING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSTICKSANDWICH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -54496,7 +57363,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3492, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -54515,7 +57382,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -54537,16 +57404,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_179CDLTRISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_181CDLTAKURI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_178CDLTRISTAR, "CDLTRISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTRISTAR(open, high, low, close)\n\nTristar Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_179CDLTRISTAR = {"CDLTRISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_179CDLTRISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_178CDLTRISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_179CDLTRISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_180CDLTAKURI, "CDLTAKURI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTAKURI(open, high, low, close)\n\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_181CDLTAKURI = {"CDLTAKURI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_181CDLTAKURI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_180CDLTAKURI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_181CDLTAKURI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -54567,7 +57434,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLTRISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLTAKURI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -54579,44 +57446,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3495, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3500, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3500, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3500, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3500, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3500, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTRISTAR", 0) < (0)) __PYX_ERR(6, 3495, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTAKURI", 0) < (0)) __PYX_ERR(6, 3500, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, i); __PYX_ERR(6, 3495, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, i); __PYX_ERR(6, 3500, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3500, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3500, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3500, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3500, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -54625,22 +57492,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3495, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3500, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3497, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3497, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3497, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3497, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3502, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3502, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3502, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3502, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_180CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -54659,7 +57526,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -54685,33 +57552,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLTRISTAR", 0); + __Pyx_RefNannySetupContext("CDLTAKURI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3514, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3515, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3516, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3517, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3518, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3523, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -54719,7 +57586,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject * if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3520, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -54755,7 +57622,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject * __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3524, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3529, __pyx_L1_error) /*try:*/ { @@ -54765,7 +57632,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTRISTAR_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTAKURI_Lookback()); } /*finally:*/ { @@ -54778,7 +57645,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3528, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3533, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -54789,7 +57656,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLTRISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLTAKURI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -54875,7 +57742,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject * __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3534, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -54894,7 +57761,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -54916,16 +57783,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_181CDLUNIQUE3RIVER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_183CDLTASUKIGAP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_180CDLUNIQUE3RIVER, "CDLUNIQUE3RIVER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUNIQUE3RIVER(open, high, low, close)\n\nUnique 3 River (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_181CDLUNIQUE3RIVER = {"CDLUNIQUE3RIVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_181CDLUNIQUE3RIVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_180CDLUNIQUE3RIVER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_181CDLUNIQUE3RIVER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_182CDLTASUKIGAP, "CDLTASUKIGAP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTASUKIGAP(open, high, low, close)\n\nTasuki Gap (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_183CDLTASUKIGAP = {"CDLTASUKIGAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_183CDLTASUKIGAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_182CDLTASUKIGAP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_183CDLTASUKIGAP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -54946,7 +57813,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLTASUKIGAP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -54958,44 +57825,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3537, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3542, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3542, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3542, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3542, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3542, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUNIQUE3RIVER", 0) < (0)) __PYX_ERR(6, 3537, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTASUKIGAP", 0) < (0)) __PYX_ERR(6, 3542, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, i); __PYX_ERR(6, 3537, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, i); __PYX_ERR(6, 3542, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3542, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3542, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3542, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3542, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -55004,22 +57871,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3537, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3542, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3539, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3539, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3539, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3539, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3544, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3544, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3544, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3544, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_182CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -55038,7 +57905,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -55064,33 +57931,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER", 0); + __Pyx_RefNannySetupContext("CDLTASUKIGAP", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3556, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3557, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3558, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3559, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3560, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3565, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -55098,7 +57965,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3562, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -55134,7 +58001,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3566, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3571, __pyx_L1_error) /*try:*/ { @@ -55144,7 +58011,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUNIQUE3RIVER_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTASUKIGAP_Lookback()); } /*finally:*/ { @@ -55157,7 +58024,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3570, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3575, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -55168,7 +58035,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLUNIQUE3RIVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLTASUKIGAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -55254,7 +58121,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3576, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -55273,7 +58140,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -55295,16 +58162,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_185CDLTHRUSTING(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS, "CDLUPSIDEGAP2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUPSIDEGAP2CROWS(open, high, low, close)\n\nUpside Gap Two Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS = {"CDLUPSIDEGAP2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_184CDLTHRUSTING, "CDLTHRUSTING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTHRUSTING(open, high, low, close)\n\nThrusting Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_185CDLTHRUSTING = {"CDLTHRUSTING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_185CDLTHRUSTING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_184CDLTHRUSTING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_185CDLTHRUSTING(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -55325,7 +58192,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLUPSIDEGAP2CROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLTHRUSTING (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -55337,44 +58204,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3579, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3584, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3579, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3579, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3579, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3579, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUPSIDEGAP2CROWS", 0) < (0)) __PYX_ERR(6, 3579, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTHRUSTING", 0) < (0)) __PYX_ERR(6, 3584, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, i); __PYX_ERR(6, 3579, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, i); __PYX_ERR(6, 3584, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3579, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3584, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3579, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3584, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3579, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3584, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3579, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3584, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -55383,22 +58250,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3579, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3584, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3581, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3581, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3581, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3581, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3586, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3586, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3586, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3586, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_184CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -55417,7 +58284,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -55443,33 +58310,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLUPSIDEGAP2CROWS", 0); + __Pyx_RefNannySetupContext("CDLTHRUSTING", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3598, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3599, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3600, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3601, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3602, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3607, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -55477,7 +58344,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3604, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -55513,7 +58380,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3608, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3613, __pyx_L1_error) /*try:*/ { @@ -55523,7 +58390,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUPSIDEGAP2CROWS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTHRUSTING_Lookback()); } /*finally:*/ { @@ -55536,7 +58403,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3612, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3617, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -55547,7 +58414,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLTHRUSTING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -55633,7 +58500,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3618, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -55652,7 +58519,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -55674,16 +58541,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_187CDLTRISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS, "CDLXSIDEGAP3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLXSIDEGAP3METHODS(open, high, low, close)\n\nUpside/Downside Gap Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS = {"CDLXSIDEGAP3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_186CDLTRISTAR, "CDLTRISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTRISTAR(open, high, low, close)\n\nTristar Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_187CDLTRISTAR = {"CDLTRISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_187CDLTRISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_186CDLTRISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_187CDLTRISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -55704,7 +58571,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLXSIDEGAP3METHODS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLTRISTAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -55716,44 +58583,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3621, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3626, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3626, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3626, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3626, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3626, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLXSIDEGAP3METHODS", 0) < (0)) __PYX_ERR(6, 3621, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTRISTAR", 0) < (0)) __PYX_ERR(6, 3626, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, i); __PYX_ERR(6, 3621, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, i); __PYX_ERR(6, 3626, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3626, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3626, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3626, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3626, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -55762,22 +58629,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3621, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3626, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3623, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3623, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3623, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3623, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3628, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3628, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3628, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3628, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_186CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -55796,7 +58663,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_186CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -55822,33 +58689,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED P int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLXSIDEGAP3METHODS", 0); + __Pyx_RefNannySetupContext("CDLTRISTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3640, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3641, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3642, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3643, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3644, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3649, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -55856,7 +58723,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED P if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3646, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -55892,7 +58759,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED P __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3650, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3655, __pyx_L1_error) /*try:*/ { @@ -55902,7 +58769,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLXSIDEGAP3METHODS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTRISTAR_Lookback()); } /*finally:*/ { @@ -55915,7 +58782,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED P } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3654, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3659, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -55926,7 +58793,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLTRISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -56012,7 +58879,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED P __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3660, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -56031,7 +58898,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED P /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -56053,34 +58920,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_187CEIL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_189CDLUNIQUE3RIVER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_186CEIL, "CEIL(ndarray real)\n\nCEIL(real)\n\nVector Ceil (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_187CEIL = {"CEIL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_187CEIL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_186CEIL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_187CEIL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_188CDLUNIQUE3RIVER, "CDLUNIQUE3RIVER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUNIQUE3RIVER(open, high, low, close)\n\nUnique 3 River (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_189CDLUNIQUE3RIVER = {"CDLUNIQUE3RIVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_189CDLUNIQUE3RIVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_188CDLUNIQUE3RIVER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_189CDLUNIQUE3RIVER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CEIL (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -56090,46 +58960,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3663, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3668, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3668, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3668, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3668, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3668, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CEIL", 0) < (0)) __PYX_ERR(6, 3663, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, i); __PYX_ERR(6, 3663, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUNIQUE3RIVER", 0) < (0)) __PYX_ERR(6, 3668, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, i); __PYX_ERR(6, 3668, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3668, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3668, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3668, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3668, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 3663, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3668, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 3665, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_186CEIL(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3670, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3670, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3670, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3670, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_188CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -56148,7 +59042,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_188CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -56156,39 +59050,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CEIL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3682, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3691, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3685, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -56209,7 +59123,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -56224,7 +59138,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3689, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3697, __pyx_L1_error) /*try:*/ { @@ -56234,7 +59148,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CEIL_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUNIQUE3RIVER_Lookback()); } /*finally:*/ { @@ -56247,9 +59161,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3693, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3701, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -56258,7 +59172,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CEIL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLUNIQUE3RIVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -56298,17 +59212,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -56329,22 +59243,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3699, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -56352,8 +59266,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); } __Pyx_XDECREF(__pyx_temp); } @@ -56363,7 +59277,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -56373,8 +59287,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -56382,38 +59299,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_189CMF(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_191CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_188CMF, "CMF(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nCMF(high, low, close, volume[, timeperiod=?])\n\nChaikin Money Flow (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_189CMF = {"CMF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_189CMF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_188CMF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_189CMF(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_190CDLUPSIDEGAP2CROWS, "CDLUPSIDEGAP2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUPSIDEGAP2CROWS(open, high, low, close)\n\nUpside Gap Two Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_191CDLUPSIDEGAP2CROWS = {"CDLUPSIDEGAP2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_191CDLUPSIDEGAP2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_190CDLUPSIDEGAP2CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_191CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CMF (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLUPSIDEGAP2CROWS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -56423,86 +59339,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3702, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3710, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 3702, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3710, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3710, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3710, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3710, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMF", 0) < (0)) __PYX_ERR(6, 3702, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUPSIDEGAP2CROWS", 0) < (0)) __PYX_ERR(6, 3710, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, i); __PYX_ERR(6, 3702, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, i); __PYX_ERR(6, 3710, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 3702, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3702, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3702, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3702, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3702, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 3704, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3710, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3710, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3710, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3710, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 3702, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3710, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3704, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3704, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3704, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 3704, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_188CMF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3712, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3712, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3712, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3712, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_190CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -56517,12 +59417,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_190CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -56530,7 +59429,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -56548,33 +59447,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CMF", 0); + __Pyx_RefNannySetupContext("CDLUPSIDEGAP2CROWS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3723, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3724, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3725, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3726, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3727, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3733, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -56582,7 +59481,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3729, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -56603,7 +59502,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -56618,7 +59517,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3733, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3739, __pyx_L1_error) /*try:*/ { @@ -56628,7 +59527,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CMF_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUPSIDEGAP2CROWS_Lookback()); } /*finally:*/ { @@ -56641,9 +59540,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3737, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3743, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -56652,7 +59551,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CMF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -56738,7 +59637,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3743, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -56746,8 +59645,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); } __Pyx_XDECREF(__pyx_temp); } @@ -56757,7 +59656,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CMF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -56767,11 +59666,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -56779,35 +59678,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_191CMO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_193CDLXSIDEGAP3METHODS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_190CMO, "CMO(ndarray real, int timeperiod=-0x80000000)\n\nCMO(real[, timeperiod=?])\n\nChande Momentum Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_191CMO = {"CMO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_191CMO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_190CMO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_191CMO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_192CDLXSIDEGAP3METHODS, "CDLXSIDEGAP3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLXSIDEGAP3METHODS(open, high, low, close)\n\nUpside/Downside Gap Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_193CDLXSIDEGAP3METHODS = {"CDLXSIDEGAP3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_193CDLXSIDEGAP3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_192CDLXSIDEGAP3METHODS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_193CDLXSIDEGAP3METHODS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CMO (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLXSIDEGAP3METHODS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -56817,62 +59718,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3746, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3752, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3752, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3752, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3746, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3752, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3746, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3752, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMO", 0) < (0)) __PYX_ERR(6, 3746, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, i); __PYX_ERR(6, 3746, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3746, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3746, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLXSIDEGAP3METHODS", 0) < (0)) __PYX_ERR(6, 3752, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, i); __PYX_ERR(6, 3752, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 3748, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3752, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3752, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3752, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3752, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 3746, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 3752, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 3748, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_190CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 3754, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3754, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3754, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3754, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_192CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -56887,12 +59796,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_192CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -56900,39 +59808,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CMO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("CDLXSIDEGAP3METHODS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3767, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3774, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3775, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3770, __pyx_L1_error) + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -56953,7 +59881,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -56968,7 +59896,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3774, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3781, __pyx_L1_error) /*try:*/ { @@ -56978,7 +59906,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CMO_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLXSIDEGAP3METHODS_Lookback()); } /*finally:*/ { @@ -56991,9 +59919,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3778, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3785, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -57002,7 +59930,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CMO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -57042,17 +59970,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -57073,22 +60001,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3784, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -57096,8 +60024,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); } __Pyx_XDECREF(__pyx_temp); } @@ -57107,7 +60035,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -57117,8 +60045,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_s - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -57126,16 +60057,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_193CMOU(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_195CEIL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_192CMOU, "CMOU(ndarray real, int timeperiod=-0x80000000)\n\nCMOU(real[, timeperiod=?])\n\nChande Momentum Oscillator (Unsmoothed) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_193CMOU = {"CMOU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_193CMOU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_192CMOU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_193CMOU(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_194CEIL, "CEIL(ndarray real)\n\nCEIL(real)\n\nVector Ceil (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_195CEIL = {"CEIL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_195CEIL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_194CEIL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_195CEIL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -57143,18 +60074,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CMOU (wrapper)", 0); + __Pyx_RefNannySetupContext("CEIL (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -57164,62 +60094,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3787, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3794, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3787, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3787, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3794, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMOU", 0) < (0)) __PYX_ERR(6, 3787, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CEIL", 0) < (0)) __PYX_ERR(6, 3794, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, i); __PYX_ERR(6, 3787, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, i); __PYX_ERR(6, 3794, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3787, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3787, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3794, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 3789, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 3787, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 3794, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMOU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 3789, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_192CMOU(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 3796, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_194CEIL(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -57234,12 +60148,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_194CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -57264,10 +60177,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CMOU", 0); + __Pyx_RefNannySetupContext("CEIL", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3808, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -57279,7 +60192,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_ if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3811, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -57315,7 +60228,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3815, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3820, __pyx_L1_error) /*try:*/ { @@ -57325,7 +60238,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CMOU_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CEIL_Lookback()); } /*finally:*/ { @@ -57338,7 +60251,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3819, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3824, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -57349,7 +60262,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CMOU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CEIL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -57435,7 +60348,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3825, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -57454,7 +60367,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CMOU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -57473,16 +60386,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_195COPPOCK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_197CG(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_194COPPOCK, "COPPOCK(ndarray real, int wmaperiod=-0x80000000, int roc1period=-0x80000000, int roc2period=-0x80000000)\n\nCOPPOCK(real[, wmaperiod=?, roc1period=?, roc2period=?])\n\nCoppock Curve (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n wmaperiod: 10\n roc1period: 11\n roc2period: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_195COPPOCK = {"COPPOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_195COPPOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_194COPPOCK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_195COPPOCK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_196CG, "CG(ndarray real, int timeperiod=-0x80000000)\n\nCG(real[, timeperiod=?])\n\nCenter of Gravity Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_197CG = {"CG", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_197CG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_196CG}; +static PyObject *__pyx_pw_5talib_7_ta_lib_197CG(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -57490,20 +60403,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_wmaperiod; - int __pyx_v_roc1period; - int __pyx_v_roc2period; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("COPPOCK (wrapper)", 0); + __Pyx_RefNannySetupContext("CG (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -57513,88 +60424,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3828, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3833, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3828, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3828, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3828, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3828, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COPPOCK", 0) < (0)) __PYX_ERR(6, 3828, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CG", 0) < (0)) __PYX_ERR(6, 3833, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, i); __PYX_ERR(6, 3828, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CG", 0, 1, 2, i); __PYX_ERR(6, 3833, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3828, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3828, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3828, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3828, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3833, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 3830, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 3835, __pyx_L3_error) } else { - __pyx_v_wmaperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 3830, __pyx_L3_error) - } else { - __pyx_v_roc1period = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 3830, __pyx_L3_error) - } else { - __pyx_v_roc2period = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, __pyx_nargs); __PYX_ERR(6, 3828, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CG", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 3833, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COPPOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CG", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 3830, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_194COPPOCK(__pyx_self, __pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 3835, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_196CG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -57610,13 +60495,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period) { +static PyObject *__pyx_pf_5talib_7_ta_lib_196CG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -57641,10 +60524,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__p int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("COPPOCK", 0); + __Pyx_RefNannySetupContext("CG", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3851, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -57656,7 +60539,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__p if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3854, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -57692,7 +60575,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__p __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3858, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3861, __pyx_L1_error) /*try:*/ { @@ -57702,7 +60585,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CG_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -57715,7 +60598,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__p } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3862, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3865, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -57726,7 +60609,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_COPPOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CG(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -57812,7 +60695,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__p __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3868, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -57831,7 +60714,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.COPPOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CG", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -57850,36 +60733,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_197CORREL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_199CHOP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_196CORREL, "CORREL(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nCORREL(real0, real1[, timeperiod=?])\n\nPearson\047s Correlation Coefficient (r) (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_197CORREL = {"CORREL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_197CORREL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_196CORREL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_197CORREL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_198CHOP, "CHOP(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nCHOP(high, low, close[, timeperiod=?])\n\nChoppiness Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_199CHOP = {"CHOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_199CHOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_198CHOP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_199CHOP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CORREL (wrapper)", 0); + __Pyx_RefNannySetupContext("CHOP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -57889,70 +60773,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3871, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3874, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3874, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3874, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3874, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3874, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CORREL", 0) < (0)) __PYX_ERR(6, 3871, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, i); __PYX_ERR(6, 3871, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CHOP", 0) < (0)) __PYX_ERR(6, 3874, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CHOP", 0, 3, 4, i); __PYX_ERR(6, 3874, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3874, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3871, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3874, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3874, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3874, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 3873, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 3876, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 3871, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CHOP", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 3874, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(6, 3873, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(6, 3873, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_196CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3876, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3876, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3876, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_198CHOP(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -57972,7 +60864,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_198CHOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -57998,21 +60890,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CORREL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); + __Pyx_RefNannySetupContext("CHOP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3893, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3894, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3895, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3898, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -58020,7 +60918,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3897, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -58041,7 +60939,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -58056,7 +60954,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3901, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3904, __pyx_L1_error) /*try:*/ { @@ -58066,7 +60964,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CORREL_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CHOP_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -58079,7 +60977,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3905, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3908, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -58090,7 +60988,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CORREL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CHOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -58176,7 +61074,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3911, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CHOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -58195,7 +61093,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -58206,8 +61104,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -58215,34 +61114,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_199COS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_201CHOPTR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_198COS, "COS(ndarray real)\n\nCOS(real)\n\nVector Trigonometric Cos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_199COS = {"COS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_199COS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_198COS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_199COS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_200CHOPTR, "CHOPTR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nCHOPTR(high, low, close[, timeperiod=?])\n\nChoppiness Index (True Range Box) (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_201CHOPTR = {"CHOPTR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_201CHOPTR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_200CHOPTR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_201CHOPTR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("COS (wrapper)", 0); + __Pyx_RefNannySetupContext("CHOPTR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -58252,46 +61154,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3914, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3917, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3914, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3917, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COS", 0) < (0)) __PYX_ERR(6, 3914, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, i); __PYX_ERR(6, 3914, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CHOPTR", 0) < (0)) __PYX_ERR(6, 3917, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CHOPTR", 0, 3, 4, i); __PYX_ERR(6, 3917, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3914, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3917, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3917, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3917, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 3919, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 3914, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CHOPTR", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 3917, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOPTR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 3916, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_198COS(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3919, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_200CHOPTR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -58306,11 +61240,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_200CHOPTR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -58322,35 +61257,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("COS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("CHOPTR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3933, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3941, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3936, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -58371,7 +61320,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -58386,7 +61335,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3940, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3947, __pyx_L1_error) /*try:*/ { @@ -58396,7 +61345,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_COS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CHOPTR_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -58409,7 +61358,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3944, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3951, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -58420,7 +61369,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_COS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CHOPTR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -58460,17 +61409,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -58491,22 +61440,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3950, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CHOPTR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -58525,7 +61474,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.COS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOPTR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -58536,7 +61485,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -58544,34 +61495,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_201COSH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_203CKSP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_200COSH, "COSH(ndarray real)\n\nCOSH(real)\n\nVector Trigonometric Cosh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_201COSH = {"COSH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_201COSH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_200COSH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_201COSH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_202CKSP, "CKSP(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, double multiplier=1.0, int stopperiod=-0x80000000)\n\nCKSP(high, low, close[, timeperiod=?, multiplier=?, stopperiod=?])\n\nChande Kroll Stop (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 1.0\n stopperiod: 9\nOutputs:\n highstop\n lowstop"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_203CKSP = {"CKSP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_203CKSP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_202CKSP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_203CKSP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + double __pyx_v_multiplier; + int __pyx_v_stopperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("COSH (wrapper)", 0); + __Pyx_RefNannySetupContext("CKSP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -58581,46 +61537,104 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,&__pyx_mstate_global->__pyx_n_u_stopperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3953, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3960, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 3960, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 3960, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3960, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3960, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3960, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3953, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3960, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COSH", 0) < (0)) __PYX_ERR(6, 3953, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, i); __PYX_ERR(6, 3953, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CKSP", 0) < (0)) __PYX_ERR(6, 3960, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CKSP", 0, 3, 6, i); __PYX_ERR(6, 3960, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3953, __pyx_L3_error) + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 3960, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 3960, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 3960, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 3960, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 3960, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3960, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 3962, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 3962, __pyx_L3_error) + } else { + __pyx_v_multiplier = ((double)((double)1.0)); + } + if (values[5]) { + __pyx_v_stopperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_stopperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 3962, __pyx_L3_error) + } else { + __pyx_v_stopperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 3953, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CKSP", 0, 3, 6, __pyx_nargs); __PYX_ERR(6, 3960, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CKSP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 3955, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_200COSH(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 3962, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 3962, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 3962, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_202CKSP(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier, __pyx_v_stopperiod); /* function exit code */ goto __pyx_L0; @@ -58635,11 +61649,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_202CKSP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier, int __pyx_v_stopperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -58647,49 +61664,76 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outhighstop = 0; + PyArrayObject *__pyx_v_outlowstop = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; - int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("COSH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("CKSP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3972, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 3988, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3975, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 3990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 3990, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 3990, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; } @@ -58700,7 +61744,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -58715,7 +61759,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3979, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 3994, __pyx_L1_error) /*try:*/ { @@ -58725,7 +61769,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_COSH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CKSP_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier, __pyx_v_stopperiod)); } /*finally:*/ { @@ -58738,10 +61782,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3983, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3998, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outhighstop = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3999, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outlowstop = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; { PyThreadState * _save; @@ -58749,7 +61798,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_COSH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CKSP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_multiplier, __pyx_v_stopperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhighstop)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowstop)) + __pyx_v_lookback)); } /*finally:*/ { @@ -58789,17 +61838,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; { { PyThreadState * _save; @@ -58820,41 +61871,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_ } } } + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 3989, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CKSP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4006, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outhighstop); + __Pyx_GIVEREF((PyObject *)__pyx_v_outhighstop); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outhighstop)) != (0)) __PYX_ERR(6, 4006, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outlowstop); + __Pyx_GIVEREF((PyObject *)__pyx_v_outlowstop); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outlowstop)) != (0)) __PYX_ERR(6, 4006, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CKSP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -58864,8 +61925,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outhighstop); + __Pyx_XDECREF((PyObject *)__pyx_v_outlowstop); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -58873,34 +61937,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_203CUMSUM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_205CMF(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_202CUMSUM, "CUMSUM(ndarray real)\n\nCUMSUM(real)\n\nCumulative Sum (Math Operators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_203CUMSUM = {"CUMSUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_203CUMSUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_202CUMSUM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_203CUMSUM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_204CMF, "CMF(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nCMF(high, low, close, volume[, timeperiod=?])\n\nChaikin Money Flow (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_205CMF = {"CMF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_205CMF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_204CMF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_205CMF(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CUMSUM (wrapper)", 0); + __Pyx_RefNannySetupContext("CMF (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -58910,46 +61978,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 3992, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4008, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 4008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4008, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4008, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CUMSUM", 0) < (0)) __PYX_ERR(6, 3992, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, i); __PYX_ERR(6, 3992, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMF", 0) < (0)) __PYX_ERR(6, 4008, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, i); __PYX_ERR(6, 4008, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 3992, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 4008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4008, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4008, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4008, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4008, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4010, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 3992, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 4008, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CUMSUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 3994, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_202CUMSUM(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 4010, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 4010, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 4010, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 4010, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_204CMF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -58964,11 +62072,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_204CMF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -58980,35 +62089,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__py PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CUMSUM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("CMF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4011, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4033, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4014, __pyx_L1_error) + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -59029,7 +62158,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); } /*finally:*/ { @@ -59044,7 +62173,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4018, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4039, __pyx_L1_error) /*try:*/ { @@ -59054,7 +62183,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CUMSUM_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CMF_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -59067,7 +62196,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4022, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4043, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -59078,7 +62207,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CUMSUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CMF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -59118,17 +62247,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__py /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -59149,22 +62278,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__py } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4028, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -59183,7 +62312,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CUMSUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -59194,7 +62323,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__py __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -59202,37 +62334,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_205CVI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_207CMO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_204CVI, "CVI(ndarray high, ndarray low, int timeperiod=-0x80000000, int rocperiod=-0x80000000)\n\nCVI(high, low[, timeperiod=?, rocperiod=?])\n\nChaikin\047s Volatility (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 10\n rocperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_205CVI = {"CVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_205CVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_204CVI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_205CVI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_206CMO, "CMO(ndarray real, int timeperiod=-0x80000000)\n\nCMO(real[, timeperiod=?])\n\nChande Momentum Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_207CMO = {"CMO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_207CMO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_206CMO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_207CMO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - int __pyx_v_rocperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CVI (wrapper)", 0); + __Pyx_RefNannySetupContext("CMO (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -59242,83 +62372,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4031, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4052, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4031, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4031, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4031, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4052, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4031, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4052, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CVI", 0) < (0)) __PYX_ERR(6, 4031, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, i); __PYX_ERR(6, 4031, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMO", 0) < (0)) __PYX_ERR(6, 4052, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, i); __PYX_ERR(6, 4052, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4031, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4031, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4031, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4052, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4031, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4052, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4033, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4054, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } - if (values[3]) { - __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4033, __pyx_L3_error) - } else { - __pyx_v_rocperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, __pyx_nargs); __PYX_ERR(6, 4031, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4052, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 4033, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 4033, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_204CVI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4054, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_206CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -59334,12 +62443,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_206CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -59351,43 +62459,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CVI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4053, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("CMO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4054, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4055, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4057, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -59408,7 +62508,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -59423,7 +62523,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4061, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4080, __pyx_L1_error) /*try:*/ { @@ -59433,7 +62533,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CMO_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -59446,7 +62546,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4065, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4084, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -59457,7 +62557,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CMO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -59497,17 +62597,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -59528,22 +62628,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4071, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -59562,7 +62662,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -59573,8 +62673,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -59582,16 +62681,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_207DEMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_209CMOU(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_206DEMA, "DEMA(ndarray real, int timeperiod=-0x80000000)\n\nDEMA(real[, timeperiod=?])\n\nDouble Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_207DEMA = {"DEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_207DEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_206DEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_207DEMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_208CMOU, "CMOU(ndarray real, int timeperiod=-0x80000000)\n\nCMOU(real[, timeperiod=?])\n\nChande Momentum Oscillator (Unsmoothed) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_209CMOU = {"CMOU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_209CMOU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_208CMOU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_209CMOU(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -59610,7 +62709,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("DEMA (wrapper)", 0); + __Pyx_RefNannySetupContext("CMOU (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -59622,60 +62721,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4074, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4093, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4093, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4093, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DEMA", 0) < (0)) __PYX_ERR(6, 4074, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMOU", 0) < (0)) __PYX_ERR(6, 4093, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, i); __PYX_ERR(6, 4074, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, i); __PYX_ERR(6, 4093, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4093, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4093, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4076, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4095, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4074, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4093, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4076, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_206DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4095, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_208CMOU(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -59695,7 +62794,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_208CMOU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -59720,10 +62819,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("DEMA", 0); + __Pyx_RefNannySetupContext("CMOU", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4095, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -59735,7 +62834,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_ if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4098, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -59771,7 +62870,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4102, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4121, __pyx_L1_error) /*try:*/ { @@ -59781,7 +62880,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_DEMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CMOU_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -59794,7 +62893,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4106, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4125, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -59805,7 +62904,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_DEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CMOU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -59891,7 +62990,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4112, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -59910,7 +63009,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -59929,35 +63028,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_209DIV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_211COPPOCK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_208DIV, "DIV(ndarray real0, ndarray real1)\n\nDIV(real0, real1)\n\nVector Arithmetic Div (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_209DIV = {"DIV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_209DIV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_208DIV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_209DIV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_210COPPOCK, "COPPOCK(ndarray real, int wmaperiod=-0x80000000, int roc1period=-0x80000000, int roc2period=-0x80000000)\n\nCOPPOCK(real[, wmaperiod=?, roc1period=?, roc2period=?])\n\nCoppock Curve (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n wmaperiod: 10\n roc1period: 11\n roc2period: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_211COPPOCK = {"COPPOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_211COPPOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_210COPPOCK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_211COPPOCK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_wmaperiod; + int __pyx_v_roc1period; + int __pyx_v_roc2period; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("DIV (wrapper)", 0); + __Pyx_RefNannySetupContext("COPPOCK (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -59967,54 +63068,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4115, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4134, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4134, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4134, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4134, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4134, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DIV", 0) < (0)) __PYX_ERR(6, 4115, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, i); __PYX_ERR(6, 4115, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COPPOCK", 0) < (0)) __PYX_ERR(6, 4134, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, i); __PYX_ERR(6, 4134, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4115, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4115, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4134, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4134, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4134, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4134, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4136, __pyx_L3_error) + } else { + __pyx_v_wmaperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4136, __pyx_L3_error) + } else { + __pyx_v_roc1period = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4136, __pyx_L3_error) + } else { + __pyx_v_roc2period = ((int)((int)-2147483648)); } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 4115, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, __pyx_nargs); __PYX_ERR(6, 4134, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(6, 4117, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(6, 4117, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_208DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4136, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_210COPPOCK(__pyx_self, __pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); /* function exit code */ goto __pyx_L0; @@ -60029,11 +63164,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_210COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -60045,43 +63183,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("DIV", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("COPPOCK", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4136, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4137, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4139, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -60102,7 +63232,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -60117,7 +63247,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4143, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4164, __pyx_L1_error) /*try:*/ { @@ -60127,7 +63257,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_DIV_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period)); } /*finally:*/ { @@ -60140,7 +63270,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4147, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4168, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -60151,7 +63281,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_DIV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_COPPOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -60191,17 +63321,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -60222,22 +63352,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_s } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4153, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -60256,7 +63386,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -60267,8 +63397,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -60276,24 +63405,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_211DONCHIAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_213CORREL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_210DONCHIAN, "DONCHIAN(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nDONCHIAN(high, low[, timeperiod=?])\n\nDonchian Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_211DONCHIAN = {"DONCHIAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_211DONCHIAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_210DONCHIAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_211DONCHIAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_212CORREL, "CORREL(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nCORREL(real0, real1[, timeperiod=?])\n\nPearson\047s Correlation Coefficient (r) (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_213CORREL = {"CORREL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_213CORREL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_212CORREL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_213CORREL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; @@ -60305,7 +63434,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("DONCHIAN (wrapper)", 0); + __Pyx_RefNannySetupContext("CORREL (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -60315,70 +63444,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4156, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4177, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4156, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4177, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4156, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4177, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4156, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4177, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DONCHIAN", 0) < (0)) __PYX_ERR(6, 4156, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CORREL", 0) < (0)) __PYX_ERR(6, 4177, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, i); __PYX_ERR(6, 4156, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, i); __PYX_ERR(6, 4177, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4156, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4177, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4156, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4177, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4156, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4177, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4158, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4179, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 4156, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 4177, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 4158, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 4158, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_210DONCHIAN(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(6, 4179, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(6, 4179, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_212CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -60398,7 +63527,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_212CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -60406,44 +63535,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outrealupperband = 0; - PyArrayObject *__pyx_v_outrealmiddleband = 0; - PyArrayObject *__pyx_v_outreallowerband = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - int __pyx_t_7; - int __pyx_t_8; - char const *__pyx_t_9; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("DONCHIAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("CORREL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4181, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4182, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4183, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4201, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -60451,32 +63575,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4185, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 4185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 4185, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 4185, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(6, 4185, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -60487,7 +63596,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); } /*finally:*/ { @@ -60502,7 +63611,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4189, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4207, __pyx_L1_error) /*try:*/ { @@ -60512,7 +63621,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_DONCHIAN_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CORREL_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -60525,20 +63634,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ } } - __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 4193, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_6); - __pyx_t_6 = 0; - - __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 4194, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_6); - __pyx_t_6 = 0; - - __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 4195, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_6); - __pyx_t_6 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4211, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -60546,7 +63645,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_DONCHIAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CORREL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -60586,20 +63685,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_ExceptionSwap(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); - if ( unlikely(__Pyx_GetException(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12) < 0)) __Pyx_ErrFetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __Pyx_XGOTREF(__pyx_t_15); - __pyx_t_7 = __pyx_lineno; __pyx_t_8 = __pyx_clineno; __pyx_t_9 = __pyx_filename; + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -60620,55 +63716,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ } } } - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ErrRestore(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; - __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_8; __pyx_filename = __pyx_t_9; + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_6 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 4201, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 4202, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(6, 4202, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(6, 4202, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(6, 4202, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -60678,11 +63760,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ - __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -60690,16 +63770,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_213DPO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_215COS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_212DPO, "DPO(ndarray real, int timeperiod=-0x80000000)\n\nDPO(real[, timeperiod=?])\n\nDetrended Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_213DPO = {"DPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_213DPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_212DPO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_213DPO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_214COS, "COS(ndarray real)\n\nCOS(real)\n\nVector Trigonometric Cos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_215COS = {"COS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_215COS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_214COS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_215COS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -60707,18 +63787,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("DPO (wrapper)", 0); + __Pyx_RefNannySetupContext("COS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -60728,62 +63807,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4204, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4220, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4204, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4204, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DPO", 0) < (0)) __PYX_ERR(6, 4204, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COS", 0) < (0)) __PYX_ERR(6, 4220, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, i); __PYX_ERR(6, 4204, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, i); __PYX_ERR(6, 4220, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4204, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4204, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4220, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4206, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4204, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 4220, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4206, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_212DPO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4222, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_214COS(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -60798,12 +63861,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_214COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -60828,10 +63890,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("DPO", 0); + __Pyx_RefNannySetupContext("COS", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4225, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -60843,7 +63905,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4228, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -60879,7 +63941,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4232, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4246, __pyx_L1_error) /*try:*/ { @@ -60889,7 +63951,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_DPO_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_COS_Lookback()); } /*finally:*/ { @@ -60902,7 +63964,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4236, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4250, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -60913,7 +63975,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_DPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_COS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -60999,7 +64061,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4242, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -61018,7 +64080,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -61037,37 +64099,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_215DX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_217COSH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_214DX, "DX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nDX(high, low, close[, timeperiod=?])\n\nDirectional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_215DX = {"DX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_215DX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_214DX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_215DX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_216COSH, "COSH(ndarray real)\n\nCOSH(real)\n\nVector Trigonometric Cosh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_217COSH = {"COSH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_217COSH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_216COSH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_217COSH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("DX (wrapper)", 0); + __Pyx_RefNannySetupContext("COSH (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -61077,78 +64136,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4245, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4259, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4245, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4245, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4245, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4245, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4259, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DX", 0) < (0)) __PYX_ERR(6, 4245, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, i); __PYX_ERR(6, 4245, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4245, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4245, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4245, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4245, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COSH", 0) < (0)) __PYX_ERR(6, 4259, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, i); __PYX_ERR(6, 4259, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4247, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4259, __pyx_L3_error) } + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 4245, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 4259, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 4247, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 4247, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 4247, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_214DX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4261, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_216COSH(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -61163,12 +64190,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_216COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -61180,49 +64206,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("DX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4266, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4267, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("COSH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4268, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4269, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4271, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -61243,7 +64255,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -61258,7 +64270,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4275, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4285, __pyx_L1_error) /*try:*/ { @@ -61268,7 +64280,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_DX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_COSH_Lookback()); } /*finally:*/ { @@ -61281,7 +64293,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4279, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4289, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -61292,7 +64304,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_DX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_COSH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -61332,17 +64344,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -61363,22 +64375,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4285, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -61397,7 +64409,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -61408,9 +64420,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -61418,36 +64428,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_217EFI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_219CRSI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_216EFI, "EFI(ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nEFI(close, volume[, timeperiod=?])\n\nElder\047s Force Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nParameters:\n timeperiod: 13\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_217EFI = {"EFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_217EFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_216EFI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_217EFI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_218CRSI, "CRSI(ndarray real, int timeperiod=-0x80000000, int streakperiod=-0x80000000, int rankperiod=-0x80000000)\n\nCRSI(real[, timeperiod=?, streakperiod=?, rankperiod=?])\n\nConnors Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 3\n streakperiod: 2\n rankperiod: 100\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_219CRSI = {"CRSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_219CRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_218CRSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_219CRSI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + int __pyx_v_streakperiod; + int __pyx_v_rankperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("EFI (wrapper)", 0); + __Pyx_RefNannySetupContext("CRSI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -61457,70 +64468,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_streakperiod,&__pyx_mstate_global->__pyx_n_u_rankperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4288, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4298, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4298, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4288, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4298, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4288, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4298, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4288, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4298, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EFI", 0) < (0)) __PYX_ERR(6, 4288, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, i); __PYX_ERR(6, 4288, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CRSI", 0) < (0)) __PYX_ERR(6, 4298, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CRSI", 0, 1, 4, i); __PYX_ERR(6, 4298, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4298, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4288, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4298, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4288, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4298, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4288, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4298, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_close = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4290, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4300, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } + if (values[2]) { + __pyx_v_streakperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_streakperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4300, __pyx_L3_error) + } else { + __pyx_v_streakperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_rankperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rankperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4300, __pyx_L3_error) + } else { + __pyx_v_rankperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 4288, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CRSI", 0, 1, 4, __pyx_nargs); __PYX_ERR(6, 4298, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 4290, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 4290, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_216EFI(__pyx_self, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4300, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_218CRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_streakperiod, __pyx_v_rankperiod); /* function exit code */ goto __pyx_L0; @@ -61536,11 +64565,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_218CRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_streakperiod, int __pyx_v_rankperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -61552,43 +64583,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("EFI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4309, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("CRSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4310, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4311, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4313, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -61609,7 +64632,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -61624,7 +64647,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4317, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4328, __pyx_L1_error) /*try:*/ { @@ -61634,7 +64657,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_EFI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CRSI_Lookback(__pyx_v_timeperiod, __pyx_v_streakperiod, __pyx_v_rankperiod)); } /*finally:*/ { @@ -61647,7 +64670,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4321, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4332, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -61658,7 +64681,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_EFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CRSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_streakperiod, __pyx_v_rankperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -61698,17 +64721,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -61729,22 +64752,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_s } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4327, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -61763,7 +64786,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.EFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -61774,8 +64797,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -61783,16 +64805,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_219EMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_221CTI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_218EMA, "EMA(ndarray real, int timeperiod=-0x80000000)\n\nEMA(real[, timeperiod=?])\n\nExponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_219EMA = {"EMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_219EMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_218EMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_219EMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_220CTI, "CTI(ndarray real, int timeperiod=-0x80000000)\n\nCTI(real[, timeperiod=?])\n\nCorrelation Trend Indicator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_221CTI = {"CTI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_221CTI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_220CTI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_221CTI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -61811,7 +64833,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("EMA (wrapper)", 0); + __Pyx_RefNannySetupContext("CTI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -61823,60 +64845,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4330, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4341, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4330, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4341, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4330, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4341, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EMA", 0) < (0)) __PYX_ERR(6, 4330, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CTI", 0) < (0)) __PYX_ERR(6, 4341, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, i); __PYX_ERR(6, 4330, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CTI", 0, 1, 2, i); __PYX_ERR(6, 4341, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4330, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4341, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4330, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4341, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4332, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4343, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4330, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CTI", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4341, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CTI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4332, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_218EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4343, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_220CTI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -61896,7 +64918,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_220CTI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -61921,10 +64943,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("EMA", 0); + __Pyx_RefNannySetupContext("CTI", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4351, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -61936,7 +64958,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4354, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -61972,7 +64994,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4358, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4369, __pyx_L1_error) /*try:*/ { @@ -61982,7 +65004,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_EMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CTI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -61995,7 +65017,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4362, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4373, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -62006,7 +65028,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_EMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CTI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -62092,7 +65114,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4368, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CTI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -62111,7 +65133,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CTI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -62130,16 +65152,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_221ER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_223CUMSUM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_220ER, "ER(ndarray real, int timeperiod=-0x80000000)\n\nER(real[, timeperiod=?])\n\nKaufman Efficiency Ratio (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_221ER = {"ER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_221ER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_220ER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_221ER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_222CUMSUM, "CUMSUM(ndarray real)\n\nCUMSUM(real)\n\nCumulative Sum (Math Operators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_223CUMSUM = {"CUMSUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_223CUMSUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_222CUMSUM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_223CUMSUM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -62147,18 +65169,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ER (wrapper)", 0); + __Pyx_RefNannySetupContext("CUMSUM (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -62168,62 +65189,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4371, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4382, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4371, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4382, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ER", 0) < (0)) __PYX_ERR(6, 4371, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CUMSUM", 0) < (0)) __PYX_ERR(6, 4382, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, i); __PYX_ERR(6, 4371, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, i); __PYX_ERR(6, 4382, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4371, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4371, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4382, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4373, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4371, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 4382, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4373, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_220ER(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4384, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_222CUMSUM(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -62238,12 +65243,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_222CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -62268,10 +65272,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_se int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ER", 0); + __Pyx_RefNannySetupContext("CUMSUM", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4392, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -62283,7 +65287,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_se if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4395, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -62319,7 +65323,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_se __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4399, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4408, __pyx_L1_error) /*try:*/ { @@ -62329,7 +65333,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ER_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CUMSUM_Lookback()); } /*finally:*/ { @@ -62342,7 +65346,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_se } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4403, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4412, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -62353,7 +65357,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CUMSUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -62439,7 +65443,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_se __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4409, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -62458,7 +65462,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -62477,16 +65481,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_223ERI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_225CVI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_222ERI, "ERI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nERI(high, low, close[, timeperiod=?])\n\nElder Ray Index (Bull Power / Bear Power) (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\nOutputs:\n bullpower\n bearpower"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_223ERI = {"ERI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_223ERI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_222ERI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_223ERI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_224CVI, "CVI(ndarray high, ndarray low, int timeperiod=-0x80000000, int rocperiod=-0x80000000)\n\nCVI(high, low[, timeperiod=?, rocperiod=?])\n\nChaikin\047s Volatility (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 10\n rocperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_225CVI = {"CVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_225CVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_224CVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_225CVI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -62495,8 +65499,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; + int __pyx_v_rocperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -62507,7 +65511,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ERI (wrapper)", 0); + __Pyx_RefNannySetupContext("CVI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -62517,78 +65521,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4412, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4421, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ERI", 0) < (0)) __PYX_ERR(6, 4412, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, i); __PYX_ERR(6, 4412, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CVI", 0) < (0)) __PYX_ERR(6, 4421, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, i); __PYX_ERR(6, 4421, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4421, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4421, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4414, __pyx_L3_error) + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4423, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } + if (values[3]) { + __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4423, __pyx_L3_error) + } else { + __pyx_v_rocperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 4412, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, __pyx_nargs); __PYX_ERR(6, 4421, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CVI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 4414, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 4414, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 4414, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_222ERI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 4423, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 4423, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_224CVI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); /* function exit code */ goto __pyx_L0; @@ -62604,11 +65613,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_224CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -62616,48 +65626,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outbullpower = 0; - PyArrayObject *__pyx_v_outbearpower = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - char const *__pyx_t_8; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ERI", 0); + __Pyx_RefNannySetupContext("CVI", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4435, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4436, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4437, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4438, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4445, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -62665,27 +65666,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4440, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 4440, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 4440, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -62696,7 +65687,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -62711,7 +65702,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4444, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4451, __pyx_L1_error) /*try:*/ { @@ -62721,7 +65712,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ERI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod)); } /*finally:*/ { @@ -62734,15 +65725,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4448, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outbullpower = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4449, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outbearpower = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4455, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -62750,7 +65736,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ERI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbullpower)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbearpower)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -62790,19 +65776,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); - if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -62823,51 +65807,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4455, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF((PyObject *)__pyx_v_outbullpower); - __Pyx_GIVEREF((PyObject *)__pyx_v_outbullpower); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outbullpower)) != (0)) __PYX_ERR(6, 4456, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outbearpower); - __Pyx_GIVEREF((PyObject *)__pyx_v_outbearpower); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outbearpower)) != (0)) __PYX_ERR(6, 4456, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CVI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -62877,11 +65851,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s - __Pyx_XDECREF((PyObject *)__pyx_v_outbullpower); - __Pyx_XDECREF((PyObject *)__pyx_v_outbearpower); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -62889,16 +65861,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_225EXP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_227DEMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_224EXP, "EXP(ndarray real)\n\nEXP(real)\n\nVector Arithmetic Exp (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_225EXP = {"EXP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_225EXP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_224EXP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_225EXP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_226DEMA, "DEMA(ndarray real, int timeperiod=-0x80000000)\n\nDEMA(real[, timeperiod=?])\n\nDouble Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_227DEMA = {"DEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_227DEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_226DEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_227DEMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -62906,17 +65878,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("EXP (wrapper)", 0); + __Pyx_RefNannySetupContext("DEMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -62926,46 +65899,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4458, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4464, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4464, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4458, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4464, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EXP", 0) < (0)) __PYX_ERR(6, 4458, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DEMA", 0) < (0)) __PYX_ERR(6, 4464, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, i); __PYX_ERR(6, 4458, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, i); __PYX_ERR(6, 4464, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4458, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4464, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4464, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4466, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 4458, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4464, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4460, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_224EXP(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4466, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_226DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -62980,11 +65969,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_226DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -63009,10 +65999,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("EXP", 0); + __Pyx_RefNannySetupContext("DEMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4477, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -63024,7 +66014,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4480, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -63060,7 +66050,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4484, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4492, __pyx_L1_error) /*try:*/ { @@ -63070,7 +66060,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_EXP_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_DEMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -63083,7 +66073,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4488, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4496, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -63094,7 +66084,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_EXP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -63180,7 +66170,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4494, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -63199,7 +66189,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -63218,34 +66208,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_227FLOOR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_229DIV(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_226FLOOR, "FLOOR(ndarray real)\n\nFLOOR(real)\n\nVector Floor (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_227FLOOR = {"FLOOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_227FLOOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_226FLOOR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_227FLOOR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_228DIV, "DIV(ndarray real0, ndarray real1)\n\nDIV(real0, real1)\n\nVector Arithmetic Div (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_229DIV = {"DIV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_229DIV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_228DIV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_229DIV(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("FLOOR (wrapper)", 0); + __Pyx_RefNannySetupContext("DIV (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -63255,46 +66246,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4497, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4505, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4505, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4497, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4505, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FLOOR", 0) < (0)) __PYX_ERR(6, 4497, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, i); __PYX_ERR(6, 4497, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DIV", 0) < (0)) __PYX_ERR(6, 4505, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, i); __PYX_ERR(6, 4505, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4497, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4505, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4505, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 4497, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 4505, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4499, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_226FLOOR(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(6, 4507, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(6, 4507, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_228DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1); /* function exit code */ goto __pyx_L0; @@ -63313,7 +66312,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_228DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -63325,35 +66324,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("FLOOR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("DIV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4516, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4527, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4519, __pyx_L1_error) + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -63374,7 +66381,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); } /*finally:*/ { @@ -63389,7 +66396,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4523, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4533, __pyx_L1_error) /*try:*/ { @@ -63399,7 +66406,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_FLOOR_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_DIV_Lookback()); } /*finally:*/ { @@ -63412,7 +66419,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4527, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4537, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -63423,7 +66430,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_FLOOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DIV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -63463,17 +66470,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -63494,22 +66501,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4533, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -63528,7 +66535,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -63539,7 +66546,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -63547,35 +66555,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_229FOSC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_231DONCHIAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_228FOSC, "FOSC(ndarray real, int timeperiod=-0x80000000)\n\nFOSC(real[, timeperiod=?])\n\nForecast Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_229FOSC = {"FOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_229FOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_228FOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_229FOSC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_230DONCHIAN, "DONCHIAN(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nDONCHIAN(high, low[, timeperiod=?])\n\nDonchian Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_231DONCHIAN = {"DONCHIAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_231DONCHIAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_230DONCHIAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_231DONCHIAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("FOSC (wrapper)", 0); + __Pyx_RefNannySetupContext("DONCHIAN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -63585,62 +66594,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4536, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4546, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4546, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4536, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4546, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4536, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4546, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FOSC", 0) < (0)) __PYX_ERR(6, 4536, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, i); __PYX_ERR(6, 4536, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DONCHIAN", 0) < (0)) __PYX_ERR(6, 4546, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, i); __PYX_ERR(6, 4546, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4546, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4536, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4546, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4536, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4546, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4538, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4548, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4536, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 4546, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4538, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_228FOSC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 4548, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 4548, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_230DONCHIAN(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -63660,7 +66677,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_230DONCHIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -63668,49 +66685,77 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outrealupperband = 0; + PyArrayObject *__pyx_v_outrealmiddleband = 0; + PyArrayObject *__pyx_v_outreallowerband = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; - int __pyx_t_4; - char const *__pyx_t_5; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; + int __pyx_t_7; + int __pyx_t_8; + char const *__pyx_t_9; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("FOSC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("DONCHIAN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4557, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4573, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4560, __pyx_L1_error) + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 4575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 4575, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 4575, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(6, 4575, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_6 = 0; goto __pyx_L0; } @@ -63721,7 +66766,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -63736,7 +66781,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4564, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4579, __pyx_L1_error) /*try:*/ { @@ -63746,7 +66791,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_FOSC_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_DONCHIAN_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -63759,10 +66804,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4568, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 4583, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 4584, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 4585, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; { PyThreadState * _save; @@ -63770,7 +66825,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_FOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DONCHIAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); } /*finally:*/ { @@ -63810,17 +66865,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_ExceptionSwap(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); + if ( unlikely(__Pyx_GetException(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12) < 0)) __Pyx_ErrFetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_15); + __pyx_t_7 = __pyx_lineno; __pyx_t_8 = __pyx_clineno; __pyx_t_9 = __pyx_filename; { { PyThreadState * _save; @@ -63841,41 +66899,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_ } } } - __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ErrRestore(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; + __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_8; __pyx_filename = __pyx_t_9; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4574, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 4591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 4592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(6, 4592, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(6, 4592, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(6, 4592, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -63885,8 +66957,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -63894,37 +66969,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_231FRACTAL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_233DOSC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_230FRACTAL, "FRACTAL(ndarray high, ndarray low, int leftbars=-0x80000000, int rightbars=-0x80000000)\n\nFRACTAL(high, low[, leftbars=?, rightbars=?])\n\nWilliams Fractal (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n leftbars: 2\n rightbars: 2\nOutputs:\n swinghigh\n swinglow"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_231FRACTAL = {"FRACTAL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_231FRACTAL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_230FRACTAL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_231FRACTAL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_232DOSC, "DOSC(ndarray real, int timeperiod=-0x80000000, int firstperiod=-0x80000000, int secondperiod=-0x80000000, int signalperiod=-0x80000000)\n\nDOSC(real[, timeperiod=?, firstperiod=?, secondperiod=?, signalperiod=?])\n\nDerivative Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n firstperiod: 5\n secondperiod: 3\n signalperiod: 9\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_233DOSC = {"DOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_233DOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_232DOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_233DOSC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_leftbars; - int __pyx_v_rightbars; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_firstperiod; + int __pyx_v_secondperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("FRACTAL (wrapper)", 0); + __Pyx_RefNannySetupContext("DOSC (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -63934,83 +67010,101 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4577, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4594, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 4594, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4594, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4594, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4594, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4594, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FRACTAL", 0) < (0)) __PYX_ERR(6, 4577, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, i); __PYX_ERR(6, 4577, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DOSC", 0) < (0)) __PYX_ERR(6, 4594, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DOSC", 0, 1, 5, i); __PYX_ERR(6, 4594, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 4594, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4594, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4594, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4594, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4594, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4596, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } if (values[2]) { - __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4579, __pyx_L3_error) + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4596, __pyx_L3_error) } else { - __pyx_v_leftbars = ((int)((int)-2147483648)); + __pyx_v_firstperiod = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4579, __pyx_L3_error) + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4596, __pyx_L3_error) } else { - __pyx_v_rightbars = ((int)((int)-2147483648)); + __pyx_v_secondperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4596, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, __pyx_nargs); __PYX_ERR(6, 4577, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DOSC", 0, 1, 5, __pyx_nargs); __PYX_ERR(6, 4594, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 4579, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 4579, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_230FRACTAL(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4596, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_232DOSC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_firstperiod, __pyx_v_secondperiod, __pyx_v_signalperiod); /* function exit code */ goto __pyx_L0; @@ -64027,11 +67121,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars) { +static PyObject *__pyx_pf_5talib_7_ta_lib_232DOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_firstperiod, int __pyx_v_secondperiod, int __pyx_v_signalperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -64039,70 +67135,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__p TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outswinghigh = 0; - PyArrayObject *__pyx_v_outswinglow = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - char const *__pyx_t_8; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("FRACTAL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4601, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("DOSC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4602, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4603, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4605, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4605, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4605, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 4605, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 4605, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -64113,7 +67188,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -64128,7 +67203,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__p __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4609, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4625, __pyx_L1_error) /*try:*/ { @@ -64138,7 +67213,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars)); + __pyx_v_lookback = (__pyx_v_begidx + TA_DOSC_Lookback(__pyx_v_timeperiod, __pyx_v_firstperiod, __pyx_v_secondperiod, __pyx_v_signalperiod)); } /*finally:*/ { @@ -64151,15 +67226,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__p } } - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4613, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outswinghigh = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4614, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outswinglow = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4629, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -64167,7 +67237,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_FRACTAL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinghigh)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinglow)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_firstperiod, __pyx_v_secondperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -64207,19 +67277,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__p /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); - if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -64240,51 +67308,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__p } } } - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4620, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4635, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4621, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF((PyObject *)__pyx_v_outswinghigh); - __Pyx_GIVEREF((PyObject *)__pyx_v_outswinghigh); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outswinghigh)) != (0)) __PYX_ERR(6, 4621, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outswinglow); - __Pyx_GIVEREF((PyObject *)__pyx_v_outswinglow); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outswinglow)) != (0)) __PYX_ERR(6, 4621, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -64294,10 +67352,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__p - __Pyx_XDECREF((PyObject *)__pyx_v_outswinghigh); - __Pyx_XDECREF((PyObject *)__pyx_v_outswinglow); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -64305,37 +67361,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_233HA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_235DPO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_232HA, "HA(ndarray open, ndarray high, ndarray low, ndarray close)\n\nHA(open, high, low, close)\n\nHeikin-Ashi Candles (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n haopen\n hahigh\n halow\n haclose"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_233HA = {"HA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_233HA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_232HA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_233HA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_234DPO, "DPO(ndarray real, int timeperiod=-0x80000000)\n\nDPO(real[, timeperiod=?])\n\nDetrended Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_235DPO = {"DPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_235DPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_234DPO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_235DPO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HA (wrapper)", 0); + __Pyx_RefNannySetupContext("DPO (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -64345,70 +67399,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4623, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4638, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4623, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4623, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4638, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4638, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HA", 0) < (0)) __PYX_ERR(6, 4623, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, i); __PYX_ERR(6, 4623, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DPO", 0) < (0)) __PYX_ERR(6, 4638, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, i); __PYX_ERR(6, 4638, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4623, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4623, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4623, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4623, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4638, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4638, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4640, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 4623, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4638, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 4625, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 4625, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 4625, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 4625, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_232HA(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4640, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_234DPO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -64423,11 +67469,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_234DPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -64435,96 +67482,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_se TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outhaopen = 0; - PyArrayObject *__pyx_v_outhahigh = 0; - PyArrayObject *__pyx_v_outhalow = 0; - PyArrayObject *__pyx_v_outhaclose = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; + int __pyx_t_4; + char const *__pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; - int __pyx_t_8; - int __pyx_t_9; - char const *__pyx_t_10; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; - PyObject *__pyx_t_16 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4648, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4650, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("DPO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4651, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4652, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4654, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4654, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4654, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 4654, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 4654, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 4654, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 4654, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5) != (0)) __PYX_ERR(6, 4654, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6) != (0)) __PYX_ERR(6, 4654, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_t_6 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_7; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_7 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -64535,7 +67535,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -64550,7 +67550,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_se __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4658, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4666, __pyx_L1_error) /*try:*/ { @@ -64560,7 +67560,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HA_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_DPO_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -64573,25 +67573,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_se } } - __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 4662, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_v_outhaopen = ((PyArrayObject *)__pyx_t_7); - __pyx_t_7 = 0; - - __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 4663, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_v_outhahigh = ((PyArrayObject *)__pyx_t_7); - __pyx_t_7 = 0; - - __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 4664, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_v_outhalow = ((PyArrayObject *)__pyx_t_7); - __pyx_t_7 = 0; - - __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 4665, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_v_outhaclose = ((PyArrayObject *)__pyx_t_7); - __pyx_t_7 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4670, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -64599,7 +67584,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaopen)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhahigh)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhalow)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaclose)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -64639,21 +67624,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_se /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); - if ( unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __Pyx_XGOTREF(__pyx_t_15); - __Pyx_XGOTREF(__pyx_t_16); - __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -64674,59 +67655,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_se } } } - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_XGIVEREF(__pyx_t_16); - __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); - __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; - __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_7 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 4671, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 4672, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_INCREF((PyObject *)__pyx_v_outhaopen); - __Pyx_GIVEREF((PyObject *)__pyx_v_outhaopen); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_outhaopen)) != (0)) __PYX_ERR(6, 4672, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outhahigh); - __Pyx_GIVEREF((PyObject *)__pyx_v_outhahigh); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_v_outhahigh)) != (0)) __PYX_ERR(6, 4672, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outhalow); - __Pyx_GIVEREF((PyObject *)__pyx_v_outhalow); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, ((PyObject *)__pyx_v_outhalow)) != (0)) __PYX_ERR(6, 4672, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outhaclose); - __Pyx_GIVEREF((PyObject *)__pyx_v_outhaclose); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, ((PyObject *)__pyx_v_outhaclose)) != (0)) __PYX_ERR(6, 4672, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_7; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_7 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("talib._ta_lib.HA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -64736,14 +67699,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_se - __Pyx_XDECREF((PyObject *)__pyx_v_outhaopen); - __Pyx_XDECREF((PyObject *)__pyx_v_outhahigh); - __Pyx_XDECREF((PyObject *)__pyx_v_outhalow); - __Pyx_XDECREF((PyObject *)__pyx_v_outhaclose); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -64751,35 +67708,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_235HMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_237DX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_234HMA, "HMA(ndarray real, int timeperiod=-0x80000000)\n\nHMA(real[, timeperiod=?])\n\nHull Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_235HMA = {"HMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_235HMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_234HMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_235HMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_236DX, "DX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nDX(high, low, close[, timeperiod=?])\n\nDirectional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_237DX = {"DX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_237DX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_236DX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_237DX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HMA (wrapper)", 0); + __Pyx_RefNannySetupContext("DX (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -64789,62 +67748,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4674, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4679, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4679, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4679, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4679, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4679, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HMA", 0) < (0)) __PYX_ERR(6, 4674, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, i); __PYX_ERR(6, 4674, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DX", 0) < (0)) __PYX_ERR(6, 4679, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, i); __PYX_ERR(6, 4679, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4674, __pyx_L3_error) + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4679, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4679, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4679, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4679, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4676, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4681, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4674, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 4679, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4676, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_234HMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 4681, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 4681, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 4681, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_236DX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -64864,7 +67839,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_236DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -64876,35 +67851,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("DX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4695, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4703, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4698, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -64925,7 +67914,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -64940,7 +67929,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4702, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4709, __pyx_L1_error) /*try:*/ { @@ -64950,7 +67939,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_DX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -64963,7 +67952,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4706, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4713, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -64974,7 +67963,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -65014,17 +68003,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -65045,22 +68034,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4712, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -65079,7 +68068,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -65090,7 +68079,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -65098,34 +68089,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_237HT_DCPERIOD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_239EFI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_236HT_DCPERIOD, "HT_DCPERIOD(ndarray real)\n\nHT_DCPERIOD(real)\n\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_237HT_DCPERIOD = {"HT_DCPERIOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_237HT_DCPERIOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_236HT_DCPERIOD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_237HT_DCPERIOD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_238EFI, "EFI(ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nEFI(close, volume[, timeperiod=?])\n\nElder\047s Force Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nParameters:\n timeperiod: 13\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_239EFI = {"EFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_239EFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_238EFI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_239EFI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_DCPERIOD (wrapper)", 0); + __Pyx_RefNannySetupContext("EFI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -65135,46 +68128,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4715, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4722, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4722, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4722, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4715, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4722, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPERIOD", 0) < (0)) __PYX_ERR(6, 4715, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, i); __PYX_ERR(6, 4715, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EFI", 0) < (0)) __PYX_ERR(6, 4722, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, i); __PYX_ERR(6, 4722, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4715, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4722, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4722, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4722, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4724, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 4715, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 4722, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4717, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 4724, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 4724, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_238EFI(__pyx_self, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -65189,11 +68206,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_238EFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -65205,35 +68223,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_DCPERIOD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("EFI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4734, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4745, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4737, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -65254,7 +68280,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); } /*finally:*/ { @@ -65269,7 +68295,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4741, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4751, __pyx_L1_error) /*try:*/ { @@ -65279,7 +68305,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPERIOD_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_EFI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -65292,7 +68318,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4745, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4755, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -65303,7 +68329,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HT_DCPERIOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_EFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -65343,17 +68369,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -65374,22 +68400,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4751, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -65408,7 +68434,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -65419,7 +68445,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -65427,16 +68454,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_239HT_DCPHASE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_241EMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_238HT_DCPHASE, "HT_DCPHASE(ndarray real)\n\nHT_DCPHASE(real)\n\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_239HT_DCPHASE = {"HT_DCPHASE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_239HT_DCPHASE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_238HT_DCPHASE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_239HT_DCPHASE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_240EMA, "EMA(ndarray real, int timeperiod=-0x80000000)\n\nEMA(real[, timeperiod=?])\n\nExponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_241EMA = {"EMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_241EMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_240EMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_241EMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -65444,17 +68471,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_DCPHASE (wrapper)", 0); + __Pyx_RefNannySetupContext("EMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -65464,46 +68492,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4754, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4764, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4764, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4754, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4764, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPHASE", 0) < (0)) __PYX_ERR(6, 4754, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EMA", 0) < (0)) __PYX_ERR(6, 4764, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, i); __PYX_ERR(6, 4754, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, i); __PYX_ERR(6, 4764, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4754, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4764, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4764, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4766, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 4754, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4764, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4756, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4766, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_240EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -65518,11 +68562,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_240EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -65547,10 +68592,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_DCPHASE", 0); + __Pyx_RefNannySetupContext("EMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4773, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -65562,7 +68607,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject * if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4776, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -65598,7 +68643,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject * __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4780, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4792, __pyx_L1_error) /*try:*/ { @@ -65608,7 +68653,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPHASE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_EMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -65621,7 +68666,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4784, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4796, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -65632,7 +68677,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HT_DCPHASE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_EMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -65718,7 +68763,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject * __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4790, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -65737,7 +68782,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -65756,34 +68801,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_241HT_PHASOR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_243EMV(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_240HT_PHASOR, "HT_PHASOR(ndarray real)\n\nHT_PHASOR(real)\n\nHilbert Transform - Phasor Components (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n inphase\n quadrature"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_241HT_PHASOR = {"HT_PHASOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_241HT_PHASOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_240HT_PHASOR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_241HT_PHASOR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_242EMV, "EMV(ndarray high, ndarray low, ndarray volume, int timeperiod=-0x80000000, double volumedivisor=-4e37)\n\nEMV(high, low, volume[, timeperiod=?, volumedivisor=?])\n\nArms Ease of Movement (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047volume\047]\nParameters:\n timeperiod: 14\n volumedivisor: 10000.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_243EMV = {"EMV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_243EMV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_242EMV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_243EMV(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + double __pyx_v_volumedivisor; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_PHASOR (wrapper)", 0); + __Pyx_RefNannySetupContext("EMV (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -65793,46 +68842,91 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_volumedivisor,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4793, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4805, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 4805, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4805, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4805, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4805, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4793, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4805, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_PHASOR", 0) < (0)) __PYX_ERR(6, 4793, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, i); __PYX_ERR(6, 4793, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EMV", 0) < (0)) __PYX_ERR(6, 4805, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EMV", 0, 3, 5, i); __PYX_ERR(6, 4805, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4793, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 4805, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4805, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4805, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4805, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4805, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_volume = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4807, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_volumedivisor = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_volumedivisor == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 4807, __pyx_L3_error) + } else { + __pyx_v_volumedivisor = ((double)((double)-4e37)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 4793, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("EMV", 0, 3, 5, __pyx_nargs); __PYX_ERR(6, 4805, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMV", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4795, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_240HT_PHASOR(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 4807, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 4807, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 4807, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_242EMV(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_volume, __pyx_v_timeperiod, __pyx_v_volumedivisor); /* function exit code */ goto __pyx_L0; @@ -65847,11 +68941,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_242EMV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod, double __pyx_v_volumedivisor) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -65859,62 +68955,63 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinphase = 0; - PyArrayObject *__pyx_v_outquadrature = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_t_5; - int __pyx_t_6; - char const *__pyx_t_7; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_PHASOR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("EMV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4814, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4830, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4817, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 4817, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 4817, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -65925,7 +69022,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); } /*finally:*/ { @@ -65940,7 +69037,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4821, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4836, __pyx_L1_error) /*try:*/ { @@ -65950,7 +69047,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_PHASOR_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_EMV_Lookback(__pyx_v_timeperiod, __pyx_v_volumedivisor)); } /*finally:*/ { @@ -65963,15 +69060,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *_ } } - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4825, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; - - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4826, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4840, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -65979,7 +69071,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HT_PHASOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinphase)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outquadrature)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_EMV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_volumedivisor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -66019,19 +69111,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); - if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -66052,51 +69142,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *_ } } } + __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); - __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; - __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4832, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4833, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF((PyObject *)__pyx_v_outinphase); - __Pyx_GIVEREF((PyObject *)__pyx_v_outinphase); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outinphase)) != (0)) __PYX_ERR(6, 4833, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outquadrature); - __Pyx_GIVEREF((PyObject *)__pyx_v_outquadrature); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outquadrature)) != (0)) __PYX_ERR(6, 4833, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMV", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -66106,9 +69186,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *_ - __Pyx_XDECREF((PyObject *)__pyx_v_outinphase); - __Pyx_XDECREF((PyObject *)__pyx_v_outquadrature); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -66116,16 +69197,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_243HT_SINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_245ER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_242HT_SINE, "HT_SINE(ndarray real)\n\nHT_SINE(real)\n\nHilbert Transform - SineWave (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n sine\n leadsine"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_243HT_SINE = {"HT_SINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_243HT_SINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_242HT_SINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_243HT_SINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_244ER, "ER(ndarray real, int timeperiod=-0x80000000)\n\nER(real[, timeperiod=?])\n\nKaufman Efficiency Ratio (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_245ER = {"ER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_245ER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_244ER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_245ER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -66133,17 +69214,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_SINE (wrapper)", 0); + __Pyx_RefNannySetupContext("ER (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -66153,46 +69235,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4835, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4849, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4849, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4835, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4849, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_SINE", 0) < (0)) __PYX_ERR(6, 4835, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ER", 0) < (0)) __PYX_ERR(6, 4849, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, i); __PYX_ERR(6, 4835, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, i); __PYX_ERR(6, 4849, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4835, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4849, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4849, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4851, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 4835, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4849, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4837, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_242HT_SINE(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4851, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_244ER(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -66207,11 +69305,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_244ER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -66219,30 +69318,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__p TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outsine = 0; - PyArrayObject *__pyx_v_outleadsine = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - int __pyx_t_6; - char const *__pyx_t_7; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_SINE", 0); + __Pyx_RefNannySetupContext("ER", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4856, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -66254,27 +69350,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__p if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4859, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4859, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4859, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 4859, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 4859, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -66300,7 +69386,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__p __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4863, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4877, __pyx_L1_error) /*try:*/ { @@ -66310,7 +69396,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_SINE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_ER_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -66323,15 +69409,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__p } } - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4867, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_v_outsine = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; - - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4868, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4881, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -66339,7 +69420,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HT_SINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsine)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outleadsine)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -66379,19 +69460,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__p /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); - if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -66412,51 +69491,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__p } } } - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); - __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; - __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4874, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF((PyObject *)__pyx_v_outsine); - __Pyx_GIVEREF((PyObject *)__pyx_v_outsine); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outsine)) != (0)) __PYX_ERR(6, 4875, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outleadsine); - __Pyx_GIVEREF((PyObject *)__pyx_v_outleadsine); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outleadsine)) != (0)) __PYX_ERR(6, 4875, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -66466,8 +69535,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__p - __Pyx_XDECREF((PyObject *)__pyx_v_outsine); - __Pyx_XDECREF((PyObject *)__pyx_v_outleadsine); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -66476,34 +69544,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_245HT_TRENDLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_247ERI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_244HT_TRENDLINE, "HT_TRENDLINE(ndarray real)\n\nHT_TRENDLINE(real)\n\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_245HT_TRENDLINE = {"HT_TRENDLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_245HT_TRENDLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_244HT_TRENDLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_245HT_TRENDLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_246ERI, "ERI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nERI(high, low, close[, timeperiod=?])\n\nElder Ray Index (Bull Power / Bear Power) (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\nOutputs:\n bullpower\n bearpower"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_247ERI = {"ERI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_247ERI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_246ERI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_247ERI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_TRENDLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("ERI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -66513,46 +69584,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4877, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4890, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4890, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4877, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4890, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDLINE", 0) < (0)) __PYX_ERR(6, 4877, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, i); __PYX_ERR(6, 4877, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ERI", 0) < (0)) __PYX_ERR(6, 4890, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, i); __PYX_ERR(6, 4890, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4877, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 4890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4890, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4890, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4890, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4892, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 4877, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 4890, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4879, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 4892, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 4892, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 4892, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_246ERI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -66567,11 +69670,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_246ERI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -66579,49 +69683,76 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outbullpower = 0; + PyArrayObject *__pyx_v_outbearpower = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; - int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_TRENDLINE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("ERI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4896, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4916, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4899, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 4918, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 4918, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; } @@ -66632,7 +69763,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -66647,7 +69778,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4903, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4922, __pyx_L1_error) /*try:*/ { @@ -66657,7 +69788,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDLINE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_ERI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -66670,10 +69801,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4907, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4926, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outbullpower = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4927, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outbearpower = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; { PyThreadState * _save; @@ -66681,7 +69817,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HT_TRENDLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ERI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbullpower)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbearpower)) + __pyx_v_lookback)); } /*finally:*/ { @@ -66721,17 +69857,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; { { PyThreadState * _save; @@ -66752,41 +69890,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject } } } + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4913, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outbullpower); + __Pyx_GIVEREF((PyObject *)__pyx_v_outbullpower); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outbullpower)) != (0)) __PYX_ERR(6, 4934, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outbearpower); + __Pyx_GIVEREF((PyObject *)__pyx_v_outbearpower); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outbearpower)) != (0)) __PYX_ERR(6, 4934, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -66796,8 +69944,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outbullpower); + __Pyx_XDECREF((PyObject *)__pyx_v_outbearpower); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -66805,16 +69956,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_247HT_TRENDMODE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_249EXP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_246HT_TRENDMODE, "HT_TRENDMODE(ndarray real)\n\nHT_TRENDMODE(real)\n\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n integer"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_247HT_TRENDMODE = {"HT_TRENDMODE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_247HT_TRENDMODE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_246HT_TRENDMODE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_247HT_TRENDMODE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_248EXP, "EXP(ndarray real)\n\nEXP(real)\n\nVector Arithmetic Exp (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_249EXP = {"EXP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_249EXP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_248EXP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_249EXP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -66832,7 +69983,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_TRENDMODE (wrapper)", 0); + __Pyx_RefNannySetupContext("EXP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -66844,44 +69995,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4916, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4936, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4916, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4936, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDMODE", 0) < (0)) __PYX_ERR(6, 4916, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EXP", 0) < (0)) __PYX_ERR(6, 4936, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, i); __PYX_ERR(6, 4916, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, i); __PYX_ERR(6, 4936, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4916, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4936, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 4916, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 4936, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4918, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4938, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_248EXP(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -66900,7 +70051,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_248EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -66908,7 +70059,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -66925,10 +70076,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_TRENDMODE", 0); + __Pyx_RefNannySetupContext("EXP", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4935, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -66940,7 +70091,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4938, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -66976,7 +70127,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4942, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4962, __pyx_L1_error) /*try:*/ { @@ -66986,7 +70137,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDMODE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_EXP_Lookback()); } /*finally:*/ { @@ -66999,9 +70150,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4946, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4966, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -67010,7 +70161,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HT_TRENDMODE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_EXP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -67096,7 +70247,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4952, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -67104,8 +70255,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -67115,7 +70266,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -67125,7 +70276,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -67134,24 +70285,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_249IMI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_251FISHER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_248IMI, "IMI(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nIMI(open, close[, timeperiod=?])\n\nIntraday Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_249IMI = {"IMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_249IMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_248IMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_249IMI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_250FISHER, "FISHER(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nFISHER(high, low[, timeperiod=?])\n\nFisher Transform (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 10\nOutputs:\n fisher\n trigger"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_251FISHER = {"FISHER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_251FISHER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_250FISHER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_251FISHER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; @@ -67163,7 +70314,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("IMI (wrapper)", 0); + __Pyx_RefNannySetupContext("FISHER (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -67173,70 +70324,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4955, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4975, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4955, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4975, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4955, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4975, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4955, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4975, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "IMI", 0) < (0)) __PYX_ERR(6, 4955, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FISHER", 0) < (0)) __PYX_ERR(6, 4975, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, i); __PYX_ERR(6, 4955, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FISHER", 0, 2, 3, i); __PYX_ERR(6, 4975, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4955, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 4975, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4955, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4975, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4955, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4975, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_close = ((PyArrayObject *)values[1]); + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4957, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4977, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 4955, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("FISHER", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 4975, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FISHER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 4957, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 4957, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_248IMI(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 4977, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 4977, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_250FISHER(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -67256,7 +70407,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_250FISHER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -67264,39 +70415,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outfisher = 0; + PyArrayObject *__pyx_v_outtrigger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; int __pyx_t_3; - int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("IMI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("FISHER", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4976, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4977, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 4978, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5000, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -67304,17 +70458,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4980, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5002, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 5002, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; } @@ -67325,7 +70489,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -67340,7 +70504,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 4984, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5006, __pyx_L1_error) /*try:*/ { @@ -67350,7 +70514,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_IMI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_FISHER_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -67363,10 +70527,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4988, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5010, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outfisher = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5011, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outtrigger = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; { PyThreadState * _save; @@ -67374,7 +70543,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_IMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_FISHER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfisher)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outtrigger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -67414,17 +70583,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; { { PyThreadState * _save; @@ -67445,41 +70616,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4994, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FISHER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outfisher); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfisher); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outfisher)) != (0)) __PYX_ERR(6, 5018, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outtrigger); + __Pyx_GIVEREF((PyObject *)__pyx_v_outtrigger); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outtrigger)) != (0)) __PYX_ERR(6, 5018, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.FISHER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -67489,9 +70670,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_s - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_outfisher); + __Pyx_XDECREF((PyObject *)__pyx_v_outtrigger); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -67499,16 +70681,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_251KAMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_253FLOOR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_250KAMA, "KAMA(ndarray real, int timeperiod=-0x80000000)\n\nKAMA(real[, timeperiod=?])\n\nKaufman Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_251KAMA = {"KAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_251KAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_250KAMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_251KAMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_252FLOOR, "FLOOR(ndarray real)\n\nFLOOR(real)\n\nVector Floor (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_253FLOOR = {"FLOOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_253FLOOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_252FLOOR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_253FLOOR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -67516,18 +70698,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("KAMA (wrapper)", 0); + __Pyx_RefNannySetupContext("FLOOR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -67537,62 +70718,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 4997, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5020, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4997, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4997, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KAMA", 0) < (0)) __PYX_ERR(6, 4997, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FLOOR", 0) < (0)) __PYX_ERR(6, 5020, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, i); __PYX_ERR(6, 4997, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, i); __PYX_ERR(6, 5020, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 4997, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 4997, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5020, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 4999, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 4997, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 5020, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 4999, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_250KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5022, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_252FLOOR(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -67607,12 +70772,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_252FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -67637,10 +70801,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("KAMA", 0); + __Pyx_RefNannySetupContext("FLOOR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5018, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -67652,7 +70816,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_ if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5021, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -67688,7 +70852,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5025, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5046, __pyx_L1_error) /*try:*/ { @@ -67698,7 +70862,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_KAMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_FLOOR_Lookback()); } /*finally:*/ { @@ -67711,7 +70875,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5029, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5050, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -67722,7 +70886,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_KAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_FLOOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -67808,7 +70972,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5035, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -67827,7 +70991,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -67846,39 +71010,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_253KC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_255FOSC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_252KC, "KC(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int atrperiod=-0x80000000, double nbdev=-4e37)\n\nKC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?])\n\nKeltner Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\n atrperiod: 10\n nbdev: 2.0\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_253KC = {"KC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_253KC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_252KC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_253KC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_254FOSC, "FOSC(ndarray real, int timeperiod=-0x80000000)\n\nFOSC(real[, timeperiod=?])\n\nForecast Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_255FOSC = {"FOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_255FOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_254FOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_255FOSC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - int __pyx_v_atrperiod; - double __pyx_v_nbdev; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("KC (wrapper)", 0); + __Pyx_RefNannySetupContext("FOSC (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -67888,104 +71048,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5038, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5059, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5038, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5038, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5038, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5038, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5059, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5059, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KC", 0) < (0)) __PYX_ERR(6, 5038, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, i); __PYX_ERR(6, 5038, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FOSC", 0) < (0)) __PYX_ERR(6, 5059, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, i); __PYX_ERR(6, 5059, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5038, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5038, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5038, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5038, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5059, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5059, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5040, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5061, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } - if (values[4]) { - __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5040, __pyx_L3_error) - } else { - __pyx_v_atrperiod = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 5040, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)((double)-4e37)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, __pyx_nargs); __PYX_ERR(6, 5038, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 5059, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5040, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5040, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 5040, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_252KC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5061, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_254FOSC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -68001,13 +71119,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev) { +static PyObject *__pyx_pf_5talib_7_ta_lib_254FOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -68015,83 +71131,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_se TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outrealupperband = 0; - PyArrayObject *__pyx_v_outrealmiddleband = 0; - PyArrayObject *__pyx_v_outreallowerband = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; + int __pyx_t_4; + char const *__pyx_t_5; PyObject *__pyx_t_6 = NULL; - int __pyx_t_7; - int __pyx_t_8; - char const *__pyx_t_9; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("KC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5065, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5066, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("FOSC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5067, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5068, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5070, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5070, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 5070, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(6, 5070, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -68102,7 +71184,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -68117,7 +71199,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_se __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5074, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5087, __pyx_L1_error) /*try:*/ { @@ -68127,7 +71209,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev)); + __pyx_v_lookback = (__pyx_v_begidx + TA_FOSC_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -68140,20 +71222,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_se } } - __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5078, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_6); - __pyx_t_6 = 0; - - __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5079, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_6); - __pyx_t_6 = 0; - - __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5080, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_6); - __pyx_t_6 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5091, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -68161,7 +71233,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_KC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_FOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -68201,20 +71273,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_se /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_ExceptionSwap(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); - if ( unlikely(__Pyx_GetException(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12) < 0)) __Pyx_ErrFetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __Pyx_XGOTREF(__pyx_t_15); - __pyx_t_7 = __pyx_lineno; __pyx_t_8 = __pyx_clineno; __pyx_t_9 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -68235,55 +71304,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_se } } } - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ErrRestore(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; - __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_8; __pyx_filename = __pyx_t_9; + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_6 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(6, 5087, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(6, 5087, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(6, 5087, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.KC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -68293,12 +71348,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_se - __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -68306,16 +71357,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_255KDJ(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_257FRACTAL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_254KDJ, "KDJ(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=13, int slowd_period=-0x80000000, int slowd_matype=13)\n\nKDJ(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nKDJ Stochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 9\n slowk_period: 3\n slowk_matype: 13 (Wilder\047s Smoothed Moving Average)\n slowd_period: 3\n slowd_matype: 13 (Wilder\047s Smoothed Moving Average)\nOutputs:\n k\n d\n j"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_255KDJ = {"KDJ", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_255KDJ, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_254KDJ}; -static PyObject *__pyx_pw_5talib_7_ta_lib_255KDJ(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_256FRACTAL, "FRACTAL(ndarray high, ndarray low, int leftbars=-0x80000000, int rightbars=-0x80000000)\n\nFRACTAL(high, low[, leftbars=?, rightbars=?])\n\nWilliams Fractal (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n leftbars: 2\n rightbars: 2\nOutputs:\n swinghigh\n swinglow"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_257FRACTAL = {"FRACTAL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_257FRACTAL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_256FRACTAL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_257FRACTAL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -68324,23 +71375,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_slowk_period; - int __pyx_v_slowk_matype; - int __pyx_v_slowd_period; - int __pyx_v_slowd_matype; + int __pyx_v_leftbars; + int __pyx_v_rightbars; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[8] = {0,0,0,0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("KDJ (wrapper)", 0); + __Pyx_RefNannySetupContext("FRACTAL (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -68350,130 +71397,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5089, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5100, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 5089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 5089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5089, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5100, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5100, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5100, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5100, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KDJ", 0) < (0)) __PYX_ERR(6, 5089, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, i); __PYX_ERR(6, 5089, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FRACTAL", 0) < (0)) __PYX_ERR(6, 5100, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, i); __PYX_ERR(6, 5100, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 5089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 5089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5089, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5100, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5100, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5100, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5100, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5091, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5091, __pyx_L3_error) - } else { - __pyx_v_slowk_period = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5091, __pyx_L3_error) - } else { - __pyx_v_slowk_matype = ((int)((int)13)); - } - if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5091, __pyx_L3_error) + if (values[2]) { + __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5102, __pyx_L3_error) } else { - __pyx_v_slowd_period = ((int)((int)-2147483648)); + __pyx_v_leftbars = ((int)((int)-2147483648)); } - if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5091, __pyx_L3_error) + if (values[3]) { + __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5102, __pyx_L3_error) } else { - __pyx_v_slowd_matype = ((int)((int)13)); + __pyx_v_rightbars = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, __pyx_nargs); __PYX_ERR(6, 5089, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, __pyx_nargs); __PYX_ERR(6, 5100, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 5091, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_254KDJ(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5102, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5102, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_256FRACTAL(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); /* function exit code */ goto __pyx_L0; @@ -68490,14 +71490,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_L7_cleaned_up:; - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_256FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -68505,9 +71502,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outk = 0; - PyArrayObject *__pyx_v_outd = 0; - PyArrayObject *__pyx_v_outj = 0; + PyArrayObject *__pyx_v_outswinghigh = 0; + PyArrayObject *__pyx_v_outswinglow = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -68515,40 +71511,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_6; int __pyx_t_7; - int __pyx_t_8; - char const *__pyx_t_9; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("KDJ", 0); + __Pyx_RefNannySetupContext("FRACTAL", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5118, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5119, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5121, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5126, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -68556,32 +71545,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5123, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5123, __pyx_L1_error) + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5123, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5123, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5123, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5128, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 5123, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(6, 5123, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 5128, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_5 = 0; goto __pyx_L0; } @@ -68592,7 +71576,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -68607,7 +71591,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5127, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5132, __pyx_L1_error) /*try:*/ { @@ -68617,7 +71601,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars)); } /*finally:*/ { @@ -68630,20 +71614,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5131, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_v_outk = ((PyArrayObject *)__pyx_t_6); - __pyx_t_6 = 0; - - __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5132, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_v_outd = ((PyArrayObject *)__pyx_t_6); - __pyx_t_6 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5136, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outswinghigh = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5133, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_v_outj = ((PyArrayObject *)__pyx_t_6); - __pyx_t_6 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5137, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outswinglow = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; { PyThreadState * _save; @@ -68651,7 +71630,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_KDJ(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outj)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_FRACTAL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinghigh)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinglow)) + __pyx_v_lookback)); } /*finally:*/ { @@ -68691,20 +71670,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_ExceptionSwap(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); - if ( unlikely(__Pyx_GetException(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12) < 0)) __Pyx_ErrFetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); - __Pyx_XGOTREF(__pyx_t_15); - __pyx_t_7 = __pyx_lineno; __pyx_t_8 = __pyx_clineno; __pyx_t_9 = __pyx_filename; + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; { { PyThreadState * _save; @@ -68725,45 +71703,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s } } } + __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ErrRestore(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; - __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_8; __pyx_filename = __pyx_t_9; + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_6 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5140, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_INCREF((PyObject *)__pyx_v_outk); - __Pyx_GIVEREF((PyObject *)__pyx_v_outk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_outk)) != (0)) __PYX_ERR(6, 5140, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_outd)) != (0)) __PYX_ERR(6, 5140, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outj); - __Pyx_GIVEREF((PyObject *)__pyx_v_outj); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_outj)) != (0)) __PYX_ERR(6, 5140, __pyx_L1_error); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outswinghigh); + __Pyx_GIVEREF((PyObject *)__pyx_v_outswinghigh); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outswinghigh)) != (0)) __PYX_ERR(6, 5144, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outswinglow); + __Pyx_GIVEREF((PyObject *)__pyx_v_outswinglow); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outswinglow)) != (0)) __PYX_ERR(6, 5144, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -68772,8 +71747,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -68783,12 +71757,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s - __Pyx_XDECREF((PyObject *)__pyx_v_outk); - __Pyx_XDECREF((PyObject *)__pyx_v_outd); - __Pyx_XDECREF((PyObject *)__pyx_v_outj); + __Pyx_XDECREF((PyObject *)__pyx_v_outswinghigh); + __Pyx_XDECREF((PyObject *)__pyx_v_outswinglow); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -68796,35 +71768,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_257LINEARREG(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_259FRAMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_256LINEARREG, "LINEARREG(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG(real[, timeperiod=?])\n\nLinear Regression (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_257LINEARREG = {"LINEARREG", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_257LINEARREG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_256LINEARREG}; -static PyObject *__pyx_pw_5talib_7_ta_lib_257LINEARREG(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_258FRAMA, "FRAMA(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nFRAMA(high, low[, timeperiod=?])\n\nFractal Adaptive Moving Average (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 16\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_259FRAMA = {"FRAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_259FRAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_258FRAMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_259FRAMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LINEARREG (wrapper)", 0); + __Pyx_RefNannySetupContext("FRAMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -68834,62 +71807,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5142, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5146, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5146, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5146, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5146, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG", 0) < (0)) __PYX_ERR(6, 5142, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, i); __PYX_ERR(6, 5142, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FRAMA", 0) < (0)) __PYX_ERR(6, 5146, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FRAMA", 0, 2, 3, i); __PYX_ERR(6, 5146, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5146, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5142, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5146, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5146, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5144, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5148, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 5142, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("FRAMA", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 5146, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5144, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_256LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5148, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5148, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_258FRAMA(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -68909,7 +71890,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_258FRAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -68921,35 +71902,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LINEARREG", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("FRAMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5163, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5169, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5166, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -68970,7 +71959,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -68985,7 +71974,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5170, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5175, __pyx_L1_error) /*try:*/ { @@ -68995,7 +71984,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_FRAMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -69008,7 +71997,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5174, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5179, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -69019,7 +72008,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_FRAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -69059,17 +72048,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -69090,22 +72079,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *_ } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5180, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -69124,7 +72113,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -69135,7 +72124,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *_ __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -69143,35 +72133,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_259LINEARREG_ANGLE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_261HA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_258LINEARREG_ANGLE, "LINEARREG_ANGLE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_ANGLE(real[, timeperiod=?])\n\nLinear Regression Angle (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_259LINEARREG_ANGLE = {"LINEARREG_ANGLE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_259LINEARREG_ANGLE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_258LINEARREG_ANGLE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_259LINEARREG_ANGLE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_260HA, "HA(ndarray open, ndarray high, ndarray low, ndarray close)\n\nHA(open, high, low, close)\n\nHeikin-Ashi Candles (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n haopen\n hahigh\n halow\n haclose"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_261HA = {"HA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_261HA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_260HA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_261HA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LINEARREG_ANGLE (wrapper)", 0); + __Pyx_RefNannySetupContext("HA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -69181,62 +72173,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5183, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5188, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5188, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5188, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5183, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5188, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5183, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5188, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_ANGLE", 0) < (0)) __PYX_ERR(6, 5183, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, i); __PYX_ERR(6, 5183, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5183, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5183, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HA", 0) < (0)) __PYX_ERR(6, 5188, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, i); __PYX_ERR(6, 5188, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5185, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5188, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5188, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5188, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5188, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 5183, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 5188, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5185, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 5190, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5190, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5190, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 5190, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_260HA(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -69251,12 +72251,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_260HA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -69264,49 +72263,96 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObj TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outhaopen = 0; + PyArrayObject *__pyx_v_outhahigh = 0; + PyArrayObject *__pyx_v_outhalow = 0; + PyArrayObject *__pyx_v_outhaclose = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; - int __pyx_t_4; - char const *__pyx_t_5; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; + int __pyx_t_8; + int __pyx_t_9; + char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LINEARREG_ANGLE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("HA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5204, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5217, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5207, __pyx_L1_error) + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5219, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 5219, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5) != (0)) __PYX_ERR(6, 5219, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6) != (0)) __PYX_ERR(6, 5219, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_7 = 0; goto __pyx_L0; } @@ -69317,7 +72363,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -69332,7 +72378,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObj __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5211, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5223, __pyx_L1_error) /*try:*/ { @@ -69342,7 +72388,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_HA_Lookback()); } /*finally:*/ { @@ -69355,10 +72401,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5215, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5227, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_outhaopen = ((PyArrayObject *)__pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5228, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_outhahigh = ((PyArrayObject *)__pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5229, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_outhalow = ((PyArrayObject *)__pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5230, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_outhaclose = ((PyArrayObject *)__pyx_t_7); + __pyx_t_7 = 0; { PyThreadState * _save; @@ -69366,7 +72427,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_ANGLE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaopen)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhahigh)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhalow)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaclose)) + __pyx_v_lookback)); } /*finally:*/ { @@ -69406,17 +72467,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObj /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); + if ( unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_15); + __Pyx_XGOTREF(__pyx_t_16); + __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { { PyThreadState * _save; @@ -69437,41 +72502,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObj } } } - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); + __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; + __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_7 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF((PyObject *)__pyx_v_outhaopen); + __Pyx_GIVEREF((PyObject *)__pyx_v_outhaopen); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_outhaopen)) != (0)) __PYX_ERR(6, 5237, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outhahigh); + __Pyx_GIVEREF((PyObject *)__pyx_v_outhahigh); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_v_outhahigh)) != (0)) __PYX_ERR(6, 5237, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outhalow); + __Pyx_GIVEREF((PyObject *)__pyx_v_outhalow); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, ((PyObject *)__pyx_v_outhalow)) != (0)) __PYX_ERR(6, 5237, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outhaclose); + __Pyx_GIVEREF((PyObject *)__pyx_v_outhaclose); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, ((PyObject *)__pyx_v_outhaclose)) != (0)) __PYX_ERR(6, 5237, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_7 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.HA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -69481,8 +72564,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObj - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outhaopen); + __Pyx_XDECREF((PyObject *)__pyx_v_outhahigh); + __Pyx_XDECREF((PyObject *)__pyx_v_outhalow); + __Pyx_XDECREF((PyObject *)__pyx_v_outhaclose); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -69490,16 +72579,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_261LINEARREG_INTERCEPT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_263HMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_260LINEARREG_INTERCEPT, "LINEARREG_INTERCEPT(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_INTERCEPT(real[, timeperiod=?])\n\nLinear Regression Intercept (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_261LINEARREG_INTERCEPT = {"LINEARREG_INTERCEPT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_261LINEARREG_INTERCEPT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_260LINEARREG_INTERCEPT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_261LINEARREG_INTERCEPT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_262HMA, "HMA(ndarray real, int timeperiod=-0x80000000)\n\nHMA(real[, timeperiod=?])\n\nHull Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_263HMA = {"HMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_263HMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_262HMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_263HMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -69518,7 +72607,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT (wrapper)", 0); + __Pyx_RefNannySetupContext("HMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -69530,60 +72619,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5224, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5239, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5224, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5239, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5224, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5239, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_INTERCEPT", 0) < (0)) __PYX_ERR(6, 5224, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HMA", 0) < (0)) __PYX_ERR(6, 5239, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, i); __PYX_ERR(6, 5224, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, i); __PYX_ERR(6, 5239, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5224, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5239, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5224, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5239, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5226, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5241, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 5224, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 5239, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5226, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5241, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_262HMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -69603,7 +72692,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_262HMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -69628,10 +72717,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED P int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT", 0); + __Pyx_RefNannySetupContext("HMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5245, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -69643,7 +72732,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED P if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5248, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -69679,7 +72768,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED P __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5252, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5267, __pyx_L1_error) /*try:*/ { @@ -69689,7 +72778,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_HMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -69702,7 +72791,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED P } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5256, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5271, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -69713,7 +72802,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_INTERCEPT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -69799,7 +72888,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED P __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5262, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -69818,7 +72907,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED P /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -69837,16 +72926,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_263LINEARREG_SLOPE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_265HT_DCPERIOD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_262LINEARREG_SLOPE, "LINEARREG_SLOPE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_SLOPE(real[, timeperiod=?])\n\nLinear Regression Slope (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_263LINEARREG_SLOPE = {"LINEARREG_SLOPE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_263LINEARREG_SLOPE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_262LINEARREG_SLOPE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_263LINEARREG_SLOPE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_264HT_DCPERIOD, "HT_DCPERIOD(ndarray real)\n\nHT_DCPERIOD(real)\n\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_265HT_DCPERIOD = {"HT_DCPERIOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_265HT_DCPERIOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_264HT_DCPERIOD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_265HT_DCPERIOD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -69854,18 +72943,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LINEARREG_SLOPE (wrapper)", 0); + __Pyx_RefNannySetupContext("HT_DCPERIOD (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -69875,62 +72963,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5265, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5280, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5265, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5280, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_SLOPE", 0) < (0)) __PYX_ERR(6, 5265, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPERIOD", 0) < (0)) __PYX_ERR(6, 5280, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, i); __PYX_ERR(6, 5265, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, i); __PYX_ERR(6, 5280, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5265, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5265, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5280, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5267, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 5265, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 5280, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5267, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5282, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_264HT_DCPERIOD(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -69945,12 +73017,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_264HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -69975,10 +73046,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LINEARREG_SLOPE", 0); + __Pyx_RefNannySetupContext("HT_DCPERIOD", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5286, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -69990,7 +73061,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObj if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5289, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -70026,7 +73097,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObj __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5293, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5306, __pyx_L1_error) /*try:*/ { @@ -70036,7 +73107,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPERIOD_Lookback()); } /*finally:*/ { @@ -70049,7 +73120,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5297, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5310, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -70060,7 +73131,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_SLOPE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_DCPERIOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -70146,7 +73217,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObj __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5303, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -70165,7 +73236,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -70184,16 +73255,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_265LN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_267HT_DCPHASE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_264LN, "LN(ndarray real)\n\nLN(real)\n\nVector Log Natural (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_265LN = {"LN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_265LN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_264LN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_265LN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_266HT_DCPHASE, "HT_DCPHASE(ndarray real)\n\nHT_DCPHASE(real)\n\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_267HT_DCPHASE = {"HT_DCPHASE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_267HT_DCPHASE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_266HT_DCPHASE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_267HT_DCPHASE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -70211,7 +73282,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LN (wrapper)", 0); + __Pyx_RefNannySetupContext("HT_DCPHASE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -70223,44 +73294,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5306, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5319, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5306, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LN", 0) < (0)) __PYX_ERR(6, 5306, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPHASE", 0) < (0)) __PYX_ERR(6, 5319, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, i); __PYX_ERR(6, 5306, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, i); __PYX_ERR(6, 5319, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5306, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5319, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 5306, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 5319, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5308, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_264LN(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5321, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_266HT_DCPHASE(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -70279,7 +73350,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_266HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -70304,10 +73375,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_se int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LN", 0); + __Pyx_RefNannySetupContext("HT_DCPHASE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5325, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -70319,7 +73390,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_se if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5328, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -70355,7 +73426,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_se __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5332, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5345, __pyx_L1_error) /*try:*/ { @@ -70365,7 +73436,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_LN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPHASE_Lookback()); } /*finally:*/ { @@ -70378,7 +73449,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_se } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5336, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5349, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -70389,7 +73460,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_LN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_DCPHASE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -70475,7 +73546,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_se __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5342, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -70494,7 +73565,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -70513,16 +73584,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_267LOG10(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_269HT_PHASOR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_266LOG10, "LOG10(ndarray real)\n\nLOG10(real)\n\nVector Log10 (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_267LOG10 = {"LOG10", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_267LOG10, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_266LOG10}; -static PyObject *__pyx_pw_5talib_7_ta_lib_267LOG10(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_268HT_PHASOR, "HT_PHASOR(ndarray real)\n\nHT_PHASOR(real)\n\nHilbert Transform - Phasor Components (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n inphase\n quadrature"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_269HT_PHASOR = {"HT_PHASOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_269HT_PHASOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_268HT_PHASOR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_269HT_PHASOR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -70540,7 +73611,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LOG10 (wrapper)", 0); + __Pyx_RefNannySetupContext("HT_PHASOR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -70552,44 +73623,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5345, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5358, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5345, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5358, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LOG10", 0) < (0)) __PYX_ERR(6, 5345, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_PHASOR", 0) < (0)) __PYX_ERR(6, 5358, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, i); __PYX_ERR(6, 5345, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, i); __PYX_ERR(6, 5358, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5345, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5358, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 5345, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 5358, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5347, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_266LOG10(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5360, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_268HT_PHASOR(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -70608,7 +73679,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_268HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -70616,27 +73687,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinphase = 0; + PyArrayObject *__pyx_v_outquadrature = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + char const *__pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LOG10", 0); + __Pyx_RefNannySetupContext("HT_PHASOR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5364, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -70648,17 +73722,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5367, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5382, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 5382, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_4 = 0; goto __pyx_L0; } @@ -70684,7 +73768,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5371, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5386, __pyx_L1_error) /*try:*/ { @@ -70694,7 +73778,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_LOG10_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_PHASOR_Lookback()); } /*finally:*/ { @@ -70707,10 +73791,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5375, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5390, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5391, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; { PyThreadState * _save; @@ -70718,7 +73807,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_LOG10(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_PHASOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinphase)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outquadrature)) + __pyx_v_lookback)); } /*finally:*/ { @@ -70758,17 +73847,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; { { PyThreadState * _save; @@ -70789,41 +73880,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx } } } - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5381, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF((PyObject *)__pyx_v_outinphase); + __Pyx_GIVEREF((PyObject *)__pyx_v_outinphase); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outinphase)) != (0)) __PYX_ERR(6, 5398, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outquadrature); + __Pyx_GIVEREF((PyObject *)__pyx_v_outquadrature); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outquadrature)) != (0)) __PYX_ERR(6, 5398, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -70833,7 +73934,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinphase); + __Pyx_XDECREF((PyObject *)__pyx_v_outquadrature); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -70842,16 +73944,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_269MA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_271HT_SINE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_268MA, "MA(ndarray real, int timeperiod=-0x80000000, int matype=0)\n\nMA(real[, timeperiod=?, matype=?])\n\nMoving average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_269MA = {"MA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_269MA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_268MA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_269MA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_270HT_SINE, "HT_SINE(ndarray real)\n\nHT_SINE(real)\n\nHilbert Transform - SineWave (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n sine\n leadsine"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_271HT_SINE = {"HT_SINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_271HT_SINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_270HT_SINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_271HT_SINE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -70859,19 +73961,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MA (wrapper)", 0); + __Pyx_RefNannySetupContext("HT_SINE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -70881,75 +73981,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5384, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5400, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5384, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5384, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5384, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5400, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MA", 0) < (0)) __PYX_ERR(6, 5384, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_SINE", 0) < (0)) __PYX_ERR(6, 5400, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, i); __PYX_ERR(6, 5384, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, i); __PYX_ERR(6, 5400, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5384, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5384, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5384, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5400, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5386, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5386, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 5384, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 5400, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5386, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_268MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5402, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_270HT_SINE(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -70964,13 +74035,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_270HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -70978,27 +74047,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_se TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outsine = 0; + PyArrayObject *__pyx_v_outleadsine = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + char const *__pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MA", 0); + __Pyx_RefNannySetupContext("HT_SINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5406, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -71010,17 +74082,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_se if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5409, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5424, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 5424, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_4 = 0; goto __pyx_L0; } @@ -71046,7 +74128,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_se __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5413, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5428, __pyx_L1_error) /*try:*/ { @@ -71056,7 +74138,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_SINE_Lookback()); } /*finally:*/ { @@ -71069,10 +74151,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_se } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5417, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5432, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outsine = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5433, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; { PyThreadState * _save; @@ -71080,7 +74167,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_SINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsine)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outleadsine)) + __pyx_v_lookback)); } /*finally:*/ { @@ -71120,17 +74207,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_se /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; { { PyThreadState * _save; @@ -71151,41 +74240,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_se } } } - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5439, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF((PyObject *)__pyx_v_outsine); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsine); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outsine)) != (0)) __PYX_ERR(6, 5440, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outleadsine); + __Pyx_GIVEREF((PyObject *)__pyx_v_outleadsine); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outleadsine)) != (0)) __PYX_ERR(6, 5440, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -71195,7 +74294,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_se - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outsine); + __Pyx_XDECREF((PyObject *)__pyx_v_outleadsine); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -71204,16 +74304,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_271MACD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_273HT_TRENDLINE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_270MACD, "MACD(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nMACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nMoving Average Convergence/Divergence (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_271MACD = {"MACD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_271MACD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_270MACD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_271MACD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_272HT_TRENDLINE, "HT_TRENDLINE(ndarray real)\n\nHT_TRENDLINE(real)\n\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_273HT_TRENDLINE = {"HT_TRENDLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_273HT_TRENDLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_272HT_TRENDLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_273HT_TRENDLINE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -71221,20 +74321,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MACD (wrapper)", 0); + __Pyx_RefNannySetupContext("HT_TRENDLINE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -71244,88 +74341,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5426, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5442, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5426, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5426, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5426, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5442, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACD", 0) < (0)) __PYX_ERR(6, 5426, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDLINE", 0) < (0)) __PYX_ERR(6, 5442, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, i); __PYX_ERR(6, 5426, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, i); __PYX_ERR(6, 5442, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5426, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5426, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5426, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5426, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5442, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5428, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5428, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5428, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, __pyx_nargs); __PYX_ERR(6, 5426, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 5442, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5428, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_270MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5444, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_272HT_TRENDLINE(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -71340,14 +74395,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_272HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -71355,32 +74407,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmacd = 0; - PyArrayObject *__pyx_v_outmacdsignal = 0; - PyArrayObject *__pyx_v_outmacdhist = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - char const *__pyx_t_8; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MACD", 0); + __Pyx_RefNannySetupContext("HT_TRENDLINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5453, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -71392,32 +74439,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_ if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5456, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5456, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 5456, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(6, 5456, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -71443,7 +74475,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5460, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5468, __pyx_L1_error) /*try:*/ { @@ -71453,7 +74485,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDLINE_Lookback()); } /*finally:*/ { @@ -71466,20 +74498,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5464, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5465, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5466, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5472, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -71487,7 +74509,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MACD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_TRENDLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -71527,20 +74549,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); - if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -71561,55 +74580,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_ } } } - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF((PyObject *)__pyx_v_outmacd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(6, 5473, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(6, 5473, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(6, 5473, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -71619,9 +74624,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -71630,16 +74633,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_273MACDEXT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_275HT_TRENDMODE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_272MACDEXT, "MACDEXT(ndarray real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)\n\nMACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\nMACD with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n fastmatype: 0 (Simple Moving Average)\n slowperiod: 26\n slowmatype: 0 (Simple Moving Average)\n signalperiod: 9\n signalmatype: 0 (Simple Moving Average)\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_273MACDEXT = {"MACDEXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_273MACDEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_272MACDEXT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_273MACDEXT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_274HT_TRENDMODE, "HT_TRENDMODE(ndarray real)\n\nHT_TRENDMODE(real)\n\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_275HT_TRENDMODE = {"HT_TRENDMODE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_275HT_TRENDMODE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_274HT_TRENDMODE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_275HT_TRENDMODE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -71647,23 +74650,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_fastmatype; - int __pyx_v_slowperiod; - int __pyx_v_slowmatype; - int __pyx_v_signalperiod; - int __pyx_v_signalmatype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[7] = {0,0,0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MACDEXT (wrapper)", 0); + __Pyx_RefNannySetupContext("HT_TRENDMODE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -71673,127 +74670,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5475, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5481, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 5475, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5475, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5475, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5475, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5475, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5475, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5475, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5481, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDEXT", 0) < (0)) __PYX_ERR(6, 5475, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDMODE", 0) < (0)) __PYX_ERR(6, 5481, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, i); __PYX_ERR(6, 5475, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, i); __PYX_ERR(6, 5481, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 5475, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5475, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5475, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5475, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5475, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5475, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5475, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5481, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5477, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5477, __pyx_L3_error) - } else { - __pyx_v_fastmatype = ((int)((int)0)); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5477, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5477, __pyx_L3_error) - } else { - __pyx_v_slowmatype = ((int)((int)0)); - } - if (values[5]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5477, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } - if (values[6]) { - __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5477, __pyx_L3_error) - } else { - __pyx_v_signalmatype = ((int)((int)0)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, __pyx_nargs); __PYX_ERR(6, 5475, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 5481, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5477, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_272MACDEXT(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5483, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_274HT_TRENDMODE(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -71808,17 +74724,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - - - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_274HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -71826,32 +74736,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__p TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmacd = 0; - PyArrayObject *__pyx_v_outmacdsignal = 0; - PyArrayObject *__pyx_v_outmacdhist = 0; + PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - char const *__pyx_t_8; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MACDEXT", 0); + __Pyx_RefNannySetupContext("HT_TRENDMODE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5505, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -71863,32 +74768,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__p if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5508, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5508, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 5508, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(6, 5508, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -71914,7 +74804,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__p __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5512, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5507, __pyx_L1_error) /*try:*/ { @@ -71924,7 +74814,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDMODE_Lookback()); } /*finally:*/ { @@ -71937,20 +74827,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__p } } - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5516, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5517, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5518, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5511, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -71958,7 +74838,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MACDEXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_TRENDMODE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -71998,20 +74878,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__p /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); - if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -72032,55 +74909,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__p } } } - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5525, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF((PyObject *)__pyx_v_outmacd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(6, 5525, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(6, 5525, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(6, 5525, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -72090,9 +74953,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__p - __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -72101,35 +74962,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_275MACDFIX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_277IBS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_274MACDFIX, "MACDFIX(ndarray real, int signalperiod=-0x80000000)\n\nMACDFIX(real[, signalperiod=?])\n\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_275MACDFIX = {"MACDFIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_275MACDFIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_274MACDFIX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_275MACDFIX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_276IBS, "IBS(ndarray high, ndarray low, ndarray close)\n\nIBS(high, low, close)\n\nInternal Bar Strength (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_277IBS = {"IBS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_277IBS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_276IBS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_277IBS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_signalperiod; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MACDFIX (wrapper)", 0); + __Pyx_RefNannySetupContext("IBS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -72139,62 +75001,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5527, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5520, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5520, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5520, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5520, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDFIX", 0) < (0)) __PYX_ERR(6, 5527, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, i); __PYX_ERR(6, 5527, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5527, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5527, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "IBS", 0) < (0)) __PYX_ERR(6, 5520, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("IBS", 1, 3, 3, i); __PYX_ERR(6, 5520, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5529, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5520, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5520, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5520, __pyx_L3_error) } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 5527, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("IBS", 1, 3, 3, __pyx_nargs); __PYX_ERR(6, 5520, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IBS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5529, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_274MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5522, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5522, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 5522, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_276IBS(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -72209,12 +75071,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_276IBS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -72222,69 +75083,63 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__p TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmacd = 0; - PyArrayObject *__pyx_v_outmacdsignal = 0; - PyArrayObject *__pyx_v_outmacdhist = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - char const *__pyx_t_8; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MACDFIX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("IBS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5552, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5542, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5555, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5555, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5555, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5555, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5555, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 5555, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(6, 5555, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -72295,7 +75150,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -72310,7 +75165,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__p __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5559, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5548, __pyx_L1_error) /*try:*/ { @@ -72320,7 +75175,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MACDFIX_Lookback(__pyx_v_signalperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_IBS_Lookback()); } /*finally:*/ { @@ -72333,20 +75188,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__p } } - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5563, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5564, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5565, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5552, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -72354,7 +75199,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MACDFIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_IBS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -72394,20 +75239,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__p /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); - if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -72428,55 +75270,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__p } } } - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5571, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IBS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF((PyObject *)__pyx_v_outmacd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(6, 5572, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(6, 5572, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(6, 5572, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IBS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -72486,10 +75314,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__p - __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -72497,36 +75325,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_277MAMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_279ICHIMOKU(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_276MAMA, "MAMA(ndarray real, double fastlimit=-4e37, double slowlimit=-4e37)\n\nMAMA(real[, fastlimit=?, slowlimit=?])\n\nMESA Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastlimit: 0.5\n slowlimit: 0.05\nOutputs:\n mama\n fama"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_277MAMA = {"MAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_277MAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_276MAMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_277MAMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_278ICHIMOKU, "ICHIMOKU(ndarray high, ndarray low, int tenkanperiod=-0x80000000, int kijunperiod=-0x80000000, int senkoubperiod=-0x80000000)\n\nICHIMOKU(high, low[, tenkanperiod=?, kijunperiod=?, senkoubperiod=?])\n\nIchimoku Kinko Hyo (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n tenkanperiod: 9\n kijunperiod: 26\n senkoubperiod: 52\nOutputs:\n tenkansen\n kijunsen\n senkouspana\n senkouspanb"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_279ICHIMOKU = {"ICHIMOKU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_279ICHIMOKU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_278ICHIMOKU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_279ICHIMOKU(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - double __pyx_v_fastlimit; - double __pyx_v_slowlimit; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_tenkanperiod; + int __pyx_v_kijunperiod; + int __pyx_v_senkoubperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MAMA (wrapper)", 0); + __Pyx_RefNannySetupContext("ICHIMOKU (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -72536,75 +75366,96 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_tenkanperiod,&__pyx_mstate_global->__pyx_n_u_kijunperiod,&__pyx_mstate_global->__pyx_n_u_senkoubperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5574, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5561, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5561, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5561, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5574, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5561, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5574, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5561, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5574, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5561, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAMA", 0) < (0)) __PYX_ERR(6, 5574, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, i); __PYX_ERR(6, 5574, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ICHIMOKU", 0) < (0)) __PYX_ERR(6, 5561, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ICHIMOKU", 0, 2, 5, i); __PYX_ERR(6, 5561, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5561, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5561, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5574, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5561, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5574, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5561, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5574, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5561, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 5576, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_tenkanperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_tenkanperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5563, __pyx_L3_error) } else { - __pyx_v_fastlimit = ((double)((double)-4e37)); + __pyx_v_tenkanperiod = ((int)((int)-2147483648)); } - if (values[2]) { - __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 5576, __pyx_L3_error) + if (values[3]) { + __pyx_v_kijunperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_kijunperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5563, __pyx_L3_error) } else { - __pyx_v_slowlimit = ((double)((double)-4e37)); + __pyx_v_kijunperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_senkoubperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_senkoubperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5563, __pyx_L3_error) + } else { + __pyx_v_senkoubperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 5574, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ICHIMOKU", 0, 2, 5, __pyx_nargs); __PYX_ERR(6, 5561, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ICHIMOKU", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5576, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_276MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5563, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5563, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_278ICHIMOKU(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_tenkanperiod, __pyx_v_kijunperiod, __pyx_v_senkoubperiod); /* function exit code */ goto __pyx_L0; @@ -72621,11 +75472,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { +static PyObject *__pyx_pf_5talib_7_ta_lib_278ICHIMOKU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_tenkanperiod, int __pyx_v_kijunperiod, int __pyx_v_senkoubperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -72633,62 +75485,84 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmama = 0; - PyArrayObject *__pyx_v_outfama = 0; + PyArrayObject *__pyx_v_outtenkansen = 0; + PyArrayObject *__pyx_v_outkijunsen = 0; + PyArrayObject *__pyx_v_outsenkouspana = 0; + PyArrayObject *__pyx_v_outsenkouspanb = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - int __pyx_t_6; - char const *__pyx_t_7; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + int __pyx_t_9; + char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MAMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("ICHIMOKU", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5598, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5592, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5601, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5601, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5601, __pyx_L1_error) + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5601, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 5601, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5594, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 5594, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5) != (0)) __PYX_ERR(6, 5594, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6) != (0)) __PYX_ERR(6, 5594, __pyx_L1_error); __pyx_t_1 = 0; - __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_7 = 0; goto __pyx_L0; } @@ -72699,7 +75573,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -72714,7 +75588,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5605, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5598, __pyx_L1_error) /*try:*/ { @@ -72724,7 +75598,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ICHIMOKU_Lookback(__pyx_v_tenkanperiod, __pyx_v_kijunperiod, __pyx_v_senkoubperiod)); } /*finally:*/ { @@ -72737,15 +75611,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5609, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_v_outmama = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5602, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_outtenkansen = ((PyArrayObject *)__pyx_t_7); + __pyx_t_7 = 0; - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5610, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_v_outfama = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5603, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_outkijunsen = ((PyArrayObject *)__pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5604, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_outsenkouspana = ((PyArrayObject *)__pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5605, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_outsenkouspanb = ((PyArrayObject *)__pyx_t_7); + __pyx_t_7 = 0; { PyThreadState * _save; @@ -72753,7 +75637,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmama)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfama)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ICHIMOKU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_tenkanperiod, __pyx_v_kijunperiod, __pyx_v_senkoubperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outtenkansen)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkijunsen)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsenkouspana)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsenkouspanb)) + __pyx_v_lookback)); } /*finally:*/ { @@ -72793,19 +75677,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); - if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); + if ( unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); - __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_15); + __Pyx_XGOTREF(__pyx_t_16); + __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { { PyThreadState * _save; @@ -72826,51 +75712,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_ } } } + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); - __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; - __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; + __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); + __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; + __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5616, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_7 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ICHIMOKU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5617, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF((PyObject *)__pyx_v_outmama); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmama); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outmama)) != (0)) __PYX_ERR(6, 5617, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outfama); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfama); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outfama)) != (0)) __PYX_ERR(6, 5617, __pyx_L1_error); + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF((PyObject *)__pyx_v_outtenkansen); + __Pyx_GIVEREF((PyObject *)__pyx_v_outtenkansen); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_outtenkansen)) != (0)) __PYX_ERR(6, 5612, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outkijunsen); + __Pyx_GIVEREF((PyObject *)__pyx_v_outkijunsen); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_v_outkijunsen)) != (0)) __PYX_ERR(6, 5612, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outsenkouspana); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsenkouspana); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, ((PyObject *)__pyx_v_outsenkouspana)) != (0)) __PYX_ERR(6, 5612, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outsenkouspanb); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsenkouspanb); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, ((PyObject *)__pyx_v_outsenkouspanb)) != (0)) __PYX_ERR(6, 5612, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_7 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.ICHIMOKU", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -72880,9 +75774,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outmama); - __Pyx_XDECREF((PyObject *)__pyx_v_outfama); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outtenkansen); + __Pyx_XDECREF((PyObject *)__pyx_v_outkijunsen); + __Pyx_XDECREF((PyObject *)__pyx_v_outsenkouspana); + __Pyx_XDECREF((PyObject *)__pyx_v_outsenkouspanb); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -72890,25 +75787,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_279MARKETFI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_281IMI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_278MARKETFI, "MARKETFI(ndarray high, ndarray low, ndarray volume)\n\nMARKETFI(high, low, volume)\n\nMarket Facilitation Index (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_279MARKETFI = {"MARKETFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_279MARKETFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_278MARKETFI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_279MARKETFI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_280IMI, "IMI(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nIMI(open, close[, timeperiod=?])\n\nIntraday Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_281IMI = {"IMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_281IMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_280IMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_281IMI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_volume = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -72919,7 +75816,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MARKETFI (wrapper)", 0); + __Pyx_RefNannySetupContext("IMI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -72929,62 +75826,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5619, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5614, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5614, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5614, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5614, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MARKETFI", 0) < (0)) __PYX_ERR(6, 5619, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, i); __PYX_ERR(6, 5619, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "IMI", 0) < (0)) __PYX_ERR(6, 5614, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, i); __PYX_ERR(6, 5614, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5619, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5619, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5619, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5614, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5614, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5614, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_close = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5616, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_volume = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, __pyx_nargs); __PYX_ERR(6, 5619, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 5614, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MARKETFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5621, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5621, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 5621, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_278MARKETFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_volume); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 5616, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 5616, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_280IMI(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -72999,11 +75904,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_280IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -73029,27 +75935,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MARKETFI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5638, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("IMI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5639, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5640, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5641, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5637, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -73057,7 +75957,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__ if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5643, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -73078,7 +75978,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -73093,7 +75993,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5647, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5643, __pyx_L1_error) /*try:*/ { @@ -73103,7 +76003,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MARKETFI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_IMI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -73116,7 +76016,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5651, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5647, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -73127,7 +76027,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MARKETFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_IMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -73213,7 +76113,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5657, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -73232,7 +76132,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MARKETFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -73243,9 +76143,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__ __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -73253,37 +76152,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_281MASSI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_283KAMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_280MASSI, "MASSI(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nMASSI(high, low[, fastperiod=?, slowperiod=?])\n\nMass Index (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 9\n slowperiod: 25\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_281MASSI = {"MASSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_281MASSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_280MASSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_281MASSI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_282KAMA, "KAMA(ndarray real, int timeperiod=-0x80000000)\n\nKAMA(real[, timeperiod=?])\n\nKaufman Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_283KAMA = {"KAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_283KAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_282KAMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_283KAMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MASSI (wrapper)", 0); + __Pyx_RefNannySetupContext("KAMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -73293,83 +76190,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5660, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5656, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5660, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5660, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5660, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5656, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5660, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5656, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MASSI", 0) < (0)) __PYX_ERR(6, 5660, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, i); __PYX_ERR(6, 5660, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KAMA", 0) < (0)) __PYX_ERR(6, 5656, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, i); __PYX_ERR(6, 5656, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5660, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5660, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5660, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5656, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5660, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5656, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5662, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5662, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5658, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, __pyx_nargs); __PYX_ERR(6, 5660, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 5656, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MASSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5662, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5662, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_280MASSI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5658, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_282KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -73385,12 +76261,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_282KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -73402,43 +76277,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MASSI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("KAMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5683, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5684, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5686, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -73459,7 +76326,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -73474,7 +76341,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5690, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5684, __pyx_L1_error) /*try:*/ { @@ -73484,7 +76351,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_KAMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -73497,7 +76364,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5694, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5688, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -73508,7 +76375,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MASSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -73548,17 +76415,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -73579,22 +76446,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5700, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -73613,7 +76480,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MASSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -73624,8 +76491,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -73633,38 +76499,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_283MAVP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_285KC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_282MAVP, "MAVP(ndarray real, ndarray periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)\n\nMAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\nMoving average with variable period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n periods: (any ndarray)\nParameters:\n minperiod: 2\n maxperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_283MAVP = {"MAVP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_283MAVP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_282MAVP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_283MAVP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_284KC, "KC(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int atrperiod=-0x80000000, double nbdev=-4e37)\n\nKC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?])\n\nKeltner Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\n atrperiod: 10\n nbdev: 2.0\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_285KC = {"KC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_285KC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_284KC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_285KC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - PyArrayObject *__pyx_v_periods = 0; - int __pyx_v_minperiod; - int __pyx_v_maxperiod; - int __pyx_v_matype; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + int __pyx_v_atrperiod; + double __pyx_v_nbdev; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MAVP (wrapper)", 0); + __Pyx_RefNannySetupContext("KC (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -73674,96 +76541,104 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5703, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5697, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5697, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5697, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5697, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5697, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5697, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5697, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAVP", 0) < (0)) __PYX_ERR(6, 5703, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, i); __PYX_ERR(6, 5703, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KC", 0) < (0)) __PYX_ERR(6, 5697, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, i); __PYX_ERR(6, 5697, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5697, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5697, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5697, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5697, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5697, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5697, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_periods = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5705, __pyx_L3_error) - } else { - __pyx_v_minperiod = ((int)((int)-2147483648)); - } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5705, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5699, __pyx_L3_error) } else { - __pyx_v_maxperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5705, __pyx_L3_error) + __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5699, __pyx_L3_error) } else { - __pyx_v_matype = ((int)((int)0)); + __pyx_v_atrperiod = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 5699, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, __pyx_nargs); __PYX_ERR(6, 5703, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, __pyx_nargs); __PYX_ERR(6, 5697, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5705, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(6, 5705, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_282MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5699, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5699, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 5699, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_284KC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); /* function exit code */ goto __pyx_L0; @@ -73785,7 +76660,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_284KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -73793,39 +76668,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outrealupperband = 0; + PyArrayObject *__pyx_v_outrealmiddleband = 0; + PyArrayObject *__pyx_v_outreallowerband = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; int __pyx_t_3; - int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + int __pyx_t_8; + char const *__pyx_t_9; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MAVP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - __Pyx_INCREF((PyObject *)__pyx_v_periods); + __Pyx_RefNannySetupContext("KC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5727, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5728, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_periods, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5729, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5727, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -73833,17 +76719,32 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5731, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5729, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 5729, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(6, 5729, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_6 = 0; goto __pyx_L0; } @@ -73854,7 +76755,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_periods))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -73869,7 +76770,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5735, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5733, __pyx_L1_error) /*try:*/ { @@ -73879,7 +76780,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev)); } /*finally:*/ { @@ -73892,10 +76793,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5739, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5737, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5738, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5739, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; { PyThreadState * _save; @@ -73903,7 +76814,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MAVP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_periods)) + __pyx_v_begidx), __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); } /*finally:*/ { @@ -73943,17 +76854,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_ExceptionSwap(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); + if ( unlikely(__Pyx_GetException(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12) < 0)) __Pyx_ErrFetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_15); + __pyx_t_7 = __pyx_lineno; __pyx_t_8 = __pyx_clineno; __pyx_t_9 = __pyx_filename; { { PyThreadState * _save; @@ -73974,41 +76888,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ } } } + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; + __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_8; __pyx_filename = __pyx_t_9; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5745, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5745, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(6, 5746, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(6, 5746, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(6, 5746, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.KC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -74018,9 +76946,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF((PyObject *)__pyx_v_periods); + __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -74028,35 +76959,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_285MAX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_287KDJ(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_284MAX, "MAX(ndarray real, int timeperiod=-0x80000000)\n\nMAX(real[, timeperiod=?])\n\nHighest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_285MAX = {"MAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_285MAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_284MAX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_285MAX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_286KDJ, "KDJ(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=13, int slowd_period=-0x80000000, int slowd_matype=13)\n\nKDJ(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nKDJ Stochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 9\n slowk_period: 3\n slowk_matype: 13 (Wilder\047s Smoothed Moving Average)\n slowd_period: 3\n slowd_matype: 13 (Wilder\047s Smoothed Moving Average)\nOutputs:\n k\n d\n j"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_287KDJ = {"KDJ", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_287KDJ, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_286KDJ}; +static PyObject *__pyx_pw_5talib_7_ta_lib_287KDJ(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MAX (wrapper)", 0); + __Pyx_RefNannySetupContext("KDJ (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -74066,11 +77003,35 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5748, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 5748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 5748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5748, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5748, __pyx_L3_error) @@ -74083,45 +77044,89 @@ PyObject *__pyx_args, PyObject *__pyx_kwds default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAX", 0) < (0)) __PYX_ERR(6, 5748, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, i); __PYX_ERR(6, 5748, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KDJ", 0) < (0)) __PYX_ERR(6, 5748, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, i); __PYX_ERR(6, 5748, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 5748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 5748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5748, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5748, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5748, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5750, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5750, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5750, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5750, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)((int)13)); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5750, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)((int)-2147483648)); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5750, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)((int)13)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 5748, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, __pyx_nargs); __PYX_ERR(6, 5748, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5750, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_284MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5750, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5750, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 5750, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_286KDJ(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); /* function exit code */ goto __pyx_L0; @@ -74137,11 +77142,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_286KDJ(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -74149,49 +77158,83 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outk = 0; + PyArrayObject *__pyx_v_outd = 0; + PyArrayObject *__pyx_v_outj = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; - int __pyx_t_4; - char const *__pyx_t_5; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; + int __pyx_t_7; + int __pyx_t_8; + char const *__pyx_t_9; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MAX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("KDJ", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5769, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5780, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5772, __pyx_L1_error) + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5782, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 5782, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(6, 5782, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_6 = 0; goto __pyx_L0; } @@ -74202,7 +77245,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -74217,7 +77260,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5776, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5786, __pyx_L1_error) /*try:*/ { @@ -74227,7 +77270,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MAX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); } /*finally:*/ { @@ -74240,10 +77283,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5780, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5790, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outk = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5791, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outd = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5792, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outj = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; { PyThreadState * _save; @@ -74251,7 +77304,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KDJ(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outj)) + __pyx_v_lookback)); } /*finally:*/ { @@ -74291,17 +77344,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_ExceptionSwap(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); + if ( unlikely(__Pyx_GetException(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12) < 0)) __Pyx_ErrFetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_15); + __pyx_t_7 = __pyx_lineno; __pyx_t_8 = __pyx_clineno; __pyx_t_9 = __pyx_filename; { { PyThreadState * _save; @@ -74322,41 +77378,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ErrRestore(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; + __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_8; __pyx_filename = __pyx_t_9; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_outk); + __Pyx_GIVEREF((PyObject *)__pyx_v_outk); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_outk)) != (0)) __PYX_ERR(6, 5799, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_outd)) != (0)) __PYX_ERR(6, 5799, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outj); + __Pyx_GIVEREF((PyObject *)__pyx_v_outj); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_outj)) != (0)) __PYX_ERR(6, 5799, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -74366,8 +77436,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_s - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outk); + __Pyx_XDECREF((PyObject *)__pyx_v_outd); + __Pyx_XDECREF((PyObject *)__pyx_v_outj); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -74375,16 +77449,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_287MAXINDEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_289KST(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_286MAXINDEX, "MAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_287MAXINDEX = {"MAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_287MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_286MAXINDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_287MAXINDEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_288KST, "KST(ndarray real, int roc1period=-0x80000000, int roc2period=-0x80000000, int roc3period=-0x80000000, int roc4period=-0x80000000, int sma1period=-0x80000000, int sma2period=-0x80000000, int sma3period=-0x80000000, int sma4period=-0x80000000, int signalperiod=-0x80000000)\n\nKST(real[, roc1period=?, roc2period=?, roc3period=?, roc4period=?, sma1period=?, sma2period=?, sma3period=?, sma4period=?, signalperiod=?])\n\nKnow Sure Thing (Pring) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n roc1period: 10\n roc2period: 15\n roc3period: 20\n roc4period: 30\n sma1period: 10\n sma2period: 10\n sma3period: 10\n sma4period: 15\n signalperiod: 9\nOutputs:\n kst\n kstsignal"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_289KST = {"KST", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_289KST, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_288KST}; +static PyObject *__pyx_pw_5talib_7_ta_lib_289KST(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -74392,18 +77466,26 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + int __pyx_v_roc1period; + int __pyx_v_roc2period; + int __pyx_v_roc3period; + int __pyx_v_roc4period; + int __pyx_v_sma1period; + int __pyx_v_sma2period; + int __pyx_v_sma3period; + int __pyx_v_sma4period; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MAXINDEX (wrapper)", 0); + __Pyx_RefNannySetupContext("KST (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -74413,62 +77495,166 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,&__pyx_mstate_global->__pyx_n_u_roc3period,&__pyx_mstate_global->__pyx_n_u_roc4period,&__pyx_mstate_global->__pyx_n_u_sma1period,&__pyx_mstate_global->__pyx_n_u_sma2period,&__pyx_mstate_global->__pyx_n_u_sma3period,&__pyx_mstate_global->__pyx_n_u_sma4period,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5789, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5801, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5789, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5789, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAXINDEX", 0) < (0)) __PYX_ERR(6, 5789, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KST", 0) < (0)) __PYX_ERR(6, 5801, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, i); __PYX_ERR(6, 5789, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KST", 0, 1, 10, i); __PYX_ERR(6, 5801, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5789, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5789, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5801, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5791, __pyx_L3_error) + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5803, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_roc1period = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5803, __pyx_L3_error) + } else { + __pyx_v_roc2period = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_roc3period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc3period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5803, __pyx_L3_error) + } else { + __pyx_v_roc3period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_roc4period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_roc4period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5803, __pyx_L3_error) + } else { + __pyx_v_roc4period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_sma1period = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_sma1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5803, __pyx_L3_error) + } else { + __pyx_v_sma1period = ((int)((int)-2147483648)); + } + if (values[6]) { + __pyx_v_sma2period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_sma2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5803, __pyx_L3_error) + } else { + __pyx_v_sma2period = ((int)((int)-2147483648)); + } + if (values[7]) { + __pyx_v_sma3period = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_sma3period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5803, __pyx_L3_error) + } else { + __pyx_v_sma3period = ((int)((int)-2147483648)); + } + if (values[8]) { + __pyx_v_sma4period = __Pyx_PyLong_As_int(values[8]); if (unlikely((__pyx_v_sma4period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5803, __pyx_L3_error) + } else { + __pyx_v_sma4period = ((int)((int)-2147483648)); + } + if (values[9]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[9]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5803, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 5789, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("KST", 0, 1, 10, __pyx_nargs); __PYX_ERR(6, 5801, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KST", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5791, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_286MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5803, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_288KST(__pyx_self, __pyx_v_real, __pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_sma1period, __pyx_v_sma2period, __pyx_v_sma3period, __pyx_v_sma4period, __pyx_v_signalperiod); /* function exit code */ goto __pyx_L0; @@ -74484,11 +77670,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_288KST(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_roc1period, int __pyx_v_roc2period, int __pyx_v_roc3period, int __pyx_v_roc4period, int __pyx_v_sma1period, int __pyx_v_sma2period, int __pyx_v_sma3period, int __pyx_v_sma4period, int __pyx_v_signalperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -74496,30 +77690,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - int *__pyx_v_outinteger_data; - int __pyx_v_i; + PyArrayObject *__pyx_v_outkst = 0; + PyArrayObject *__pyx_v_outkstsignal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + char const *__pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - npy_intp __pyx_t_12; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MAXINDEX", 0); + __Pyx_RefNannySetupContext("KST", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5810, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -74531,17 +77725,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__ if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5813, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5835, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 5835, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_4 = 0; goto __pyx_L0; } @@ -74567,7 +77771,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5817, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5839, __pyx_L1_error) /*try:*/ { @@ -74577,7 +77781,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MAXINDEX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_KST_Lookback(__pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_sma1period, __pyx_v_sma2period, __pyx_v_sma3period, __pyx_v_sma4period, __pyx_v_signalperiod)); } /*finally:*/ { @@ -74590,10 +77794,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5821, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5843, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outkst = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5844, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outkstsignal = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; { PyThreadState * _save; @@ -74601,7 +77810,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KST(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_sma1period, __pyx_v_sma2period, __pyx_v_sma3period, __pyx_v_sma4period, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkst)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkstsignal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -74641,17 +77850,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; { { PyThreadState * _save; @@ -74672,70 +77883,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__ } } } - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5827, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - __pyx_t_12 = __pyx_v_length; - - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_12; __pyx_v_i++) { - - - __pyx_t_4 = __pyx_v_i; - (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx); - } - - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L26; - } - __pyx_L26:; - } - } + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KST, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF((PyObject *)__pyx_v_outkst); + __Pyx_GIVEREF((PyObject *)__pyx_v_outkst); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outkst)) != (0)) __PYX_ERR(6, 5851, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outkstsignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outkstsignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outkstsignal)) != (0)) __PYX_ERR(6, 5851, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.KST", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -74745,9 +77937,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - - + __Pyx_XDECREF((PyObject *)__pyx_v_outkst); + __Pyx_XDECREF((PyObject *)__pyx_v_outkstsignal); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -74756,35 +77947,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_289MEDPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_291KSTEXT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_288MEDPRICE, "MEDPRICE(ndarray high, ndarray low)\n\nMEDPRICE(high, low)\n\nMedian Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_289MEDPRICE = {"MEDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_289MEDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_288MEDPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_289MEDPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_290KSTEXT, "KSTEXT(ndarray real, int roc1period=-0x80000000, int roc2period=-0x80000000, int roc3period=-0x80000000, int roc4period=-0x80000000, int ma1period=-0x80000000, int ma2period=-0x80000000, int ma3period=-0x80000000, int ma4period=-0x80000000, int signalperiod=-0x80000000, int rocmatype=0, int signalmatype=0)\n\nKSTEXT(real[, roc1period=?, roc2period=?, roc3period=?, roc4period=?, ma1period=?, ma2period=?, ma3period=?, ma4period=?, signalperiod=?, rocmatype=?, signalmatype=?])\n\nKnow Sure Thing with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n roc1period: 10\n roc2period: 15\n roc3period: 20\n roc4period: 30\n ma1period: 10\n ma2period: 10\n ma3period: 10\n ma4period: 15\n signalperiod: 9\n rocmatype: 0 (Simple Moving Average)\n signalmatype: 0 (Simple Moving Average)\nOutputs:\n kst\n kstsignal"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_291KSTEXT = {"KSTEXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_291KSTEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_290KSTEXT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_291KSTEXT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_roc1period; + int __pyx_v_roc2period; + int __pyx_v_roc3period; + int __pyx_v_roc4period; + int __pyx_v_ma1period; + int __pyx_v_ma2period; + int __pyx_v_ma3period; + int __pyx_v_ma4period; + int __pyx_v_signalperiod; + int __pyx_v_rocmatype; + int __pyx_v_signalmatype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MEDPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("KSTEXT (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -74794,54 +77995,192 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,&__pyx_mstate_global->__pyx_n_u_roc3period,&__pyx_mstate_global->__pyx_n_u_roc4period,&__pyx_mstate_global->__pyx_n_u_ma1period,&__pyx_mstate_global->__pyx_n_u_ma2period,&__pyx_mstate_global->__pyx_n_u_ma3period,&__pyx_mstate_global->__pyx_n_u_ma4period,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_rocmatype,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5834, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5853, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 12: + values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 11: + values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5834, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5853, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5834, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5853, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MEDPRICE", 0) < (0)) __PYX_ERR(6, 5834, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, i); __PYX_ERR(6, 5834, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KSTEXT", 0) < (0)) __PYX_ERR(6, 5853, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KSTEXT", 0, 1, 12, i); __PYX_ERR(6, 5853, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5834, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5834, __pyx_L3_error) + switch (__pyx_nargs) { + case 12: + values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 11: + values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5853, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5855, __pyx_L3_error) + } else { + __pyx_v_roc1period = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5855, __pyx_L3_error) + } else { + __pyx_v_roc2period = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_roc3period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc3period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5855, __pyx_L3_error) + } else { + __pyx_v_roc3period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_roc4period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_roc4period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5855, __pyx_L3_error) + } else { + __pyx_v_roc4period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_ma1period = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_ma1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5855, __pyx_L3_error) + } else { + __pyx_v_ma1period = ((int)((int)-2147483648)); + } + if (values[6]) { + __pyx_v_ma2period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_ma2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5855, __pyx_L3_error) + } else { + __pyx_v_ma2period = ((int)((int)-2147483648)); + } + if (values[7]) { + __pyx_v_ma3period = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_ma3period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5855, __pyx_L3_error) + } else { + __pyx_v_ma3period = ((int)((int)-2147483648)); + } + if (values[8]) { + __pyx_v_ma4period = __Pyx_PyLong_As_int(values[8]); if (unlikely((__pyx_v_ma4period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5855, __pyx_L3_error) + } else { + __pyx_v_ma4period = ((int)((int)-2147483648)); + } + if (values[9]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[9]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5855, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + if (values[10]) { + __pyx_v_rocmatype = __Pyx_PyLong_As_int(values[10]); if (unlikely((__pyx_v_rocmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5855, __pyx_L3_error) + } else { + __pyx_v_rocmatype = ((int)((int)0)); + } + if (values[11]) { + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[11]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5855, __pyx_L3_error) + } else { + __pyx_v_signalmatype = ((int)((int)0)); } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 5834, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("KSTEXT", 0, 1, 12, __pyx_nargs); __PYX_ERR(6, 5853, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KSTEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5836, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5836, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_288MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5855, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_290KSTEXT(__pyx_self, __pyx_v_real, __pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_ma1period, __pyx_v_ma2period, __pyx_v_ma3period, __pyx_v_ma4period, __pyx_v_signalperiod, __pyx_v_rocmatype, __pyx_v_signalmatype); /* function exit code */ goto __pyx_L0; @@ -74856,11 +78195,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + + + + + + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_290KSTEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_roc1period, int __pyx_v_roc2period, int __pyx_v_roc3period, int __pyx_v_roc4period, int __pyx_v_ma1period, int __pyx_v_ma2period, int __pyx_v_ma3period, int __pyx_v_ma4period, int __pyx_v_signalperiod, int __pyx_v_rocmatype, int __pyx_v_signalmatype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -74868,57 +78218,62 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outkst = 0; + PyArrayObject *__pyx_v_outkstsignal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; int __pyx_t_5; - char const *__pyx_t_6; - PyObject *__pyx_t_7 = NULL; + int __pyx_t_6; + char const *__pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MEDPRICE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5853, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("KSTEXT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5854, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5855, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5857, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5889, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 5889, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_4 = 0; goto __pyx_L0; } @@ -74929,7 +78284,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -74944,7 +78299,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5861, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5893, __pyx_L1_error) /*try:*/ { @@ -74954,7 +78309,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MEDPRICE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_KSTEXT_Lookback(__pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_ma1period, __pyx_v_ma2period, __pyx_v_ma3period, __pyx_v_ma4period, __pyx_v_signalperiod, __pyx_v_rocmatype, __pyx_v_signalmatype)); } /*finally:*/ { @@ -74967,10 +78322,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5865, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5897, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outkst = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5898, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outkstsignal = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; { PyThreadState * _save; @@ -74978,7 +78338,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MEDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KSTEXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_ma1period, __pyx_v_ma2period, __pyx_v_ma3period, __pyx_v_ma4period, __pyx_v_signalperiod, __pyx_v_rocmatype, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkst)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkstsignal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -75018,17 +78378,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; { { PyThreadState * _save; @@ -75049,41 +78411,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__ } } } - __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5871, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KSTEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5904, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF((PyObject *)__pyx_v_outkst); + __Pyx_GIVEREF((PyObject *)__pyx_v_outkst); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outkst)) != (0)) __PYX_ERR(6, 5905, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outkstsignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outkstsignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outkstsignal)) != (0)) __PYX_ERR(6, 5905, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.KSTEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -75093,9 +78465,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_outkst); + __Pyx_XDECREF((PyObject *)__pyx_v_outkstsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -75103,38 +78475,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_291MFI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_293KURTOSIS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_290MFI, "MFI(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nMFI(high, low, close, volume[, timeperiod=?])\n\nMoney Flow Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_291MFI = {"MFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_291MFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_290MFI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_291MFI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_292KURTOSIS, "KURTOSIS(ndarray real, int timeperiod=-0x80000000)\n\nKURTOSIS(real[, timeperiod=?])\n\nRolling Excess Kurtosis (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_293KURTOSIS = {"KURTOSIS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_293KURTOSIS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_292KURTOSIS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_293KURTOSIS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MFI (wrapper)", 0); + __Pyx_RefNannySetupContext("KURTOSIS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -75144,86 +78513,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5874, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5907, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5874, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5874, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5874, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5874, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5874, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MFI", 0) < (0)) __PYX_ERR(6, 5874, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, i); __PYX_ERR(6, 5874, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KURTOSIS", 0) < (0)) __PYX_ERR(6, 5907, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KURTOSIS", 0, 1, 2, i); __PYX_ERR(6, 5907, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5874, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5874, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5874, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5874, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5907, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5874, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5907, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5876, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5909, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 5874, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("KURTOSIS", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 5907, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KURTOSIS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5876, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5876, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 5876, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 5876, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_290MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5909, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_292KURTOSIS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -75243,7 +78588,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_292KURTOSIS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -75255,55 +78600,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MFI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5895, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5896, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5897, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("KURTOSIS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5898, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5899, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5901, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -75324,7 +78649,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -75339,7 +78664,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5905, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5935, __pyx_L1_error) /*try:*/ { @@ -75349,7 +78674,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MFI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_KURTOSIS_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -75362,7 +78687,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5909, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5939, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -75373,7 +78698,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KURTOSIS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -75413,17 +78738,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -75444,22 +78769,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5915, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KURTOSIS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -75478,7 +78803,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KURTOSIS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -75489,10 +78814,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -75500,35 +78822,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_293MIDPOINT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_295KVO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_292MIDPOINT, "MIDPOINT(ndarray real, int timeperiod=-0x80000000)\n\nMIDPOINT(real[, timeperiod=?])\n\nMidPoint over period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_293MIDPOINT = {"MIDPOINT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_293MIDPOINT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_292MIDPOINT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_293MIDPOINT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_294KVO, "KVO(ndarray high, ndarray low, ndarray close, ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nKVO(high, low, close, volume[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nKlinger Volume Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n fastperiod: 34\n slowperiod: 55\n signalperiod: 13\nOutputs:\n kvo\n kvosignal"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_295KVO = {"KVO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_295KVO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_294KVO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_295KVO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MIDPOINT (wrapper)", 0); + __Pyx_RefNannySetupContext("KVO (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -75538,62 +78865,112 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5918, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5948, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 5948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5948, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5948, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5948, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPOINT", 0) < (0)) __PYX_ERR(6, 5918, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, i); __PYX_ERR(6, 5918, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KVO", 0) < (0)) __PYX_ERR(6, 5948, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KVO", 0, 4, 7, i); __PYX_ERR(6, 5948, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5918, __pyx_L3_error) + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 5948, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 5948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 5948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 5948, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5948, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5948, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5948, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5920, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5950, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5950, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[6]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5950, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 5918, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("KVO", 0, 4, 7, __pyx_nargs); __PYX_ERR(6, 5948, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KVO", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5920, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_292MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5950, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5950, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 5950, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 5950, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_294KVO(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ goto __pyx_L0; @@ -75609,11 +78986,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_294KVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -75621,49 +79000,82 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outkvo = 0; + PyArrayObject *__pyx_v_outkvosignal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; - int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MIDPOINT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("KVO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5939, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5977, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5942, __pyx_L1_error) + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 5979, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 5979, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; } @@ -75674,7 +79086,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); } /*finally:*/ { @@ -75689,7 +79101,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5946, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5983, __pyx_L1_error) /*try:*/ { @@ -75699,7 +79111,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPOINT_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_KVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); } /*finally:*/ { @@ -75712,10 +79124,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5950, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5987, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outkvo = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5988, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outkvosignal = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; { PyThreadState * _save; @@ -75723,7 +79140,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MIDPOINT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KVO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkvo)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkvosignal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -75763,17 +79180,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; { { PyThreadState * _save; @@ -75794,41 +79213,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__ } } } + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5956, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KVO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outkvo); + __Pyx_GIVEREF((PyObject *)__pyx_v_outkvo); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outkvo)) != (0)) __PYX_ERR(6, 5995, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outkvosignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outkvosignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outkvosignal)) != (0)) __PYX_ERR(6, 5995, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.KVO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -75838,8 +79267,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outkvo); + __Pyx_XDECREF((PyObject *)__pyx_v_outkvosignal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -75847,36 +79280,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_295MIDPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_297LINEARREG(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_294MIDPRICE, "MIDPRICE(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMIDPRICE(high, low[, timeperiod=?])\n\nMidpoint Price over period (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_295MIDPRICE = {"MIDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_295MIDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_294MIDPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_295MIDPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_296LINEARREG, "LINEARREG(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG(real[, timeperiod=?])\n\nLinear Regression (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_297LINEARREG = {"LINEARREG", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_297LINEARREG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_296LINEARREG}; +static PyObject *__pyx_pw_5talib_7_ta_lib_297LINEARREG(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MIDPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("LINEARREG (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -75886,70 +79318,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5959, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 5997, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5959, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5997, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5997, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPRICE", 0) < (0)) __PYX_ERR(6, 5959, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, i); __PYX_ERR(6, 5959, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG", 0) < (0)) __PYX_ERR(6, 5997, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, i); __PYX_ERR(6, 5997, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 5959, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 5997, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 5997, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5961, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 5999, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 5959, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 5997, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 5961, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 5961, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_294MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 5999, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_296LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -75969,7 +79393,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_296LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -75981,43 +79405,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MIDPRICE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5980, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("LINEARREG", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5981, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 5982, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5984, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -76038,7 +79454,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -76053,7 +79469,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 5988, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6025, __pyx_L1_error) /*try:*/ { @@ -76063,7 +79479,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPRICE_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -76076,7 +79492,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5992, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6029, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -76087,7 +79503,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MIDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LINEARREG(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -76127,17 +79543,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -76158,22 +79574,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5998, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -76192,7 +79608,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -76203,8 +79619,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -76212,16 +79627,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_297MIN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_299LINEARREG_ANGLE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_296MIN, "MIN(ndarray real, int timeperiod=-0x80000000)\n\nMIN(real[, timeperiod=?])\n\nLowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_297MIN = {"MIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_297MIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_296MIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_297MIN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_298LINEARREG_ANGLE, "LINEARREG_ANGLE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_ANGLE(real[, timeperiod=?])\n\nLinear Regression Angle (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_299LINEARREG_ANGLE = {"LINEARREG_ANGLE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_299LINEARREG_ANGLE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_298LINEARREG_ANGLE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_299LINEARREG_ANGLE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -76240,7 +79655,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MIN (wrapper)", 0); + __Pyx_RefNannySetupContext("LINEARREG_ANGLE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -76252,60 +79667,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6001, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6038, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6038, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6038, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIN", 0) < (0)) __PYX_ERR(6, 6001, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_ANGLE", 0) < (0)) __PYX_ERR(6, 6038, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, i); __PYX_ERR(6, 6001, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, i); __PYX_ERR(6, 6038, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6038, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6038, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6003, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6040, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6001, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6038, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6003, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_296MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6040, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_298LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -76325,7 +79740,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_298LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -76350,10 +79765,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MIN", 0); + __Pyx_RefNannySetupContext("LINEARREG_ANGLE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6022, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -76365,7 +79780,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6025, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -76401,7 +79816,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6029, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6066, __pyx_L1_error) /*try:*/ { @@ -76411,7 +79826,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MIN_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -76424,7 +79839,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6033, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6070, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -76435,7 +79850,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LINEARREG_ANGLE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -76521,7 +79936,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6039, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -76540,7 +79955,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -76559,16 +79974,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_299MININDEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_301LINEARREG_INTERCEPT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_298MININDEX, "MININDEX(ndarray real, int timeperiod=-0x80000000)\n\nMININDEX(real[, timeperiod=?])\n\nIndex of lowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_299MININDEX = {"MININDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_299MININDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_298MININDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_299MININDEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_300LINEARREG_INTERCEPT, "LINEARREG_INTERCEPT(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_INTERCEPT(real[, timeperiod=?])\n\nLinear Regression Intercept (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_301LINEARREG_INTERCEPT = {"LINEARREG_INTERCEPT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_301LINEARREG_INTERCEPT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_300LINEARREG_INTERCEPT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_301LINEARREG_INTERCEPT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -76587,7 +80002,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MININDEX (wrapper)", 0); + __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -76599,60 +80014,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6042, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6079, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6042, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6079, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6042, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6079, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MININDEX", 0) < (0)) __PYX_ERR(6, 6042, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_INTERCEPT", 0) < (0)) __PYX_ERR(6, 6079, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, i); __PYX_ERR(6, 6042, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, i); __PYX_ERR(6, 6079, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6042, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6079, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6042, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6079, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6044, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6081, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6042, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6079, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6044, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_298MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6081, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_300LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -76672,7 +80087,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_300LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -76680,9 +80095,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - int *__pyx_v_outinteger_data; - int __pyx_v_i; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -76696,14 +80109,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__ PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - npy_intp __pyx_t_12; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MININDEX", 0); + __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6063, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -76715,7 +80127,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__ if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6066, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -76751,7 +80163,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6070, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6107, __pyx_L1_error) /*try:*/ { @@ -76761,7 +80173,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MININDEX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -76774,9 +80186,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6074, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6111, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -76785,7 +80197,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MININDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LINEARREG_INTERCEPT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -76871,45 +80283,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6080, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - __pyx_t_12 = __pyx_v_length; - - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_12; __pyx_v_i++) { - - - __pyx_t_4 = __pyx_v_i; - (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx); - } - - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L26; - } - __pyx_L26:; - } - } - { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -76919,7 +80302,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -76929,9 +80312,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - - + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -76940,16 +80321,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_301MINMAX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_303LINEARREG_SLOPE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_300MINMAX, "MINMAX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAX(real[, timeperiod=?])\n\nLowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n min\n max"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_301MINMAX = {"MINMAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_301MINMAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_300MINMAX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_301MINMAX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_302LINEARREG_SLOPE, "LINEARREG_SLOPE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_SLOPE(real[, timeperiod=?])\n\nLinear Regression Slope (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_303LINEARREG_SLOPE = {"LINEARREG_SLOPE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_303LINEARREG_SLOPE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_302LINEARREG_SLOPE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_303LINEARREG_SLOPE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -76968,7 +80349,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MINMAX (wrapper)", 0); + __Pyx_RefNannySetupContext("LINEARREG_SLOPE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -76980,60 +80361,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6087, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6120, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6120, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6120, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAX", 0) < (0)) __PYX_ERR(6, 6087, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_SLOPE", 0) < (0)) __PYX_ERR(6, 6120, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, i); __PYX_ERR(6, 6087, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, i); __PYX_ERR(6, 6120, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6120, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6120, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6089, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6122, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6087, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6120, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6089, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_300MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6122, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_302LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -77053,7 +80434,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_302LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -77061,30 +80442,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__py TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmin = 0; - PyArrayObject *__pyx_v_outmax = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - int __pyx_t_6; - char const *__pyx_t_7; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MINMAX", 0); + __Pyx_RefNannySetupContext("LINEARREG_SLOPE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6110, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -77096,27 +80474,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__py if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6113, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6113, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6113, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 6113, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 6113, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -77142,7 +80510,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6117, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6148, __pyx_L1_error) /*try:*/ { @@ -77152,7 +80520,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -77165,15 +80533,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__py } } - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6121, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_v_outmin = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; - - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6122, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_v_outmax = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6152, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -77181,7 +80544,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MINMAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmin)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmax)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LINEARREG_SLOPE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -77221,19 +80584,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__py /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); - if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -77254,51 +80615,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__py } } } - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); - __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; - __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6128, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF((PyObject *)__pyx_v_outmin); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmin); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outmin)) != (0)) __PYX_ERR(6, 6129, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmax); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmax); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outmax)) != (0)) __PYX_ERR(6, 6129, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -77308,8 +80659,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__py - __Pyx_XDECREF((PyObject *)__pyx_v_outmin); - __Pyx_XDECREF((PyObject *)__pyx_v_outmax); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -77318,16 +80668,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_303MINMAXINDEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_305LN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_302MINMAXINDEX, "MINMAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAXINDEX(real[, timeperiod=?])\n\nIndexes of lowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n minidx\n maxidx"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_303MINMAXINDEX = {"MINMAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_303MINMAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_302MINMAXINDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_303MINMAXINDEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_304LN, "LN(ndarray real)\n\nLN(real)\n\nVector Log Natural (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_305LN = {"LN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_305LN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_304LN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_305LN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -77335,18 +80685,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MINMAXINDEX (wrapper)", 0); + __Pyx_RefNannySetupContext("LN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -77356,62 +80705,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6131, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6161, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6131, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6161, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAXINDEX", 0) < (0)) __PYX_ERR(6, 6131, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LN", 0) < (0)) __PYX_ERR(6, 6161, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, i); __PYX_ERR(6, 6131, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, i); __PYX_ERR(6, 6161, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6131, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6131, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6161, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6133, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6131, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 6161, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6133, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6163, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_304LN(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -77426,12 +80759,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_304LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -77439,34 +80771,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outminidx = 0; - PyArrayObject *__pyx_v_outmaxidx = 0; - int *__pyx_v_outminidx_data; - int __pyx_v_i; - int *__pyx_v_outmaxidx_data; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - int __pyx_t_6; - char const *__pyx_t_7; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - npy_intp __pyx_t_14; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MINMAXINDEX", 0); + __Pyx_RefNannySetupContext("LN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6154, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -77478,27 +80803,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6157, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 6157, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 6157, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -77524,7 +80839,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6161, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6187, __pyx_L1_error) /*try:*/ { @@ -77534,7 +80849,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_LN_Lookback()); } /*finally:*/ { @@ -77547,15 +80862,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject } } - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6165, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; - - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6166, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6191, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -77563,7 +80873,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MINMAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -77603,19 +80913,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); - if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -77636,109 +80944,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject } } } - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); - __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; - __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_v_outminidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)); - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - __pyx_t_14 = __pyx_v_length; - - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_14; __pyx_v_i++) { - - - __pyx_t_6 = __pyx_v_i; - (__pyx_v_outminidx_data[__pyx_t_6]) = ((__pyx_v_outminidx_data[__pyx_t_6]) + __pyx_v_begidx); - } - - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L26; - } - __pyx_L26:; - } - } - - __pyx_v_outmaxidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - __pyx_t_14 = __pyx_v_length; - - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_14; __pyx_v_i++) { - - - __pyx_t_6 = __pyx_v_i; - (__pyx_v_outmaxidx_data[__pyx_t_6]) = ((__pyx_v_outmaxidx_data[__pyx_t_6]) + __pyx_v_begidx); - } - - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L31; - } - __pyx_L31:; - } - } - - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6181, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF((PyObject *)__pyx_v_outminidx); - __Pyx_GIVEREF((PyObject *)__pyx_v_outminidx); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outminidx)) != (0)) __PYX_ERR(6, 6181, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmaxidx); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmaxidx); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outmaxidx)) != (0)) __PYX_ERR(6, 6181, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -77748,11 +80988,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject - __Pyx_XDECREF((PyObject *)__pyx_v_outminidx); - __Pyx_XDECREF((PyObject *)__pyx_v_outmaxidx); - - - + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -77761,37 +80997,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_305MINUS_DI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_307LOG10(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_304MINUS_DI, "MINUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nMINUS_DI(high, low, close[, timeperiod=?])\n\nMinus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_305MINUS_DI = {"MINUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_305MINUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_304MINUS_DI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_305MINUS_DI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_306LOG10, "LOG10(ndarray real)\n\nLOG10(real)\n\nVector Log10 (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_307LOG10 = {"LOG10", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_307LOG10, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_306LOG10}; +static PyObject *__pyx_pw_5talib_7_ta_lib_307LOG10(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MINUS_DI (wrapper)", 0); + __Pyx_RefNannySetupContext("LOG10 (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -77801,78 +81034,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6183, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6200, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6183, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6183, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6183, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6183, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6200, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DI", 0) < (0)) __PYX_ERR(6, 6183, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, i); __PYX_ERR(6, 6183, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6183, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6183, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6183, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6183, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LOG10", 0) < (0)) __PYX_ERR(6, 6200, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, i); __PYX_ERR(6, 6200, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6185, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6200, __pyx_L3_error) } + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 6183, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 6200, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 6185, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 6185, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 6185, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_304MINUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6202, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_306LOG10(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -77887,12 +81088,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_306LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -77904,49 +81104,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MINUS_DI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6205, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("LOG10", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6206, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6207, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6209, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -77967,7 +81153,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -77982,7 +81168,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6213, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6226, __pyx_L1_error) /*try:*/ { @@ -77992,7 +81178,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_LOG10_Lookback()); } /*finally:*/ { @@ -78005,7 +81191,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6217, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6230, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -78016,7 +81202,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MINUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LOG10(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -78056,17 +81242,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -78087,22 +81273,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6223, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -78121,7 +81307,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -78132,9 +81318,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -78142,25 +81326,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_307MINUS_DM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_309MA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_306MINUS_DM, "MINUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMINUS_DM(high, low[, timeperiod=?])\n\nMinus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_307MINUS_DM = {"MINUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_307MINUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_306MINUS_DM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_307MINUS_DM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_308MA, "MA(ndarray real, int timeperiod=-0x80000000, int matype=0)\n\nMA(real[, timeperiod=?, matype=?])\n\nMoving average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_309MA = {"MA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_309MA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_308MA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_309MA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -78171,7 +81355,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MINUS_DM (wrapper)", 0); + __Pyx_RefNannySetupContext("MA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -78181,70 +81365,75 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6226, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6239, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6239, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6239, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6239, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DM", 0) < (0)) __PYX_ERR(6, 6226, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, i); __PYX_ERR(6, 6226, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MA", 0) < (0)) __PYX_ERR(6, 6239, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, i); __PYX_ERR(6, 6239, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6239, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6239, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6239, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6228, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6241, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } + if (values[2]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6241, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 6226, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 6239, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 6228, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 6228, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_306MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6241, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_308MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -78260,11 +81449,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_308MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -78276,43 +81466,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MINUS_DM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6247, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("MA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6248, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6249, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6251, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -78333,7 +81515,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -78348,7 +81530,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6255, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6268, __pyx_L1_error) /*try:*/ { @@ -78358,7 +81540,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DM_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype)); } /*finally:*/ { @@ -78371,7 +81553,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6259, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6272, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -78382,7 +81564,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MINUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -78422,17 +81604,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -78453,22 +81635,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__ } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6265, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -78487,7 +81669,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -78498,8 +81680,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__ __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -78507,16 +81688,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_309MOM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_311MACD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_308MOM, "MOM(ndarray real, int timeperiod=-0x80000000)\n\nMOM(real[, timeperiod=?])\n\nMomentum (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_309MOM = {"MOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_309MOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_308MOM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_309MOM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_310MACD, "MACD(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nMACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nMoving Average Convergence/Divergence (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_311MACD = {"MACD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_311MACD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_310MACD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_311MACD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -78524,18 +81705,20 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MOM (wrapper)", 0); + __Pyx_RefNannySetupContext("MACD (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -78545,62 +81728,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6268, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6281, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6281, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6281, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6281, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6281, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MOM", 0) < (0)) __PYX_ERR(6, 6268, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACD", 0) < (0)) __PYX_ERR(6, 6281, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, i); __PYX_ERR(6, 6268, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, i); __PYX_ERR(6, 6281, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6281, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6281, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6281, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6281, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6270, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6283, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6283, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6283, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6268, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, __pyx_nargs); __PYX_ERR(6, 6281, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6270, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_308MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6283, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_310MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ goto __pyx_L0; @@ -78616,11 +81825,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_310MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -78628,27 +81839,32 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MOM", 0); + __Pyx_RefNannySetupContext("MACD", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6289, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -78660,17 +81876,32 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6292, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 6311, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 6311, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(6, 6311, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; } @@ -78696,7 +81927,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6296, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6315, __pyx_L1_error) /*try:*/ { @@ -78706,7 +81937,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MOM_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); } /*finally:*/ { @@ -78719,10 +81950,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6300, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6319, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6320, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6321, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; { PyThreadState * _save; @@ -78730,7 +81971,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MACD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); } /*finally:*/ { @@ -78770,17 +82011,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; { { PyThreadState * _save; @@ -78801,41 +82045,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_s } } } + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6306, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outmacd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(6, 6328, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(6, 6328, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(6, 6328, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -78845,7 +82103,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_s - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -78854,35 +82114,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_311MULT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_313MACDEXT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_310MULT, "MULT(ndarray real0, ndarray real1)\n\nMULT(real0, real1)\n\nVector Arithmetic Mult (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_311MULT = {"MULT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_311MULT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_310MULT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_311MULT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_312MACDEXT, "MACDEXT(ndarray real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)\n\nMACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\nMACD with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n fastmatype: 0 (Simple Moving Average)\n slowperiod: 26\n slowmatype: 0 (Simple Moving Average)\n signalperiod: 9\n signalmatype: 0 (Simple Moving Average)\nOutputs:\n macd\n macdsignal\n macdhist"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_313MACDEXT = {"MACDEXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_313MACDEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_312MACDEXT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_313MACDEXT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_fastmatype; + int __pyx_v_slowperiod; + int __pyx_v_slowmatype; + int __pyx_v_signalperiod; + int __pyx_v_signalmatype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MULT (wrapper)", 0); + __Pyx_RefNannySetupContext("MACDEXT (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -78892,54 +82157,127 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6309, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6330, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 6330, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 6330, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 6330, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6330, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6330, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6309, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6330, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6309, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6330, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MULT", 0) < (0)) __PYX_ERR(6, 6309, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, i); __PYX_ERR(6, 6309, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDEXT", 0) < (0)) __PYX_ERR(6, 6330, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, i); __PYX_ERR(6, 6330, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6309, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6309, __pyx_L3_error) + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 6330, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 6330, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 6330, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6330, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6330, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6330, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6330, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6332, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6332, __pyx_L3_error) + } else { + __pyx_v_fastmatype = ((int)((int)0)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6332, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6332, __pyx_L3_error) + } else { + __pyx_v_slowmatype = ((int)((int)0)); + } + if (values[5]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6332, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + if (values[6]) { + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6332, __pyx_L3_error) + } else { + __pyx_v_signalmatype = ((int)((int)0)); } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 6309, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, __pyx_nargs); __PYX_ERR(6, 6330, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(6, 6311, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(6, 6311, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_310MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6332, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_312MACDEXT(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); /* function exit code */ goto __pyx_L0; @@ -78954,11 +82292,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_312MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -78966,57 +82310,69 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MULT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6329, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("MACDEXT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6330, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6331, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6333, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 6363, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 6363, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(6, 6363, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; } @@ -79027,7 +82383,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -79042,7 +82398,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6337, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6367, __pyx_L1_error) /*try:*/ { @@ -79052,7 +82408,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MULT_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype)); } /*finally:*/ { @@ -79065,10 +82421,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6341, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6371, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6372, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6373, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; { PyThreadState * _save; @@ -79076,7 +82442,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MULT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MACDEXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); } /*finally:*/ { @@ -79116,17 +82482,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; { { PyThreadState * _save; @@ -79147,41 +82516,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_ } } } - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outmacd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(6, 6380, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(6, 6380, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(6, 6380, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -79191,9 +82574,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -79201,37 +82585,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_313NATR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_315MACDFIX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_312NATR, "NATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nNATR(high, low, close[, timeperiod=?])\n\nNormalized Average True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_313NATR = {"NATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_313NATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_312NATR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_313NATR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_314MACDFIX, "MACDFIX(ndarray real, int signalperiod=-0x80000000)\n\nMACDFIX(real[, signalperiod=?])\n\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_315MACDFIX = {"MACDFIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_315MACDFIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_314MACDFIX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_315MACDFIX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("NATR (wrapper)", 0); + __Pyx_RefNannySetupContext("MACDFIX (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -79241,78 +82623,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6350, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6382, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6350, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6350, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6350, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6382, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6350, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6382, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NATR", 0) < (0)) __PYX_ERR(6, 6350, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, i); __PYX_ERR(6, 6350, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDFIX", 0) < (0)) __PYX_ERR(6, 6382, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, i); __PYX_ERR(6, 6382, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6350, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6350, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6350, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6382, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6350, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6382, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6352, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6384, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_signalperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 6350, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6382, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 6352, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 6352, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 6352, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_312NATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6384, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_314MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod); /* function exit code */ goto __pyx_L0; @@ -79332,7 +82698,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_314MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -79340,63 +82706,69 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("NATR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6371, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6372, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("MACDFIX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6373, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6374, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6376, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 6410, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 6410, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(6, 6410, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; } @@ -79407,7 +82779,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -79422,7 +82794,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6380, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6414, __pyx_L1_error) /*try:*/ { @@ -79432,7 +82804,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_NATR_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MACDFIX_Lookback(__pyx_v_signalperiod)); } /*finally:*/ { @@ -79445,10 +82817,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6384, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6418, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6419, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6420, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; { PyThreadState * _save; @@ -79456,7 +82838,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_NATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MACDFIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); } /*finally:*/ { @@ -79496,17 +82878,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; { { PyThreadState * _save; @@ -79527,41 +82912,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_ } } } - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outmacd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(6, 6427, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(6, 6427, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(6, 6427, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -79571,10 +82970,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -79582,35 +82981,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_315NVI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_317MAMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_314NVI, "NVI(ndarray close, ndarray volume)\n\nNVI(close, volume)\n\nNegative Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_315NVI = {"NVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_315NVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_314NVI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_315NVI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_316MAMA, "MAMA(ndarray real, double fastlimit=-4e37, double slowlimit=-4e37)\n\nMAMA(real[, fastlimit=?, slowlimit=?])\n\nMESA Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastlimit: 0.5\n slowlimit: 0.05\nOutputs:\n mama\n fama"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_317MAMA = {"MAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_317MAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_316MAMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_317MAMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; + PyArrayObject *__pyx_v_real = 0; + double __pyx_v_fastlimit; + double __pyx_v_slowlimit; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("NVI (wrapper)", 0); + __Pyx_RefNannySetupContext("MAMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -79620,54 +83020,75 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6393, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6429, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6429, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6393, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6429, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6393, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6429, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NVI", 0) < (0)) __PYX_ERR(6, 6393, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, i); __PYX_ERR(6, 6393, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAMA", 0) < (0)) __PYX_ERR(6, 6429, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, i); __PYX_ERR(6, 6429, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6393, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6393, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6429, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6429, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6429, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 6431, __pyx_L3_error) + } else { + __pyx_v_fastlimit = ((double)((double)-4e37)); + } + if (values[2]) { + __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 6431, __pyx_L3_error) + } else { + __pyx_v_slowlimit = ((double)((double)-4e37)); } - __pyx_v_close = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 6393, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 6429, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.NVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 6395, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 6395, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_314NVI(__pyx_self, __pyx_v_close, __pyx_v_volume); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6431, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_316MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); /* function exit code */ goto __pyx_L0; @@ -79682,11 +83103,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_316MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -79694,57 +83117,62 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmama = 0; + PyArrayObject *__pyx_v_outfama = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; int __pyx_t_5; - char const *__pyx_t_6; - PyObject *__pyx_t_7 = NULL; + int __pyx_t_6; + char const *__pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("NVI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6412, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("MAMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6413, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6414, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6416, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 6456, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 6456, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_4 = 0; goto __pyx_L0; } @@ -79755,7 +83183,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -79770,7 +83198,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6420, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6460, __pyx_L1_error) /*try:*/ { @@ -79780,7 +83208,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_NVI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit)); } /*finally:*/ { @@ -79793,10 +83221,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6424, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6464, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outmama = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6465, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outfama = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; { PyThreadState * _save; @@ -79804,7 +83237,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_NVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmama)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfama)) + __pyx_v_lookback)); } /*finally:*/ { @@ -79844,17 +83277,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; { { PyThreadState * _save; @@ -79875,41 +83310,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6430, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF((PyObject *)__pyx_v_outmama); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmama); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outmama)) != (0)) __PYX_ERR(6, 6472, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outfama); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfama); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outfama)) != (0)) __PYX_ERR(6, 6472, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.NVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -79919,9 +83364,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_s - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_outmama); + __Pyx_XDECREF((PyObject *)__pyx_v_outfama); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -79929,35 +83374,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_317OBV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_319MARKETFI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_316OBV, "OBV(ndarray real, ndarray volume)\n\nOBV(real, volume)\n\nOn Balance Volume (Volume Indicators)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_317OBV = {"OBV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_317OBV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_316OBV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_317OBV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_318MARKETFI, "MARKETFI(ndarray high, ndarray low, ndarray volume)\n\nMARKETFI(high, low, volume)\n\nMarket Facilitation Index (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_319MARKETFI = {"MARKETFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_319MARKETFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_318MARKETFI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_319MARKETFI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("OBV (wrapper)", 0); + __Pyx_RefNannySetupContext("MARKETFI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -79967,54 +83413,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6433, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6474, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6474, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6433, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6474, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6433, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6474, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "OBV", 0) < (0)) __PYX_ERR(6, 6433, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, i); __PYX_ERR(6, 6433, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MARKETFI", 0) < (0)) __PYX_ERR(6, 6474, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, i); __PYX_ERR(6, 6474, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6433, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6474, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6433, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6474, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6474, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_volume = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 6433, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, __pyx_nargs); __PYX_ERR(6, 6474, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6435, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 6435, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_316OBV(__pyx_self, __pyx_v_real, __pyx_v_volume); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 6476, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 6476, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 6476, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_318MARKETFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_volume); /* function exit code */ goto __pyx_L0; @@ -80033,7 +83487,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_318MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -80059,21 +83513,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("OBV", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("MARKETFI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6453, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6454, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6455, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6496, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -80081,7 +83541,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6457, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -80102,7 +83562,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); } /*finally:*/ { @@ -80117,7 +83577,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6461, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6502, __pyx_L1_error) /*try:*/ { @@ -80127,7 +83587,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_OBV_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MARKETFI_Lookback()); } /*finally:*/ { @@ -80140,7 +83600,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6465, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6506, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -80151,7 +83611,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_OBV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MARKETFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -80237,7 +83697,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6471, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -80256,7 +83716,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -80267,7 +83727,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -80276,36 +83737,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_319PERCENTILE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_321MASSI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_318PERCENTILE, "PERCENTILE(ndarray real, int timeperiod=-0x80000000, double percentile=50.0)\n\nPERCENTILE(real[, timeperiod=?, percentile=?])\n\nPercentile (nearest rank) (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n percentile: 50.0\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_319PERCENTILE = {"PERCENTILE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_319PERCENTILE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_318PERCENTILE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_319PERCENTILE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_320MASSI, "MASSI(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nMASSI(high, low[, fastperiod=?, slowperiod=?])\n\nMass Index (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 9\n slowperiod: 25\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_321MASSI = {"MASSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_321MASSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_320MASSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_321MASSI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_percentile; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PERCENTILE (wrapper)", 0); + __Pyx_RefNannySetupContext("MASSI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -80315,75 +83777,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6474, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6515, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6515, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTILE", 0) < (0)) __PYX_ERR(6, 6474, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, i); __PYX_ERR(6, 6474, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MASSI", 0) < (0)) __PYX_ERR(6, 6515, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, i); __PYX_ERR(6, 6515, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6515, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6474, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6515, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6515, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6476, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6517, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastperiod = ((int)((int)-2147483648)); } - if (values[2]) { - __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 6476, __pyx_L3_error) + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6517, __pyx_L3_error) } else { - __pyx_v_percentile = ((double)((double)50.0)); + __pyx_v_slowperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 6474, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, __pyx_nargs); __PYX_ERR(6, 6515, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6476, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_318PERCENTILE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 6517, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 6517, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_320MASSI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); /* function exit code */ goto __pyx_L0; @@ -80404,7 +83874,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile) { +static PyObject *__pyx_pf_5talib_7_ta_lib_320MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -80416,35 +83886,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject * PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PERCENTILE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("MASSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6496, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6539, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6499, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -80465,7 +83943,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -80480,7 +83958,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject * __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6503, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6545, __pyx_L1_error) /*try:*/ { @@ -80490,7 +83968,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); } /*finally:*/ { @@ -80503,7 +83981,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6507, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6549, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -80514,7 +83992,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PERCENTILE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MASSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -80554,17 +84032,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject * /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -80585,22 +84063,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject * } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6513, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -80619,7 +84097,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -80630,7 +84108,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject * __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -80638,16 +84117,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_321PERCENTRANK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_323MAVP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_320PERCENTRANK, "PERCENTRANK(ndarray real, int timeperiod=-0x80000000)\n\nPERCENTRANK(real[, timeperiod=?])\n\nPercent Rank (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 100\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_321PERCENTRANK = {"PERCENTRANK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_321PERCENTRANK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_320PERCENTRANK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_321PERCENTRANK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_322MAVP, "MAVP(ndarray real, ndarray periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)\n\nMAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\nMoving average with variable period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n periods: (any ndarray)\nParameters:\n minperiod: 2\n maxperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_323MAVP = {"MAVP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_323MAVP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_322MAVP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_323MAVP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -80655,18 +84134,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_periods = 0; + int __pyx_v_minperiod; + int __pyx_v_maxperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PERCENTRANK (wrapper)", 0); + __Pyx_RefNannySetupContext("MAVP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -80676,62 +84158,96 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6516, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6558, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 6558, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6558, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6558, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6516, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6558, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6516, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6558, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTRANK", 0) < (0)) __PYX_ERR(6, 6516, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, i); __PYX_ERR(6, 6516, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAVP", 0) < (0)) __PYX_ERR(6, 6558, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, i); __PYX_ERR(6, 6558, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 6558, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6558, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6558, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6516, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6558, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6516, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6558, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6518, __pyx_L3_error) + __pyx_v_periods = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6560, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_minperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6560, __pyx_L3_error) + } else { + __pyx_v_maxperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6560, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6516, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, __pyx_nargs); __PYX_ERR(6, 6558, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6518, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_320PERCENTRANK(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6560, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(6, 6560, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_322MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -80747,11 +84263,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_322MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -80763,35 +84281,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PERCENTRANK", 0); + __Pyx_RefNannySetupContext("MAVP", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_INCREF((PyObject *)__pyx_v_periods); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6537, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_periods, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6584, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6540, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -80812,7 +84338,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_periods))); } /*finally:*/ { @@ -80827,7 +84353,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6544, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6590, __pyx_L1_error) /*try:*/ { @@ -80837,7 +84363,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTRANK_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype)); } /*finally:*/ { @@ -80850,7 +84376,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6548, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6594, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -80861,7 +84387,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PERCENTRANK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MAVP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_periods)) + __pyx_v_begidx), __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -80901,17 +84427,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -80932,22 +84458,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6554, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -80966,7 +84492,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -80978,6 +84504,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_periods); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -80985,37 +84512,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_323PLUS_DI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_325MAX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_322PLUS_DI, "PLUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nPLUS_DI(high, low, close[, timeperiod=?])\n\nPlus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_323PLUS_DI = {"PLUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_323PLUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_322PLUS_DI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_323PLUS_DI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_324MAX, "MAX(ndarray real, int timeperiod=-0x80000000)\n\nMAX(real[, timeperiod=?])\n\nHighest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_325MAX = {"MAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_325MAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_324MAX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_325MAX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PLUS_DI (wrapper)", 0); + __Pyx_RefNannySetupContext("MAX (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -81025,78 +84550,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6557, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6603, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6557, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6557, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6603, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6603, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DI", 0) < (0)) __PYX_ERR(6, 6557, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, i); __PYX_ERR(6, 6557, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAX", 0) < (0)) __PYX_ERR(6, 6603, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, i); __PYX_ERR(6, 6603, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6557, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6557, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6603, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6603, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6559, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6605, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 6557, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6603, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 6559, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 6559, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 6559, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_322PLUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6605, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_324MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -81116,7 +84625,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_324MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -81128,49 +84637,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PLUS_DI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6578, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("MAX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6580, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6624, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6581, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6583, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -81191,7 +84686,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -81206,7 +84701,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6587, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6631, __pyx_L1_error) /*try:*/ { @@ -81216,7 +84711,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MAX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -81229,7 +84724,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6591, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6635, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -81240,7 +84735,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PLUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -81280,17 +84775,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -81311,22 +84806,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6597, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -81345,7 +84840,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -81356,9 +84851,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -81366,36 +84859,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_325PLUS_DM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_327MAXINDEX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_324PLUS_DM, "PLUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nPLUS_DM(high, low[, timeperiod=?])\n\nPlus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_325PLUS_DM = {"PLUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_325PLUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_324PLUS_DM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_325PLUS_DM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_326MAXINDEX, "MAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_327MAXINDEX = {"MAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_327MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_326MAXINDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_327MAXINDEX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PLUS_DM (wrapper)", 0); + __Pyx_RefNannySetupContext("MAXINDEX (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -81405,70 +84897,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6600, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6644, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6600, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6644, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6644, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DM", 0) < (0)) __PYX_ERR(6, 6600, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, i); __PYX_ERR(6, 6600, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAXINDEX", 0) < (0)) __PYX_ERR(6, 6644, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, i); __PYX_ERR(6, 6644, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6600, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6644, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6644, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6602, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6646, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 6600, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6644, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 6602, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 6602, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_324PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6646, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_326MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -81488,7 +84972,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_326MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -81496,47 +84980,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; + int *__pyx_v_outinteger_data; + int __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; + npy_intp __pyx_t_12; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PLUS_DM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6621, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("MAXINDEX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6622, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6623, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6625, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -81557,7 +85036,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -81572,7 +85051,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6629, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6672, __pyx_L1_error) /*try:*/ { @@ -81582,7 +85061,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DM_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MAXINDEX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -81595,9 +85074,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6633, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6676, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -81606,7 +85085,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PLUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -81646,17 +85125,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -81677,31 +85156,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6639, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_12 = __pyx_v_length; + + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_12; __pyx_v_i++) { + + + __pyx_t_4 = __pyx_v_i; + (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx); + } + + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L26; + } + __pyx_L26:; + } + } + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); } __Pyx_XDECREF(__pyx_temp); } @@ -81711,7 +85219,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -81721,9 +85229,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -81731,16 +85240,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_327PPO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_329MCGD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_326PPO, "PPO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_327PPO = {"PPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_327PPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_326PPO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_327PPO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_328MCGD, "MCGD(ndarray real, int timeperiod=-0x80000000)\n\nMCGD(real[, timeperiod=?])\n\nMcGinley Dynamic (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_329MCGD = {"MCGD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_329MCGD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_328MCGD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_329MCGD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -81748,20 +85257,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PPO (wrapper)", 0); + __Pyx_RefNannySetupContext("MCGD (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -81771,88 +85278,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6642, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6689, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6642, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6642, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6689, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6689, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PPO", 0) < (0)) __PYX_ERR(6, 6642, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MCGD", 0) < (0)) __PYX_ERR(6, 6689, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, i); __PYX_ERR(6, 6642, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MCGD", 0, 1, 2, i); __PYX_ERR(6, 6689, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6642, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6642, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6689, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6689, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6644, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6644, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6691, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6644, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)1)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, __pyx_nargs); __PYX_ERR(6, 6642, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MCGD", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6689, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MCGD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6644, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_326PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6691, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_328MCGD(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -81868,13 +85349,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_328MCGD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -81899,10 +85378,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PPO", 0); + __Pyx_RefNannySetupContext("MCGD", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6665, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -81914,7 +85393,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6668, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -81950,7 +85429,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6672, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6717, __pyx_L1_error) /*try:*/ { @@ -81960,7 +85439,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MCGD_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -81973,7 +85452,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6676, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6721, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -81984,7 +85463,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MCGD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -82070,7 +85549,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6682, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MCGD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -82089,7 +85568,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MCGD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -82108,24 +85587,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_329PVI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_331MEDIAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_328PVI, "PVI(ndarray close, ndarray volume)\n\nPVI(close, volume)\n\nPositive Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_329PVI = {"PVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_329PVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_328PVI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_329PVI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_330MEDIAN, "MEDIAN(ndarray real, int timeperiod=-0x80000000)\n\nMEDIAN(real[, timeperiod=?])\n\nRolling Median (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_331MEDIAN = {"MEDIAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_331MEDIAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_330MEDIAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_331MEDIAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -82136,7 +85615,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PVI (wrapper)", 0); + __Pyx_RefNannySetupContext("MEDIAN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -82146,54 +85625,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6685, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6730, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6685, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6730, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6685, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6730, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVI", 0) < (0)) __PYX_ERR(6, 6685, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, i); __PYX_ERR(6, 6685, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MEDIAN", 0) < (0)) __PYX_ERR(6, 6730, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MEDIAN", 0, 1, 2, i); __PYX_ERR(6, 6730, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6685, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6685, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6730, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6730, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6732, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_close = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 6685, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MEDIAN", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6730, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 6687, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 6687, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_328PVI(__pyx_self, __pyx_v_close, __pyx_v_volume); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6732, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_330MEDIAN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -82208,11 +85695,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_330MEDIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -82224,43 +85712,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PVI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6704, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("MEDIAN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6705, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6706, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6708, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -82281,7 +85761,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -82296,7 +85776,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6712, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6758, __pyx_L1_error) /*try:*/ { @@ -82306,7 +85786,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PVI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MEDIAN_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -82319,7 +85799,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6716, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6762, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -82330,7 +85810,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MEDIAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -82370,17 +85850,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -82401,22 +85881,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6722, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDIAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -82435,7 +85915,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -82446,8 +85926,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -82455,37 +85934,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_331PVO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_333MEDPRICE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_330PVO, "PVO(ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPVO(volume[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Volume Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_331PVO = {"PVO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_331PVO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_330PVO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_331PVO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_332MEDPRICE, "MEDPRICE(ndarray high, ndarray low)\n\nMEDPRICE(high, low)\n\nMedian Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_333MEDPRICE = {"MEDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_333MEDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_332MEDPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_333MEDPRICE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PVO (wrapper)", 0); + __Pyx_RefNannySetupContext("MEDPRICE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -82495,88 +85972,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6725, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6771, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6725, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6725, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6725, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6725, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVO", 0) < (0)) __PYX_ERR(6, 6725, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, i); __PYX_ERR(6, 6725, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6725, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6725, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6725, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6725, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MEDPRICE", 0) < (0)) __PYX_ERR(6, 6771, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, i); __PYX_ERR(6, 6771, __pyx_L3_error) } } - } - __pyx_v_volume = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6727, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6727, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6727, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_matype = ((int)((int)1)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6771, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6771, __pyx_L3_error) } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, __pyx_nargs); __PYX_ERR(6, 6725, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 6771, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 6727, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_330PVO(__pyx_self, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 6773, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 6773, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_332MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low); /* function exit code */ goto __pyx_L0; @@ -82591,14 +86034,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_332MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -82610,35 +86050,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PVO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("MEDPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6748, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_volume)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6792, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6751, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -82659,7 +86107,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -82674,7 +86122,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6755, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6798, __pyx_L1_error) /*try:*/ { @@ -82684,7 +86132,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MEDPRICE_Lookback()); } /*finally:*/ { @@ -82697,7 +86145,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6759, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6802, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -82708,7 +86156,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PVO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MEDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -82748,17 +86196,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -82779,22 +86227,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6765, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -82813,7 +86261,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PVO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -82824,7 +86272,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -82832,35 +86281,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_333PVT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_335MFI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_332PVT, "PVT(ndarray close, ndarray volume)\n\nPVT(close, volume)\n\nPrice Volume Trend (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_333PVT = {"PVT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_333PVT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_332PVT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_333PVT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_334MFI, "MFI(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nMFI(high, low, close, volume[, timeperiod=?])\n\nMoney Flow Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_335MFI = {"MFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_335MFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_334MFI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_335MFI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PVT (wrapper)", 0); + __Pyx_RefNannySetupContext("MFI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -82870,54 +86322,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6768, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6811, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 6811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6811, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6768, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6811, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6768, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6811, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVT", 0) < (0)) __PYX_ERR(6, 6768, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, i); __PYX_ERR(6, 6768, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MFI", 0) < (0)) __PYX_ERR(6, 6811, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, i); __PYX_ERR(6, 6811, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6768, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6768, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 6811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 6811, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6811, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6811, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6811, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6813, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_close = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 6768, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 6811, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 6770, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 6770, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_332PVT(__pyx_self, __pyx_v_close, __pyx_v_volume); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 6813, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 6813, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 6813, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 6813, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_334MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -82932,11 +86416,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_334MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -82962,21 +86447,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PVT", 0); + __Pyx_RefNannySetupContext("MFI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6787, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6832, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6788, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6789, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6836, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -82984,7 +86481,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6791, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -83005,7 +86502,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); } /*finally:*/ { @@ -83020,7 +86517,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6795, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6842, __pyx_L1_error) /*try:*/ { @@ -83030,7 +86527,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PVT_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MFI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -83043,7 +86540,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6799, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6846, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -83054,7 +86551,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PVT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -83140,7 +86637,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6805, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -83159,7 +86656,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PVT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -83170,6 +86667,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); @@ -83179,36 +86678,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_335QSTICK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_337MIDPOINT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_334QSTICK, "QSTICK(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nQSTICK(open, close[, timeperiod=?])\n\nQstick (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_335QSTICK = {"QSTICK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_335QSTICK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_334QSTICK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_335QSTICK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_336MIDPOINT, "MIDPOINT(ndarray real, int timeperiod=-0x80000000)\n\nMIDPOINT(real[, timeperiod=?])\n\nMidPoint over period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_337MIDPOINT = {"MIDPOINT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_337MIDPOINT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_336MIDPOINT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_337MIDPOINT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("QSTICK (wrapper)", 0); + __Pyx_RefNannySetupContext("MIDPOINT (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -83218,70 +86716,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6808, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6855, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6808, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6808, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6855, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6808, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6855, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "QSTICK", 0) < (0)) __PYX_ERR(6, 6808, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, i); __PYX_ERR(6, 6808, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPOINT", 0) < (0)) __PYX_ERR(6, 6855, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, i); __PYX_ERR(6, 6855, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6808, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6808, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6855, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6808, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6855, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_close = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6810, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6857, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 6808, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6855, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.QSTICK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 6810, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 6810, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_334QSTICK(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6857, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_336MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -83301,7 +86791,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_336MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -83313,43 +86803,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("QSTICK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6829, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("MIDPOINT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6830, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6831, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6833, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -83370,7 +86852,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -83385,7 +86867,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6837, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6883, __pyx_L1_error) /*try:*/ { @@ -83395,7 +86877,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_QSTICK_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPOINT_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -83408,7 +86890,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6841, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6887, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -83419,7 +86901,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_QSTICK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MIDPOINT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -83459,17 +86941,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -83490,22 +86972,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6847, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -83524,7 +87006,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.QSTICK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -83535,8 +87017,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -83544,35 +87025,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_337RMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_339MIDPRICE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_336RMA, "RMA(ndarray real, int timeperiod=-0x80000000)\n\nRMA(real[, timeperiod=?])\n\nWilder\047s Smoothed Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_337RMA = {"RMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_337RMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_336RMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_337RMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_338MIDPRICE, "MIDPRICE(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMIDPRICE(high, low[, timeperiod=?])\n\nMidpoint Price over period (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_339MIDPRICE = {"MIDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_339MIDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_338MIDPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_339MIDPRICE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("RMA (wrapper)", 0); + __Pyx_RefNannySetupContext("MIDPRICE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -83582,62 +87064,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6850, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6896, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6896, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6850, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6896, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6850, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6896, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RMA", 0) < (0)) __PYX_ERR(6, 6850, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, i); __PYX_ERR(6, 6850, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPRICE", 0) < (0)) __PYX_ERR(6, 6896, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, i); __PYX_ERR(6, 6896, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 6896, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6850, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6896, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6850, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6896, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6852, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6898, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6850, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 6896, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6852, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_336RMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 6898, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 6898, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_338MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -83657,7 +87147,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_338MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -83669,35 +87159,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("MIDPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6871, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 6919, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6874, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -83718,7 +87216,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -83733,7 +87231,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6878, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6925, __pyx_L1_error) /*try:*/ { @@ -83743,7 +87241,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_RMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPRICE_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -83756,7 +87254,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6882, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6929, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -83767,7 +87265,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_RMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MIDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -83807,17 +87305,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -83838,22 +87336,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6888, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -83872,7 +87370,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.RMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -83883,7 +87381,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -83891,16 +87390,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_339ROC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_341MIN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_338ROC, "ROC(ndarray real, int timeperiod=-0x80000000)\n\nROC(real[, timeperiod=?])\n\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_339ROC = {"ROC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_339ROC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_338ROC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_339ROC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_340MIN, "MIN(ndarray real, int timeperiod=-0x80000000)\n\nMIN(real[, timeperiod=?])\n\nLowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_341MIN = {"MIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_341MIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_340MIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_341MIN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -83919,7 +87418,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ROC (wrapper)", 0); + __Pyx_RefNannySetupContext("MIN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -83931,60 +87430,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6891, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6938, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6891, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6938, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6891, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6938, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROC", 0) < (0)) __PYX_ERR(6, 6891, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIN", 0) < (0)) __PYX_ERR(6, 6938, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, i); __PYX_ERR(6, 6891, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, i); __PYX_ERR(6, 6938, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6891, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6938, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6891, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6938, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6893, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6940, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6891, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6938, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6893, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_338ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6940, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_340MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -84004,7 +87503,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_340MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -84029,10 +87528,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ROC", 0); + __Pyx_RefNannySetupContext("MIN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6912, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -84044,7 +87543,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6915, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -84080,7 +87579,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6919, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6966, __pyx_L1_error) /*try:*/ { @@ -84090,7 +87589,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ROC_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MIN_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -84103,7 +87602,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6923, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6970, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -84114,7 +87613,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ROC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -84200,7 +87699,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6929, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -84219,7 +87718,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -84238,16 +87737,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_341ROCP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_343MININDEX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_340ROCP, "ROCP(ndarray real, int timeperiod=-0x80000000)\n\nROCP(real[, timeperiod=?])\n\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_341ROCP = {"ROCP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_341ROCP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_340ROCP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_341ROCP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_342MININDEX, "MININDEX(ndarray real, int timeperiod=-0x80000000)\n\nMININDEX(real[, timeperiod=?])\n\nIndex of lowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_343MININDEX = {"MININDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_343MININDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_342MININDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_343MININDEX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -84266,7 +87765,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ROCP (wrapper)", 0); + __Pyx_RefNannySetupContext("MININDEX (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -84278,60 +87777,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6932, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6979, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6979, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6979, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCP", 0) < (0)) __PYX_ERR(6, 6932, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MININDEX", 0) < (0)) __PYX_ERR(6, 6979, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, i); __PYX_ERR(6, 6932, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, i); __PYX_ERR(6, 6979, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6979, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6979, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6934, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6981, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6932, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6979, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6934, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_340ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6981, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_342MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -84351,7 +87850,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_342MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -84359,7 +87858,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; + int *__pyx_v_outinteger_data; + int __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -84373,13 +87874,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + npy_intp __pyx_t_12; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ROCP", 0); + __Pyx_RefNannySetupContext("MININDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6953, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -84391,7 +87893,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_ if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6956, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -84427,7 +87929,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 6960, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7007, __pyx_L1_error) /*try:*/ { @@ -84437,7 +87939,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ROCP_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MININDEX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -84450,9 +87952,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6964, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7011, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -84461,7 +87963,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ROCP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MININDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); } /*finally:*/ { @@ -84547,16 +88049,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6970, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_12 = __pyx_v_length; + + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_12; __pyx_v_i++) { + + + __pyx_t_4 = __pyx_v_i; + (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx); + } + + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L26; + } + __pyx_L26:; + } + } + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); } __Pyx_XDECREF(__pyx_temp); } @@ -84566,7 +88097,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -84576,7 +88107,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -84585,16 +88118,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_343ROCR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_345MINMAX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_342ROCR, "ROCR(ndarray real, int timeperiod=-0x80000000)\n\nROCR(real[, timeperiod=?])\n\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_343ROCR = {"ROCR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_343ROCR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_342ROCR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_343ROCR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_344MINMAX, "MINMAX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAX(real[, timeperiod=?])\n\nLowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n min\n max"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_345MINMAX = {"MINMAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_345MINMAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_344MINMAX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_345MINMAX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -84613,7 +88146,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ROCR (wrapper)", 0); + __Pyx_RefNannySetupContext("MINMAX (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -84625,60 +88158,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 6973, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7024, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7024, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7024, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR", 0) < (0)) __PYX_ERR(6, 6973, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAX", 0) < (0)) __PYX_ERR(6, 7024, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, i); __PYX_ERR(6, 6973, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, i); __PYX_ERR(6, 7024, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 6973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7024, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 6973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7024, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 6975, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7026, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 6973, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7024, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 6975, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_342ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7026, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_344MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -84698,7 +88231,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_344MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -84706,27 +88239,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmin = 0; + PyArrayObject *__pyx_v_outmax = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + char const *__pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ROCR", 0); + __Pyx_RefNannySetupContext("MINMAX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6994, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -84738,17 +88274,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_ if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6997, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 7050, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 7050, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_4 = 0; goto __pyx_L0; } @@ -84774,7 +88320,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7001, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7054, __pyx_L1_error) /*try:*/ { @@ -84784,7 +88330,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -84797,10 +88343,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7005, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7058, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outmin = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7059, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outmax = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; { PyThreadState * _save; @@ -84808,7 +88359,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ROCR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MINMAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmin)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmax)) + __pyx_v_lookback)); } /*finally:*/ { @@ -84848,17 +88399,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; { { PyThreadState * _save; @@ -84879,41 +88432,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_ } } } - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7011, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7065, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7066, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF((PyObject *)__pyx_v_outmin); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmin); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outmin)) != (0)) __PYX_ERR(6, 7066, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmax); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmax); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outmax)) != (0)) __PYX_ERR(6, 7066, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -84923,7 +88486,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmin); + __Pyx_XDECREF((PyObject *)__pyx_v_outmax); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -84932,16 +88496,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_345ROCR100(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_347MINMAXINDEX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_344ROCR100, "ROCR100(ndarray real, int timeperiod=-0x80000000)\n\nROCR100(real[, timeperiod=?])\n\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_345ROCR100 = {"ROCR100", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_345ROCR100, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_344ROCR100}; -static PyObject *__pyx_pw_5talib_7_ta_lib_345ROCR100(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_346MINMAXINDEX, "MINMAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAXINDEX(real[, timeperiod=?])\n\nIndexes of lowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n minidx\n maxidx"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_347MINMAXINDEX = {"MINMAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_347MINMAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_346MINMAXINDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_347MINMAXINDEX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -84960,7 +88524,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ROCR100 (wrapper)", 0); + __Pyx_RefNannySetupContext("MINMAXINDEX (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -84972,60 +88536,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7014, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7068, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7068, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7068, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR100", 0) < (0)) __PYX_ERR(6, 7014, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAXINDEX", 0) < (0)) __PYX_ERR(6, 7068, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, i); __PYX_ERR(6, 7014, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, i); __PYX_ERR(6, 7068, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7068, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7068, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7016, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7070, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7014, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7068, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7016, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_344ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7070, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_346MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -85045,7 +88609,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_346MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -85053,27 +88617,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__p TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outminidx = 0; + PyArrayObject *__pyx_v_outmaxidx = 0; + int *__pyx_v_outminidx_data; + int __pyx_v_i; + int *__pyx_v_outmaxidx_data; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + char const *__pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + npy_intp __pyx_t_14; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ROCR100", 0); + __Pyx_RefNannySetupContext("MINMAXINDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7035, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -85085,17 +88656,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__p if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7038, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7094, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7094, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 7094, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 7094, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_4 = 0; goto __pyx_L0; } @@ -85121,7 +88702,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__p __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7042, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7098, __pyx_L1_error) /*try:*/ { @@ -85131,7 +88712,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR100_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -85144,10 +88725,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__p } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7046, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7102, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7103, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; { PyThreadState * _save; @@ -85155,7 +88741,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ROCR100(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MINMAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)) + __pyx_v_lookback)); } /*finally:*/ { @@ -85195,17 +88781,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__p /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; { { PyThreadState * _save; @@ -85226,41 +88814,109 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__p } } } - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7052, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_v_outminidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)); + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_14 = __pyx_v_length; + + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_14; __pyx_v_i++) { + + + __pyx_t_6 = __pyx_v_i; + (__pyx_v_outminidx_data[__pyx_t_6]) = ((__pyx_v_outminidx_data[__pyx_t_6]) + __pyx_v_begidx); + } + + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L26; + } + __pyx_L26:; + } + } + + __pyx_v_outmaxidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_14 = __pyx_v_length; + + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_14; __pyx_v_i++) { + + + __pyx_t_6 = __pyx_v_i; + (__pyx_v_outmaxidx_data[__pyx_t_6]) = ((__pyx_v_outmaxidx_data[__pyx_t_6]) + __pyx_v_begidx); + } + + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L31; + } + __pyx_L31:; + } + } + + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF((PyObject *)__pyx_v_outminidx); + __Pyx_GIVEREF((PyObject *)__pyx_v_outminidx); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outminidx)) != (0)) __PYX_ERR(6, 7118, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmaxidx); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmaxidx); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outmaxidx)) != (0)) __PYX_ERR(6, 7118, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -85270,7 +88926,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__p - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outminidx); + __Pyx_XDECREF((PyObject *)__pyx_v_outmaxidx); + + + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -85279,35 +88939,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_347RSI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_349MINUS_DI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_346RSI, "RSI(ndarray real, int timeperiod=-0x80000000)\n\nRSI(real[, timeperiod=?])\n\nRelative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_347RSI = {"RSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_347RSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_346RSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_347RSI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_348MINUS_DI, "MINUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nMINUS_DI(high, low, close[, timeperiod=?])\n\nMinus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_349MINUS_DI = {"MINUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_349MINUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_348MINUS_DI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_349MINUS_DI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("RSI (wrapper)", 0); + __Pyx_RefNannySetupContext("MINUS_DI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -85317,62 +88979,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7055, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7120, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7120, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7120, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7055, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7120, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7055, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7120, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RSI", 0) < (0)) __PYX_ERR(6, 7055, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, i); __PYX_ERR(6, 7055, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DI", 0) < (0)) __PYX_ERR(6, 7120, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, i); __PYX_ERR(6, 7120, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7055, __pyx_L3_error) + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7120, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7120, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7120, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7055, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7120, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7057, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7122, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7055, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 7120, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7057, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_346RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 7122, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 7122, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 7122, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_348MINUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -85392,7 +89070,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_348MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -85404,35 +89082,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RSI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("MINUS_DI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7076, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7144, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7079, __pyx_L1_error) + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -85453,7 +89145,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -85468,7 +89160,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7083, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7150, __pyx_L1_error) /*try:*/ { @@ -85478,7 +89170,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_RSI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -85491,7 +89183,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7087, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7154, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -85502,7 +89194,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_RSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MINUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -85542,17 +89234,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -85573,22 +89265,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7093, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -85607,7 +89299,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -85618,7 +89310,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -85626,25 +89320,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_349RVI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_351MINUS_DM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_348RVI, "RVI(ndarray real, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)\n\nRVI(real[, timeperiod=?, stddevperiod=?])\n\nRelative Volatility Index (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n stddevperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_349RVI = {"RVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_349RVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_348RVI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_349RVI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_350MINUS_DM, "MINUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMINUS_DM(high, low[, timeperiod=?])\n\nMinus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_351MINUS_DM = {"MINUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_351MINUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_350MINUS_DM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_351MINUS_DM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; int __pyx_v_timeperiod; - int __pyx_v_stddevperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -85655,7 +89349,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("RVI (wrapper)", 0); + __Pyx_RefNannySetupContext("MINUS_DM (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -85665,75 +89359,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7096, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7163, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7163, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7163, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7163, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVI", 0) < (0)) __PYX_ERR(6, 7096, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, i); __PYX_ERR(6, 7096, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DM", 0) < (0)) __PYX_ERR(6, 7163, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, i); __PYX_ERR(6, 7163, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7163, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7096, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7163, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7163, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7098, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7098, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7165, __pyx_L3_error) } else { - __pyx_v_stddevperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 7096, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 7163, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7098, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_348RVI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 7165, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 7165, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_350MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -85749,12 +89438,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_350MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -85766,35 +89454,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RVI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("MINUS_DM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7118, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7186, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7121, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -85815,7 +89511,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -85830,7 +89526,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7125, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7192, __pyx_L1_error) /*try:*/ { @@ -85840,7 +89536,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DM_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -85853,7 +89549,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7129, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7196, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -85864,7 +89560,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_RVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MINUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -85904,17 +89600,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -85935,22 +89631,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7135, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -85969,7 +89665,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.RVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -85980,7 +89676,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -85988,23 +89685,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_351RVOL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_353MOM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_350RVOL, "RVOL(ndarray volume, int timeperiod=-0x80000000)\n\nRVOL(volume[, timeperiod=?])\n\nRelative Volume (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_351RVOL = {"RVOL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_351RVOL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_350RVOL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_351RVOL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_352MOM, "MOM(ndarray real, int timeperiod=-0x80000000)\n\nMOM(real[, timeperiod=?])\n\nMomentum (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_353MOM = {"MOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_353MOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_352MOM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_353MOM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_volume = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; @@ -86016,7 +89713,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("RVOL (wrapper)", 0); + __Pyx_RefNannySetupContext("MOM (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -86026,62 +89723,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7138, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7205, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7205, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7205, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVOL", 0) < (0)) __PYX_ERR(6, 7138, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MOM", 0) < (0)) __PYX_ERR(6, 7205, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, i); __PYX_ERR(6, 7138, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, i); __PYX_ERR(6, 7205, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7205, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7205, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_volume = ((PyArrayObject *)values[0]); + __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7140, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7207, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7138, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7205, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 7140, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_350RVOL(__pyx_self, __pyx_v_volume, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7207, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_352MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -86101,7 +89798,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_352MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -86126,22 +89823,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RVOL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("MOM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7159, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_volume)[0]); + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); __pyx_t_2 = (__pyx_v_length == 0); if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7162, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -86162,7 +89859,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -86177,7 +89874,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7166, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7233, __pyx_L1_error) /*try:*/ { @@ -86187,7 +89884,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_RVOL_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MOM_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -86200,7 +89897,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7170, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7237, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -86211,7 +89908,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_RVOL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -86297,7 +89994,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7176, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -86316,7 +90013,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -86327,7 +90024,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_ __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -86335,37 +90032,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_353SAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_355MULT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_352SAR, "SAR(ndarray high, ndarray low, double acceleration=0.02, double maximum=0.2)\n\nSAR(high, low[, acceleration=?, maximum=?])\n\nParabolic SAR (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n acceleration: 0.02\n maximum: 0.2\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_353SAR = {"SAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_353SAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_352SAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_353SAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_354MULT, "MULT(ndarray real0, ndarray real1)\n\nMULT(real0, real1)\n\nVector Arithmetic Mult (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_355MULT = {"MULT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_355MULT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_354MULT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_355MULT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - double __pyx_v_acceleration; - double __pyx_v_maximum; + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SAR (wrapper)", 0); + __Pyx_RefNannySetupContext("MULT (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -86375,83 +90070,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7179, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7246, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7179, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7179, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7179, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7246, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7179, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7246, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAR", 0) < (0)) __PYX_ERR(6, 7179, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MULT", 0) < (0)) __PYX_ERR(6, 7246, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, i); __PYX_ERR(6, 7179, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, i); __PYX_ERR(6, 7246, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7179, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7179, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7179, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7179, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7181, __pyx_L3_error) - } else { - __pyx_v_acceleration = ((double)((double)0.02)); - } - if (values[3]) { - __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7181, __pyx_L3_error) - } else { - __pyx_v_maximum = ((double)((double)0.2)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7246, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7246, __pyx_L3_error) } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, __pyx_nargs); __PYX_ERR(6, 7179, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 7246, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 7181, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 7181, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_352SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(6, 7248, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(6, 7248, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_354MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1); /* function exit code */ goto __pyx_L0; @@ -86466,13 +90132,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { +static PyObject *__pyx_pf_5talib_7_ta_lib_354MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -86498,21 +90162,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("MULT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7201, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7202, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7203, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7268, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -86520,7 +90184,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7205, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -86541,7 +90205,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); } /*finally:*/ { @@ -86556,7 +90220,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7209, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7274, __pyx_L1_error) /*try:*/ { @@ -86566,7 +90230,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MULT_Lookback()); } /*finally:*/ { @@ -86579,7 +90243,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7213, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7278, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -86590,7 +90254,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MULT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -86676,7 +90340,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7219, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -86695,7 +90359,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -86706,8 +90370,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -86715,16 +90379,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_355SAREXT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_357NATR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_354SAREXT, "SAREXT(ndarray high, ndarray low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)\n\nSAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\nParabolic SAR - Extended (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n startvalue: 0.0\n offsetonreverse: 0.0\n accelerationinitlong: 0.02\n accelerationlong: 0.02\n accelerationmaxlong: 0.2\n accelerationinitshort: 0.02\n accelerationshort: 0.02\n accelerationmaxshort: 0.2\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_355SAREXT = {"SAREXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_355SAREXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_354SAREXT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_355SAREXT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_356NATR, "NATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nNATR(high, low, close[, timeperiod=?])\n\nNormalized Average True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_357NATR = {"NATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_357NATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_356NATR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_357NATR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -86733,25 +90397,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - double __pyx_v_startvalue; - double __pyx_v_offsetonreverse; - double __pyx_v_accelerationinitlong; - double __pyx_v_accelerationlong; - double __pyx_v_accelerationmaxlong; - double __pyx_v_accelerationinitshort; - double __pyx_v_accelerationshort; - double __pyx_v_accelerationmaxshort; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SAREXT (wrapper)", 0); + __Pyx_RefNannySetupContext("NATR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -86761,161 +90419,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7222, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7287, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(6, 7222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(6, 7222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 7222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 7222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 7222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7222, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7222, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7222, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7222, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7222, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAREXT", 0) < (0)) __PYX_ERR(6, 7222, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, i); __PYX_ERR(6, 7222, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NATR", 0) < (0)) __PYX_ERR(6, 7287, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, i); __PYX_ERR(6, 7287, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(6, 7222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(6, 7222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 7222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 7222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 7222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7222, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7222, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7287, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7222, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7287, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7222, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7287, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7224, __pyx_L3_error) - } else { - __pyx_v_startvalue = ((double)((double)-4e37)); - } + __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7224, __pyx_L3_error) - } else { - __pyx_v_offsetonreverse = ((double)((double)-4e37)); - } - if (values[4]) { - __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7224, __pyx_L3_error) - } else { - __pyx_v_accelerationinitlong = ((double)((double)-4e37)); - } - if (values[5]) { - __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7224, __pyx_L3_error) - } else { - __pyx_v_accelerationlong = ((double)((double)-4e37)); - } - if (values[6]) { - __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7224, __pyx_L3_error) - } else { - __pyx_v_accelerationmaxlong = ((double)((double)-4e37)); - } - if (values[7]) { - __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7224, __pyx_L3_error) - } else { - __pyx_v_accelerationinitshort = ((double)((double)-4e37)); - } - if (values[8]) { - __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7224, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7289, __pyx_L3_error) } else { - __pyx_v_accelerationshort = ((double)((double)-4e37)); - } - if (values[9]) { - __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7224, __pyx_L3_error) - } else { - __pyx_v_accelerationmaxshort = ((double)((double)-4e37)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, __pyx_nargs); __PYX_ERR(6, 7222, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 7287, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 7224, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 7224, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_354SAREXT(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 7289, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 7289, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 7289, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_356NATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -86931,18 +90506,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; - - - - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) { +static PyObject *__pyx_pf_5talib_7_ta_lib_356NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -86968,21 +90536,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SAREXT", 0); + __Pyx_RefNannySetupContext("NATR", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7250, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7251, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7252, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7311, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -86990,7 +90564,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7254, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -87011,7 +90585,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -87026,7 +90600,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7258, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7317, __pyx_L1_error) /*try:*/ { @@ -87036,7 +90610,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort)); + __pyx_v_lookback = (__pyx_v_begidx + TA_NATR_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -87049,7 +90623,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7262, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7321, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -87060,7 +90634,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SAREXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_NATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -87146,7 +90720,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7268, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -87165,7 +90739,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -87178,6 +90752,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -87185,34 +90760,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_357SIN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_359NVI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_356SIN, "SIN(ndarray real)\n\nSIN(real)\n\nVector Trigonometric Sin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_357SIN = {"SIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_357SIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_356SIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_357SIN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_358NVI, "NVI(ndarray close, ndarray volume)\n\nNVI(close, volume)\n\nNegative Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_359NVI = {"NVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_359NVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_358NVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_359NVI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SIN (wrapper)", 0); + __Pyx_RefNannySetupContext("NVI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -87222,46 +90798,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7271, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7330, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7330, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7330, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SIN", 0) < (0)) __PYX_ERR(6, 7271, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, i); __PYX_ERR(6, 7271, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NVI", 0) < (0)) __PYX_ERR(6, 7330, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, i); __PYX_ERR(6, 7330, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7330, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7330, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 7271, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 7330, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7273, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_356SIN(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 7332, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 7332, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_358NVI(__pyx_self, __pyx_v_close, __pyx_v_volume); /* function exit code */ goto __pyx_L0; @@ -87280,7 +90864,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_358NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -87292,35 +90876,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SIN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("NVI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7290, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7351, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7293, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -87341,7 +90933,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); } /*finally:*/ { @@ -87356,7 +90948,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7297, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7357, __pyx_L1_error) /*try:*/ { @@ -87366,7 +90958,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SIN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_NVI_Lookback()); } /*finally:*/ { @@ -87379,7 +90971,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7301, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7361, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -87390,7 +90982,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_NVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -87430,17 +91022,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -87461,22 +91053,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7307, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -87495,7 +91087,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -87506,7 +91098,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -87514,16 +91107,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_359SINH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_361OBV(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_358SINH, "SINH(ndarray real)\n\nSINH(real)\n\nVector Trigonometric Sinh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_359SINH = {"SINH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_359SINH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_358SINH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_359SINH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_360OBV, "OBV(ndarray real, ndarray volume)\n\nOBV(real, volume)\n\nOn Balance Volume (Volume Indicators)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_361OBV = {"OBV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_361OBV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_360OBV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_361OBV(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -87531,17 +91124,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SINH (wrapper)", 0); + __Pyx_RefNannySetupContext("OBV (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -87551,46 +91145,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7310, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7370, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7370, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7310, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7370, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SINH", 0) < (0)) __PYX_ERR(6, 7310, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, i); __PYX_ERR(6, 7310, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "OBV", 0) < (0)) __PYX_ERR(6, 7370, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, i); __PYX_ERR(6, 7370, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7310, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7370, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7370, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 7310, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 7370, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7312, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_358SINH(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7372, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 7372, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_360OBV(__pyx_self, __pyx_v_real, __pyx_v_volume); /* function exit code */ goto __pyx_L0; @@ -87609,7 +91211,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_360OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -87621,35 +91223,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SINH", 0); + __Pyx_RefNannySetupContext("OBV", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7329, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7392, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7332, __pyx_L1_error) + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -87670,7 +91280,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); } /*finally:*/ { @@ -87685,7 +91295,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7336, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7398, __pyx_L1_error) /*try:*/ { @@ -87695,7 +91305,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SINH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_OBV_Lookback()); } /*finally:*/ { @@ -87708,7 +91318,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7340, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7402, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -87719,7 +91329,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SINH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_OBV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -87759,17 +91369,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -87790,22 +91400,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_ } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7346, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -87824,7 +91434,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -87836,6 +91446,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_ __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -87843,16 +91454,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_361SMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_363PERCENTB(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_360SMA, "SMA(ndarray real, int timeperiod=-0x80000000)\n\nSMA(real[, timeperiod=?])\n\nSimple Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_361SMA = {"SMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_361SMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_360SMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_361SMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_362PERCENTB, "PERCENTB(ndarray real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nPERCENTB(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands %B (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_363PERCENTB = {"PERCENTB", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_363PERCENTB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_362PERCENTB}; +static PyObject *__pyx_pw_5talib_7_ta_lib_363PERCENTB(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -87861,17 +91472,20 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SMA (wrapper)", 0); + __Pyx_RefNannySetupContext("PERCENTB (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -87881,62 +91495,101 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7349, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7411, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7411, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7411, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7411, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7411, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7411, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMA", 0) < (0)) __PYX_ERR(6, 7349, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTB", 0) < (0)) __PYX_ERR(6, 7411, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, i); __PYX_ERR(6, 7349, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTB", 0, 1, 5, i); __PYX_ERR(6, 7411, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7411, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7411, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7411, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7411, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7411, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7351, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7413, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7413, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)((double)-4e37)); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7413, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)((double)-4e37)); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7413, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7349, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PERCENTB", 0, 1, 5, __pyx_nargs); __PYX_ERR(6, 7411, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTB", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7351, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_360SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7413, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_362PERCENTB(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -87952,11 +91605,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_362PERCENTB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -87981,10 +91637,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SMA", 0); + __Pyx_RefNannySetupContext("PERCENTB", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7370, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -87996,7 +91652,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7373, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -88032,7 +91688,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7377, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7442, __pyx_L1_error) /*try:*/ { @@ -88042,7 +91698,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTB_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); } /*finally:*/ { @@ -88055,7 +91711,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7381, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7446, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -88066,7 +91722,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PERCENTB(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -88152,7 +91808,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7387, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -88171,7 +91827,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTB", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -88190,40 +91846,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_363SMI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_365PERCENTILE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_362SMI, "SMI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nSMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?])\n\nStochastic Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\n fastperiod: 2\n slowperiod: 25\n signalperiod: 9\nOutputs:\n smi\n smisignal"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_363SMI = {"SMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_363SMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_362SMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_363SMI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_364PERCENTILE, "PERCENTILE(ndarray real, int timeperiod=-0x80000000, double percentile=50.0)\n\nPERCENTILE(real[, timeperiod=?, percentile=?])\n\nPercentile (nearest rank) (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 100\n percentile: 50.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_365PERCENTILE = {"PERCENTILE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_365PERCENTILE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_364PERCENTILE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_365PERCENTILE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; + double __pyx_v_percentile; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[7] = {0,0,0,0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SMI (wrapper)", 0); + __Pyx_RefNannySetupContext("PERCENTILE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -88233,117 +91885,75 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7390, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7455, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 7390, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 7390, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7390, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7390, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7455, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7455, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7455, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMI", 0) < (0)) __PYX_ERR(6, 7390, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, i); __PYX_ERR(6, 7390, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTILE", 0) < (0)) __PYX_ERR(6, 7455, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, i); __PYX_ERR(6, 7455, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 7390, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 7390, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7390, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7390, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7455, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7455, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7455, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7392, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7457, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } - if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7392, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7392, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[6]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7392, __pyx_L3_error) + if (values[2]) { + __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7457, __pyx_L3_error) } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); + __pyx_v_percentile = ((double)((double)50.0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, __pyx_nargs); __PYX_ERR(6, 7390, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 7455, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 7392, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 7392, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 7392, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_362SMI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7457, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_364PERCENTILE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); /* function exit code */ goto __pyx_L0; @@ -88360,13 +91970,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_364PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -88374,76 +91982,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outsmi = 0; - PyArrayObject *__pyx_v_outsmisignal = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - char const *__pyx_t_8; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SMI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7417, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("PERCENTILE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7418, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7419, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7421, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 7421, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 7421, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -88454,7 +92035,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -88469,7 +92050,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7425, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7484, __pyx_L1_error) /*try:*/ { @@ -88479,7 +92060,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile)); } /*finally:*/ { @@ -88492,15 +92073,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7429, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outsmi = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7430, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outsmisignal = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7488, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -88508,7 +92084,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmisignal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PERCENTILE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -88548,19 +92124,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); - if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -88581,51 +92155,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7436, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7437, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF((PyObject *)__pyx_v_outsmi); - __Pyx_GIVEREF((PyObject *)__pyx_v_outsmi); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outsmi)) != (0)) __PYX_ERR(6, 7437, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outsmisignal); - __Pyx_GIVEREF((PyObject *)__pyx_v_outsmisignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outsmisignal)) != (0)) __PYX_ERR(6, 7437, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -88635,11 +92199,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s - __Pyx_XDECREF((PyObject *)__pyx_v_outsmi); - __Pyx_XDECREF((PyObject *)__pyx_v_outsmisignal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -88647,16 +92208,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_365SQRT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_367PERCENTRANK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_364SQRT, "SQRT(ndarray real)\n\nSQRT(real)\n\nVector Square Root (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_365SQRT = {"SQRT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_365SQRT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_364SQRT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_365SQRT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_366PERCENTRANK, "PERCENTRANK(ndarray real, int timeperiod=-0x80000000)\n\nPERCENTRANK(real[, timeperiod=?])\n\nPercent Rank (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 100\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_367PERCENTRANK = {"PERCENTRANK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_367PERCENTRANK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_366PERCENTRANK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_367PERCENTRANK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -88664,17 +92225,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SQRT (wrapper)", 0); + __Pyx_RefNannySetupContext("PERCENTRANK (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -88684,46 +92246,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7439, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7497, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7497, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7497, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SQRT", 0) < (0)) __PYX_ERR(6, 7439, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTRANK", 0) < (0)) __PYX_ERR(6, 7497, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, i); __PYX_ERR(6, 7439, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, i); __PYX_ERR(6, 7497, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7439, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7497, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7497, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7499, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 7439, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7497, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7441, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_364SQRT(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7499, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_366PERCENTRANK(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -88738,11 +92316,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_366PERCENTRANK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -88767,10 +92346,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SQRT", 0); + __Pyx_RefNannySetupContext("PERCENTRANK", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7458, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -88782,7 +92361,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_ if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7461, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -88818,7 +92397,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7465, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7525, __pyx_L1_error) /*try:*/ { @@ -88828,7 +92407,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SQRT_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTRANK_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -88841,7 +92420,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7469, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7529, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -88852,7 +92431,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SQRT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PERCENTRANK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -88938,7 +92517,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7475, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -88957,7 +92536,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -88976,36 +92555,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_367STDDEV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_369PLUS_DI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_366STDDEV, "STDDEV(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nSTDDEV(real[, timeperiod=?, nbdev=?])\n\nStandard Deviation (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_367STDDEV = {"STDDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_367STDDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_366STDDEV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_367STDDEV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_368PLUS_DI, "PLUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nPLUS_DI(high, low, close[, timeperiod=?])\n\nPlus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_369PLUS_DI = {"PLUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_369PLUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_368PLUS_DI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_369PLUS_DI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; - double __pyx_v_nbdev; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("STDDEV (wrapper)", 0); + __Pyx_RefNannySetupContext("PLUS_DI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -89015,75 +92595,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7478, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7538, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7538, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7538, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7538, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7538, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STDDEV", 0) < (0)) __PYX_ERR(6, 7478, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, i); __PYX_ERR(6, 7478, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DI", 0) < (0)) __PYX_ERR(6, 7538, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, i); __PYX_ERR(6, 7538, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7538, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7478, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7538, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7478, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7538, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7538, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7480, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7540, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } - if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7480, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)((double)-4e37)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 7478, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 7538, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7480, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_366STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 7540, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 7540, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 7540, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_368PLUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -89099,12 +92682,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { +static PyObject *__pyx_pf_5talib_7_ta_lib_368PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -89116,35 +92698,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__py PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("STDDEV", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("PLUS_DI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7500, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7562, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7503, __pyx_L1_error) + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -89165,7 +92761,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -89180,7 +92776,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7507, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7568, __pyx_L1_error) /*try:*/ { @@ -89190,7 +92786,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -89203,7 +92799,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7511, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7572, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -89214,7 +92810,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_STDDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PLUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -89254,17 +92850,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__py /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -89285,22 +92881,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__py } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7517, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -89319,7 +92915,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -89330,7 +92926,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__py __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -89338,16 +92936,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_369STOCH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_371PLUS_DM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_368STOCH, "STOCH(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)\n\nSTOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nStochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n slowk_period: 3\n slowk_matype: 0 (Simple Moving Average)\n slowd_period: 3\n slowd_matype: 0 (Simple Moving Average)\nOutputs:\n slowk\n slowd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_369STOCH = {"STOCH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_369STOCH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_368STOCH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_369STOCH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_370PLUS_DM, "PLUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nPLUS_DM(high, low[, timeperiod=?])\n\nPlus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_371PLUS_DM = {"PLUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_371PLUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_370PLUS_DM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_371PLUS_DM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -89356,23 +92954,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_slowk_period; - int __pyx_v_slowk_matype; - int __pyx_v_slowd_period; - int __pyx_v_slowd_matype; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[8] = {0,0,0,0,0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("STOCH (wrapper)", 0); + __Pyx_RefNannySetupContext("PLUS_DM (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -89382,130 +92975,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7520, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7581, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 7520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 7520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 7520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7520, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7581, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7581, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7581, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCH", 0) < (0)) __PYX_ERR(6, 7520, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, i); __PYX_ERR(6, 7520, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DM", 0) < (0)) __PYX_ERR(6, 7581, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, i); __PYX_ERR(6, 7581, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 7520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 7520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 7520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7520, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7581, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7581, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7522, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7522, __pyx_L3_error) - } else { - __pyx_v_slowk_period = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7522, __pyx_L3_error) - } else { - __pyx_v_slowk_matype = ((int)((int)0)); - } - if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7522, __pyx_L3_error) - } else { - __pyx_v_slowd_period = ((int)((int)-2147483648)); - } - if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7522, __pyx_L3_error) + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7583, __pyx_L3_error) } else { - __pyx_v_slowd_matype = ((int)((int)0)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, __pyx_nargs); __PYX_ERR(6, 7520, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 7581, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 7522, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 7522, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 7522, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_368STOCH(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 7583, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 7583, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_370PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -89521,15 +93054,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_370PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -89537,48 +93066,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outslowk = 0; - PyArrayObject *__pyx_v_outslowd = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - char const *__pyx_t_8; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("STOCH", 0); + __Pyx_RefNannySetupContext("PLUS_DM", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7547, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7548, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7549, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7550, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7604, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -89586,27 +93106,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7552, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7552, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7552, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 7552, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 7552, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -89617,7 +93127,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -89632,7 +93142,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7556, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7610, __pyx_L1_error) /*try:*/ { @@ -89642,7 +93152,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DM_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -89655,15 +93165,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx } } - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7560, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7561, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7614, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -89671,7 +93176,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_STOCH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowd)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PLUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -89711,19 +93216,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); - if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -89744,51 +93247,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx } } } - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7568, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF((PyObject *)__pyx_v_outslowk); - __Pyx_GIVEREF((PyObject *)__pyx_v_outslowk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outslowk)) != (0)) __PYX_ERR(6, 7568, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outslowd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outslowd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outslowd)) != (0)) __PYX_ERR(6, 7568, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -89798,11 +93291,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx - __Pyx_XDECREF((PyObject *)__pyx_v_outslowk); - __Pyx_XDECREF((PyObject *)__pyx_v_outslowd); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -89810,39 +93301,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_371STOCHF(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_373PPO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_370STOCHF, "STOCHF(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Fast (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_371STOCHF = {"STOCHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_371STOCHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_370STOCHF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_371STOCHF(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_372PPO, "PPO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_373PPO = {"PPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_373PPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_372PPO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_373PPO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("STOCHF (wrapper)", 0); + __Pyx_RefNannySetupContext("PPO (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -89852,104 +93341,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7570, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7623, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 7570, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7570, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7570, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7623, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7570, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7623, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7570, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7623, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7570, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7623, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHF", 0) < (0)) __PYX_ERR(6, 7570, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, i); __PYX_ERR(6, 7570, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PPO", 0) < (0)) __PYX_ERR(6, 7623, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, i); __PYX_ERR(6, 7623, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 7570, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7570, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7570, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7623, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7570, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7623, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7570, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7623, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7570, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7623, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7572, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7625, __pyx_L3_error) } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); + __pyx_v_fastperiod = ((int)((int)-2147483648)); } - if (values[4]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7572, __pyx_L3_error) + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7625, __pyx_L3_error) } else { - __pyx_v_fastd_period = ((int)((int)-2147483648)); + __pyx_v_slowperiod = ((int)((int)-2147483648)); } - if (values[5]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7572, __pyx_L3_error) + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7625, __pyx_L3_error) } else { - __pyx_v_fastd_matype = ((int)((int)0)); + __pyx_v_matype = ((int)((int)1)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, __pyx_nargs); __PYX_ERR(6, 7570, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, __pyx_nargs); __PYX_ERR(6, 7623, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 7572, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 7572, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 7572, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_370STOCHF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7625, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_372PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -89971,7 +93444,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_372PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -89979,76 +93452,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__py TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outfastk = 0; - PyArrayObject *__pyx_v_outfastd = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - char const *__pyx_t_8; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("STOCHF", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7595, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("PPO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7597, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7598, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7600, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 7600, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 7600, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -90059,7 +93505,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -90074,7 +93520,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7604, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7653, __pyx_L1_error) /*try:*/ { @@ -90084,7 +93530,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); } /*finally:*/ { @@ -90097,15 +93543,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__py } } - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7608, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7609, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7657, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -90113,7 +93554,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_STOCHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -90153,19 +93594,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__py /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); - if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -90186,51 +93625,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__py } } } - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7616, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF((PyObject *)__pyx_v_outfastk); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(6, 7616, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outfastd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(6, 7616, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -90240,11 +93669,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__py - __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); - __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -90252,27 +93678,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_373STOCHRSI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_375PSO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_372STOCHRSI, "STOCHRSI(ndarray real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_373STOCHRSI = {"STOCHRSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_373STOCHRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_372STOCHRSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_373STOCHRSI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_374PSO, "PSO(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int emaperiod=-0x80000000)\n\nPSO(high, low, close[, fastk_period=?, emaperiod=?])\n\nPremier Stochastic Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 8\n emaperiod: 5\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_375PSO = {"PSO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_375PSO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_374PSO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_375PSO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; + int __pyx_v_emaperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -90283,7 +93709,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("STOCHRSI (wrapper)", 0); + __Pyx_RefNannySetupContext("PSO (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -90293,101 +93719,91 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_emaperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7618, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7666, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7666, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7666, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7666, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7666, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7666, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHRSI", 0) < (0)) __PYX_ERR(6, 7618, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, i); __PYX_ERR(6, 7618, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PSO", 0) < (0)) __PYX_ERR(6, 7666, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PSO", 0, 3, 5, i); __PYX_ERR(6, 7666, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7666, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7666, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7618, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7666, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7618, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7666, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7666, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7620, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7620, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7620, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7668, __pyx_L3_error) } else { - __pyx_v_fastd_period = ((int)((int)-2147483648)); + __pyx_v_fastk_period = ((int)((int)-2147483648)); } if (values[4]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7620, __pyx_L3_error) + __pyx_v_emaperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_emaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7668, __pyx_L3_error) } else { - __pyx_v_fastd_matype = ((int)((int)0)); + __pyx_v_emaperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, __pyx_nargs); __PYX_ERR(6, 7618, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PSO", 0, 3, 5, __pyx_nargs); __PYX_ERR(6, 7666, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PSO", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7620, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_372STOCHRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 7668, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 7668, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 7668, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_374PSO(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_emaperiod); /* function exit code */ goto __pyx_L0; @@ -90404,13 +93820,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_374PSO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_emaperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -90418,62 +93832,63 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outfastk = 0; - PyArrayObject *__pyx_v_outfastd = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_t_5; - int __pyx_t_6; - char const *__pyx_t_7; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("STOCHRSI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("PSO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7644, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7691, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7647, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 7647, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 7647, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -90484,7 +93899,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -90499,7 +93914,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7651, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7697, __pyx_L1_error) /*try:*/ { @@ -90509,7 +93924,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PSO_Lookback(__pyx_v_fastk_period, __pyx_v_emaperiod)); } /*finally:*/ { @@ -90522,15 +93937,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__ } } - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7655, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; - - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7656, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_4); - __pyx_t_4 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7701, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -90538,7 +93948,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_STOCHRSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PSO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_emaperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -90578,19 +93988,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); - if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -90611,51 +94019,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__ } } } + __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); - __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; - __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PSO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF((PyObject *)__pyx_v_outfastk); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(6, 7663, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outfastd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(6, 7663, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PSO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -90665,9 +94063,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__ - __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); - __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -90675,24 +94074,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_375SUB(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_377PVI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_374SUB, "SUB(ndarray real0, ndarray real1)\n\nSUB(real0, real1)\n\nVector Arithmetic Subtraction (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_375SUB = {"SUB", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_375SUB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_374SUB}; -static PyObject *__pyx_pw_5talib_7_ta_lib_375SUB(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_376PVI, "PVI(ndarray close, ndarray volume)\n\nPVI(close, volume)\n\nPositive Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_377PVI = {"PVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_377PVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_376PVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_377PVI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -90703,7 +94102,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SUB (wrapper)", 0); + __Pyx_RefNannySetupContext("PVI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -90713,54 +94112,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7665, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7710, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7710, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7710, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUB", 0) < (0)) __PYX_ERR(6, 7665, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVI", 0) < (0)) __PYX_ERR(6, 7710, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, i); __PYX_ERR(6, 7665, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, i); __PYX_ERR(6, 7710, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7710, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7710, __pyx_L3_error) } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 7665, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 7710, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(6, 7667, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(6, 7667, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_374SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 7712, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 7712, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_376PVI(__pyx_self, __pyx_v_close, __pyx_v_volume); /* function exit code */ goto __pyx_L0; @@ -90779,7 +94178,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_376PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -90805,21 +94204,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SUB", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); + __Pyx_RefNannySetupContext("PVI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7685, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7686, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7687, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7731, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -90827,7 +94226,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7689, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -90848,7 +94247,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); } /*finally:*/ { @@ -90863,7 +94262,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7693, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7737, __pyx_L1_error) /*try:*/ { @@ -90873,7 +94272,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SUB_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_PVI_Lookback()); } /*finally:*/ { @@ -90886,7 +94285,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7697, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7741, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -90897,7 +94296,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SUB(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -90983,7 +94382,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7703, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -91002,7 +94401,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -91013,8 +94412,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -91022,35 +94421,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_377SUM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_379PVO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_376SUM, "SUM(ndarray real, int timeperiod=-0x80000000)\n\nSUM(real[, timeperiod=?])\n\nSummation (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_377SUM = {"SUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_377SUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_376SUM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_377SUM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_378PVO, "PVO(ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPVO(volume[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Volume Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_379PVO = {"PVO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_379PVO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_378PVO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_379PVO(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SUM (wrapper)", 0); + __Pyx_RefNannySetupContext("PVO (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -91060,62 +94461,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7706, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7750, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7750, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7750, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7706, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7750, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7706, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7750, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUM", 0) < (0)) __PYX_ERR(6, 7706, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVO", 0) < (0)) __PYX_ERR(6, 7750, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, i); __PYX_ERR(6, 7706, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, i); __PYX_ERR(6, 7750, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7750, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7750, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7706, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7750, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7706, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7750, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7708, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7752, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7752, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7752, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)1)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7706, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, __pyx_nargs); __PYX_ERR(6, 7750, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7708, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_376SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 7752, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_378PVO(__pyx_self, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -91131,11 +94558,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_378PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -91160,22 +94589,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SUM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("PVO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7727, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_volume)[0]); __pyx_t_2 = (__pyx_v_length == 0); if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7730, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -91196,7 +94625,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); } /*finally:*/ { @@ -91211,7 +94640,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7734, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7780, __pyx_L1_error) /*try:*/ { @@ -91221,7 +94650,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SUM_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); } /*finally:*/ { @@ -91234,7 +94663,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7738, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7784, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -91245,7 +94674,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PVO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -91331,7 +94760,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7744, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -91350,7 +94779,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -91361,7 +94790,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -91369,38 +94798,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_379SUPERTREND(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_381PVT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_378SUPERTREND, "SUPERTREND(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n supertrend\n trend"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_379SUPERTREND = {"SUPERTREND", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_379SUPERTREND, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_378SUPERTREND}; -static PyObject *__pyx_pw_5talib_7_ta_lib_379SUPERTREND(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_380PVT, "PVT(ndarray close, ndarray volume)\n\nPVT(close, volume)\n\nPrice Volume Trend (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_381PVT = {"PVT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_381PVT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_380PVT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_381PVT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - double __pyx_v_multiplier; + PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SUPERTREND (wrapper)", 0); + __Pyx_RefNannySetupContext("PVT (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -91410,91 +94836,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7747, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7793, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7747, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7747, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7747, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7747, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7793, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7747, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7793, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUPERTREND", 0) < (0)) __PYX_ERR(6, 7747, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, i); __PYX_ERR(6, 7747, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 7747, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 7747, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7747, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7747, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7747, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVT", 0) < (0)) __PYX_ERR(6, 7793, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, i); __PYX_ERR(6, 7793, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7749, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7749, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_multiplier = ((double)((double)3.0)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7793, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7793, __pyx_L3_error) } + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, __pyx_nargs); __PYX_ERR(6, 7747, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 7793, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 7749, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 7749, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 7749, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_378SUPERTREND(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 7795, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 7795, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_380PVT(__pyx_self, __pyx_v_close, __pyx_v_volume); /* function exit code */ goto __pyx_L0; @@ -91509,13 +94898,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier) { +static PyObject *__pyx_pf_5talib_7_ta_lib_380PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -91523,48 +94910,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outsupertrend = 0; - PyArrayObject *__pyx_v_outtrend = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - char const *__pyx_t_8; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SUPERTREND", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("PVT", 0); __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7772, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7773, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7774, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7814, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -91572,27 +94950,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7776, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7776, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7776, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 7776, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 7776, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -91603,7 +94971,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); } /*finally:*/ { @@ -91618,7 +94986,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7780, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7820, __pyx_L1_error) /*try:*/ { @@ -91628,7 +94996,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PVT_Lookback()); } /*finally:*/ { @@ -91641,15 +95009,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * } } - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7784, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outsupertrend = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7785, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outtrend = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7824, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -91657,7 +95020,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SUPERTREND(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsupertrend)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outtrend)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PVT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -91697,19 +95060,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); - if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -91730,51 +95091,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * } } } - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7791, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7830, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF((PyObject *)__pyx_v_outsupertrend); - __Pyx_GIVEREF((PyObject *)__pyx_v_outsupertrend); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outsupertrend)) != (0)) __PYX_ERR(6, 7792, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outtrend); - __Pyx_GIVEREF((PyObject *)__pyx_v_outtrend); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outtrend)) != (0)) __PYX_ERR(6, 7792, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -91784,11 +95135,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * - __Pyx_XDECREF((PyObject *)__pyx_v_outsupertrend); - __Pyx_XDECREF((PyObject *)__pyx_v_outtrend); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -91796,25 +95145,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_381T3(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_383QSTICK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_380T3, "T3(ndarray real, int timeperiod=-0x80000000, double vfactor=-4e37)\n\nT3(real[, timeperiod=?, vfactor=?])\n\nTriple Exponential Moving Average (T3) (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n vfactor: 0.7\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_381T3 = {"T3", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_381T3, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_380T3}; -static PyObject *__pyx_pw_5talib_7_ta_lib_381T3(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_382QSTICK, "QSTICK(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nQSTICK(open, close[, timeperiod=?])\n\nQstick (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_383QSTICK = {"QSTICK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_383QSTICK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_382QSTICK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_383QSTICK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; - double __pyx_v_vfactor; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -91825,7 +95174,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("T3 (wrapper)", 0); + __Pyx_RefNannySetupContext("QSTICK (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -91835,75 +95184,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7794, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7833, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7794, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7794, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7794, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "T3", 0) < (0)) __PYX_ERR(6, 7794, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, i); __PYX_ERR(6, 7794, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "QSTICK", 0) < (0)) __PYX_ERR(6, 7833, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, i); __PYX_ERR(6, 7833, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7794, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7794, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7833, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7794, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7833, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7796, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_close = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7796, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7835, __pyx_L3_error) } else { - __pyx_v_vfactor = ((double)((double)-4e37)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 7794, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 7833, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.T3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7796, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_380T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 7835, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 7835, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_382QSTICK(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -91919,12 +95263,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { +static PyObject *__pyx_pf_5talib_7_ta_lib_382QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -91936,35 +95279,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("T3", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("QSTICK", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7816, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7856, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7819, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -91985,7 +95336,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -92000,7 +95351,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_se __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7823, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7862, __pyx_L1_error) /*try:*/ { @@ -92010,7 +95361,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor)); + __pyx_v_lookback = (__pyx_v_begidx + TA_QSTICK_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -92023,7 +95374,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_se } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7827, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7866, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -92034,7 +95385,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_se __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_T3(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_QSTICK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -92074,17 +95425,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_se /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -92105,22 +95456,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_se } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7833, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -92139,7 +95490,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.T3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -92150,7 +95501,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_se __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -92158,16 +95510,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_383TAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_385RMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_382TAN, "TAN(ndarray real)\n\nTAN(real)\n\nVector Trigonometric Tan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_383TAN = {"TAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_383TAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_382TAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_383TAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_384RMA, "RMA(ndarray real, int timeperiod=-0x80000000)\n\nRMA(real[, timeperiod=?])\n\nWilder\047s Smoothed Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_385RMA = {"RMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_385RMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_384RMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_385RMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -92175,17 +95527,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TAN (wrapper)", 0); + __Pyx_RefNannySetupContext("RMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -92195,46 +95548,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7836, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7875, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7875, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7836, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TAN", 0) < (0)) __PYX_ERR(6, 7836, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RMA", 0) < (0)) __PYX_ERR(6, 7875, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, i); __PYX_ERR(6, 7836, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, i); __PYX_ERR(6, 7875, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7836, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7875, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7875, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7877, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 7836, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7875, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7838, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_382TAN(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7877, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_384RMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -92249,11 +95618,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_384RMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -92278,10 +95648,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TAN", 0); + __Pyx_RefNannySetupContext("RMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7855, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -92293,7 +95663,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7858, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -92329,7 +95699,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7862, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7903, __pyx_L1_error) /*try:*/ { @@ -92339,7 +95709,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TAN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_RMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -92352,7 +95722,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7866, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7907, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -92363,7 +95733,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_RMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -92449,7 +95819,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7872, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -92468,7 +95838,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -92487,16 +95857,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_385TANH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_387ROC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_384TANH, "TANH(ndarray real)\n\nTANH(real)\n\nVector Trigonometric Tanh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_385TANH = {"TANH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_385TANH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_384TANH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_385TANH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_386ROC, "ROC(ndarray real, int timeperiod=-0x80000000)\n\nROC(real[, timeperiod=?])\n\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_387ROC = {"ROC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_387ROC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_386ROC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_387ROC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -92504,17 +95874,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TANH (wrapper)", 0); + __Pyx_RefNannySetupContext("ROC (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -92524,46 +95895,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7875, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7916, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7916, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7875, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7916, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TANH", 0) < (0)) __PYX_ERR(6, 7875, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROC", 0) < (0)) __PYX_ERR(6, 7916, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, i); __PYX_ERR(6, 7875, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, i); __PYX_ERR(6, 7916, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7875, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7916, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7916, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7918, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 7875, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7916, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7877, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_384TANH(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7918, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_386ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -92578,11 +95965,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_386ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -92607,10 +95995,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TANH", 0); + __Pyx_RefNannySetupContext("ROC", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7894, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -92622,7 +96010,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_ if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7897, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -92658,7 +96046,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7901, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7944, __pyx_L1_error) /*try:*/ { @@ -92668,7 +96056,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TANH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_ROC_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -92681,7 +96069,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7905, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7948, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -92692,7 +96080,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TANH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -92778,7 +96166,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7911, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -92797,7 +96185,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -92816,16 +96204,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_387TEMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_389ROCP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_386TEMA, "TEMA(ndarray real, int timeperiod=-0x80000000)\n\nTEMA(real[, timeperiod=?])\n\nTriple Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_387TEMA = {"TEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_387TEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_386TEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_387TEMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_388ROCP, "ROCP(ndarray real, int timeperiod=-0x80000000)\n\nROCP(real[, timeperiod=?])\n\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_389ROCP = {"ROCP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_389ROCP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_388ROCP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_389ROCP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -92844,7 +96232,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TEMA (wrapper)", 0); + __Pyx_RefNannySetupContext("ROCP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -92856,60 +96244,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7914, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7957, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7914, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7957, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7914, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7957, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TEMA", 0) < (0)) __PYX_ERR(6, 7914, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCP", 0) < (0)) __PYX_ERR(6, 7957, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, i); __PYX_ERR(6, 7914, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, i); __PYX_ERR(6, 7957, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7914, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7957, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7914, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7957, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7916, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7959, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7914, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7957, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7916, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_386TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7959, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_388ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -92929,7 +96317,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_388ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -92954,10 +96342,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TEMA", 0); + __Pyx_RefNannySetupContext("ROCP", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7935, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -92969,7 +96357,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_ if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7938, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -93005,7 +96393,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7942, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7985, __pyx_L1_error) /*try:*/ { @@ -93015,7 +96403,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TEMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ROCP_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -93028,7 +96416,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7946, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7989, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -93039,7 +96427,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROCP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -93125,7 +96513,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7952, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -93144,7 +96532,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -93163,36 +96551,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_389TRANGE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_391ROCR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_388TRANGE, "TRANGE(ndarray high, ndarray low, ndarray close)\n\nTRANGE(high, low, close)\n\nTrue Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_389TRANGE = {"TRANGE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_389TRANGE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_388TRANGE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_389TRANGE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_390ROCR, "ROCR(ndarray real, int timeperiod=-0x80000000)\n\nROCR(real[, timeperiod=?])\n\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_391ROCR = {"ROCR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_391ROCR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_390ROCR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_391ROCR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TRANGE (wrapper)", 0); + __Pyx_RefNannySetupContext("ROCR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -93202,62 +96589,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7955, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7998, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7955, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7955, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7998, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7955, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7998, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRANGE", 0) < (0)) __PYX_ERR(6, 7955, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, i); __PYX_ERR(6, 7955, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR", 0) < (0)) __PYX_ERR(6, 7998, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, i); __PYX_ERR(6, 7998, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7955, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7955, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 7955, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7998, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7998, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8000, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, __pyx_nargs); __PYX_ERR(6, 7955, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7998, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 7957, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 7957, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 7957, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_388TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8000, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_390ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -93272,11 +96659,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_390ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -93288,49 +96676,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TRANGE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7974, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7975, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("ROCR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7976, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 7977, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7979, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -93351,7 +96725,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -93366,7 +96740,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 7983, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8026, __pyx_L1_error) /*try:*/ { @@ -93376,7 +96750,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TRANGE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -93389,7 +96763,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7987, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8030, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -93400,7 +96774,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TRANGE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROCR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -93440,17 +96814,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -93471,22 +96845,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 7993, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -93505,7 +96879,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -93516,9 +96890,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -93526,16 +96898,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_391TRIMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_393ROCR100(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_390TRIMA, "TRIMA(ndarray real, int timeperiod=-0x80000000)\n\nTRIMA(real[, timeperiod=?])\n\nTriangular Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_391TRIMA = {"TRIMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_391TRIMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_390TRIMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_391TRIMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_392ROCR100, "ROCR100(ndarray real, int timeperiod=-0x80000000)\n\nROCR100(real[, timeperiod=?])\n\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_393ROCR100 = {"ROCR100", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_393ROCR100, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_392ROCR100}; +static PyObject *__pyx_pw_5talib_7_ta_lib_393ROCR100(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -93554,7 +96926,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TRIMA (wrapper)", 0); + __Pyx_RefNannySetupContext("ROCR100 (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -93566,60 +96938,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 7996, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8039, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8039, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8039, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIMA", 0) < (0)) __PYX_ERR(6, 7996, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR100", 0) < (0)) __PYX_ERR(6, 8039, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, i); __PYX_ERR(6, 7996, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, i); __PYX_ERR(6, 8039, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 7996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8039, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 7996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8039, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 7998, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8041, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 7996, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 8039, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 7998, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_390TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8041, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_392ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -93639,7 +97011,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_392ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -93664,10 +97036,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TRIMA", 0); + __Pyx_RefNannySetupContext("ROCR100", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8017, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -93679,7 +97051,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8020, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -93715,7 +97087,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8024, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8067, __pyx_L1_error) /*try:*/ { @@ -93725,7 +97097,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TRIMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR100_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -93738,7 +97110,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8028, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8071, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -93749,7 +97121,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TRIMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROCR100(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -93835,7 +97207,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8034, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -93854,7 +97226,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -93873,35 +97245,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_393TRIX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_395ROGERSSATCHELL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_392TRIX, "TRIX(ndarray real, int timeperiod=-0x80000000)\n\nTRIX(real[, timeperiod=?])\n\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_393TRIX = {"TRIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_393TRIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_392TRIX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_393TRIX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_394ROGERSSATCHELL, "ROGERSSATCHELL(ndarray open, ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, double annualization=252.0)\n\nROGERSSATCHELL(open, high, low, close[, timeperiod=?, annualization=?])\n\nRogers-Satchell Volatility (Volatility Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n annualization: 252.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_395ROGERSSATCHELL = {"ROGERSSATCHELL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_395ROGERSSATCHELL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_394ROGERSSATCHELL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_395ROGERSSATCHELL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; + double __pyx_v_annualization; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TRIX (wrapper)", 0); + __Pyx_RefNannySetupContext("ROGERSSATCHELL (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -93911,62 +97287,99 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_annualization,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8037, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8080, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8080, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8080, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8080, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8080, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8037, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8080, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8037, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8080, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIX", 0) < (0)) __PYX_ERR(6, 8037, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, i); __PYX_ERR(6, 8037, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROGERSSATCHELL", 0) < (0)) __PYX_ERR(6, 8080, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROGERSSATCHELL", 0, 4, 6, i); __PYX_ERR(6, 8080, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8037, __pyx_L3_error) + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8080, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8080, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8080, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8080, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8080, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8037, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8080, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8039, __pyx_L3_error) + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8082, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } + if (values[5]) { + __pyx_v_annualization = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_annualization == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8082, __pyx_L3_error) + } else { + __pyx_v_annualization = ((double)((double)252.0)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 8037, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ROGERSSATCHELL", 0, 4, 6, __pyx_nargs); __PYX_ERR(6, 8080, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROGERSSATCHELL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8039, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_392TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 8082, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8082, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8082, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 8082, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_394ROGERSSATCHELL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_annualization); /* function exit code */ goto __pyx_L0; @@ -93982,11 +97395,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_394ROGERSSATCHELL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_annualization) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -93998,35 +97412,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TRIX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("ROGERSSATCHELL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8058, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8106, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8061, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -94047,7 +97481,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -94062,7 +97496,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8065, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8112, __pyx_L1_error) /*try:*/ { @@ -94072,7 +97506,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TRIX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ROGERSSATCHELL_Lookback(__pyx_v_timeperiod, __pyx_v_annualization)); } /*finally:*/ { @@ -94085,7 +97519,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8069, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8116, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -94096,7 +97530,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TRIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROGERSSATCHELL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_annualization, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -94136,17 +97570,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -94167,22 +97601,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_ } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8075, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROGERSSATCHELL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -94201,7 +97635,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROGERSSATCHELL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -94212,7 +97646,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_ __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -94220,16 +97657,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_395TSF(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_397RSI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_394TSF, "TSF(ndarray real, int timeperiod=-0x80000000)\n\nTSF(real[, timeperiod=?])\n\nTime Series Forecast (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_395TSF = {"TSF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_395TSF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_394TSF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_395TSF(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_396RSI, "RSI(ndarray real, int timeperiod=-0x80000000)\n\nRSI(real[, timeperiod=?])\n\nRelative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_397RSI = {"RSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_397RSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_396RSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_397RSI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -94248,7 +97685,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TSF (wrapper)", 0); + __Pyx_RefNannySetupContext("RSI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -94260,60 +97697,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8078, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8125, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8125, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8125, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSF", 0) < (0)) __PYX_ERR(6, 8078, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RSI", 0) < (0)) __PYX_ERR(6, 8125, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, i); __PYX_ERR(6, 8078, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, i); __PYX_ERR(6, 8125, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8125, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8125, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8080, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8127, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 8078, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 8125, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8080, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_394TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8127, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_396RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -94333,7 +97770,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_396RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -94358,10 +97795,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TSF", 0); + __Pyx_RefNannySetupContext("RSI", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8099, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -94373,7 +97810,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8102, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -94409,7 +97846,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8106, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8153, __pyx_L1_error) /*try:*/ { @@ -94419,7 +97856,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TSF_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_RSI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -94432,7 +97869,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8110, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8157, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -94443,7 +97880,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TSF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_RSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -94529,7 +97966,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8116, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -94548,7 +97985,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -94567,16 +98004,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_397TSI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_399RVI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_396TSI, "TSI(ndarray real, int firstperiod=-0x80000000, int secondperiod=-0x80000000)\n\nTSI(real[, firstperiod=?, secondperiod=?])\n\nTrue Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n firstperiod: 25\n secondperiod: 13\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_397TSI = {"TSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_397TSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_396TSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_397TSI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_398RVI, "RVI(ndarray real, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)\n\nRVI(real[, timeperiod=?, stddevperiod=?])\n\nRelative Volatility Index (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n stddevperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_399RVI = {"RVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_399RVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_398RVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_399RVI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -94584,8 +98021,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_firstperiod; - int __pyx_v_secondperiod; + int __pyx_v_timeperiod; + int __pyx_v_stddevperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -94596,7 +98033,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TSI (wrapper)", 0); + __Pyx_RefNannySetupContext("RVI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -94606,75 +98043,75 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8119, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8166, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8166, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8166, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8166, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSI", 0) < (0)) __PYX_ERR(6, 8119, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVI", 0) < (0)) __PYX_ERR(6, 8166, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, i); __PYX_ERR(6, 8119, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, i); __PYX_ERR(6, 8166, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8166, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8166, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8166, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8121, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8168, __pyx_L3_error) } else { - __pyx_v_firstperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8121, __pyx_L3_error) + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8168, __pyx_L3_error) } else { - __pyx_v_secondperiod = ((int)((int)-2147483648)); + __pyx_v_stddevperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 8119, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 8166, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8121, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_396TSI(__pyx_self, __pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8168, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_398RVI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); /* function exit code */ goto __pyx_L0; @@ -94695,7 +98132,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_398RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -94720,10 +98157,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TSI", 0); + __Pyx_RefNannySetupContext("RVI", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8141, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -94735,7 +98172,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_s if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8144, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -94771,7 +98208,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8148, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8195, __pyx_L1_error) /*try:*/ { @@ -94781,7 +98218,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod)); } /*finally:*/ { @@ -94794,7 +98231,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8152, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8199, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -94805,7 +98242,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_RVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -94891,7 +98328,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_s __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8158, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -94910,7 +98347,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -94929,16 +98366,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_399TYPPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_401RVIR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_398TYPPRICE, "TYPPRICE(ndarray high, ndarray low, ndarray close)\n\nTYPPRICE(high, low, close)\n\nTypical Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_399TYPPRICE = {"TYPPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_399TYPPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_398TYPPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_399TYPPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_400RVIR, "RVIR(ndarray high, ndarray low, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)\n\nRVIR(high, low[, timeperiod=?, stddevperiod=?])\n\nRelative Volatility Index, refined high/low form (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\n stddevperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_401RVIR = {"RVIR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_401RVIR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_400RVIR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_401RVIR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -94947,18 +98384,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + int __pyx_v_stddevperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TYPPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("RVIR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -94968,62 +98406,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8161, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8208, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8208, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8161, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8208, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8161, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8208, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8161, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8208, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TYPPRICE", 0) < (0)) __PYX_ERR(6, 8161, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, i); __PYX_ERR(6, 8161, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVIR", 0) < (0)) __PYX_ERR(6, 8208, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVIR", 0, 2, 4, i); __PYX_ERR(6, 8208, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8161, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8161, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8161, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8208, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8208, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8208, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8208, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8210, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8210, __pyx_L3_error) + } else { + __pyx_v_stddevperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(6, 8161, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("RVIR", 0, 2, 4, __pyx_nargs); __PYX_ERR(6, 8208, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVIR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8163, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8163, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 8163, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_398TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8210, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8210, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_400RVIR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_stddevperiod); /* function exit code */ goto __pyx_L0; @@ -95038,11 +98497,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_400RVIR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -95068,27 +98529,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TYPPRICE", 0); + __Pyx_RefNannySetupContext("RVIR", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8180, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8181, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8183, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8232, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -95096,7 +98551,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8185, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -95117,7 +98572,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -95132,7 +98587,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8189, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8238, __pyx_L1_error) /*try:*/ { @@ -95142,7 +98597,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_RVIR_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod)); } /*finally:*/ { @@ -95155,7 +98610,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8193, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8242, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -95166,7 +98621,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TYPPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_RVIR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -95252,7 +98707,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8199, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVIR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -95271,7 +98726,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVIR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -95284,7 +98739,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -95292,39 +98746,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_401ULTOSC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_403RVOL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_400ULTOSC, "ULTOSC(ndarray high, ndarray low, ndarray close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)\n\nULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\nUltimate Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod1: 7\n timeperiod2: 14\n timeperiod3: 28\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_401ULTOSC = {"ULTOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_401ULTOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_400ULTOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_401ULTOSC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_402RVOL, "RVOL(ndarray volume, int timeperiod=-0x80000000)\n\nRVOL(volume[, timeperiod=?])\n\nRelative Volume (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_403RVOL = {"RVOL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_403RVOL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_402RVOL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_403RVOL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod1; - int __pyx_v_timeperiod2; - int __pyx_v_timeperiod3; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ULTOSC (wrapper)", 0); + __Pyx_RefNannySetupContext("RVOL (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -95334,104 +98784,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8202, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8251, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8202, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8202, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8202, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8202, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8251, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8251, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ULTOSC", 0) < (0)) __PYX_ERR(6, 8202, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, i); __PYX_ERR(6, 8202, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVOL", 0) < (0)) __PYX_ERR(6, 8251, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, i); __PYX_ERR(6, 8251, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8202, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8202, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8202, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8202, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8251, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8204, __pyx_L3_error) - } else { - __pyx_v_timeperiod1 = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8204, __pyx_L3_error) - } else { - __pyx_v_timeperiod2 = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8204, __pyx_L3_error) + __pyx_v_volume = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8253, __pyx_L3_error) } else { - __pyx_v_timeperiod3 = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, __pyx_nargs); __PYX_ERR(6, 8202, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 8251, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8204, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8204, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 8204, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_400ULTOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 8253, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_402RVOL(__pyx_self, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -95447,13 +98855,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) { +static PyObject *__pyx_pf_5talib_7_ta_lib_402RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -95465,49 +98871,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ULTOSC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8225, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8226, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("RVOL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8227, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8228, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_volume)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8230, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -95528,7 +98920,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); } /*finally:*/ { @@ -95543,7 +98935,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8234, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8279, __pyx_L1_error) /*try:*/ { @@ -95553,7 +98945,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3)); + __pyx_v_lookback = (__pyx_v_begidx + TA_RVOL_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -95566,7 +98958,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8238, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8283, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -95577,7 +98969,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ULTOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_RVOL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -95617,17 +99009,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -95648,22 +99040,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8244, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -95682,7 +99074,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -95693,9 +99085,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -95703,36 +99093,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_403VAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_405SAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_402VAR, "VAR(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nVAR(real[, timeperiod=?, nbdev=?])\n\nVariance (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_403VAR = {"VAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_403VAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_402VAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_403VAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_404SAR, "SAR(ndarray high, ndarray low, double acceleration=0.02, double maximum=0.2)\n\nSAR(high, low[, acceleration=?, maximum=?])\n\nParabolic SAR (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n acceleration: 0.02\n maximum: 0.2\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_405SAR = {"SAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_405SAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_404SAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_405SAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_nbdev; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + double __pyx_v_acceleration; + double __pyx_v_maximum; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("VAR (wrapper)", 0); + __Pyx_RefNannySetupContext("SAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -95742,75 +99133,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8247, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8292, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8292, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8292, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8292, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8292, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VAR", 0) < (0)) __PYX_ERR(6, 8247, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, i); __PYX_ERR(6, 8247, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAR", 0) < (0)) __PYX_ERR(6, 8292, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, i); __PYX_ERR(6, 8292, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8292, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8292, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8247, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8292, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8292, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8249, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8294, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_acceleration = ((double)((double)0.02)); } - if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8249, __pyx_L3_error) + if (values[3]) { + __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8294, __pyx_L3_error) } else { - __pyx_v_nbdev = ((double)((double)-4e37)); + __pyx_v_maximum = ((double)((double)0.2)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 8247, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, __pyx_nargs); __PYX_ERR(6, 8292, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8249, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_402VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8294, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8294, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_404SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); /* function exit code */ goto __pyx_L0; @@ -95831,7 +99230,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { +static PyObject *__pyx_pf_5talib_7_ta_lib_404SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -95843,35 +99242,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("VAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("SAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8269, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8316, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8272, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -95892,7 +99299,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -95907,7 +99314,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8276, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8322, __pyx_L1_error) /*try:*/ { @@ -95917,7 +99324,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum)); } /*finally:*/ { @@ -95930,7 +99337,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8280, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8326, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -95941,7 +99348,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_VAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -95981,17 +99388,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -96012,22 +99419,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8286, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -96046,7 +99453,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -96057,7 +99464,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -96065,35 +99473,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_405VHF(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_407SAREXT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_404VHF, "VHF(ndarray real, int timeperiod=-0x80000000)\n\nVHF(real[, timeperiod=?])\n\nVertical Horizontal Filter (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 28\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_405VHF = {"VHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_405VHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_404VHF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_405VHF(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_406SAREXT, "SAREXT(ndarray high, ndarray low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)\n\nSAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\nParabolic SAR - Extended (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n startvalue: 0.0\n offsetonreverse: 0.0\n accelerationinitlong: 0.02\n accelerationlong: 0.02\n accelerationmaxlong: 0.2\n accelerationinitshort: 0.02\n accelerationshort: 0.02\n accelerationmaxshort: 0.2\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_407SAREXT = {"SAREXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_407SAREXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_406SAREXT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_407SAREXT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + double __pyx_v_startvalue; + double __pyx_v_offsetonreverse; + double __pyx_v_accelerationinitlong; + double __pyx_v_accelerationlong; + double __pyx_v_accelerationmaxlong; + double __pyx_v_accelerationinitshort; + double __pyx_v_accelerationshort; + double __pyx_v_accelerationmaxshort; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("VHF (wrapper)", 0); + __Pyx_RefNannySetupContext("SAREXT (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -96103,62 +99519,161 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8289, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8335, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8289, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8335, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8289, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8335, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VHF", 0) < (0)) __PYX_ERR(6, 8289, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, i); __PYX_ERR(6, 8289, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAREXT", 0) < (0)) __PYX_ERR(6, 8335, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, i); __PYX_ERR(6, 8335, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8335, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8289, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8335, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8289, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8335, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8291, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8337, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_startvalue = ((double)((double)-4e37)); + } + if (values[3]) { + __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8337, __pyx_L3_error) + } else { + __pyx_v_offsetonreverse = ((double)((double)-4e37)); + } + if (values[4]) { + __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8337, __pyx_L3_error) + } else { + __pyx_v_accelerationinitlong = ((double)((double)-4e37)); + } + if (values[5]) { + __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8337, __pyx_L3_error) + } else { + __pyx_v_accelerationlong = ((double)((double)-4e37)); + } + if (values[6]) { + __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8337, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxlong = ((double)((double)-4e37)); + } + if (values[7]) { + __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8337, __pyx_L3_error) + } else { + __pyx_v_accelerationinitshort = ((double)((double)-4e37)); + } + if (values[8]) { + __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8337, __pyx_L3_error) + } else { + __pyx_v_accelerationshort = ((double)((double)-4e37)); + } + if (values[9]) { + __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8337, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxshort = ((double)((double)-4e37)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 8289, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, __pyx_nargs); __PYX_ERR(6, 8335, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8291, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_404VHF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8337, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8337, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_406SAREXT(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); /* function exit code */ goto __pyx_L0; @@ -96174,11 +99689,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_406SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -96190,35 +99712,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("VHF", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("SAREXT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8310, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8365, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - if (__pyx_t_2) { + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8313, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -96239,7 +99769,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } /*finally:*/ { @@ -96254,7 +99784,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8317, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8371, __pyx_L1_error) /*try:*/ { @@ -96264,7 +99794,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_VHF_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort)); } /*finally:*/ { @@ -96277,7 +99807,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8321, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8375, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -96288,7 +99818,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_VHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SAREXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -96328,17 +99858,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -96359,22 +99889,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_s } } } - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8327, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -96393,7 +99923,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -96404,7 +99934,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -96412,37 +99943,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_407VORTEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_409SI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_406VORTEX, "VORTEX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nVORTEX(high, low, close[, timeperiod=?])\n\nVortex Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n plusvi\n minusvi"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_407VORTEX = {"VORTEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_407VORTEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_406VORTEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_407VORTEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_408SI, "SI(ndarray open, ndarray high, ndarray low, ndarray close, double limitmove=-4e37)\n\nSI(open, high, low, close[, limitmove=?])\n\nWilder Swing Index (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n limitmove: 3.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_409SI = {"SI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_409SI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_408SI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_409SI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_limitmove; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("VORTEX (wrapper)", 0); + __Pyx_RefNannySetupContext("SI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -96452,78 +99984,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_limitmove,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8330, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8384, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8384, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8330, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8330, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8330, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8330, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VORTEX", 0) < (0)) __PYX_ERR(6, 8330, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, i); __PYX_ERR(6, 8330, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SI", 0) < (0)) __PYX_ERR(6, 8384, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SI", 0, 4, 5, i); __PYX_ERR(6, 8384, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8384, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8330, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8384, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8330, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8384, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8330, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8384, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8330, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8384, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8332, __pyx_L3_error) + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_limitmove = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_limitmove == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8386, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_limitmove = ((double)((double)-4e37)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 8330, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SI", 0, 4, 5, __pyx_nargs); __PYX_ERR(6, 8384, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8332, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8332, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 8332, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_406VORTEX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(6, 8386, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8386, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8386, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 8386, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_408SI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_limitmove); /* function exit code */ goto __pyx_L0; @@ -96543,7 +100083,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_408SI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_limitmove) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -96551,48 +100091,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__py TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outplusvi = 0; - PyArrayObject *__pyx_v_outminusvi = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - char const *__pyx_t_8; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("VORTEX", 0); + __Pyx_RefNannySetupContext("SI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8353, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8354, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8355, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8356, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8409, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -96600,27 +100143,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__py if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8358, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8358, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8358, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 8358, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 8358, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } @@ -96631,7 +100164,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -96646,7 +100179,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__py __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8362, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8415, __pyx_L1_error) /*try:*/ { @@ -96656,7 +100189,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_VORTEX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SI_Lookback(__pyx_v_limitmove)); } /*finally:*/ { @@ -96669,15 +100202,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__py } } - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8366, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outplusvi = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8367, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outminusvi = ((PyArrayObject *)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8419, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -96685,7 +100213,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_VORTEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outplusvi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminusvi)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_limitmove, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -96725,19 +100253,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__py /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); - if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { { PyThreadState * _save; @@ -96758,51 +100284,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__py } } } - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8373, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF((PyObject *)__pyx_v_outplusvi); - __Pyx_GIVEREF((PyObject *)__pyx_v_outplusvi); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outplusvi)) != (0)) __PYX_ERR(6, 8374, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outminusvi); - __Pyx_GIVEREF((PyObject *)__pyx_v_outminusvi); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outminusvi)) != (0)) __PYX_ERR(6, 8374, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -96812,8 +100328,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__py - __Pyx_XDECREF((PyObject *)__pyx_v_outplusvi); - __Pyx_XDECREF((PyObject *)__pyx_v_outminusvi); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_open); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XDECREF((PyObject *)__pyx_v_close); @@ -96824,37 +100340,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_409VWAP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_411SIN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_408VWAP, "VWAP(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nVWAP(high, low, close, volume)\n\nVolume Weighted Average Price (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_409VWAP = {"VWAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_409VWAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_408VWAP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_409VWAP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_410SIN, "SIN(ndarray real)\n\nSIN(real)\n\nVector Trigonometric Sin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_411SIN = {"SIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_411SIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_410SIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_411SIN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("VWAP (wrapper)", 0); + __Pyx_RefNannySetupContext("SIN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -96864,70 +100377,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8376, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8428, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8376, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8376, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8376, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8376, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8428, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWAP", 0) < (0)) __PYX_ERR(6, 8376, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, i); __PYX_ERR(6, 8376, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SIN", 0) < (0)) __PYX_ERR(6, 8428, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, i); __PYX_ERR(6, 8428, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8376, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8376, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8376, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8376, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8428, __pyx_L3_error) } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 8376, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 8428, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VWAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8378, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8378, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 8378, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 8378, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_408VWAP(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8430, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_410SIN(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -96946,7 +100435,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_410SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -96958,55 +100447,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("VWAP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8395, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8397, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("SIN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8398, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8399, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8401, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -97027,7 +100496,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -97042,7 +100511,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8405, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8454, __pyx_L1_error) /*try:*/ { @@ -97052,7 +100521,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_VWAP_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_SIN_Lookback()); } /*finally:*/ { @@ -97065,7 +100534,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8409, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8458, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -97076,7 +100545,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_VWAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -97116,17 +100585,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -97147,22 +100616,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8415, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -97181,7 +100650,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VWAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -97192,10 +100661,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -97203,16 +100669,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_411VWMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_413SINH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_410VWMA, "VWMA(ndarray real, ndarray volume, int timeperiod=-0x80000000)\n\nVWMA(real, volume[, timeperiod=?])\n\nVolume Weighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_411VWMA = {"VWMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_411VWMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_410VWMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_411VWMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_412SINH, "SINH(ndarray real)\n\nSINH(real)\n\nVector Trigonometric Sinh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_413SINH = {"SINH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_413SINH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_412SINH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_413SINH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -97220,19 +100686,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("VWMA (wrapper)", 0); + __Pyx_RefNannySetupContext("SINH (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -97242,70 +100706,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8418, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8467, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8418, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8418, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8418, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8467, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWMA", 0) < (0)) __PYX_ERR(6, 8418, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, i); __PYX_ERR(6, 8418, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SINH", 0) < (0)) __PYX_ERR(6, 8467, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, i); __PYX_ERR(6, 8467, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8418, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8418, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8418, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8467, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8420, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 8418, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 8467, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8420, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 8420, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_410VWMA(__pyx_self, __pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8469, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_412SINH(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -97320,12 +100760,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_412SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -97337,43 +100776,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("VWMA", 0); + __Pyx_RefNannySetupContext("SINH", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8440, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8441, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8442, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8444, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -97394,7 +100825,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -97409,7 +100840,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8448, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8493, __pyx_L1_error) /*try:*/ { @@ -97419,7 +100850,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_VWMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SINH_Lookback()); } /*finally:*/ { @@ -97432,7 +100863,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8452, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8497, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -97443,7 +100874,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_VWMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SINH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -97483,17 +100914,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -97514,22 +100945,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8458, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -97548,7 +100979,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -97560,7 +100991,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -97568,36 +100998,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_413WAD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_415SMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_412WAD, "WAD(ndarray high, ndarray low, ndarray close)\n\nWAD(high, low, close)\n\nWilliams\047 Accumulation/Distribution (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_413WAD = {"WAD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_413WAD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_412WAD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_413WAD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_414SMA, "SMA(ndarray real, int timeperiod=-0x80000000)\n\nSMA(real[, timeperiod=?])\n\nSimple Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_415SMA = {"SMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_415SMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_414SMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_415SMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("WAD (wrapper)", 0); + __Pyx_RefNannySetupContext("SMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -97607,62 +101036,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8461, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8506, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8461, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8506, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8506, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WAD", 0) < (0)) __PYX_ERR(6, 8461, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, i); __PYX_ERR(6, 8461, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMA", 0) < (0)) __PYX_ERR(6, 8506, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, i); __PYX_ERR(6, 8506, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8461, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8461, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8461, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8506, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8506, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8508, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, __pyx_nargs); __PYX_ERR(6, 8461, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 8506, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WAD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8463, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8463, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 8463, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_412WAD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8508, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_414SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -97677,11 +101106,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_414SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -97693,49 +101123,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("WAD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8481, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("SMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8482, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8483, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8485, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -97756,7 +101172,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -97771,7 +101187,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8489, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8534, __pyx_L1_error) /*try:*/ { @@ -97781,7 +101197,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_WAD_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_SMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -97794,7 +101210,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8493, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8538, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -97805,7 +101221,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_WAD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -97845,17 +101261,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -97876,22 +101292,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8499, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -97910,7 +101326,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WAD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -97921,9 +101337,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -97931,16 +101345,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_415WCLPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_417SMI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_414WCLPRICE, "WCLPRICE(ndarray high, ndarray low, ndarray close)\n\nWCLPRICE(high, low, close)\n\nWeighted Close Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_415WCLPRICE = {"WCLPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_415WCLPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_414WCLPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_415WCLPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_416SMI, "SMI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nSMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?])\n\nStochastic Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\n fastperiod: 2\n slowperiod: 25\n signalperiod: 9\nOutputs:\n smi\n smisignal"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_417SMI = {"SMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_417SMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_416SMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_417SMI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -97950,17 +101364,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("WCLPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("SMI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -97970,62 +101388,117 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8502, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8547, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 8547, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8547, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8547, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8547, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8502, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8547, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8502, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8547, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8502, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8547, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WCLPRICE", 0) < (0)) __PYX_ERR(6, 8502, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMI", 0) < (0)) __PYX_ERR(6, 8547, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, i); __PYX_ERR(6, 8502, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, i); __PYX_ERR(6, 8547, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8502, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8502, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8502, __pyx_L3_error) + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 8547, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8547, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8547, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8547, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8547, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8547, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8547, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8549, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8549, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8549, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[6]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8549, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(6, 8502, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, __pyx_nargs); __PYX_ERR(6, 8547, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8504, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8504, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 8504, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_414WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8549, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8549, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 8549, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_416SMI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ goto __pyx_L0; @@ -98040,11 +101513,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_416SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -98052,45 +101529,48 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outsmi = 0; + PyArrayObject *__pyx_v_outsmisignal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; int __pyx_t_3; - int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("WCLPRICE", 0); + __Pyx_RefNannySetupContext("SMI", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8521, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8522, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8523, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8524, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8576, __pyx_L1_error) __pyx_v_length = __pyx_t_2; __pyx_t_3 = (__pyx_v_length == 0); @@ -98098,17 +101578,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__ if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8526, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 8578, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 8578, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; } @@ -98134,7 +101624,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8530, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8582, __pyx_L1_error) /*try:*/ { @@ -98144,7 +101634,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_WCLPRICE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); } /*finally:*/ { @@ -98157,10 +101647,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8534, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8586, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outsmi = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8587, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outsmisignal = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; { PyThreadState * _save; @@ -98168,7 +101663,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_WCLPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmisignal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -98208,17 +101703,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__ /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; { { PyThreadState * _save; @@ -98239,41 +101736,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__ } } } - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outsmi); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsmi); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outsmi)) != (0)) __PYX_ERR(6, 8594, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outsmisignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsmisignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outsmisignal)) != (0)) __PYX_ERR(6, 8594, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -98283,7 +101790,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outsmi); + __Pyx_XDECREF((PyObject *)__pyx_v_outsmisignal); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XDECREF((PyObject *)__pyx_v_close); @@ -98294,37 +101802,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_417WILLR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_419SQRT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_416WILLR, "WILLR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nWILLR(high, low, close[, timeperiod=?])\n\nWilliams\047 %R (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_417WILLR = {"WILLR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_417WILLR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_416WILLR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_417WILLR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_418SQRT, "SQRT(ndarray real)\n\nSQRT(real)\n\nVector Square Root (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_419SQRT = {"SQRT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_419SQRT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_418SQRT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_419SQRT(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("WILLR (wrapper)", 0); + __Pyx_RefNannySetupContext("SQRT (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -98334,78 +101839,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8543, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8596, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8543, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8543, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8543, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8596, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WILLR", 0) < (0)) __PYX_ERR(6, 8543, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, i); __PYX_ERR(6, 8543, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8543, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8543, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8543, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8543, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SQRT", 0) < (0)) __PYX_ERR(6, 8596, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, i); __PYX_ERR(6, 8596, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8545, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8596, __pyx_L3_error) } + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 8543, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 8596, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8545, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8545, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 8545, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_416WILLR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8598, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_418SQRT(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -98420,12 +101893,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_418SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -98437,49 +101909,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - int __pyx_t_5; - char const *__pyx_t_6; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("WILLR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8564, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("SQRT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8566, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8567, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_length == 0); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8569, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -98500,7 +101958,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } /*finally:*/ { @@ -98515,7 +101973,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8573, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8622, __pyx_L1_error) /*try:*/ { @@ -98525,7 +101983,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SQRT_Lookback()); } /*finally:*/ { @@ -98538,7 +101996,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8577, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8626, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -98549,7 +102007,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_WILLR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SQRT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -98589,17 +102047,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { { PyThreadState * _save; @@ -98620,22 +102078,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx } } } + __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; - __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8583, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -98654,7 +102112,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -98665,9 +102123,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -98675,35 +102131,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_419WMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_421SQZMOM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_418WMA, "WMA(ndarray real, int timeperiod=-0x80000000)\n\nWMA(real[, timeperiod=?])\n\nWeighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_419WMA = {"WMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_419WMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_418WMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_419WMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_420SQZMOM, "SQZMOM(ndarray high, ndarray low, ndarray close, int bbperiod=-0x80000000, double nbdev=-4e37, int kcperiod=-0x80000000, double factorwide=-4e37, double factornormal=-4e37, double factornarrow=-4e37)\n\nSQZMOM(high, low, close[, bbperiod=?, nbdev=?, kcperiod=?, factorwide=?, factornormal=?, factornarrow=?])\n\nSqueeze Momentum and Level (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n bbperiod: 20\n nbdev: 2.0\n kcperiod: 20\n factorwide: 2.0\n factornormal: 1.5\n factornarrow: 1.0\nOutputs:\n momentum\n squeeze"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_421SQZMOM = {"SQZMOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_421SQZMOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_420SQZMOM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_421SQZMOM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_bbperiod; + double __pyx_v_nbdev; + int __pyx_v_kcperiod; + double __pyx_v_factorwide; + double __pyx_v_factornormal; + double __pyx_v_factornarrow; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("WMA (wrapper)", 0); + __Pyx_RefNannySetupContext("SQZMOM (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -98713,62 +102176,143 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_bbperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,&__pyx_mstate_global->__pyx_n_u_kcperiod,&__pyx_mstate_global->__pyx_n_u_factorwide,&__pyx_mstate_global->__pyx_n_u_factornormal,&__pyx_mstate_global->__pyx_n_u_factornarrow,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8586, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8635, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(6, 8635, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 8635, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 8635, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8635, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8635, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8635, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8635, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WMA", 0) < (0)) __PYX_ERR(6, 8586, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, i); __PYX_ERR(6, 8586, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SQZMOM", 0) < (0)) __PYX_ERR(6, 8635, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SQZMOM", 0, 3, 9, i); __PYX_ERR(6, 8635, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8586, __pyx_L3_error) + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(6, 8635, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 8635, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 8635, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8635, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8635, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8635, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8635, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8635, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8635, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8588, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_bbperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_bbperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8637, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_bbperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8637, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); + } + if (values[5]) { + __pyx_v_kcperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_kcperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8637, __pyx_L3_error) + } else { + __pyx_v_kcperiod = ((int)((int)-2147483648)); + } + if (values[6]) { + __pyx_v_factorwide = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_factorwide == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8637, __pyx_L3_error) + } else { + __pyx_v_factorwide = ((double)((double)-4e37)); + } + if (values[7]) { + __pyx_v_factornormal = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_factornormal == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8637, __pyx_L3_error) + } else { + __pyx_v_factornormal = ((double)((double)-4e37)); + } + if (values[8]) { + __pyx_v_factornarrow = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_factornarrow == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8637, __pyx_L3_error) + } else { + __pyx_v_factornarrow = ((double)((double)-4e37)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 8586, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SQZMOM", 0, 3, 9, __pyx_nargs); __PYX_ERR(6, 8635, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQZMOM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8588, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_418WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8637, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8637, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 8637, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_420SQZMOM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_bbperiod, __pyx_v_nbdev, __pyx_v_kcperiod, __pyx_v_factorwide, __pyx_v_factornormal, __pyx_v_factornarrow); /* function exit code */ goto __pyx_L0; @@ -98784,11 +102328,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_420SQZMOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_bbperiod, double __pyx_v_nbdev, int __pyx_v_kcperiod, double __pyx_v_factorwide, double __pyx_v_factornormal, double __pyx_v_factornarrow) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -98796,49 +102345,76 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmomentum = 0; + PyArrayObject *__pyx_v_outsqueeze = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; - int __pyx_t_4; - char const *__pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("WMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("SQZMOM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8607, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_v_length == 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8666, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + __pyx_t_3 = (__pyx_v_length == 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8610, __pyx_L1_error) + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 8668, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 8668, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; } @@ -98849,7 +102425,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } /*finally:*/ { @@ -98864,7 +102440,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_s __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8614, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8672, __pyx_L1_error) /*try:*/ { @@ -98874,7 +102450,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_WMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SQZMOM_Lookback(__pyx_v_bbperiod, __pyx_v_nbdev, __pyx_v_kcperiod, __pyx_v_factorwide, __pyx_v_factornormal, __pyx_v_factornarrow)); } /*finally:*/ { @@ -98887,10 +102463,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_s } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8618, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8676, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmomentum = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8677, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outsqueeze = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; { PyThreadState * _save; @@ -98898,7 +102479,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_WMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SQZMOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_bbperiod, __pyx_v_nbdev, __pyx_v_kcperiod, __pyx_v_factorwide, __pyx_v_factornormal, __pyx_v_factornarrow, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmomentum)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsqueeze)) + __pyx_v_lookback)); } /*finally:*/ { @@ -98938,17 +102519,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_s /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); - __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; { { PyThreadState * _save; @@ -98969,41 +102552,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_s } } } + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; - __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; goto __pyx_L1_error; } __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8624, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQZMOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outmomentum); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmomentum); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outmomentum)) != (0)) __PYX_ERR(6, 8684, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outsqueeze); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsqueeze); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outsqueeze)) != (0)) __PYX_ERR(6, 8684, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SQZMOM", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -99013,8 +102606,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_s - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outmomentum); + __Pyx_XDECREF((PyObject *)__pyx_v_outsqueeze); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -99022,16 +102618,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_421ZLEMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_423STC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_420ZLEMA, "ZLEMA(ndarray real, int timeperiod=-0x80000000)\n\nZLEMA(real[, timeperiod=?])\n\nZero-Lag Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_421ZLEMA = {"ZLEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_421ZLEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_420ZLEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_421ZLEMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_422STC, "STC(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int cycleperiod=-0x80000000)\n\nSTC(real[, fastperiod=?, slowperiod=?, cycleperiod=?])\n\nSchaff Trend Cycle (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 23\n slowperiod: 50\n cycleperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_423STC = {"STC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_423STC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_422STC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_423STC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -99039,18 +102635,20 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_cycleperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ZLEMA (wrapper)", 0); + __Pyx_RefNannySetupContext("STC (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -99060,62 +102658,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_cycleperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8627, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8686, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8686, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8686, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8686, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8686, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ZLEMA", 0) < (0)) __PYX_ERR(6, 8627, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STC", 0) < (0)) __PYX_ERR(6, 8686, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, i); __PYX_ERR(6, 8627, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STC", 0, 1, 4, i); __PYX_ERR(6, 8686, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8686, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8686, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8686, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8686, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8629, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8688, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8688, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_cycleperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_cycleperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8688, __pyx_L3_error) + } else { + __pyx_v_cycleperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 8627, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("STC", 0, 1, 4, __pyx_nargs); __PYX_ERR(6, 8686, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ZLEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8629, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_420ZLEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8688, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_422STC(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_cycleperiod); /* function exit code */ goto __pyx_L0; @@ -99131,11 +102755,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_422STC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_cycleperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -99160,10 +102786,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ZLEMA", 0); + __Pyx_RefNannySetupContext("STC", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8648, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -99175,7 +102801,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx if (__pyx_t_2) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8651, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; @@ -99211,7 +102837,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8655, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8716, __pyx_L1_error) /*try:*/ { @@ -99221,7 +102847,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ZLEMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_STC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_cycleperiod)); } /*finally:*/ { @@ -99234,7 +102860,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8659, __pyx_L8_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8720, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -99245,7 +102871,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ZLEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_STC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_cycleperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } /*finally:*/ { @@ -99331,7 +102957,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx __pyx_L9:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8665, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -99350,7 +102976,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ZLEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -99369,34 +102995,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_423str2bytes(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_425STDDEV(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_422str2bytes, "str2bytes(s)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_423str2bytes = {"str2bytes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_423str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_422str2bytes}; -static PyObject *__pyx_pw_5talib_7_ta_lib_423str2bytes(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_424STDDEV, "STDDEV(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nSTDDEV(real[, timeperiod=?, nbdev=?])\n\nStandard Deviation (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_425STDDEV = {"STDDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_425STDDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_424STDDEV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_425STDDEV(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_s = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdev; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0); + __Pyx_RefNannySetupContext("STDDEV (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -99406,93 +103034,322 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 73, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8729, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8729, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8729, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 73, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8729, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "str2bytes", 0) < (0)) __PYX_ERR(2, 73, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STDDEV", 0) < (0)) __PYX_ERR(6, 8729, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, i); __PYX_ERR(2, 73, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, i); __PYX_ERR(6, 8729, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 73, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8729, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8729, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8729, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8731, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 8731, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); } - __pyx_v_s = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 73, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 8729, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_422str2bytes(__pyx_self, __pyx_v_s); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8731, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_424STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_422str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) { +static PyObject *__pyx_pf_5talib_7_ta_lib_424STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("str2bytes", 0); + __Pyx_RefNannySetupContext("STDDEV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } - __pyx_t_2 = NULL; - __pyx_t_3 = 1; { - PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_s, __pyx_mstate_global->__pyx_n_u_ascii}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyBytes_Type), __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 74, __pyx_L1_error) + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8758, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8762, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_STDDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -99500,34 +103357,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_422str2bytes(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_425bytes2str(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_427STOCH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_424bytes2str, "bytes2str(b)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_425bytes2str = {"bytes2str", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_425bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_424bytes2str}; -static PyObject *__pyx_pw_5talib_7_ta_lib_425bytes2str(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_426STOCH, "STOCH(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)\n\nSTOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nStochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n slowk_period: 3\n slowk_matype: 0 (Simple Moving Average)\n slowd_period: 3\n slowd_matype: 0 (Simple Moving Average)\nOutputs:\n slowk\n slowd"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_427STOCH = {"STOCH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_427STOCH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_426STOCH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_427STOCH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_b = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0); + __Pyx_RefNannySetupContext("STOCH (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -99537,94 +103401,427 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 76, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8771, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 76, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "bytes2str", 0) < (0)) __PYX_ERR(2, 76, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, i); __PYX_ERR(2, 76, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCH", 0) < (0)) __PYX_ERR(6, 8771, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, i); __PYX_ERR(6, 8771, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 76, __pyx_L3_error) + switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(6, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(6, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8771, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8771, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8771, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8773, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8773, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8773, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)((int)0)); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8773, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)((int)-2147483648)); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8773, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)((int)0)); } - __pyx_v_b = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 76, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, __pyx_nargs); __PYX_ERR(6, 8771, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_424bytes2str(__pyx_self, __pyx_v_b); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8773, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8773, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 8773, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_426STOCH(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_424bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) { +static PyObject *__pyx_pf_5talib_7_ta_lib_426STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outslowk = 0; + PyArrayObject *__pyx_v_outslowd = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; + npy_intp __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("bytes2str", 0); + __Pyx_RefNannySetupContext("STOCH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_2 = __pyx_v_b; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ascii}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 77, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8801, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 8803, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 8803, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8807, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8811, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8812, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_STOCH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowd)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L9:; } + + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outslowk); + __Pyx_GIVEREF((PyObject *)__pyx_v_outslowk); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outslowk)) != (0)) __PYX_ERR(6, 8819, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outslowd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outslowd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outslowd)) != (0)) __PYX_ERR(6, 8819, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outslowk); + __Pyx_XDECREF((PyObject *)__pyx_v_outslowd); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -99632,34 +103829,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_424bytes2str(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_427str2bytes(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_429STOCHF(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_426str2bytes, "str2bytes(s)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_427str2bytes = {"str2bytes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_427str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_426str2bytes}; -static PyObject *__pyx_pw_5talib_7_ta_lib_427str2bytes(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_428STOCHF, "STOCHF(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Fast (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_429STOCHF = {"STOCHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_429STOCHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_428STOCHF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_429STOCHF(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_s = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0); + __Pyx_RefNannySetupContext("STOCHF (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -99669,73 +103871,399 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 81, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8821, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8821, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 81, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8821, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "str2bytes", 0) < (0)) __PYX_ERR(2, 81, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, i); __PYX_ERR(2, 81, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHF", 0) < (0)) __PYX_ERR(6, 8821, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, i); __PYX_ERR(6, 8821, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 81, __pyx_L3_error) + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 8821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8821, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8821, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8821, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8823, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8823, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8823, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)((int)0)); } - __pyx_v_s = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 81, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, __pyx_nargs); __PYX_ERR(6, 8821, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_426str2bytes(__pyx_self, __pyx_v_s); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 8823, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 8823, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 8823, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_428STOCHF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_426str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) { +static PyObject *__pyx_pf_5talib_7_ta_lib_428STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outfastk = 0; + PyArrayObject *__pyx_v_outfastd = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("str2bytes", 0); + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("STOCHF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8847, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8849, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 8851, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 8851, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8855, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8859, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8860, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_STOCHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L9:; + } + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outfastk); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(6, 8867, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outfastd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(6, 8867, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_s); - __pyx_r = __pyx_v_s; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); + __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -99743,34 +104271,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_426str2bytes(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_429bytes2str(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_431STOCHRSI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_428bytes2str, "bytes2str(b)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_429bytes2str = {"bytes2str", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_429bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_428bytes2str}; -static PyObject *__pyx_pw_5talib_7_ta_lib_429bytes2str(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_430STOCHRSI, "STOCHRSI(ndarray real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_431STOCHRSI = {"STOCHRSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_431STOCHRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_430STOCHRSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_431STOCHRSI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_b = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0); + __Pyx_RefNannySetupContext("STOCHRSI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -99780,73 +104312,381 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 84, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8869, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8869, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8869, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8869, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8869, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 84, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8869, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "bytes2str", 0) < (0)) __PYX_ERR(2, 84, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHRSI", 0) < (0)) __PYX_ERR(6, 8869, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, i); __PYX_ERR(2, 84, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, i); __PYX_ERR(6, 8869, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 84, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8869, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8869, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8869, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8869, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8869, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } - __pyx_v_b = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 84, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8871, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8871, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8871, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8871, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, __pyx_nargs); __PYX_ERR(6, 8869, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_428bytes2str(__pyx_self, __pyx_v_b); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8871, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_430STOCHRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_428bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) { +static PyObject *__pyx_pf_5talib_7_ta_lib_430STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outfastk = 0; + PyArrayObject *__pyx_v_outfastd = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("bytes2str", 0); + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + char const *__pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("STOCHRSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 8898, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(6, 8898, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + + } + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8902, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8906, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8907, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_STOCHRSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; + goto __pyx_L1_error; + } + __pyx_L9:; + } + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF((PyObject *)__pyx_v_outfastk); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(6, 8914, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outfastd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(6, 8914, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_b); - __pyx_r = __pyx_v_b; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); + __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -99854,38 +104694,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_428bytes2str(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_433SUB(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function___init__, "Function.__init__(self, function_name, func_object, *args, **kwargs)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function___init__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_432SUB, "SUB(ndarray real0, ndarray real1)\n\nSUB(real0, real1)\n\nVector Arithmetic Subtraction (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_433SUB = {"SUB", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_433SUB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_432SUB}; +static PyObject *__pyx_pw_5talib_7_ta_lib_433SUB(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_function_name = 0; - PyObject *__pyx_v_func_object = 0; - PyObject *__pyx_v_args = 0; - PyObject *__pyx_v_kwargs = 0; + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + __Pyx_RefNannySetupContext("SUB (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -99894,196 +104731,309 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; - __Pyx_GOTREF(__pyx_v_kwargs); - __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 3, __pyx_nargs); - if (unlikely(!__pyx_v_args)) { - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_RefNannyFinishContext(); - return NULL; - } - __Pyx_GOTREF(__pyx_v_args); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_func_object,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 116, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8916, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - default: - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 116, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 116, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8916, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 116, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8916, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; + default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - const Py_ssize_t used_pos_args = (kwd_pos_args < 3) ? kwd_pos_args : 3; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "__init__", 1) < (0)) __PYX_ERR(2, 116, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, i); __PYX_ERR(2, 116, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUB", 0) < (0)) __PYX_ERR(6, 8916, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, i); __PYX_ERR(6, 8916, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs < 3)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 116, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8916, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 116, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 116, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8916, __pyx_L3_error) } - __pyx_v_self = values[0]; - __pyx_v_function_name = values[1]; - __pyx_v_func_object = values[2]; + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, __pyx_nargs); __PYX_ERR(2, 116, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 8916, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_AddTraceback("talib._ta_lib.Function.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function___init__(__pyx_self, __pyx_v_self, __pyx_v_function_name, __pyx_v_func_object, __pyx_v_args, __pyx_v_kwargs); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(6, 8918, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(6, 8918, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_432SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); - __Pyx_DECREF(__pyx_v_kwargs); + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_func_object, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { +static PyObject *__pyx_pf_5talib_7_ta_lib_432SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 0); + __Pyx_RefNannySetupContext("SUB", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_2 = __pyx_v_function_name; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 118, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 118, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 119, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__namestr, __pyx_t_1) < (0)) __PYX_ERR(2, 119, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_str2bytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_3 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 120, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 8938, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 123, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_local); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 123, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_2, __pyx__function); - __pyx_t_3 = 0; } - #endif + { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 123, __pyx_L1_error) + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8944, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_SUB_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8948, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_SUB(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata, __pyx_t_1) < (0)) __PYX_ERR(2, 123, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 126, __pyx_L1_error) + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L9:; + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 126, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 126, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object, __pyx_v_func_object) < (0)) __PYX_ERR(2, 127, __pyx_L1_error) + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.Function.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -100091,34 +105041,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_435SUM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_2__local, "Function.__local(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_3__local = {"__local", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_3__local, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_2__local}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_434SUM, "SUM(ndarray real, int timeperiod=-0x80000000)\n\nSUM(real[, timeperiod=?])\n\nSummation (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_435SUM = {"SUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_435SUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_434SUM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_435SUM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__local (wrapper)", 0); + __Pyx_RefNannySetupContext("SUM (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -100128,549 +105079,287 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 129, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8957, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8957, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8957, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__local", 0) < (0)) __PYX_ERR(2, 129, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUM", 0) < (0)) __PYX_ERR(6, 8957, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__local", 1, 1, 1, i); __PYX_ERR(2, 129, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, i); __PYX_ERR(6, 8957, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 129, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8957, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8957, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 8959, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__local", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 129, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 8957, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__local", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_2__local(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 8959, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_434SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_info = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_param_name = NULL; - PyObject *__pyx_v_output_name = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_434SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - size_t __pyx_t_6; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__local", 0); + __Pyx_RefNannySetupContext("SUM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 131, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_HasAttr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 132, __pyx_L1_error) - __pyx_t_3 = (!__pyx_t_2); - + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - if (__pyx_t_3) { + __pyx_t_2 = (__pyx_v_length == 0); + if (__pyx_t_2) { - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, Py_None) < (0)) __PYX_ERR(2, 133, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 134, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_1) < (0)) __PYX_ERR(2, 134, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_1) < (0)) __PYX_ERR(2, 137, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs, __pyx_t_1) < (0)) __PYX_ERR(2, 138, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); - __pyx_t_6 = 0; - } - #endif { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_1) < (0)) __PYX_ERR(2, 139, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = 0; + goto __pyx_L0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 140, __pyx_L1_error) + } - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 143, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 143, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 143, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_1) < (0)) __PYX_ERR(2, 143, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_4 = NULL; - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __pyx_t_8; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_inputs}; - __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - } - __pyx_t_6 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 146, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - { - __pyx_t_1 = __pyx_t_9(__pyx_t_7); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 146, __pyx_L1_error) - PyErr_Clear(); - } - break; - } + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; } - __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); - __pyx_t_1 = 0; + } - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 149, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (__pyx_t_1 == Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_3) { + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 8985, __pyx_L1_error) - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely((PyObject_SetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_8) < 0))) __PYX_ERR(2, 150, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + /*try:*/ { - } + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_input_name, __pyx_v_info) < 0))) __PYX_ERR(2, 151, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_v_lookback = (__pyx_v_begidx + TA_SUM_Lookback(__pyx_v_timeperiod)); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 152, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 152, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_7) < 0))) __PYX_ERR(2, 152, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8989, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_8 = NULL; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __pyx_t_4; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_opt_inputs}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_1}; - __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - } - __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 155, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - for (;;) { - { - __pyx_t_7 = __pyx_t_9(__pyx_t_1); - if (unlikely(!__pyx_t_7)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 155, __pyx_L1_error) - PyErr_Clear(); + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_SUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; } - break; + __pyx_L15:; } - } - __Pyx_GOTREF(__pyx_t_7); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7); - __pyx_t_7 = 0; + } + } - __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_8); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif + /*finally:*/ { + /*normal exit:*/{ { - PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_5, __pyx_v_i}; - __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - } - __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_7); - __pyx_t_7 = 0; - - __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_7); - __pyx_t_7 = 0; - - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_v_param_name, __pyx_v_info) < 0))) __PYX_ERR(2, 158, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 159, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_7); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_1) < 0))) __PYX_ERR(2, 162, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_4 = NULL; - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __pyx_t_8; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_outputs}; - __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - } - __pyx_t_6 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - { - __pyx_t_1 = __pyx_t_9(__pyx_t_7); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 163, __pyx_L1_error) - PyErr_Clear(); + __pyx_f_5talib_7_ta_lib__ta_end_read(); } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); - __pyx_t_6 = 0; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } } - #endif + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { - PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 165, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_output_name, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_v_output_name, __pyx_t_1) < 0))) __PYX_ERR(2, 166, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_output_name, Py_None) < 0))) __PYX_ERR(2, 167, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 168, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 168, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_7) < 0))) __PYX_ERR(2, 168, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - + __pyx_L9:; } + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_local); - __pyx_r = __pyx_v_local; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -100680,19 +105369,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.Function.__local", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_info); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_param_name); - __Pyx_XDECREF(__pyx_v_output_name); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -100700,34 +105388,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_437SUPERTREND(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_4info, "Function.info(self)\n\nReturns a copy of the function\047s info dict."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_5info = {"info", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_5info, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_4info}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_436SUPERTREND, "SUPERTREND(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n supertrend\n trend"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_437SUPERTREND = {"SUPERTREND", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_437SUPERTREND, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_436SUPERTREND}; +static PyObject *__pyx_pw_5talib_7_ta_lib_437SUPERTREND(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + double __pyx_v_multiplier; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("info (wrapper)", 0); + __Pyx_RefNannySetupContext("SUPERTREND (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -100737,104 +105429,385 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 171, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 8998, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8998, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8998, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8998, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8998, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8998, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "info", 0) < (0)) __PYX_ERR(2, 171, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("info", 1, 1, 1, i); __PYX_ERR(2, 171, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUPERTREND", 0) < (0)) __PYX_ERR(6, 8998, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, i); __PYX_ERR(6, 8998, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 171, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 8998, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 8998, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 8998, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 8998, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 8998, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9000, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 9000, __pyx_L3_error) + } else { + __pyx_v_multiplier = ((double)((double)3.0)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("info", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 171, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, __pyx_nargs); __PYX_ERR(6, 8998, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.info", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_4info(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 9000, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 9000, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 9000, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_436SUPERTREND(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_436SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outsupertrend = 0; + PyArrayObject *__pyx_v_outtrend = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("info", 0); + __Pyx_RefNannySetupContext("SUPERTREND", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __pyx_t_4; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 176, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9024, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 9025, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 9027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 9027, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 9027, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9031, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9035, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outsupertrend = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9036, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outtrend = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_SUPERTREND(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsupertrend)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outtrend)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L9:; } + + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9042, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outsupertrend); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsupertrend); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outsupertrend)) != (0)) __PYX_ERR(6, 9043, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outtrend); + __Pyx_GIVEREF((PyObject *)__pyx_v_outtrend); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outtrend)) != (0)) __PYX_ERR(6, 9043, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Function.info", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outsupertrend); + __Pyx_XDECREF((PyObject *)__pyx_v_outtrend); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -100842,34 +105815,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_439SWAK_2PHP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_6function_flags, "Function.function_flags(self)\n\nReturns any function flags defined for this indicator function."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_7function_flags = {"function_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_7function_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_6function_flags}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_438SWAK_2PHP, "SWAK_2PHP(ndarray real, int timeperiod=-0x80000000)\n\nSWAK_2PHP(real[, timeperiod=?])\n\nSwiss Army Knife - Two-Pole High-Pass Filter (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_439SWAK_2PHP = {"SWAK_2PHP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_439SWAK_2PHP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_438SWAK_2PHP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_439SWAK_2PHP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("function_flags (wrapper)", 0); + __Pyx_RefNannySetupContext("SWAK_2PHP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -100879,91 +105853,308 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 178, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9045, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9045, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9045, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "function_flags", 0) < (0)) __PYX_ERR(2, 178, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SWAK_2PHP", 0) < (0)) __PYX_ERR(6, 9045, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("function_flags", 1, 1, 1, i); __PYX_ERR(2, 178, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SWAK_2PHP", 0, 1, 2, i); __PYX_ERR(6, 9045, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 178, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9045, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9045, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9047, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("function_flags", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 178, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SWAK_2PHP", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 9045, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.function_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_2PHP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_6function_flags(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9047, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_438SWAK_2PHP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_438SWAK_2PHP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("function_flags", 0); + __Pyx_RefNannySetupContext("SWAK_2PHP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 183, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 183, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9073, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_SWAK_2PHP_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9077, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_SWAK_2PHP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_2PHP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Function.function_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_2PHP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -100971,34 +106162,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSE /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_441SWAK_BP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_8output_flags, "Function.output_flags(self)\n\nReturns the flags for each output for this indicator function."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_9output_flags = {"output_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_9output_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_8output_flags}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_440SWAK_BP, "SWAK_BP(ndarray real, int timeperiod=-0x80000000, double delta=0.1)\n\nSWAK_BP(real[, timeperiod=?, delta=?])\n\nSwiss Army Knife - Band-Pass Filter (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n delta: 0.1\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_441SWAK_BP = {"SWAK_BP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_441SWAK_BP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_440SWAK_BP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_441SWAK_BP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_delta; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("output_flags (wrapper)", 0); + __Pyx_RefNannySetupContext("SWAK_BP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -101008,322 +106201,301 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_delta,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 185, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9086, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9086, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9086, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9086, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "output_flags", 0) < (0)) __PYX_ERR(2, 185, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SWAK_BP", 0) < (0)) __PYX_ERR(6, 9086, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("output_flags", 1, 1, 1, i); __PYX_ERR(2, 185, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SWAK_BP", 0, 1, 3, i); __PYX_ERR(6, 9086, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 185, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9086, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9086, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9086, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9088, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_delta = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_delta == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 9088, __pyx_L3_error) + } else { + __pyx_v_delta = ((double)((double)0.1)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("output_flags", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 185, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SWAK_BP", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 9086, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.output_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_8output_flags(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9088, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_440SWAK_BP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_delta); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_440SWAK_BP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_delta) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("output_flags", 0); + __Pyx_RefNannySetupContext("SWAK_BP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __pyx_t_3; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 190, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - } - { - PyObject *__pyx_temp; { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); } - __Pyx_XDECREF(__pyx_temp); + __pyx_t_1 = 0; + goto __pyx_L0; + } - __pyx_t_1 = 0; - goto __pyx_L0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Function.output_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_10get_input_names, "Function.get_input_names(self)\n\nReturns the dict of input price series names that specifies which\nof the ndarrays in input_arrays will be used to calculate the function."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names = {"get_input_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_10get_input_names}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v_self = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_input_names (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 192, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 192, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_input_names", 0) < (0)) __PYX_ERR(2, 192, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_input_names", 1, 1, 1, i); __PYX_ERR(2, 192, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 192, __pyx_L3_error) - } - __pyx_v_self = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("get_input_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 192, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.Function.get_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(__pyx_self, __pyx_v_self); + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9115, __pyx_L1_error) -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_ret = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - Py_ssize_t __pyx_t_5; - PyObject *(*__pyx_t_6)(PyObject *); - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("get_input_names", 0); + /*try:*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; - __pyx_t_1 = 0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_ret = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_lookback = (__pyx_v_begidx + TA_SWAK_BP_Lookback(__pyx_v_timeperiod, __pyx_v_delta)); + } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 199, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 199, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_5; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 199, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9119, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_SWAK_BP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_delta, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); - #endif - ++__pyx_t_5; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 199, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 199, __pyx_L1_error) - PyErr_Clear(); + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; } - break; + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } } + goto __pyx_L9; } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_input_name, __pyx_t_1) < 0))) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_ret); - __pyx_r = __pyx_v_ret; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -101333,14 +106505,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNU /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.Function.get_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_ret); - __Pyx_XDECREF(__pyx_v_input_name); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -101348,24 +106524,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_443SWAK_BUTTER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_12set_input_names, "Function.set_input_names(self, input_names)\n\nSets the input price series names to use."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names = {"set_input_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_12set_input_names}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_442SWAK_BUTTER, "SWAK_BUTTER(ndarray real, int timeperiod=-0x80000000)\n\nSWAK_BUTTER(real[, timeperiod=?])\n\nSwiss Army Knife - Butterworth Filter (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_443SWAK_BUTTER = {"SWAK_BUTTER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_443SWAK_BUTTER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_442SWAK_BUTTER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_443SWAK_BUTTER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_names = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -101376,7 +106552,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_input_names (wrapper)", 0); + __Pyx_RefNannySetupContext("SWAK_BUTTER (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -101386,238 +106562,308 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_names,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 203, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9128, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9128, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9128, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_input_names", 0) < (0)) __PYX_ERR(2, 203, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, i); __PYX_ERR(2, 203, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SWAK_BUTTER", 0) < (0)) __PYX_ERR(6, 9128, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SWAK_BUTTER", 0, 1, 2, i); __PYX_ERR(6, 9128, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 203, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 203, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9128, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9128, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9130, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; - __pyx_v_input_names = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 203, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SWAK_BUTTER", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 9128, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BUTTER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(__pyx_self, __pyx_v_self, __pyx_v_input_names); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9130, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_442SWAK_BUTTER(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_names) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_price_series = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_442SWAK_BUTTER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *(*__pyx_t_5)(PyObject *); + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("set_input_names", 0); + __Pyx_RefNannySetupContext("SWAK_BUTTER", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 207, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_v_input_names; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 208, __pyx_L1_error) + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + } - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 208, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 208, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 208, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); - #endif - ++__pyx_t_4; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 208, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_5(__pyx_t_2); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 208, __pyx_L1_error) - PyErr_Clear(); + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; } - break; + __pyx_L6:; } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9156, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_SWAK_BUTTER_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9160, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 208, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_6); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_7); - } else { - __pyx_t_6 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 208, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 208, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_7); - } - #else - __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); - index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 208, __pyx_L1_error) - __pyx_t_9 = NULL; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L6_unpacking_done; - __pyx_L5_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_9 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 208, __pyx_L1_error) - __pyx_L6_unpacking_done:; + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_SWAK_BUTTER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } } - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_6); - __pyx_t_6 = 0; - __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_7); - __pyx_t_7 = 0; + } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_price_series) < 0))) __PYX_ERR(2, 209, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_input_name, __pyx_v_price_series) < 0))) __PYX_ERR(2, 210, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 211, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BUTTER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BUTTER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_price_series); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -101625,34 +106871,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_445SWAK_GAUSS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays, "Function.get_input_arrays(self)\n\nReturns a copy of the dict of input arrays in use."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays = {"get_input_arrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_444SWAK_GAUSS, "SWAK_GAUSS(ndarray real, int timeperiod=-0x80000000)\n\nSWAK_GAUSS(real[, timeperiod=?])\n\nSwiss Army Knife - Gaussian Filter (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_445SWAK_GAUSS = {"SWAK_GAUSS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_445SWAK_GAUSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_444SWAK_GAUSS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_445SWAK_GAUSS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_input_arrays (wrapper)", 0); + __Pyx_RefNannySetupContext("SWAK_GAUSS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -101662,164 +106909,308 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 215, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9169, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9169, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 215, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_input_arrays", 0) < (0)) __PYX_ERR(2, 215, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SWAK_GAUSS", 0) < (0)) __PYX_ERR(6, 9169, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_input_arrays", 1, 1, 1, i); __PYX_ERR(2, 215, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SWAK_GAUSS", 0, 1, 2, i); __PYX_ERR(6, 9169, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 215, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9169, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9169, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9171, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("get_input_arrays", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 215, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SWAK_GAUSS", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 9169, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.get_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_GAUSS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9171, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_444SWAK_GAUSS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_444SWAK_GAUSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - size_t __pyx_t_6; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("get_input_arrays", 0); + __Pyx_RefNannySetupContext("SWAK_GAUSS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 219, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (__pyx_t_1 != Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_3) { - - } else { - - __pyx_t_2 = __pyx_t_3; - - goto __pyx_L4_bool_binop_done; - } - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 221, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_2 = __pyx_t_3; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_L4_bool_binop_done:; + __pyx_t_2 = (__pyx_v_length == 0); if (__pyx_t_2) { - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_1 = __pyx_t_5; - __Pyx_INCREF(__pyx_t_1); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_clone, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - } + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_1 = 0; goto __pyx_L0; } - /*else*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __pyx_t_1; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9197, __pyx_L1_error) + + /*try:*/ { + { - PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_SWAK_GAUSS_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9201, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + { - PyObject *__pyx_temp; + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_SWAK_GAUSS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } } - __Pyx_XDECREF(__pyx_temp); + goto __pyx_L9; } - __pyx_t_4 = 0; - goto __pyx_L0; + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_GAUSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); } + goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.Function.get_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_GAUSS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -101827,24 +107218,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_447SWAK_HP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays, "Function.set_input_arrays(self, input_arrays)\n\nSets the dict of input_arrays to use. Returns True/False for\nsubclasses:\n\nIf input_arrays is a dict with the keys open, high, low, close and\nvolume, it is assigned as the input_array to use and this function\nreturns True, returning False otherwise. If you implement your own\ndata type and wish to subclass Function, you should wrap this function\nwith an if-statement:\n\nclass CustomFunction(Function):\n def __init__(self, function_name):\n Function.__init__(self, function_name)\n\n def set_input_arrays(self, input_data):\n if Function.set_input_arrays(self, input_data):\n return True\n elif isinstance(input_data, some_module.CustomDataType):\n input_arrays = Function.get_input_arrays(self)\n # convert input_data to input_arrays and then call the super\n Function.set_input_arrays(self, input_arrays)\n return True\n return False"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays = {"set_input_arrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_446SWAK_HP, "SWAK_HP(ndarray real, int timeperiod=-0x80000000)\n\nSWAK_HP(real[, timeperiod=?])\n\nSwiss Army Knife - High-Pass Filter (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_447SWAK_HP = {"SWAK_HP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_447SWAK_HP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_446SWAK_HP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_447SWAK_HP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_arrays = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -101855,7 +107246,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_input_arrays (wrapper)", 0); + __Pyx_RefNannySetupContext("SWAK_HP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -101865,311 +107256,287 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 226, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9210, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9210, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9210, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_input_arrays", 0) < (0)) __PYX_ERR(2, 226, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, i); __PYX_ERR(2, 226, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SWAK_HP", 0) < (0)) __PYX_ERR(6, 9210, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SWAK_HP", 0, 1, 2, i); __PYX_ERR(6, 9210, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 226, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 226, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9210, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9210, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9212, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; - __pyx_v_input_arrays = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 226, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SWAK_HP", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 9210, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_HP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(__pyx_self, __pyx_v_self, __pyx_v_input_arrays); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9212, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_446SWAK_HP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_missing_keys = NULL; - PyObject *__pyx_v_key = NULL; - PyObject *__pyx_v_missing = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_446SWAK_HP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - Py_ssize_t __pyx_t_5; - PyObject *(*__pyx_t_6)(PyObject *); - int __pyx_t_7; - int __pyx_t_8; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11[4]; - int __pyx_t_12; - PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("set_input_arrays", 0); + __Pyx_RefNannySetupContext("SWAK_HP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 251, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 252, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = (__pyx_v_length == 0); + if (__pyx_t_2) { - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 253, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_missing_keys = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_3 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 254, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 254, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 254, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_5; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 254, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); - #endif - ++__pyx_t_5; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 254, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); - __pyx_t_1 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = (__pyx_t_1 != Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_7) { - - } else { - - __pyx_t_2 = __pyx_t_7; - - goto __pyx_L7_bool_binop_done; + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 256, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(2, 256, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_t_7; - - __pyx_L7_bool_binop_done:; - - if (__pyx_t_2) { - - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_input_arrays, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 257, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + } - __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1); - __pyx_t_1 = 0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - goto __pyx_L6; + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } - /*else*/ { - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_input_arrays, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 259, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 259, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - - __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1); - __pyx_t_1 = 0; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; } - __pyx_L6:; + } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_missing); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 260, __pyx_L1_error) - if (__pyx_t_2) { + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9238, __pyx_L1_error) - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_missing_keys, __pyx_v_key); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 261, __pyx_L1_error) + /*try:*/ { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - } + __pyx_v_lookback = (__pyx_v_begidx + TA_SWAK_HP_Lookback(__pyx_v_timeperiod)); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 262, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_5 == 0); - - - if (likely(__pyx_t_2)) { - - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_v_input_arrays) < (0)) __PYX_ERR(2, 263, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9242, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 264, __pyx_L1_error) + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(Py_True); - __pyx_r = Py_True; + __pyx_v_retCode = TA_SWAK_HP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } } + } - /*else*/ { - __pyx_t_1 = NULL; - - __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 268, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_5 > 1); + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - if (__pyx_t_2) { - __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_s); - __pyx_t_9 = __pyx_mstate_global->__pyx_n_u_s; - } else { - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__3); - __pyx_t_9 = __pyx_mstate_global->__pyx_kp_u__3; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_10 = __Pyx_PyUnicode_Unicode(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 268, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_missing_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 270, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_input_arrays_parameter_missing_r; - __pyx_t_11[1] = __pyx_t_10; - __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u__2; - __pyx_t_11[3] = __pyx_t_9; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __pyx_t_5 = 50; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11[3]); - #endif - __pyx_t_12 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_12 |= __Pyx_PyUnicode_KIND_04(__pyx_t_11[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_11[3]); - #endif - __pyx_t_13 = __Pyx_PyUnicode_Join(__pyx_t_11, 4, __pyx_t_5, __pyx_t_12); - if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 267, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_13}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 267, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } } - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(2, 267, __pyx_L1_error) + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; } - + __pyx_L9:; } + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_HP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(Py_False); - __pyx_r = Py_False; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -102179,17 +107546,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_HP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_missing_keys); - __Pyx_XDECREF(__pyx_v_key); - __Pyx_XDECREF(__pyx_v_missing); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -102197,34 +107565,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_449T3(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_18get_parameters, "Function.get_parameters(self)\n\nReturns the function\047s optional parameters and their default values."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters = {"get_parameters", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_18get_parameters}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_448T3, "T3(ndarray real, int timeperiod=-0x80000000, double vfactor=-4e37)\n\nT3(real[, timeperiod=?, vfactor=?])\n\nTriple Exponential Moving Average (T3) (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n vfactor: 0.7\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_449T3 = {"T3", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_449T3, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_448T3}; +static PyObject *__pyx_pw_5talib_7_ta_lib_449T3(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_vfactor; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_parameters (wrapper)", 0); + __Pyx_RefNannySetupContext("T3 (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -102234,179 +107604,301 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 275, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9251, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9251, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 275, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9251, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_parameters", 0) < (0)) __PYX_ERR(2, 275, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "T3", 0) < (0)) __PYX_ERR(6, 9251, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_parameters", 1, 1, 1, i); __PYX_ERR(2, 275, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, i); __PYX_ERR(6, 9251, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 275, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9251, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9253, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 9253, __pyx_L3_error) + } else { + __pyx_v_vfactor = ((double)((double)-4e37)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("get_parameters", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 275, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 9251, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.get_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9253, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_448T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_ret = NULL; - PyObject *__pyx_v_opt_input = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_448T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - Py_ssize_t __pyx_t_5; - PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("get_parameters", 0); + __Pyx_RefNannySetupContext("T3", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 279, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 280, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 280, __pyx_L1_error) + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_ret = __pyx_t_1; - __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 281, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 281, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 281, __pyx_L1_error) } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 281, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_5; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 281, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); - #endif - ++__pyx_t_5; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 281, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 281, __pyx_L1_error) - PyErr_Clear(); + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; } - break; + __pyx_L6:; } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9280, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9284, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_T3(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } } - if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_opt_input, __pyx_t_1) < 0))) __PYX_ERR(2, 282, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_ret); - __pyx_r = __pyx_v_ret; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -102416,14 +107908,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUS /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.Function.get_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_ret); - __Pyx_XDECREF(__pyx_v_opt_input); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -102431,36 +107927,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUS /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_451TAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_20set_parameters, "Function.set_parameters(self, parameters=None, **kwargs)\n\nSets the function parameter values."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters = {"set_parameters", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_20set_parameters}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_450TAN, "TAN(ndarray real)\n\nTAN(real)\n\nVector Trigonometric Tan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_451TAN = {"TAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_451TAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_450TAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_451TAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_parameters = 0; - PyObject *__pyx_v_kwargs = 0; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_parameters (wrapper)", 0); + __Pyx_RefNannySetupContext("TAN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -102469,390 +107963,292 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; - __Pyx_GOTREF(__pyx_v_kwargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_parameters,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 285, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9293, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 285, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9293, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, kwd_pos_args, __pyx_kwds_len, "set_parameters", 1) < (0)) __PYX_ERR(2, 285, __pyx_L3_error) - if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TAN", 0) < (0)) __PYX_ERR(6, 9293, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_parameters", 0, 1, 2, i); __PYX_ERR(2, 285, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, i); __PYX_ERR(6, 9293, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 285, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 285, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9293, __pyx_L3_error) } - __pyx_v_self = values[0]; - __pyx_v_parameters = values[1]; + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_parameters", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 285, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 9293, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(__pyx_self, __pyx_v_self, __pyx_v_parameters, __pyx_v_kwargs); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9295, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_450TAN(__pyx_self, __pyx_v_real); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_kwargs); + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parameters, PyObject *__pyx_v_kwargs) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_updates = NULL; - PyObject *__pyx_v_param = NULL; - PyObject *__pyx_v_value = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_450TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - Py_ssize_t __pyx_t_6; - PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; - PyObject *(*__pyx_t_11)(PyObject *); + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("set_parameters", 0); - __Pyx_INCREF(__pyx_v_parameters); + __Pyx_RefNannySetupContext("TAN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 289, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_parameters); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 290, __pyx_L1_error) - if (!__pyx_t_2) { - } else { - __Pyx_INCREF(__pyx_v_parameters); - __pyx_t_1 = __pyx_v_parameters; - goto __pyx_L3_bool_binop_done; - } - __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 290, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_3); - __pyx_t_1 = __pyx_t_3; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_L3_bool_binop_done:; - __Pyx_DECREF_SET(__pyx_v_parameters, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_v_parameters; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_kwargs}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 291, __pyx_L1_error) + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __pyx_v_parameters; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_4 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; - __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { - __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 292, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_5))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 292, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 292, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6)); - #else - __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_6); - #endif - ++__pyx_t_6; + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 292, __pyx_L1_error) - } else { - __pyx_t_3 = __pyx_t_7(__pyx_t_5); - if (unlikely(!__pyx_t_3)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 292, __pyx_L1_error) - PyErr_Clear(); + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; } - break; - } - } - __Pyx_GOTREF(__pyx_t_3); - if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { - PyObject* sequence = __pyx_t_3; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 292, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_8); - __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_9); - } else { - __pyx_t_8 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_9); + __pyx_L6:; } - #else - __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - #endif - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_10 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_10); - index = 0; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed; - __Pyx_GOTREF(__pyx_t_8); - index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L7_unpacking_failed; - __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(2, 292, __pyx_L1_error) - __pyx_t_11 = NULL; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - goto __pyx_L8_unpacking_done; - __pyx_L7_unpacking_failed:; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_11 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 292, __pyx_L1_error) - __pyx_L8_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_8); - __pyx_t_8 = 0; - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_9); - __pyx_t_9 = 0; + } - __pyx_t_9 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_9); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[3] = {__pyx_t_9, __pyx_v_param, __pyx_v_value}; - __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 293, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 293, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_2) { + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9319, __pyx_L1_error) - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_v_param); - __Pyx_GIVEREF(__pyx_v_param); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_param) != (0)) __PYX_ERR(2, 292, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_value); - __Pyx_GIVEREF(__pyx_v_value); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_value) != (0)) __PYX_ERR(2, 292, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (unlikely(__Pyx_ListComp_AppendAndDecref(__pyx_t_1, __pyx_t_3))) __PYX_ERR(2, 292, __pyx_L1_error) - __pyx_t_3 = 0; + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_TAN_Lookback()); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } } - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v_updates = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9323, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_v_updates; __Pyx_INCREF(__pyx_t_1); - __pyx_t_6 = 0; - for (;;) { { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 294, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_TAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } } - __pyx_t_5 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { - PyObject* sequence = __pyx_t_5; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 294, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_3); - __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_9); - } else { - __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 294, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 294, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_9); + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } } - #else - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - #endif - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); - index = 0; __pyx_t_3 = __pyx_t_11(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L13_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_8); if (unlikely(!__pyx_t_9)) goto __pyx_L13_unpacking_failed; - __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 294, __pyx_L1_error) - __pyx_t_11 = NULL; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L14_unpacking_done; - __pyx_L13_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_11 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 294, __pyx_L1_error) - __pyx_L14_unpacking_done:; + goto __pyx_L9; } - __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_3); - __pyx_t_3 = 0; - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_9); - __pyx_t_9 = 0; + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_param); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 295, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 296, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 297, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (unlikely((PyObject_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 297, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_updates); - __Pyx_XDECREF(__pyx_v_param); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_parameters); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -102860,25 +108256,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUS /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_453TANH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_22set_function_args, "Function.set_function_args(self, *args, **kwargs)\n\noptional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args = {"set_function_args", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_22set_function_args}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_452TANH, "TANH(ndarray real)\n\nTANH(real)\n\nVector Trigonometric Tanh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_453TANH = {"TANH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_453TANH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_452TANH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_453TANH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_args = 0; - PyObject *__pyx_v_kwargs = 0; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -102889,7 +108283,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_function_args (wrapper)", 0); + __Pyx_RefNannySetupContext("TANH (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -102898,422 +108292,292 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; - __Pyx_GOTREF(__pyx_v_kwargs); - __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs); - if (unlikely(!__pyx_v_args)) { - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_RefNannyFinishContext(); - return NULL; - } - __Pyx_GOTREF(__pyx_v_args); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 301, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9332, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - default: case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 301, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; + default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "set_function_args", 1) < (0)) __PYX_ERR(2, 301, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TANH", 0) < (0)) __PYX_ERR(6, 9332, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_function_args", 0, 1, 1, i); __PYX_ERR(2, 301, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, i); __PYX_ERR(6, 9332, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs < 1)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 301, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9332, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_function_args", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 301, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 9332, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9334, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_452TANH(__pyx_self, __pyx_v_real); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); - __Pyx_DECREF(__pyx_v_kwargs); + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { - PyObject *__pyx_v_local = NULL; - int __pyx_v_update_info; - PyObject *__pyx_v_key = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_skip_first = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_param_name = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_452TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; + int __pyx_t_2; + int __pyx_t_3; int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; - size_t __pyx_t_9; + PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; - PyObject *(*__pyx_t_11)(PyObject *); - int __pyx_t_12; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("set_function_args", 0); + __Pyx_RefNannySetupContext("TANH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 305, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_update_info = 0; - - __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_kwargs, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_1); - __pyx_t_1 = __pyx_t_5; - __pyx_t_5 = 0; - while (1) { - __pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, NULL, NULL, __pyx_t_4); - if (unlikely(__pyx_t_6 == 0)) break; - if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(2, 308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5); - __pyx_t_5 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 309, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 309, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_7) { + __pyx_t_2 = (__pyx_v_length == 0); + if (__pyx_t_2) { - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5); - __pyx_t_5 = 0; - __pyx_t_8 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_8); - __pyx_t_9 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; { - PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_key, __pyx_v_value}; - __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - } - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 311, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_7) { - - - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 312, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 312, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 312, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_value, __pyx_t_5) < 0))) __PYX_ERR(2, 312, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_v_update_info = 1; - + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; } - - goto __pyx_L5; + __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; + goto __pyx_L0; - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 314, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 314, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_7) { - - - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_5) < 0))) __PYX_ERR(2, 315, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_v_key, __pyx_t_5) < 0))) __PYX_ERR(2, 316, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - } - __pyx_L5:; } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 318, __pyx_L1_error) - __pyx_t_7 = (__pyx_temp != 0); + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } } - if (__pyx_t_7) { + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9358, __pyx_L1_error) - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_v_skip_first = __pyx_mstate_global->__pyx_int_0; + /*try:*/ { - __pyx_t_5 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_10 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 320, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_9 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_10}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 320, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 320, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_7) { - + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1); - __Pyx_DECREF_SET(__pyx_v_skip_first, __pyx_mstate_global->__pyx_int_1); + __pyx_v_lookback = (__pyx_v_begidx + TA_TANH_Lookback()); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } } - __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(2, 322, __pyx_L1_error) - __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 322, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9362, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_7 = __Pyx_PyObject_CompareBoolGt_int_int(__pyx_t_1, __pyx_v_skip_first, Py_GT); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 322, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_7) { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_retCode = TA_TANH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_t_1 = __pyx_mstate_global->__pyx_int_0; - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 323, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { - __pyx_t_5 = __pyx_t_10; __Pyx_INCREF(__pyx_t_5); - __pyx_t_3 = 0; - __pyx_t_11 = NULL; - } else { - __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 323, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 323, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - for (;;) { - if (likely(!__pyx_t_11)) { - if (likely(PyList_CheckExact(__pyx_t_5))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 323, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - __pyx_t_10 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_3; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 323, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_10 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3)); - #else - __pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_3); - #endif - ++__pyx_t_3; - } - if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 323, __pyx_L1_error) - } else { - __pyx_t_10 = __pyx_t_11(__pyx_t_5); - if (unlikely(!__pyx_t_10)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 323, __pyx_L1_error) - PyErr_Clear(); - } - break; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; } + __pyx_L15:; } - __Pyx_GOTREF(__pyx_t_10); - __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_10); - __pyx_t_10 = 0; - __Pyx_INCREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_10 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 323, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_1); - __pyx_t_1 = __pyx_t_10; - __pyx_t_10 = 0; - - __pyx_t_10 = __Pyx_PyNumber_InPlaceAdd_object_int(__pyx_v_i, __pyx_v_skip_first); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 324, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_10); - __pyx_t_10 = 0; - - __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(2, 325, __pyx_L1_error) - __pyx_t_10 = PyLong_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 325, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - - __pyx_t_7 = __Pyx_PyObject_CompareBoolLt_object_int(__pyx_v_i, __pyx_t_10, Py_LT); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 325, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__pyx_t_7) { - + } + } - __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_args, __pyx_v_i); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 326, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_10); - __pyx_t_10 = 0; + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_8 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_8); - __pyx_t_9 = 0; - { - PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_param_name, __pyx_v_value}; - __pyx_t_10 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 327, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_f_5talib_7_ta_lib__ta_end_read(); } - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 327, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__pyx_t_7) { - - - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 328, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_param_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 328, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 328, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - __pyx_v_update_info = 1; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; } - - } - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + goto __pyx_L9; } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - } + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 331, __pyx_L1_error) - __pyx_t_12 = (__pyx_temp != 0); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; } - if (!__pyx_t_12) { - - } else { - - __pyx_t_7 = __pyx_t_12; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L16_bool_binop_done; - } { - Py_ssize_t __pyx_temp = __Pyx_PyDict_GET_SIZE(__pyx_v_kwargs); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 331, __pyx_L1_error) - __pyx_t_12 = (__pyx_temp != 0); - } - - - __pyx_t_7 = __pyx_t_12; - - __pyx_L16_bool_binop_done:; - if (__pyx_t_7) { - - - if (__pyx_v_update_info) { - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 333, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 333, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 333, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } - - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 334, __pyx_L1_error) - + __Pyx_XDECREF(__pyx_temp); } + goto __pyx_L0; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_key); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_skip_first); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_param_name); + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -103321,34 +108585,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_455TEMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_24lookback, "Function.lookback(self)\n\nReturns the lookback window size for the function with the parameter\nvalues that are currently set."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_25lookback = {"lookback", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_25lookback, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_24lookback}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_454TEMA, "TEMA(ndarray real, int timeperiod=-0x80000000)\n\nTEMA(real[, timeperiod=?])\n\nTriple Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_455TEMA = {"TEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_455TEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_454TEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_455TEMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("lookback (wrapper)", 0); + __Pyx_RefNannySetupContext("TEMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -103358,351 +108623,308 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 336, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9371, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9371, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 336, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9371, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookback", 0) < (0)) __PYX_ERR(2, 336, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TEMA", 0) < (0)) __PYX_ERR(6, 9371, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookback", 1, 1, 1, i); __PYX_ERR(2, 336, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, i); __PYX_ERR(6, 9371, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 336, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9371, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9371, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9373, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("lookback", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 336, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 9371, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.lookback", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_24lookback(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9373, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_454TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - TA_ParamHolder *__pyx_v_holder; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_opt_input = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_type_ = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_454TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - TA_ParamHolder *__pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - Py_ssize_t __pyx_t_6; - PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; - size_t __pyx_t_9; - int __pyx_t_10; - int __pyx_t_11; - int __pyx_t_12; - double __pyx_t_13; - int __pyx_t_14; - int __pyx_t_15; - char const *__pyx_t_16; - PyObject *__pyx_t_17 = NULL; - PyObject *__pyx_t_18 = NULL; - PyObject *__pyx_t_19 = NULL; - PyObject *__pyx_t_20 = NULL; - PyObject *__pyx_t_21 = NULL; - PyObject *__pyx_t_22 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("lookback", 0); + __Pyx_RefNannySetupContext("TEMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 342, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_AsWritableString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(2, 344, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(__pyx_t_2); if (unlikely(__pyx_t_3 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 344, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_v_holder = __pyx_t_3; - - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_t_1 = __pyx_mstate_global->__pyx_int_0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { - __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 345, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 345, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_5))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 345, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 345, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6)); - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_6); - #endif - ++__pyx_t_6; - } - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error) - } else { - __pyx_t_4 = __pyx_t_7(__pyx_t_5); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 345, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_4); - __pyx_t_4 = 0; - __Pyx_INCREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); - __pyx_t_1 = __pyx_t_4; - __pyx_t_4 = 0; - - __pyx_t_8 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_8); - __pyx_t_9 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_opt_input}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 346, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4); - __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_opt_input); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF_SET(__pyx_v_type_, __pyx_t_4); - __pyx_t_4 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 348, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 348, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!__pyx_t_11) { + __pyx_t_2 = (__pyx_v_length == 0); - } else { + if (__pyx_t_2) { - __pyx_t_10 = __pyx_t_11; - goto __pyx_L6_bool_binop_done; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 348, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 348, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_10 = __pyx_t_11; - - __pyx_L6_bool_binop_done:; - if (__pyx_t_10) { + __pyx_t_1 = 0; + goto __pyx_L0; + } - __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 349, __pyx_L1_error) - __pyx_t_13 = __Pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 349, __pyx_L1_error) - __pyx_t_14 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(__pyx_v_holder, __pyx_t_12, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 349, __pyx_L1_error) + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - goto __pyx_L5; - } + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9399, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 350, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 350, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!__pyx_t_11) { + /*try:*/ { - } else { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_10 = __pyx_t_11; + __pyx_v_lookback = (__pyx_v_begidx + TA_TEMA_Lookback(__pyx_v_timeperiod)); + } - goto __pyx_L8_bool_binop_done; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } } - __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 350, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 350, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_10 = __pyx_t_11; - - __pyx_L8_bool_binop_done:; - if (__pyx_t_10) { - - - __pyx_t_14 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error) - __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_value); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error) - __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(__pyx_v_holder, __pyx_t_14, __pyx_t_12); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9403, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_retCode = TA_TEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } } - __pyx_L5:; - - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /*try:*/ { - - __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_getLookback(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 354, __pyx_L12_error) - __pyx_v_lookback = __pyx_t_15; } /*finally:*/ { /*normal exit:*/{ - __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 356, __pyx_L1_error) + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - goto __pyx_L13; - } - __pyx_L12_error:; - /*exception exit:*/{ - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); - if ( unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); - __Pyx_XGOTREF(__pyx_t_17); - __Pyx_XGOTREF(__pyx_t_18); - __Pyx_XGOTREF(__pyx_t_19); - __Pyx_XGOTREF(__pyx_t_20); - __Pyx_XGOTREF(__pyx_t_21); - __Pyx_XGOTREF(__pyx_t_22); - __pyx_t_15 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_16 = __pyx_filename; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { - __pyx_t_14 = __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(__pyx_v_holder); if (unlikely(__pyx_t_14 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 356, __pyx_L15_error) + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } } - __Pyx_XGIVEREF(__pyx_t_20); - __Pyx_XGIVEREF(__pyx_t_21); - __Pyx_XGIVEREF(__pyx_t_22); - __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); - __Pyx_XGIVEREF(__pyx_t_17); - __Pyx_XGIVEREF(__pyx_t_18); - __Pyx_XGIVEREF(__pyx_t_19); - __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19); - __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; - __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_16; - goto __pyx_L1_error; - __pyx_L15_error:; - __Pyx_XGIVEREF(__pyx_t_20); - __Pyx_XGIVEREF(__pyx_t_21); - __Pyx_XGIVEREF(__pyx_t_22); - __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); - __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } - __pyx_L13:; + __pyx_L9:; } - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_lookback); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 357, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.Function.lookback", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_opt_input); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_type_); + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -103710,34 +108932,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_457TRANGE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_26output_names, "Function.output_names(self)\n\nReturns a list of the output names returned by this function."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_27output_names = {"output_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_27output_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_26output_names}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_456TRANGE, "TRANGE(ndarray high, ndarray low, ndarray close)\n\nTRANGE(high, low, close)\n\nTrue Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_457TRANGE = {"TRANGE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_457TRANGE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_456TRANGE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_457TRANGE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("output_names (wrapper)", 0); + __Pyx_RefNannySetupContext("TRANGE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -103747,109 +108971,300 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 359, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9412, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9412, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9412, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 359, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9412, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "output_names", 0) < (0)) __PYX_ERR(2, 359, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("output_names", 1, 1, 1, i); __PYX_ERR(2, 359, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRANGE", 0) < (0)) __PYX_ERR(6, 9412, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, i); __PYX_ERR(6, 9412, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 359, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9412, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9412, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9412, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("output_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 359, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, __pyx_nargs); __PYX_ERR(6, 9412, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.output_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_26output_names(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 9414, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 9414, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 9414, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_456TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_ret = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_456TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; - int __pyx_t_6; - int __pyx_t_7; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("output_names", 0); + __Pyx_RefNannySetupContext("TRANGE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 364, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 364, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __pyx_t_4; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 364, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 9434, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + } - __pyx_v_ret = __pyx_t_1; - __pyx_t_1 = 0; - __pyx_t_6 = PyList_Check(__pyx_v_ret); - __pyx_t_7 = (!__pyx_t_6); + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + } - if (__pyx_t_7) { + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 366, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9440, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_TRANGE_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9444, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_TRANGE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L9:; } + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_ret); - __pyx_r = __pyx_v_ret; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -103859,13 +109274,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Function.output_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_ret); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -103873,34 +109295,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_459TRIMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_28outputs, "Function.outputs(self)\n\nReturns the TA function values for the currently set input_arrays and\nparameters. Returned values are a ndarray if there is only one output\nor a list of ndarrays for more than one output."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_29outputs = {"outputs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_29outputs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_28outputs}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_458TRIMA, "TRIMA(ndarray real, int timeperiod=-0x80000000)\n\nTRIMA(real[, timeperiod=?])\n\nTriangular Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_459TRIMA = {"TRIMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_459TRIMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_458TRIMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_459TRIMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("outputs (wrapper)", 0); + __Pyx_RefNannySetupContext("TRIMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -103910,67 +109333,99 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 369, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9453, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9453, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9453, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "outputs", 0) < (0)) __PYX_ERR(2, 369, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIMA", 0) < (0)) __PYX_ERR(6, 9453, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("outputs", 1, 1, 1, i); __PYX_ERR(2, 369, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, i); __PYX_ERR(6, 9453, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 369, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9453, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9453, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9455, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("outputs", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 369, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 9453, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.outputs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_28outputs(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9455, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_458TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_ret = NULL; - PyObject *__pyx_v_index = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_458TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; + int __pyx_t_4; + char const *__pyx_t_5; PyObject *__pyx_t_6 = NULL; - Py_ssize_t __pyx_t_7; + PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; @@ -103978,443 +109433,208 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("outputs", 0); + __Pyx_RefNannySetupContext("TRIMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 376, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 377, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 377, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = (!__pyx_t_2); + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_2 = (__pyx_v_length == 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_4 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_4); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = 0; + goto __pyx_L0; } - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 379, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = __pyx_t_6; - __Pyx_INCREF(__pyx_t_4); - __pyx_t_5 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_values, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 379, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_ret = __pyx_t_1; - __pyx_t_1 = 0; - - __pyx_t_3 = PyList_Check(__pyx_v_ret); - __pyx_t_2 = (!__pyx_t_3); - - - if (__pyx_t_2) { - + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 381, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } } - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (__pyx_t_1 != Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_3) { - - } else { - - __pyx_t_2 = __pyx_t_3; - - goto __pyx_L6_bool_binop_done; - } + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 383, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 383, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_6); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 383, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9481, __pyx_L1_error) - __pyx_t_2 = __pyx_t_3; + /*try:*/ { - __pyx_L6_bool_binop_done:; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - if (__pyx_t_2) { + __pyx_v_lookback = (__pyx_v_begidx + TA_TRIMA_Lookback(__pyx_v_timeperiod)); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 384, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9485, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_index = __pyx_t_1; + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 385, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_7 == 1); - - - if (__pyx_t_2) { - + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_8, __pyx_v_index}; - #if CYTHON_VECTORCALL - __pyx_t_9 = __pyx_mstate_global->__pyx_tuple[2]; - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 386, __pyx_L1_error) - __Pyx_INCREF(__pyx_t_9); - #else - { - PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_index}; - __pyx_t_9 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 1); - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - } - #endif - __pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_9); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_v_retCode = TA_TRIMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_1 = 0; - goto __pyx_L0; - - } - - /*else*/ { - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_11))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_ret}; - __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - } - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_t_8, __pyx_v_index, __pyx_t_11}; - #if CYTHON_VECTORCALL - __pyx_t_6 = __pyx_mstate_global->__pyx_tuple[3]; - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 388, __pyx_L1_error) - __Pyx_INCREF(__pyx_t_6); - #else - { - PyObject *__pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_index, __pyx_mstate_global->__pyx_n_u_columns}; - __pyx_t_6 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 2); - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - } - #endif - __pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_1 = 0; - goto __pyx_L0; } - } - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 391, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (__pyx_t_1 != Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_3) { - - } else { - - __pyx_t_2 = __pyx_t_3; - - goto __pyx_L9_bool_binop_done; - } - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 392, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 392, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_9); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 392, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_2 = __pyx_t_3; - - __pyx_L9_bool_binop_done:; - - if (__pyx_t_2) { - - - __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 393, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_7 == 1); - - - if (__pyx_t_2) { + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __pyx_t_1 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_1); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_11}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { - PyObject *__pyx_temp; { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_9; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_9 = 0; - goto __pyx_L0; - - } + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - /*else*/ { - __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_10))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); - assert(__pyx_t_8); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_ret}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 397, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_11))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_10}; - #if CYTHON_VECTORCALL - __pyx_t_8 = __pyx_mstate_global->__pyx_tuple[4]; - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 396, __pyx_L1_error) - __Pyx_INCREF(__pyx_t_8); - #else - { - PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_schema}; - __pyx_t_8 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 1); - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - } - #endif - __pyx_t_9 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_9; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_9 = 0; - goto __pyx_L0; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; } - + __pyx_L9:; } - /*else*/ { - __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 399, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_7 == 1); - - - if (__pyx_t_2) { - __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_9 = __pyx_t_11; - __pyx_t_11 = 0; - } else { - __Pyx_INCREF(__pyx_v_ret); - __pyx_t_9 = __pyx_v_ret; - } + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyObject *__pyx_temp; { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_9; - } - __Pyx_XDECREF(__pyx_temp); + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } - __pyx_t_9 = 0; - goto __pyx_L0; + __Pyx_XDECREF(__pyx_temp); } + goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_AddTraceback("talib._ta_lib.Function.outputs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_ret); - __Pyx_XDECREF(__pyx_v_index); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -104422,24 +109642,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_461TRIX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_30run, "Function.run(self, input_arrays=None)\n\nrun([input_arrays=None])\n\nThis is a shortcut to the outputs property that also allows setting\nthe input_arrays dict."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_31run = {"run", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_31run, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_30run}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_460TRIX, "TRIX(ndarray real, int timeperiod=-0x80000000)\n\nTRIX(real[, timeperiod=?])\n\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_461TRIX = {"TRIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_461TRIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_460TRIX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_461TRIX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_arrays = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -104450,7 +109670,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("run (wrapper)", 0); + __Pyx_RefNannySetupContext("TRIX (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -104460,131 +109680,308 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 401, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9494, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 401, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9494, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 401, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9494, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "run", 0) < (0)) __PYX_ERR(2, 401, __pyx_L3_error) - if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIX", 0) < (0)) __PYX_ERR(6, 9494, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("run", 0, 1, 2, i); __PYX_ERR(2, 401, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, i); __PYX_ERR(6, 9494, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 401, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9494, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 401, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9494, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } - if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); } - __pyx_v_self = values[0]; - __pyx_v_input_arrays = values[1]; + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9496, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("run", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 401, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 9494, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.run", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_30run(__pyx_self, __pyx_v_self, __pyx_v_input_arrays); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9496, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_460TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) { +static PyObject *__pyx_pf_5talib_7_ta_lib_460TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("run", 0); + __Pyx_RefNannySetupContext("TRIX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_input_arrays); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 408, __pyx_L1_error) - if (__pyx_t_1) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9518, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_input_arrays}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 409, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = 0; + goto __pyx_L0; } - __pyx_t_3 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 410, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9522, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_TRIX_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9526, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_TRIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.Function.run", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -104592,36 +109989,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_463TSF(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_32__call__, "Function.__call__(self, *args, **kwargs)\n\nfunc_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs])\n\nThis is a shortcut to the outputs property that also allows setting\nthe input_arrays dict and function parameters."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_33__call__ = {"__call__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_33__call__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_32__call__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_462TSF, "TSF(ndarray real, int timeperiod=-0x80000000)\n\nTSF(real[, timeperiod=?])\n\nTime Series Forecast (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_463TSF = {"TSF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_463TSF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_462TSF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_463TSF(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_args = 0; - PyObject *__pyx_v_kwargs = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + __Pyx_RefNannySetupContext("TSF (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -104630,1253 +110026,346 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; - __Pyx_GOTREF(__pyx_v_kwargs); - __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs); - if (unlikely(!__pyx_v_args)) { - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_RefNannyFinishContext(); - return NULL; - } - __Pyx_GOTREF(__pyx_v_args); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 413, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9535, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - default: + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9535, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9535, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; + default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "__call__", 1) < (0)) __PYX_ERR(2, 413, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSF", 0) < (0)) __PYX_ERR(6, 9535, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, i); __PYX_ERR(2, 413, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, i); __PYX_ERR(6, 9535, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs < 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 413, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9535, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9535, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9537, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 413, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 9535, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_32__call__(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9537, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_462TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); - __Pyx_DECREF(__pyx_v_kwargs); + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_opt_input_values = NULL; - PyObject *__pyx_v_price_series_name_values = NULL; - PyObject *__pyx_v_input_arrays = NULL; - PyObject *__pyx_v_input_price_series_names = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_arg = NULL; - PyObject *__pyx_v_msg = NULL; - PyObject *__pyx_v_no_existing_input_arrays = NULL; - PyObject *__pyx_v_param_name = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_n = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_462TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; - Py_ssize_t __pyx_t_6; - PyObject *(*__pyx_t_7)(PyObject *); - int __pyx_t_8; - int __pyx_t_9; - int __pyx_t_10; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - int __pyx_t_14; - PyObject *__pyx_t_15 = NULL; - Py_ssize_t __pyx_t_16; - PyObject *__pyx_t_17 = NULL; - PyObject *__pyx_t_18 = NULL; - PyObject *__pyx_t_19[5]; - PyObject *__pyx_t_20 = NULL; - PyObject *(*__pyx_t_21)(PyObject *); - int __pyx_t_22; - char const *__pyx_t_23; - PyObject *__pyx_t_24 = NULL; - PyObject *__pyx_t_25 = NULL; - PyObject *__pyx_t_26 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__call__", 0); - __Pyx_INCREF(__pyx_v_args); + __Pyx_RefNannySetupContext("TSF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 420, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __pyx_t_4; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { - __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); - __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 423, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_4))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 423, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 423, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6)); - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_6); - #endif - ++__pyx_t_6; - } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 423, __pyx_L1_error) - } else { - __pyx_t_2 = __pyx_t_7(__pyx_t_4); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 423, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_2); - __pyx_t_2 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_v_param_name); - __Pyx_GIVEREF(__pyx_v_param_name); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_param_name) != (0)) __PYX_ERR(2, 422, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 422, __pyx_L1_error); - __pyx_t_2 = 0; - __Pyx_GIVEREF(__pyx_t_3); - if (unlikely(__Pyx_ListComp_AppendAndDecref(__pyx_t_1, __pyx_t_3))) __PYX_ERR(2, 422, __pyx_L1_error) - __pyx_t_3 = 0; + __pyx_t_2 = (__pyx_v_length == 0); - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_opt_input_values = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; + if (__pyx_t_2) { - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { - __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); - __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 425, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 425, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 425, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6)); - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_6); - #endif - ++__pyx_t_6; - } - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 425, __pyx_L1_error) - } else { - __pyx_t_4 = __pyx_t_7(__pyx_t_3); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 425, __pyx_L1_error) - PyErr_Clear(); - } - break; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; } + __Pyx_XDECREF(__pyx_temp); } - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_4); - __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_n); - __Pyx_GIVEREF(__pyx_v_n); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_n) != (0)) __PYX_ERR(2, 424, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(2, 424, __pyx_L1_error); - __pyx_t_4 = 0; - __Pyx_GIVEREF(__pyx_t_2); - if (unlikely(__Pyx_ListComp_AppendAndDecref(__pyx_t_1, __pyx_t_2))) __PYX_ERR(2, 424, __pyx_L1_error) - __pyx_t_2 = 0; + __pyx_t_1 = 0; + goto __pyx_L0; } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_price_series_name_values = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PySequence_List(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 429, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_input_arrays = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_3 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 430, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_input_price_series_names = __pyx_t_1; - __pyx_t_1 = 0; - - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(2, 431, __pyx_L1_error) - if (__pyx_t_9) { - - } else { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_8 = __pyx_t_9; + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } - goto __pyx_L10_bool_binop_done; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } } - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 431, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 431, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = PyObject_IsInstance(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 431, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_10 = (!__pyx_t_9); - + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_8 = __pyx_t_10; + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9563, __pyx_L1_error) - __pyx_L10_bool_binop_done:; - if (__pyx_t_8) { + /*try:*/ { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_t_3 = __pyx_mstate_global->__pyx_int_0; - if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { - __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); - __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 432, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 432, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 432, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6)); - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_6); - #endif - ++__pyx_t_6; + __pyx_v_lookback = (__pyx_v_begidx + TA_TSF_Lookback(__pyx_v_timeperiod)); } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 432, __pyx_L1_error) - } else { - __pyx_t_2 = __pyx_t_7(__pyx_t_1); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 432, __pyx_L1_error) - PyErr_Clear(); + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; } - break; + __pyx_L12:; } - } - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_2); - __pyx_t_2 = 0; - __Pyx_INCREF(__pyx_t_3); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); - __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_3, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); - __pyx_t_3 = __pyx_t_2; - __pyx_t_2 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 433, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = PyObject_IsInstance(__pyx_v_arg, __pyx_t_2); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 433, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_10 = (!__pyx_t_8); - - - if (__pyx_t_10) { - - - goto __pyx_L13_break; + } - } + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9567, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_input_price_series_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 437, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_2); - if (unlikely((PyDict_SetItem(__pyx_v_input_arrays, __pyx_t_2, __pyx_v_arg) < 0))) __PYX_ERR(2, 437, __pyx_L15_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - + __pyx_v_retCode = TA_TSF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - goto __pyx_L22_try_end; - __pyx_L15_error:; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError)))); - if (__pyx_t_14) { - __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(2, 438, __pyx_L17_except_error) - __Pyx_XGOTREF(__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_4); - __Pyx_XGOTREF(__pyx_t_15); - - __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 440, __pyx_L17_except_error) - __pyx_t_17 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_17)) __PYX_ERR(2, 440, __pyx_L17_except_error) - __Pyx_GOTREF(__pyx_t_17); - - - __pyx_t_18 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_18)) __PYX_ERR(2, 441, __pyx_L17_except_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Too_many_price_arguments_expecte; - __pyx_t_19[1] = __pyx_t_17; - __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__5; - __pyx_t_19[3] = __pyx_t_18; - __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__6; - __pyx_t_16 = 38; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_16 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[3]); - #endif - __pyx_t_14 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_14 |= __Pyx_PyUnicode_KIND_04(__pyx_t_19[3]); - #endif - __pyx_t_20 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, __pyx_t_16, __pyx_t_14); - if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 439, __pyx_L17_except_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_v_msg = ((PyObject*)__pyx_t_20); - __pyx_t_20 = 0; - - __pyx_t_18 = NULL; - __pyx_t_5 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_v_msg}; - __pyx_t_20 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 442, __pyx_L17_except_error) - __Pyx_GOTREF(__pyx_t_20); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; } - __Pyx_Raise(__pyx_t_20, 0, 0, 0); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __PYX_ERR(2, 442, __pyx_L17_except_error) + __pyx_L15:; } - goto __pyx_L17_except_error; - - __pyx_L17_except_error:; - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); - goto __pyx_L1_error; - __pyx_L22_try_end:; - } - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L25_for_end; - __pyx_L13_break:; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L25_for_end; - __pyx_L25_for_end:; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = (__pyx_t_3 != Py_None); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_8) { - - } else { - - __pyx_t_10 = __pyx_t_8; - - goto __pyx_L27_bool_binop_done; } - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 445, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_10 = __pyx_t_8; - - __pyx_L27_bool_binop_done:; - - if (__pyx_t_10) { - - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 446, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 446, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_no_existing_input_arrays = __pyx_t_3; - __pyx_t_3 = 0; - - goto __pyx_L26; - } + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = (__pyx_t_3 != Py_None); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_8) { + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - } else { + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_10 = __pyx_t_8; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - goto __pyx_L29_bool_binop_done; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; } - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 448, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 448, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 448, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_10 = __pyx_t_8; - - __pyx_L29_bool_binop_done:; - - if (__pyx_t_10) { - - - __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 449, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_3 = __pyx_t_15; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_empty, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 449, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_no_existing_input_arrays = __pyx_t_1; - __pyx_t_1 = 0; - - goto __pyx_L26; - } - - /*else*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 451, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 451, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong((!(!(!__pyx_t_10)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 451, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - - __pyx_v_no_existing_input_arrays = __pyx_t_1; - __pyx_t_1 = 0; - } - __pyx_L26:; - - __pyx_t_6 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(2, 453, __pyx_L1_error) - __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 453, __pyx_L1_error) - __pyx_t_10 = (__pyx_t_6 == __pyx_t_16); - - - - if (__pyx_t_10) { - - - __pyx_t_15 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_15); - __pyx_t_5 = 0; + { + PyObject *__pyx_temp; { - PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_v_input_arrays}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 454, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 455, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_args, __pyx_t_16, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 455, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - - __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1); - __pyx_t_1 = 0; - - goto __pyx_L31; - } - - __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 456, __pyx_L1_error) - __pyx_t_8 = (__pyx_t_16 != 0); - - - if (!__pyx_t_8) { - - } else { - - __pyx_t_10 = __pyx_t_8; - - goto __pyx_L32_bool_binop_done; + __Pyx_XDECREF(__pyx_temp); } - __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_no_existing_input_arrays); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 456, __pyx_L1_error) - if (__pyx_t_8) { + goto __pyx_L0; - } else { - __pyx_t_10 = __pyx_t_8; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - goto __pyx_L32_bool_binop_done; - } - __pyx_t_16 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 457, __pyx_L1_error) - __pyx_t_8 = (!(__pyx_t_16 != 0)); - if (!__pyx_t_8) { - } else { - __pyx_t_10 = __pyx_t_8; - goto __pyx_L32_bool_binop_done; - } - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_8 = PyObject_IsInstance(__pyx_t_1, __pyx_t_15); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 457, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_9 = (!__pyx_t_8); - - - - __pyx_t_10 = __pyx_t_9; - - __pyx_L32_bool_binop_done:; - - if (unlikely(__pyx_t_10)) { - - - __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 459, __pyx_L1_error) - __pyx_t_15 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 459, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - - - __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Not_enough_price_arguments_expec; - __pyx_t_19[1] = __pyx_t_15; - __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__5; - __pyx_t_19[3] = __pyx_t_1; - __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__6; - - __pyx_t_16 = 40; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_16 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[3]); - #endif - __pyx_t_14 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_14 |= __Pyx_PyUnicode_KIND_04(__pyx_t_19[3]); - #endif - __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, __pyx_t_16, __pyx_t_14); - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 458, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_msg = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - __pyx_t_1 = NULL; - __pyx_t_5 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_msg}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(2, 461, __pyx_L1_error) - - } - __pyx_L31:; - - /*try:*/ { - - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 464, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 464, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_15 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 464, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 464, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_15 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_15); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_15, NULL}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 465, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - - /*finally:*/ { - /*normal exit:*/{ - __pyx_t_4 = __pyx_v_opt_input_values; __Pyx_INCREF(__pyx_t_4); - __pyx_t_16 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 468, __pyx_L1_error) - #endif - if (__pyx_t_16 >= __pyx_temp) break; - } - __pyx_t_15 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_16; - if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 468, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) { - PyObject* sequence = __pyx_t_15; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 468, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_1); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_3); - } else { - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 468, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 468, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_3); - } - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 468, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 468, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_2 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 468, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); - index = 0; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L41_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 1; __pyx_t_3 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L41_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 468, __pyx_L1_error) - __pyx_t_21 = NULL; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L42_unpacking_done; - __pyx_L41_unpacking_failed:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_21 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 468, __pyx_L1_error) - __pyx_L42_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_1); - __pyx_t_1 = 0; - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_3); - __pyx_t_3 = 0; - - __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 469, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 469, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 469, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_4) < 0))) __PYX_ERR(2, 470, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __pyx_v_price_series_name_values; __Pyx_INCREF(__pyx_t_4); - __pyx_t_16 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 473, __pyx_L1_error) - #endif - if (__pyx_t_16 >= __pyx_temp) break; - } - __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_16; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { - PyObject* sequence = __pyx_t_3; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 473, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_15); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_1); - } else { - __pyx_t_15 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 473, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_15); - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 473, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_1); - } - #else - __pyx_t_15 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); - index = 0; __pyx_t_15 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L46_unpacking_failed; - __Pyx_GOTREF(__pyx_t_15); - index = 1; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L46_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 473, __pyx_L1_error) - __pyx_t_21 = NULL; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L47_unpacking_done; - __pyx_L46_unpacking_failed:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_21 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 473, __pyx_L1_error) - __pyx_L47_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_15); - __pyx_t_15 = 0; - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_value) < 0))) __PYX_ERR(2, 474, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_v_input_name, __pyx_v_value) < 0))) __PYX_ERR(2, 475, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - goto __pyx_L38; - } - __pyx_L37_error:; - /*exception exit:*/{ - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_ExceptionSwap(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26); - if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_24); - __Pyx_XGOTREF(__pyx_t_25); - __Pyx_XGOTREF(__pyx_t_26); - __pyx_t_14 = __pyx_lineno; __pyx_t_22 = __pyx_clineno; __pyx_t_23 = __pyx_filename; - { - - __pyx_t_4 = __pyx_v_opt_input_values; __Pyx_INCREF(__pyx_t_4); - __pyx_t_16 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 468, __pyx_L50_error) - #endif - if (__pyx_t_16 >= __pyx_temp) break; - } - __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_16; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 468, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_3); - if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { - PyObject* sequence = __pyx_t_3; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 468, __pyx_L50_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_1); - __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_15); - } else { - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 468, __pyx_L50_error) - __Pyx_XGOTREF(__pyx_t_1); - __pyx_t_15 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 468, __pyx_L50_error) - __Pyx_XGOTREF(__pyx_t_15); - } - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 468, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_15 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 468, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_15); - #endif - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 468, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); - index = 0; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L53_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 1; __pyx_t_15 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L53_unpacking_failed; - __Pyx_GOTREF(__pyx_t_15); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 468, __pyx_L50_error) - __pyx_t_21 = NULL; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L54_unpacking_done; - __pyx_L53_unpacking_failed:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_21 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 468, __pyx_L50_error) - __pyx_L54_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_1); - __pyx_t_1 = 0; - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_15); - __pyx_t_15 = 0; - - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 469, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_param_name); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 469, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 469, __pyx_L50_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 470, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 470, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_15); - if (unlikely((PyObject_SetItem(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_4) < 0))) __PYX_ERR(2, 470, __pyx_L50_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __pyx_v_price_series_name_values; __Pyx_INCREF(__pyx_t_4); - __pyx_t_16 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 473, __pyx_L50_error) - #endif - if (__pyx_t_16 >= __pyx_temp) break; - } - __pyx_t_15 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_16; - if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 473, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_15); - if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) { - PyObject* sequence = __pyx_t_15; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 473, __pyx_L50_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_3); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_1); - } else { - __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 473, __pyx_L50_error) - __Pyx_XGOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 473, __pyx_L50_error) - __Pyx_XGOTREF(__pyx_t_1); - } - #else - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 473, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 473, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_2 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 473, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); - index = 0; __pyx_t_3 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L58_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 1; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L58_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 473, __pyx_L50_error) - __pyx_t_21 = NULL; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L59_unpacking_done; - __pyx_L58_unpacking_failed:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_21 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 473, __pyx_L50_error) - __pyx_L59_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_3); - __pyx_t_3 = 0; - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 474, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 474, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_value) < 0))) __PYX_ERR(2, 474, __pyx_L50_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 475, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 475, __pyx_L50_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_15, __pyx_v_input_name, __pyx_v_value) < 0))) __PYX_ERR(2, 475, __pyx_L50_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_XGIVEREF(__pyx_t_25); - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_25, __pyx_t_26); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_13, __pyx_t_12, __pyx_t_11); - __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; - __pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_22; __pyx_filename = __pyx_t_23; - goto __pyx_L1_error; - __pyx_L50_error:; - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_XGIVEREF(__pyx_t_25); - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_25, __pyx_t_26); - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; - goto __pyx_L1_error; - } - __pyx_L38:; - } - - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_4 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_XDECREF(__pyx_t_17); - __Pyx_XDECREF(__pyx_t_18); - __Pyx_XDECREF(__pyx_t_20); - __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_args); - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_opt_input_values); - __Pyx_XDECREF(__pyx_v_price_series_name_values); - __Pyx_XDECREF(__pyx_v_input_arrays); - __Pyx_XDECREF(__pyx_v_input_price_series_names); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_arg); - __Pyx_XDECREF(__pyx_v_msg); - __Pyx_XDECREF(__pyx_v_no_existing_input_arrays); - __Pyx_XDECREF(__pyx_v_param_name); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_n); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_465TSI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names, "Function.__input_price_series_names(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names = {"__input_price_series_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_464TSI, "TSI(ndarray real, int firstperiod=-0x80000000, int secondperiod=-0x80000000)\n\nTSI(real[, firstperiod=?, secondperiod=?])\n\nTrue Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n firstperiod: 25\n secondperiod: 13\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_465TSI = {"TSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_465TSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_464TSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_465TSI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_firstperiod; + int __pyx_v_secondperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__input_price_series_names (wrapper)", 0); + __Pyx_RefNannySetupContext("TSI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -105886,232 +110375,301 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 480, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9576, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9576, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9576, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 480, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9576, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__input_price_series_names", 0) < (0)) __PYX_ERR(2, 480, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSI", 0) < (0)) __PYX_ERR(6, 9576, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__input_price_series_names", 1, 1, 1, i); __PYX_ERR(2, 480, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, i); __PYX_ERR(6, 9576, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 480, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9576, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9576, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9576, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9578, __pyx_L3_error) + } else { + __pyx_v_firstperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9578, __pyx_L3_error) + } else { + __pyx_v_secondperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__input_price_series_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 480, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 9576, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__input_price_series_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9578, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_464TSI(__pyx_self, __pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_input_price_series_names = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_price_series = NULL; - PyObject *__pyx_v_name = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_464TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - Py_ssize_t __pyx_t_3; - PyObject *(*__pyx_t_4)(PyObject *); - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - Py_ssize_t __pyx_t_7; - PyObject *(*__pyx_t_8)(PyObject *); - int __pyx_t_9; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__input_price_series_names", 0); + __Pyx_RefNannySetupContext("TSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 481, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 482, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_input_price_series_names = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 483, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - __pyx_t_4 = NULL; - } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 483, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 483, __pyx_L1_error) } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_4)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 483, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_3; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 483, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); - #endif - ++__pyx_t_3; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 483, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_4(__pyx_t_2); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 483, __pyx_L1_error) - PyErr_Clear(); + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; } - break; + __pyx_L6:; } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9605, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 484, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 484, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 484, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9609, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = PyList_Check(__pyx_v_price_series); - if (__pyx_t_6) { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_retCode = TA_TSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - if (likely(PyList_CheckExact(__pyx_v_price_series)) || PyTuple_CheckExact(__pyx_v_price_series)) { - __pyx_t_1 = __pyx_v_price_series; __Pyx_INCREF(__pyx_t_1); - __pyx_t_7 = 0; - __pyx_t_8 = NULL; - } else { - __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 486, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_8)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 486, __pyx_L1_error) - #endif - if (__pyx_t_7 >= __pyx_temp) break; - } - __pyx_t_5 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_7; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 486, __pyx_L1_error) - #endif - if (__pyx_t_7 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7)); - #else - __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_7); - #endif - ++__pyx_t_7; - } - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 486, __pyx_L1_error) - } else { - __pyx_t_5 = __pyx_t_8(__pyx_t_1); - if (unlikely(!__pyx_t_5)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 486, __pyx_L1_error) - PyErr_Clear(); - } - break; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; } + __pyx_L15:; } - __Pyx_GOTREF(__pyx_t_5); - __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5); - __pyx_t_5 = 0; + } + } - __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_name); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 487, __pyx_L1_error) + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - goto __pyx_L5; + goto __pyx_L9; } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - /*else*/ { - __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_price_series); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 489, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; } - __pyx_L5:; - + __pyx_L9:; } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_input_price_series_names); - __pyx_r = __pyx_v_input_price_series_names; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -106121,16 +110679,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.Function.__input_price_series_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_input_price_series_names); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_price_series); - __Pyx_XDECREF(__pyx_v_name); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -106138,34 +110698,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_467TYPPRICE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_36__call_function, "Function.__call_function(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_37__call_function = {"__call_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_37__call_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_36__call_function}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_466TYPPRICE, "TYPPRICE(ndarray high, ndarray low, ndarray close)\n\nTYPPRICE(high, low, close)\n\nTypical Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_467TYPPRICE = {"TYPPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_467TYPPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_466TYPPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_467TYPPRICE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__call_function (wrapper)", 0); + __Pyx_RefNannySetupContext("TYPPRICE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -106175,504 +110737,323 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 492, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9618, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9618, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9618, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 492, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9618, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__call_function", 0) < (0)) __PYX_ERR(2, 492, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__call_function", 1, 1, 1, i); __PYX_ERR(2, 492, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TYPPRICE", 0) < (0)) __PYX_ERR(6, 9618, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, i); __PYX_ERR(6, 9618, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 492, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9618, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9618, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9618, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__call_function", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 492, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(6, 9618, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__call_function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_36__call_function(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 9620, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 9620, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 9620, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_466TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_input_price_series_names = NULL; - PyObject *__pyx_v_args = NULL; - PyObject *__pyx_v_price_series = NULL; - PyObject *__pyx_v_series = NULL; - PyObject *__pyx_v_opt_input = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_results = NULL; - PyObject *__pyx_v_keys = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_output = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_466TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *(*__pyx_t_5)(PyObject *); - PyObject *__pyx_t_6 = NULL; - int __pyx_t_7; - int __pyx_t_8; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; - int __pyx_t_11; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__call_function", 0); + __Pyx_RefNannySetupContext("TYPPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 494, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_input_price_series_names = __pyx_t_1; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 497, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_args = ((PyObject*)__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (likely(PyList_CheckExact(__pyx_v_input_price_series_names)) || PyTuple_CheckExact(__pyx_v_input_price_series_names)) { - __pyx_t_1 = __pyx_v_input_price_series_names; __Pyx_INCREF(__pyx_t_1); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 498, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 498, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 498, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 498, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 498, __pyx_L1_error) - } else { - __pyx_t_2 = __pyx_t_5(__pyx_t_1); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 498, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_2); - __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_price_series); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF_SET(__pyx_v_series, __pyx_t_6); - __pyx_t_6 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 500, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = (__pyx_t_6 != Py_None); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__pyx_t_8) { - - } else { - - __pyx_t_7 = __pyx_t_8; - - goto __pyx_L6_bool_binop_done; - } - - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 501, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 501, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_7 = __pyx_t_8; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 9640, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_L6_bool_binop_done:; + __pyx_t_3 = (__pyx_v_length == 0); - if (__pyx_t_7) { + if (__pyx_t_3) { - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_series, __pyx_mstate_global->__pyx_n_u_values); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 502, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __pyx_t_9; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)(&PyFloat_Type))}; - __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 502, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; } - __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6); - __pyx_t_6 = 0; - - goto __pyx_L5; - } - - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = (__pyx_t_6 != Py_None); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__pyx_t_8) { - - } else { - - __pyx_t_7 = __pyx_t_8; - - goto __pyx_L8_bool_binop_done; + __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; + goto __pyx_L0; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 504, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 504, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_7 = __pyx_t_8; - - __pyx_L8_bool_binop_done:; - - if (__pyx_t_7) { + } + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_10 = __pyx_v_series; - __Pyx_INCREF(__pyx_t_10); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_numpy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); } - __pyx_t_9 = __pyx_t_2; - __Pyx_INCREF(__pyx_t_9); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_9, ((PyObject *)(&PyFloat_Type))}; - __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; } - __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6); - __pyx_t_6 = 0; + } - } - __pyx_L5:; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_series); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 506, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9646, __pyx_L1_error) + /*try:*/ { - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 507, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_6))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 507, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_6, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_6); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 507, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; + __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_Lookback()); } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 507, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_5(__pyx_t_6); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 507, __pyx_L1_error) - PyErr_Clear(); + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; } - break; - } } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9650, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_value); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 509, __pyx_L1_error) - - - } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 512, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 512, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 512, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_results = __pyx_t_2; - __pyx_t_2 = 0; - - __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_results, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray); - if (__pyx_t_7) { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_retCode = TA_TYPPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 514, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __pyx_t_6; - __Pyx_INCREF(__pyx_t_1); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 514, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } } - __pyx_v_keys = __pyx_t_2; - __pyx_t_2 = 0; - - __pyx_t_7 = PyList_Check(__pyx_v_keys); - __pyx_t_8 = (!__pyx_t_7); - - - if (__pyx_t_8) { + } + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_2 = PySequence_List(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 516, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_2); - __pyx_t_2 = 0; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 517, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_keys, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 517, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_t_6, __pyx_v_results) < 0))) __PYX_ERR(2, 517, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - goto __pyx_L14; - } + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - /*else*/ { - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_t_6 = __pyx_mstate_global->__pyx_int_0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 519, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { - __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 519, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 519, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 519, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 519, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 519, __pyx_L1_error) - } else { - __pyx_t_2 = __pyx_t_5(__pyx_t_1); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 519, __pyx_L1_error) - PyErr_Clear(); - } - break; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } } } - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_2); - __pyx_t_2 = 0; - __Pyx_INCREF(__pyx_t_6); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6); - __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_6, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 519, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_6); - __pyx_t_6 = __pyx_t_2; - __pyx_t_2 = 0; + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L9:; + } - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_results, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (unlikely((PyObject_SetItem(__pyx_t_9, __pyx_v_output, __pyx_t_2) < 0))) __PYX_ERR(2, 520, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_temp); } - __pyx_L14:; - - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_True) < (0)) __PYX_ERR(2, 521, __pyx_L1_error) + goto __pyx_L0; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("talib._ta_lib.Function.__call_function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_input_price_series_names); - __Pyx_XDECREF(__pyx_v_args); - __Pyx_XDECREF(__pyx_v_price_series); - __Pyx_XDECREF(__pyx_v_series); - __Pyx_XDECREF(__pyx_v_opt_input); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_results); - __Pyx_XDECREF(__pyx_v_keys); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_output); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -106680,36 +111061,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_469ULTOSC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value, "Function.__check_opt_input_value(self, input_name, value)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value = {"__check_opt_input_value", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_468ULTOSC, "ULTOSC(ndarray high, ndarray low, ndarray close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)\n\nULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\nUltimate Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod1: 7\n timeperiod2: 14\n timeperiod3: 28\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_469ULTOSC = {"ULTOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_469ULTOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_468ULTOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_469ULTOSC(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_name = 0; - PyObject *__pyx_v_value = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod1; + int __pyx_v_timeperiod2; + int __pyx_v_timeperiod3; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__check_opt_input_value (wrapper)", 0); + __Pyx_RefNannySetupContext("ULTOSC (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -106719,251 +111103,345 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,&__pyx_mstate_global->__pyx_n_u_value,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 523, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9659, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 9659, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 9659, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 9659, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__check_opt_input_value", 0) < (0)) __PYX_ERR(2, 523, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ULTOSC", 0) < (0)) __PYX_ERR(6, 9659, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, i); __PYX_ERR(2, 523, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, i); __PYX_ERR(6, 9659, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 523, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 523, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 523, __pyx_L3_error) + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 9659, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 9659, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 9659, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9659, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9659, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9659, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9661, __pyx_L3_error) + } else { + __pyx_v_timeperiod1 = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9661, __pyx_L3_error) + } else { + __pyx_v_timeperiod2 = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9661, __pyx_L3_error) + } else { + __pyx_v_timeperiod3 = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; - __pyx_v_input_name = values[1]; - __pyx_v_value = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 523, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, __pyx_nargs); __PYX_ERR(6, 9659, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__check_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name, __pyx_v_value); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 9661, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 9661, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 9661, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_468ULTOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name, PyObject *__pyx_v_value) { - PyObject *__pyx_v_type_ = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_468ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; + npy_intp __pyx_t_2; int __pyx_t_3; int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9[7]; - Py_ssize_t __pyx_t_10; - int __pyx_t_11; - size_t __pyx_t_12; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__check_opt_input_value", 0); + __Pyx_RefNannySetupContext("ULTOSC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 524, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_type_ = __pyx_t_2; - __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __Pyx_INCREF(__pyx_v_type_); - __pyx_t_2 = __pyx_v_type_; - __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 525, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(2, 525, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!__pyx_t_4) { - - } else { - - __pyx_t_3 = __pyx_t_4; + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 525, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(2, 525, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_3 = __pyx_t_4; + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_L4_bool_binop_done:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 9685, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + __pyx_t_3 = (__pyx_v_length == 0); - if (__pyx_t_4) { + if (__pyx_t_3) { - __Pyx_INCREF((PyObject *)(&PyLong_Type)); - __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyLong_Type))); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; - goto __pyx_L3; } - __Pyx_INCREF(__pyx_v_type_); - __pyx_t_2 = __pyx_v_type_; - __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 527, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 527, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!__pyx_t_3) { - - } else { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_4 = __pyx_t_3; + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + } - goto __pyx_L6_bool_binop_done; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } } - __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 527, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 527, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_t_3; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_L6_bool_binop_done:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_t_4; + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9691, __pyx_L1_error) + /*try:*/ { - if (__pyx_t_3) { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_lookback = (__pyx_v_begidx + TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3)); + } - __Pyx_INCREF((PyObject *)(&PyFloat_Type)); - __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyFloat_Type))); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } - } - __pyx_L3:; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9695, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_v_type_); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 530, __pyx_L1_error) - if (__pyx_t_3) { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_retCode = TA_ULTOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(Py_True); - __pyx_r = Py_True; - } - __Pyx_XDECREF(__pyx_temp); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } } - goto __pyx_L0; - } - __pyx_t_3 = (__pyx_v_value != Py_None); - if (unlikely(__pyx_t_3)) { + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __pyx_t_1 = NULL; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_parameter_value_for; - __pyx_t_9[1] = __pyx_t_5; - __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_expected; - __pyx_t_9[3] = __pyx_t_7; - __pyx_t_9[4] = __pyx_mstate_global->__pyx_kp_u_got; - __pyx_t_9[5] = __pyx_t_8; - __pyx_t_9[6] = __pyx_mstate_global->__pyx_kp_u__6; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __pyx_t_10 = 46; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[5]); - #endif - __pyx_t_11 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_9[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[5]); - #endif - __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_9, 7, __pyx_t_10, __pyx_t_11); - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_12 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 533, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(2, 533, __pyx_L1_error) - + __pyx_L9:; } + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(Py_False); - __pyx_r = Py_False; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -106973,15 +111451,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CY /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.Function.__check_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_type_); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -106989,35 +111472,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CY /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_471VAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value, "Function.__get_opt_input_value(self, input_name)\n\nReturns the user-set value if there is one, otherwise the default."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value = {"__get_opt_input_value", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_470VAR, "VAR(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nVAR(real[, timeperiod=?, nbdev=?])\n\nVariance (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_471VAR = {"VAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_471VAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_470VAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_471VAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_name = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdev; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get_opt_input_value (wrapper)", 0); + __Pyx_RefNannySetupContext("VAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -107027,113 +111511,301 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 538, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9704, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9704, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 538, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9704, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 538, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9704, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__get_opt_input_value", 0) < (0)) __PYX_ERR(2, 538, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, i); __PYX_ERR(2, 538, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VAR", 0) < (0)) __PYX_ERR(6, 9704, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, i); __PYX_ERR(6, 9704, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 538, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 538, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9704, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9704, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9704, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9706, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 9706, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); } - __pyx_v_self = values[0]; - __pyx_v_input_name = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 538, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 9704, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__get_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9706, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_470VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_value = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_470VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; + int __pyx_t_2; int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get_opt_input_value", 0); + __Pyx_RefNannySetupContext("VAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 542, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_value = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_3 = (__pyx_v_value == Py_None); - if (__pyx_t_3) { + __pyx_t_2 = (__pyx_v_length == 0); + if (__pyx_t_2) { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9733, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9737, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_VAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; } + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_value); - __pyx_r = __pyx_v_value; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -107143,12 +111815,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTH /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Function.__get_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_value); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -107156,34 +111834,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTH /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_473VHF(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_42__repr__, "Function.__repr__(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_43__repr__ = {"__repr__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_43__repr__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_42__repr__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_472VHF, "VHF(ndarray real, int timeperiod=-0x80000000)\n\nVHF(real[, timeperiod=?])\n\nVertical Horizontal Filter (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 28\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_473VHF = {"VHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_473VHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_472VHF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_473VHF(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); + __Pyx_RefNannySetupContext("VHF (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -107193,88 +111872,308 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 548, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9746, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9746, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 548, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9746, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__repr__", 0) < (0)) __PYX_ERR(2, 548, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VHF", 0) < (0)) __PYX_ERR(6, 9746, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, i); __PYX_ERR(2, 548, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, i); __PYX_ERR(6, 9746, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 548, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9746, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9746, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9748, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 548, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 9746, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_42__repr__(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9748, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_472VHF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_472VHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__repr__", 0); + __Pyx_RefNannySetupContext("VHF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 549, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9774, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_VHF_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9778, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_VHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_2, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 549, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Function.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -107282,34 +112181,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_475VIDYA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_44__unicode__, "Function.__unicode__(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__ = {"__unicode__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_44__unicode__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_474VIDYA, "VIDYA(ndarray real, int timeperiod=-0x80000000, int cmoperiod=-0x80000000)\n\nVIDYA(real[, timeperiod=?, cmoperiod=?])\n\nVariable Index Dynamic Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 12\n cmoperiod: 9\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_475VIDYA = {"VIDYA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_475VIDYA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_474VIDYA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_475VIDYA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_cmoperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__unicode__ (wrapper)", 0); + __Pyx_RefNannySetupContext("VIDYA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -107319,97 +112220,322 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_cmoperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 551, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9787, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9787, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9787, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9787, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__unicode__", 0) < (0)) __PYX_ERR(2, 551, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VIDYA", 0) < (0)) __PYX_ERR(6, 9787, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__unicode__", 1, 1, 1, i); __PYX_ERR(2, 551, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VIDYA", 0, 1, 3, i); __PYX_ERR(6, 9787, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 551, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9787, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9787, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9787, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9789, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_cmoperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_cmoperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9789, __pyx_L3_error) + } else { + __pyx_v_cmoperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__unicode__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 551, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VIDYA", 0, 1, 3, __pyx_nargs); __PYX_ERR(6, 9787, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VIDYA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9789, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_474VIDYA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_cmoperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_474VIDYA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_cmoperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__unicode__", 0); + __Pyx_RefNannySetupContext("VIDYA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9809, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } - __pyx_t_2 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_str, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 552, __pyx_L1_error) + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9816, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_VIDYA_Lookback(__pyx_v_timeperiod, __pyx_v_cmoperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9820, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_VIDYA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_cmoperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } } - __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 552, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VIDYA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Function.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VIDYA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -107417,34 +112543,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_477VORTEX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_46__str__, "Function.__str__(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_47__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_47__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_46__str__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_476VORTEX, "VORTEX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nVORTEX(high, low, close[, timeperiod=?])\n\nVortex Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n plusvi\n minusvi"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_477VORTEX = {"VORTEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_477VORTEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_476VORTEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_477VORTEX(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); + __Pyx_RefNannySetupContext("VORTEX (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -107454,469 +112583,371 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 554, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9829, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 9829, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9829, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9829, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9829, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < (0)) __PYX_ERR(2, 554, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(2, 554, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VORTEX", 0) < (0)) __PYX_ERR(6, 9829, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, i); __PYX_ERR(6, 9829, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 554, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 9829, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9829, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9829, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9829, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9831, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 554, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 9829, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_46__str__(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 9831, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 9831, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 9831, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_476VORTEX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_476VORTEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outplusvi = 0; + PyArrayObject *__pyx_v_outminusvi = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__str__", 0); + __Pyx_RefNannySetupContext("VORTEX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 555, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 555, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 9855, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9857, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 9857, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9857, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 9857, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 9857, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } __pyx_t_5 = 0; + goto __pyx_L0; + } - #endif + { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 555, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } } - __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 555, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9861, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_VORTEX_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9865, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outplusvi = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9866, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outminusvi = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_VORTEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outplusvi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminusvi)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L9:; + } + + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9872, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outplusvi); + __Pyx_GIVEREF((PyObject *)__pyx_v_outplusvi); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outplusvi)) != (0)) __PYX_ERR(6, 9873, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outminusvi); + __Pyx_GIVEREF((PyObject *)__pyx_v_outminusvi); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outminusvi)) != (0)) __PYX_ERR(6, 9873, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Function.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_431_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_430_ta_getGroupTable, "_ta_getGroupTable()\n\nReturns the list of available TALIB function group names. *slow*"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_431_ta_getGroupTable = {"_ta_getGroupTable", (PyCFunction)__pyx_pw_5talib_7_ta_lib_431_ta_getGroupTable, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_430_ta_getGroupTable}; -static PyObject *__pyx_pw_5talib_7_ta_lib_431_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getGroupTable (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_430_ta_getGroupTable(__pyx_self); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_430_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self) { - TA_StringTable *__pyx_v_table; - TA_RetCode __pyx_v_retCode; - PyObject *__pyx_v_groups = NULL; - unsigned int __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - unsigned int __pyx_t_10; - unsigned int __pyx_t_11; - unsigned int __pyx_t_12; - int __pyx_t_13; - int __pyx_t_14; - int __pyx_t_15; - char const *__pyx_t_16; - PyObject *__pyx_t_17 = NULL; - PyObject *__pyx_t_18 = NULL; - PyObject *__pyx_t_19 = NULL; - PyObject *__pyx_t_20 = NULL; - PyObject *__pyx_t_21 = NULL; - PyObject *__pyx_t_22 = NULL; - int __pyx_t_23; - int __pyx_t_24; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getGroupTable", 0); - - /*with:*/ { - __pyx_t_2 = NULL; - __pyx_t_3 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 574, __pyx_L1_error) - __Pyx_GOTREF((PyObject *)__pyx_t_1); - } - __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 574, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = NULL; - __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 574, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = 1; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_3 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 574, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0; - /*try:*/ { - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_9); - /*try:*/ { - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - __pyx_v_retCode = TA_GroupTableAlloc((&__pyx_v_table)); - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L15; - } - __pyx_L15:; - } - } - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableAlloc, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 577, __pyx_L7_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /*try:*/ { - - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 579, __pyx_L17_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_groups = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - - __pyx_t_10 = __pyx_v_table->size; - __pyx_t_11 = __pyx_t_10; - - for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { - __pyx_v_i = __pyx_t_12; - - __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 581, __pyx_L17_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_groups, __pyx_t_1); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(2, 581, __pyx_L17_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - } - - } - - /*finally:*/ { - /*normal exit:*/{ - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - __pyx_v_retCode = TA_GroupTableFree(__pyx_v_table); - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L23; - } - __pyx_L23:; - } - } - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableFree, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 585, __pyx_L7_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L18; - } - __pyx_L17_error:; - /*exception exit:*/{ - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); - if ( unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); - __Pyx_XGOTREF(__pyx_t_17); - __Pyx_XGOTREF(__pyx_t_18); - __Pyx_XGOTREF(__pyx_t_19); - __Pyx_XGOTREF(__pyx_t_20); - __Pyx_XGOTREF(__pyx_t_21); - __Pyx_XGOTREF(__pyx_t_22); - __pyx_t_14 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename; - { - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - __pyx_v_retCode = TA_GroupTableFree(__pyx_v_table); - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L28; - } - __pyx_L28:; - } - } - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableFree, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 585, __pyx_L25_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_XGIVEREF(__pyx_t_20); - __Pyx_XGIVEREF(__pyx_t_21); - __Pyx_XGIVEREF(__pyx_t_22); - __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); - __Pyx_XGIVEREF(__pyx_t_17); - __Pyx_XGIVEREF(__pyx_t_18); - __Pyx_XGIVEREF(__pyx_t_19); - __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19); - __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; - __pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16; - goto __pyx_L7_error; - __pyx_L25_error:; - __Pyx_XGIVEREF(__pyx_t_20); - __Pyx_XGIVEREF(__pyx_t_21); - __Pyx_XGIVEREF(__pyx_t_22); - __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); - __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; - goto __pyx_L7_error; - } - __pyx_L18:; - } - - } - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L12_try_end; - __pyx_L7_error:; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - /*except:*/ { - __Pyx_AddTraceback("talib._ta_lib._ta_getGroupTable", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_6) < 0) __PYX_ERR(2, 574, __pyx_L9_except_error) - __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_6); - { - PyObject* __pyx_temp[3] = {__pyx_t_1, __pyx_t_2, __pyx_t_6}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 574, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_5); - } - __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_22)) __PYX_ERR(2, 574, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_22); - __pyx_t_23 = __Pyx_PyObject_IsTrue(__pyx_t_22); - __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; - if (__pyx_t_23 < (0)) __PYX_ERR(2, 574, __pyx_L9_except_error) - __pyx_t_24 = (!__pyx_t_23); - - - if (unlikely(__pyx_t_24)) { - - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_2, __pyx_t_6); - __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_6 = 0; - __PYX_ERR(2, 574, __pyx_L9_except_error) - } - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - goto __pyx_L8_exception_handled; - } - __pyx_L9_except_error:; - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); - goto __pyx_L1_error; - __pyx_L8_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_L12_try_end:; - } - } - /*finally:*/ { - /*normal exit:*/{ - if (__pyx_t_4) { - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 574, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } - goto __pyx_L6; - } - __pyx_L6:; - } - goto __pyx_L32; - __pyx_L3_error:; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - goto __pyx_L1_error; - __pyx_L32:; - } - - if (unlikely(!__pyx_v_groups)) { __Pyx_RaiseUnboundLocalError("groups"); __PYX_ERR(2, 586, __pyx_L1_error) } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_groups); - __pyx_r = __pyx_v_groups; - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib._ta_getGroupTable", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_groups); + __Pyx_XDECREF((PyObject *)__pyx_v_outplusvi); + __Pyx_XDECREF((PyObject *)__pyx_v_outminusvi); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -107924,34 +112955,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_430_ta_getGroupTable(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_433_ta_getFuncTable(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_479VWAP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_432_ta_getFuncTable, "_ta_getFuncTable(char *group)\n\nReturns a list of the functions for the specified group name. *slow*"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_433_ta_getFuncTable = {"_ta_getFuncTable", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_433_ta_getFuncTable, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_432_ta_getFuncTable}; -static PyObject *__pyx_pw_5talib_7_ta_lib_433_ta_getFuncTable(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_478VWAP, "VWAP(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nVWAP(high, low, close, volume)\n\nVolume Weighted Average Price (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_479VWAP = {"VWAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_479VWAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_478VWAP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_479VWAP(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_group; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getFuncTable (wrapper)", 0); + __Pyx_RefNannySetupContext("VWAP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -107961,365 +112995,314 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_group,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 588, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9875, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 9875, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9875, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9875, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 588, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getFuncTable", 0) < (0)) __PYX_ERR(2, 588, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getFuncTable", 1, 1, 1, i); __PYX_ERR(2, 588, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWAP", 0) < (0)) __PYX_ERR(6, 9875, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, i); __PYX_ERR(6, 9875, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 588, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9875, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9875, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9875, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 9875, __pyx_L3_error) } - __pyx_v_group = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_group) && PyErr_Occurred())) __PYX_ERR(2, 588, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getFuncTable", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 588, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(6, 9875, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(__pyx_self, __pyx_v_group); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 9877, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 9877, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 9877, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 9877, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_478VWAP(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group) { - TA_StringTable *__pyx_v_table; +static PyObject *__pyx_pf_5talib_7_ta_lib_478VWAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; TA_RetCode __pyx_v_retCode; - PyObject *__pyx_v_functions = NULL; - unsigned int __pyx_v_i; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; - unsigned int __pyx_t_10; - unsigned int __pyx_t_11; - unsigned int __pyx_t_12; - int __pyx_t_13; - int __pyx_t_14; - int __pyx_t_15; - char const *__pyx_t_16; - PyObject *__pyx_t_17 = NULL; - PyObject *__pyx_t_18 = NULL; - PyObject *__pyx_t_19 = NULL; - PyObject *__pyx_t_20 = NULL; - PyObject *__pyx_t_21 = NULL; - PyObject *__pyx_t_22 = NULL; - int __pyx_t_23; - int __pyx_t_24; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getFuncTable", 0); + __Pyx_RefNannySetupContext("VWAP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - /*with:*/ { - __pyx_t_2 = NULL; - __pyx_t_3 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 594, __pyx_L1_error) - __Pyx_GOTREF((PyObject *)__pyx_t_1); - } - __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 594, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = NULL; - __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 594, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = 1; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_3 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 594, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0; - /*try:*/ { - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_9); - /*try:*/ { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_retCode = TA_FuncTableAlloc(__pyx_v_group, (&__pyx_v_table)); - } + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L15; - } - __pyx_L15:; - } - } + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableAlloc, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 597, __pyx_L7_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 9898, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /*try:*/ { + __pyx_t_3 = (__pyx_v_length == 0); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 599, __pyx_L17_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_functions = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; + if (__pyx_t_3) { - __pyx_t_10 = __pyx_v_table->size; - __pyx_t_11 = __pyx_t_10; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9900, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; - for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { - __pyx_v_i = __pyx_t_12; + } - __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 601, __pyx_L17_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_functions, __pyx_t_1); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(2, 601, __pyx_L17_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - } + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); + } - } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } - /*finally:*/ { - /*normal exit:*/{ - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_retCode = TA_FuncTableFree(__pyx_v_table); - } + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9904, __pyx_L1_error) - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L23; - } - __pyx_L23:; - } - } + /*try:*/ { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableFree, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 605, __pyx_L7_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L18; - } - __pyx_L17_error:; - /*exception exit:*/{ - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); - if ( unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); - __Pyx_XGOTREF(__pyx_t_17); - __Pyx_XGOTREF(__pyx_t_18); - __Pyx_XGOTREF(__pyx_t_19); - __Pyx_XGOTREF(__pyx_t_20); - __Pyx_XGOTREF(__pyx_t_21); - __Pyx_XGOTREF(__pyx_t_22); - __pyx_t_14 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename; - { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + __pyx_v_lookback = (__pyx_v_begidx + TA_VWAP_Lookback()); + } - __pyx_v_retCode = TA_FuncTableFree(__pyx_v_table); - } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L28; - } - __pyx_L28:; - } - } + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9908, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableFree, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 605, __pyx_L25_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_XGIVEREF(__pyx_t_20); - __Pyx_XGIVEREF(__pyx_t_21); - __Pyx_XGIVEREF(__pyx_t_22); - __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); - __Pyx_XGIVEREF(__pyx_t_17); - __Pyx_XGIVEREF(__pyx_t_18); - __Pyx_XGIVEREF(__pyx_t_19); - __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19); - __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; - __pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16; - goto __pyx_L7_error; - __pyx_L25_error:; - __Pyx_XGIVEREF(__pyx_t_20); - __Pyx_XGIVEREF(__pyx_t_21); - __Pyx_XGIVEREF(__pyx_t_22); - __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); - __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; - goto __pyx_L7_error; - } - __pyx_L18:; - } + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_retCode = TA_VWAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); } - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L12_try_end; - __pyx_L7_error:; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - /*except:*/ { - __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_6) < 0) __PYX_ERR(2, 594, __pyx_L9_except_error) - __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_6); - { - PyObject* __pyx_temp[3] = {__pyx_t_1, __pyx_t_2, __pyx_t_6}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 594, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_5); + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; } - __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_22)) __PYX_ERR(2, 594, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_22); - __pyx_t_23 = __Pyx_PyObject_IsTrue(__pyx_t_22); - __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; - if (__pyx_t_23 < (0)) __PYX_ERR(2, 594, __pyx_L9_except_error) - __pyx_t_24 = (!__pyx_t_23); + __pyx_L15:; + } + } + } + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - if (unlikely(__pyx_t_24)) { + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_2, __pyx_t_6); - __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_6 = 0; - __PYX_ERR(2, 594, __pyx_L9_except_error) + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; } - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - goto __pyx_L8_exception_handled; - } - __pyx_L9_except_error:; - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); - goto __pyx_L1_error; - __pyx_L8_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); - __pyx_L12_try_end:; } + goto __pyx_L9; } - /*finally:*/ { - /*normal exit:*/{ - if (__pyx_t_4) { - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 594, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } } - goto __pyx_L6; } - __pyx_L6:; + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; } - goto __pyx_L32; - __pyx_L3_error:; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - goto __pyx_L1_error; - __pyx_L32:; + __pyx_L9:; } - if (unlikely(!__pyx_v_functions)) { __Pyx_RaiseUnboundLocalError("functions"); __PYX_ERR(2, 606, __pyx_L1_error) } + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_functions); - __pyx_r = __pyx_v_functions; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -108329,16 +113312,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(CYTHON_UNUSED PyOb /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_functions); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -108346,35 +113334,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_435__get_flags(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_481VWMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_434__get_flags, "__get_flags(int flag, dict flags_lookup_dict)\n\nTA-LIB provides hints for multiple flags as a bitwise-ORed int.\nThis function returns the flags from flag found in the provided\nflags_lookup_dict."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_435__get_flags = {"__get_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_435__get_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_434__get_flags}; -static PyObject *__pyx_pw_5talib_7_ta_lib_435__get_flags(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_480VWMA, "VWMA(ndarray real, ndarray volume, int timeperiod=-0x80000000)\n\nVWMA(real, volume[, timeperiod=?])\n\nVolume Weighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_481VWMA = {"VWMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_481VWMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_480VWMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_481VWMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - int __pyx_v_flag; - PyObject *__pyx_v_flags_lookup_dict = 0; + PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get_flags (wrapper)", 0); + __Pyx_RefNannySetupContext("VWMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -108384,53 +113373,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flag,&__pyx_mstate_global->__pyx_n_u_flags_lookup_dict,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 608, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9917, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9917, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 608, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9917, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 608, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9917, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__get_flags", 0) < (0)) __PYX_ERR(2, 608, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWMA", 0) < (0)) __PYX_ERR(6, 9917, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, i); __PYX_ERR(2, 608, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, i); __PYX_ERR(6, 9917, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 608, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 608, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9917, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9917, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 9919, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_flag = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 608, __pyx_L3_error) - __pyx_v_flags_lookup_dict = ((PyObject*)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 608, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, __pyx_nargs); __PYX_ERR(6, 9917, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.__get_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flags_lookup_dict), (&PyDict_Type), 1, "flags_lookup_dict", 1))) __PYX_ERR(2, 608, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_434__get_flags(__pyx_self, __pyx_v_flag, __pyx_v_flags_lookup_dict); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 9919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(6, 9919, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_480VWMA(__pyx_self, __pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -108450,166 +113456,242 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_434__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict) { - PyObject *__pyx_v_bit = NULL; - PyObject *__pyx_v_description = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_480VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - Py_ssize_t __pyx_t_5; - PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get_flags", 0); + __Pyx_RefNannySetupContext("VWMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = (__pyx_v_flag < 1); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - if (__pyx_t_1) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 9941, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; } - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - if (unlikely(__pyx_v_flags_lookup_dict == Py_None)) { - PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "items"); - __PYX_ERR(2, 619, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyDict_Items(__pyx_v_flags_lookup_dict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 619, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 619, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely((PyList_Sort(__pyx_t_4) < 0))) __PYX_ERR(2, 619, __pyx_L1_error) - __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 619, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_5; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 619, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { - PyObject* sequence = __pyx_t_4; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 619, __pyx_L1_error) + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_6); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_7); - } else { - __pyx_t_6 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 619, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 619, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_7); + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; } - #else - __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 619, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 619, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 619, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); - index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 619, __pyx_L1_error) - __pyx_t_9 = NULL; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L7_unpacking_done; - __pyx_L6_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_9 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 619, __pyx_L1_error) - __pyx_L7_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_bit, __pyx_t_6); - __pyx_t_6 = 0; - __Pyx_XDECREF_SET(__pyx_v_description, __pyx_t_7); - __pyx_t_7 = 0; + } - __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_flag); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 620, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = __Pyx_PyNumber_And_object_int(__pyx_v_bit, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 620, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 620, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (__pyx_t_1) { + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9947, __pyx_L1_error) - if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, __pyx_v_description))) __PYX_ERR(2, 618, __pyx_L1_error) + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_VWMA_Lookback(__pyx_v_timeperiod)); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } } + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9951, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_VWMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L9:; + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.__get_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_bit); - __Pyx_XDECREF(__pyx_v_description); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -108617,34 +113699,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_434__get_flags(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_437_ta_getFuncInfo(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_483WAD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_436_ta_getFuncInfo, "_ta_getFuncInfo(char *function_name)\n\nReturns the info dict for the function. It has the following keys: name,\ngroup, help, flags, num_inputs, num_opt_inputs and num_outputs."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_437_ta_getFuncInfo = {"_ta_getFuncInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_437_ta_getFuncInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_436_ta_getFuncInfo}; -static PyObject *__pyx_pw_5talib_7_ta_lib_437_ta_getFuncInfo(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_482WAD, "WAD(ndarray high, ndarray low, ndarray close)\n\nWAD(high, low, close)\n\nWilliams\047 Accumulation/Distribution (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_483WAD = {"WAD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_483WAD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_482WAD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_483WAD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_function_name; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getFuncInfo (wrapper)", 0); + __Pyx_RefNannySetupContext("WAD (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -108654,67 +113738,97 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 666, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9960, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9960, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9960, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9960, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getFuncInfo", 0) < (0)) __PYX_ERR(2, 666, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getFuncInfo", 1, 1, 1, i); __PYX_ERR(2, 666, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WAD", 0) < (0)) __PYX_ERR(6, 9960, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, i); __PYX_ERR(6, 9960, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9960, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 9960, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 9960, __pyx_L3_error) } - __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 666, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getFuncInfo", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 666, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, __pyx_nargs); __PYX_ERR(6, 9960, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getFuncInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(__pyx_self, __pyx_v_function_name); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 9962, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 9962, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 9962, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_482WAD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name) { - TA_FuncInfo const *__pyx_v_info; - TA_FuncHandle const *__pyx_v_handle; +static PyObject *__pyx_pf_5talib_7_ta_lib_482WAD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; @@ -108724,290 +113838,223 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getFuncInfo", 0); + __Pyx_RefNannySetupContext("WAD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 672, __pyx_L1_error) - __pyx_v_handle = __pyx_t_1; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /*with:*/ { - __pyx_t_3 = NULL; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 674, __pyx_L1_error) - __Pyx_GOTREF((PyObject *)__pyx_t_2); - } - __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 674, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 674, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); - __pyx_t_4 = 0; - } - #endif + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 9982, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); { - PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 674, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0; - /*try:*/ { + PyObject *__pyx_temp; { - (void)__pyx_t_8; (void)__pyx_t_9; (void)__pyx_t_10; /* mark used */ - /*try:*/ { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + } - __pyx_v_retCode = TA_GetFuncInfo(__pyx_v_handle, (&__pyx_v_info)); - } + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L15; - } - __pyx_L15:; - } - } + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; } + __pyx_L6:; } - } - /*finally:*/ { - /*normal exit:*/{ - if (__pyx_t_5) { - __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 674, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9988, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_WAD_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; } - goto __pyx_L6; - } - __pyx_L6:; } - goto __pyx_L16; - __pyx_L3_error:; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - goto __pyx_L1_error; - __pyx_L16:; - } - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetFuncInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9992, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 680, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 680, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_11 = __Pyx_PyBytes_FromString(__pyx_v_info->name); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 680, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_7); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_11}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 680, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 681, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_7 = __Pyx_PyBytes_FromString(__pyx_v_info->group); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 681, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_11))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_7}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 681, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_group, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_retCode = TA_WAD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_11 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_7); - assert(__pyx_t_11); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_11); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_6}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_11 = __Pyx_PyLong_From_TA_FuncFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_7); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_11, __pyx_t_12}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_6 = NULL; - __pyx_t_12 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbInput); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_12}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __pyx_t_12 = NULL; - __pyx_t_6 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOptInput); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_6}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_opt_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_6 = NULL; - __pyx_t_12 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOutput); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 686, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_12}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 686, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L9:; } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_outputs, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_XDECREF(__pyx_t_12); - __Pyx_AddTraceback("talib._ta_lib._ta_getFuncInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.WAD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -109015,35 +114062,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_439_ta_getInputParameterInfo(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_485WAVETREND(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_438_ta_getInputParameterInfo, "_ta_getInputParameterInfo(char *function_name, int idx)\n\nReturns the function\047s input info dict for the given index. It has two\nkeys: name and flags."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_439_ta_getInputParameterInfo = {"_ta_getInputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_439_ta_getInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_438_ta_getInputParameterInfo}; -static PyObject *__pyx_pw_5talib_7_ta_lib_439_ta_getInputParameterInfo(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_484WAVETREND, "WAVETREND(ndarray high, ndarray low, ndarray close, int channelperiod=-0x80000000, int averageperiod=-0x80000000, int signalperiod=-0x80000000)\n\nWAVETREND(high, low, close[, channelperiod=?, averageperiod=?, signalperiod=?])\n\nWaveTrend Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n channelperiod: 10\n averageperiod: 21\n signalperiod: 4\nOutputs:\n wt1\n wt2"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_485WAVETREND = {"WAVETREND", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_485WAVETREND, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_484WAVETREND}; +static PyObject *__pyx_pw_5talib_7_ta_lib_485WAVETREND(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_function_name; - int __pyx_v_idx; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_channelperiod; + int __pyx_v_averageperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getInputParameterInfo (wrapper)", 0); + __Pyx_RefNannySetupContext("WAVETREND (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -109053,314 +114104,399 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_channelperiod,&__pyx_mstate_global->__pyx_n_u_averageperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 689, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 10001, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 10001, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 10001, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 10001, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 10001, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 689, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 10001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 689, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 10001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getInputParameterInfo", 0) < (0)) __PYX_ERR(2, 689, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 689, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WAVETREND", 0) < (0)) __PYX_ERR(6, 10001, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WAVETREND", 0, 3, 6, i); __PYX_ERR(6, 10001, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 689, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 689, __pyx_L3_error) + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(6, 10001, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(6, 10001, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 10001, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 10001, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 10001, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 10001, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_channelperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_channelperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 10003, __pyx_L3_error) + } else { + __pyx_v_channelperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_averageperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_averageperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 10003, __pyx_L3_error) + } else { + __pyx_v_averageperiod = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 10003, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); } - __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 689, __pyx_L3_error) - __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 689, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 689, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("WAVETREND", 0, 3, 6, __pyx_nargs); __PYX_ERR(6, 10001, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAVETREND", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 10003, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 10003, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 10003, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_484WAVETREND(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_channelperiod, __pyx_v_averageperiod, __pyx_v_signalperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { - TA_InputParameterInfo const *__pyx_v_info; - TA_FuncHandle const *__pyx_v_handle; +static PyObject *__pyx_pf_5talib_7_ta_lib_484WAVETREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_channelperiod, int __pyx_v_averageperiod, int __pyx_v_signalperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; TA_RetCode __pyx_v_retCode; - PyObject *__pyx_v_name = NULL; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outwt1 = 0; + PyArrayObject *__pyx_v_outwt2 = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; - Py_ssize_t __pyx_t_11; - int __pyx_t_12; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getInputParameterInfo", 0); + __Pyx_RefNannySetupContext("WAVETREND", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 695, __pyx_L1_error) - __pyx_v_handle = __pyx_t_1; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /*with:*/ { - __pyx_t_3 = NULL; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 697, __pyx_L1_error) - __Pyx_GOTREF((PyObject *)__pyx_t_2); - } - __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 697, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 697, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0; - /*try:*/ { - { - (void)__pyx_t_8; (void)__pyx_t_9; (void)__pyx_t_10; /* mark used */ - /*try:*/ { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_retCode = TA_GetInputParameterInfo(__pyx_v_handle, __pyx_v_idx, (&__pyx_v_info)); - } + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 10029, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L15; - } - __pyx_L15:; - } - } + __pyx_t_3 = (__pyx_v_length == 0); - } - } - } - /*finally:*/ { - /*normal exit:*/{ - if (__pyx_t_5) { - __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - } - goto __pyx_L6; - } - __pyx_L6:; - } - goto __pyx_L16; - __pyx_L3_error:; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - goto __pyx_L1_error; - __pyx_L16:; - } + if (__pyx_t_3) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 700, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 10031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 10031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 10031, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 10031, __pyx_L1_error); + __pyx_t_1 = 0; __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + } - #endif + { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __pyx_v_name = __pyx_t_2; - __pyx_t_2 = 0; + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_11 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_in); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(2, 703, __pyx_L1_error) - __pyx_t_6 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_11, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 703, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + } - __pyx_t_7 = __pyx_t_6; - __Pyx_INCREF(__pyx_t_7); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 703, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } } - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); - __pyx_t_2 = 0; - - __pyx_t_12 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(2, 704, __pyx_L1_error) - if (__pyx_t_12) { + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_replace); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[5], NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_6); - __pyx_t_6 = 0; + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 10035, __pyx_L1_error) - goto __pyx_L17; - } + /*try:*/ { - __pyx_t_12 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_price, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(2, 706, __pyx_L1_error) - if (__pyx_t_12) { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_lookback = (__pyx_v_begidx + TA_WAVETREND_Lookback(__pyx_v_channelperiod, __pyx_v_averageperiod, __pyx_v_signalperiod)); + } - __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_prices); - __Pyx_DECREF_SET(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_prices); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } - } - __pyx_L17:; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 10039, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outwt1 = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 710, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 710, __pyx_L1_error) + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 10040, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outwt2 = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_13 = __Pyx_PyLong_From_TA_InputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS); if (unlikely(!__pyx_t_14)) __PYX_ERR(2, 711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_7); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_13, __pyx_t_14}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - if (PyDict_SetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_2) < (0)) __PYX_ERR(2, 710, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - { - PyObject *__pyx_temp; { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_6 = 0; - goto __pyx_L0; + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_retCode = TA_WAVETREND(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_channelperiod, __pyx_v_averageperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outwt1)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outwt2)) + __pyx_v_lookback)); + } - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __Pyx_XDECREF(__pyx_v_name); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L9:; + } + + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAVETREND, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 10046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 10047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF((PyObject *)__pyx_v_outwt1); + __Pyx_GIVEREF((PyObject *)__pyx_v_outwt1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outwt1)) != (0)) __PYX_ERR(6, 10047, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outwt2); + __Pyx_GIVEREF((PyObject *)__pyx_v_outwt2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outwt2)) != (0)) __PYX_ERR(6, 10047, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.WAVETREND", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outwt1); + __Pyx_XDECREF((PyObject *)__pyx_v_outwt2); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -109368,35 +114504,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_441_ta_getOptInputParameterInfo(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_487WCLPRICE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_440_ta_getOptInputParameterInfo, "_ta_getOptInputParameterInfo(char *function_name, int idx)\n\nReturns the function\047s opt_input info dict for the given index. It has the\nfollowing keys: name, display_name, type, help, default_value and value."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_441_ta_getOptInputParameterInfo = {"_ta_getOptInputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_441_ta_getOptInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_440_ta_getOptInputParameterInfo}; -static PyObject *__pyx_pw_5talib_7_ta_lib_441_ta_getOptInputParameterInfo(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_486WCLPRICE, "WCLPRICE(ndarray high, ndarray low, ndarray close)\n\nWCLPRICE(high, low, close)\n\nWeighted Close Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_487WCLPRICE = {"WCLPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_487WCLPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_486WCLPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_487WCLPRICE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_function_name; - int __pyx_v_idx; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo (wrapper)", 0); + __Pyx_RefNannySetupContext("WCLPRICE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -109406,341 +114543,323 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 714, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 10049, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 10049, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 714, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 10049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 714, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 10049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getOptInputParameterInfo", 0) < (0)) __PYX_ERR(2, 714, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 714, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WCLPRICE", 0) < (0)) __PYX_ERR(6, 10049, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, i); __PYX_ERR(6, 10049, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 714, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 10049, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 714, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 10049, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 10049, __pyx_L3_error) } - __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 714, __pyx_L3_error) - __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 714, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 714, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(6, 10049, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getOptInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_440_ta_getOptInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 10051, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 10051, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 10051, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_486WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_440_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { - TA_OptInputParameterInfo const *__pyx_v_info; - TA_FuncHandle const *__pyx_v_handle; +static PyObject *__pyx_pf_5talib_7_ta_lib_486WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; TA_RetCode __pyx_v_retCode; - PyObject *__pyx_v_name = NULL; - PyObject *__pyx_v_default_value = NULL; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; - Py_ssize_t __pyx_t_11; - int __pyx_t_12; - PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo", 0); + __Pyx_RefNannySetupContext("WCLPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 720, __pyx_L1_error) - __pyx_v_handle = __pyx_t_1; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /*with:*/ { - __pyx_t_3 = NULL; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 722, __pyx_L1_error) - __Pyx_GOTREF((PyObject *)__pyx_t_2); - } - __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 722, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 722, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 722, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0; - /*try:*/ { - { - (void)__pyx_t_8; (void)__pyx_t_9; (void)__pyx_t_10; /* mark used */ - /*try:*/ { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_retCode = TA_GetOptInputParameterInfo(__pyx_v_handle, __pyx_v_idx, (&__pyx_v_info)); - } + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 10071, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L15; - } - __pyx_L15:; - } - } + __pyx_t_3 = (__pyx_v_length == 0); - } + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; } + __Pyx_XDECREF(__pyx_temp); } - /*finally:*/ { - /*normal exit:*/{ - if (__pyx_t_5) { - __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 722, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; } - goto __pyx_L6; + __pyx_L6:; } - __pyx_L6:; - } - goto __pyx_L16; - __pyx_L3_error:; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - goto __pyx_L1_error; - __pyx_L16:; } - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOptInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 725, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 727, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 727, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 727, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __pyx_v_name = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 10077, __pyx_L1_error) - __pyx_t_11 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_optIn); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(2, 728, __pyx_L1_error) - __pyx_t_6 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_11, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 728, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /*try:*/ { - __pyx_t_7 = __pyx_t_6; - __Pyx_INCREF(__pyx_t_7); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 728, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); - __pyx_t_2 = 0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_12 = (__pyx_v_info->type > 1); + __pyx_v_lookback = (__pyx_v_begidx + TA_WCLPRICE_Lookback()); + } - if (__pyx_t_12) { - __pyx_t_6 = PyLong_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 729, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __pyx_t_6; - __pyx_t_6 = 0; - } else { - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 729, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __pyx_t_6; - __pyx_t_6 = 0; - } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } - __pyx_v_default_value = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10081, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 732, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 732, __pyx_L1_error) + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 733, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_13 = __Pyx_PyBytes_FromString(__pyx_v_info->displayName); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 733, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_7); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_13}; - __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 733, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_v_retCode = TA_WCLPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_6) < (0)) __PYX_ERR(2, 732, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyLong_From_TA_OptInputParameterType(__pyx_v_info->type); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 734, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_type_2, __pyx_t_6) < (0)) __PYX_ERR(2, 732, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 735, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_7 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 735, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_13))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_13, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_7}; - __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 735, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L9:; } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_help, __pyx_t_6) < (0)) __PYX_ERR(2, 732, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value, __pyx_v_default_value) < (0)) __PYX_ERR(2, 732, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value, Py_None) < (0)) __PYX_ERR(2, 732, __pyx_L1_error) { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib._ta_getOptInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_name); - __Pyx_XDECREF(__pyx_v_default_value); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -109748,35 +114867,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_440_ta_getOptInputParameterInfo(CYTHON /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_443_ta_getOutputParameterInfo(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_489WILLR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_442_ta_getOutputParameterInfo, "_ta_getOutputParameterInfo(char *function_name, int idx)\n\nReturns the function\047s output info dict for the given index. It has two\nkeys: name and flags."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_443_ta_getOutputParameterInfo = {"_ta_getOutputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_443_ta_getOutputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_442_ta_getOutputParameterInfo}; -static PyObject *__pyx_pw_5talib_7_ta_lib_443_ta_getOutputParameterInfo(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_488WILLR, "WILLR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nWILLR(high, low, close[, timeperiod=?])\n\nWilliams\047 %R (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_489WILLR = {"WILLR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_489WILLR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_488WILLR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_489WILLR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_function_name; - int __pyx_v_idx; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo (wrapper)", 0); + __Pyx_RefNannySetupContext("WILLR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -109786,345 +114907,340 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 740, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 10090, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 10090, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 10090, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 740, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 10090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 740, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 10090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getOutputParameterInfo", 0) < (0)) __PYX_ERR(2, 740, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 740, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WILLR", 0) < (0)) __PYX_ERR(6, 10090, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, i); __PYX_ERR(6, 10090, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 740, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 740, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 10090, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 10090, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 10090, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 10090, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 10092, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 740, __pyx_L3_error) - __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 740, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 740, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, __pyx_nargs); __PYX_ERR(6, 10090, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 10092, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 10092, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(6, 10092, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_488WILLR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { - TA_OutputParameterInfo const *__pyx_v_info; - TA_FuncHandle const *__pyx_v_handle; +static PyObject *__pyx_pf_5talib_7_ta_lib_488WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; TA_RetCode __pyx_v_retCode; - PyObject *__pyx_v_name = NULL; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; - Py_ssize_t __pyx_t_11; - int __pyx_t_12; - int __pyx_t_13; - int __pyx_t_14; - PyObject *__pyx_t_15 = NULL; - PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo", 0); + __Pyx_RefNannySetupContext("WILLR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 746, __pyx_L1_error) - __pyx_v_handle = __pyx_t_1; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /*with:*/ { - __pyx_t_3 = NULL; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 748, __pyx_L1_error) - __Pyx_GOTREF((PyObject *)__pyx_t_2); - } - __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 748, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 748, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0; - /*try:*/ { - { - (void)__pyx_t_8; (void)__pyx_t_9; (void)__pyx_t_10; /* mark used */ - /*try:*/ { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_retCode = TA_GetOutputParameterInfo(__pyx_v_handle, __pyx_v_idx, (&__pyx_v_info)); - } + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 10114, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L15; - } - __pyx_L15:; - } - } + __pyx_t_3 = (__pyx_v_length == 0); - } - } - } - /*finally:*/ { - /*normal exit:*/{ - if (__pyx_t_5) { - __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - } - goto __pyx_L6; + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; } - __pyx_L6:; + __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L16; - __pyx_L3_error:; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - goto __pyx_L1_error; - __pyx_L16:; - } - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOutputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 751, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = 0; + goto __pyx_L0; - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 753, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 753, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 753, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); } - __pyx_v_name = __pyx_t_2; - __pyx_t_2 = 0; - - __pyx_t_11 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_out); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(2, 754, __pyx_L1_error) - __pyx_t_6 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_11, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __pyx_t_6; - __Pyx_INCREF(__pyx_t_7); - __pyx_t_4 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); - __pyx_t_2 = 0; - - __pyx_t_13 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(2, 756, __pyx_L1_error) - if (__pyx_t_13) { - - } else { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_12 = __pyx_t_13; + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); + } - goto __pyx_L18_bool_binop_done; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } } - __Pyx_INCREF(__pyx_v_name); - __pyx_t_2 = __pyx_v_name; - __pyx_t_14 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real, Py_NE); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(2, 756, __pyx_L1_error) - if (__pyx_t_14) { - } else { - - __pyx_t_13 = __pyx_t_14; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - goto __pyx_L20_bool_binop_done; - } - __pyx_t_14 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real0, Py_NE); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(2, 756, __pyx_L1_error) - if (__pyx_t_14) { + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 10120, __pyx_L1_error) - } else { + /*try:*/ { - __pyx_t_13 = __pyx_t_14; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - goto __pyx_L20_bool_binop_done; - } - __pyx_t_14 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real1, Py_NE); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(2, 756, __pyx_L1_error) + __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod)); + } - __pyx_t_13 = __pyx_t_14; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } - __pyx_L20_bool_binop_done:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = __pyx_t_13; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10124, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_retCode = TA_WILLR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_12 = __pyx_t_14; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } - __pyx_L18_bool_binop_done:; - if (__pyx_t_12) { + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __pyx_t_11 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_real); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(2, 757, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_11, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); - __pyx_t_2 = 0; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L9:; } - __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 760, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 760, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_15 = __Pyx_PyLong_From_TA_OutputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS); if (unlikely(!__pyx_t_16)) __PYX_ERR(2, 761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_7); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_15, __pyx_t_16}; - __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_flags, __pyx_t_6) < (0)) __PYX_ERR(2, 760, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_XDECREF(__pyx_t_16); - __Pyx_AddTraceback("talib._ta_lib._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_name); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -110132,34 +115248,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(CYTHON_U /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_445_get_defaults_and_docs(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_491WMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_444_get_defaults_and_docs, "_get_defaults_and_docs(func_info)\n\nReturns a tuple with two outputs: defaults, a dict of parameter defaults,\nand documentation, a formatted docstring for the function.\n.. Note: func_info should come from Function.info, *not* _ta_getFuncInfo."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_445_get_defaults_and_docs = {"_get_defaults_and_docs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_445_get_defaults_and_docs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_444_get_defaults_and_docs}; -static PyObject *__pyx_pw_5talib_7_ta_lib_445_get_defaults_and_docs(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_490WMA, "WMA(ndarray real, int timeperiod=-0x80000000)\n\nWMA(real[, timeperiod=?])\n\nWeighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_491WMA = {"WMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_491WMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_490WMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_491WMA(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_func_info = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_get_defaults_and_docs (wrapper)", 0); + __Pyx_RefNannySetupContext("WMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -110169,715 +115286,64326 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_func_info,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 764, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 10133, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 10133, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 10133, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_get_defaults_and_docs", 0) < (0)) __PYX_ERR(2, 764, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WMA", 0) < (0)) __PYX_ERR(6, 10133, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_get_defaults_and_docs", 1, 1, 1, i); __PYX_ERR(2, 764, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, i); __PYX_ERR(6, 10133, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 764, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 10133, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 10133, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 10135, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_func_info = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_get_defaults_and_docs", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 764, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 10133, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._get_defaults_and_docs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_444_get_defaults_and_docs(__pyx_self, __pyx_v_func_info); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 10135, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_490WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_444_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info) { - PyObject *__pyx_v_defaults = NULL; - PyObject *__pyx_v_func_line = NULL; - PyObject *__pyx_v_func_args = NULL; - PyObject *__pyx_v_docs = NULL; - PyObject *__pyx_v_input_names = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_params = NULL; - PyObject *__pyx_v_param = NULL; - PyObject *__pyx_v_outputs = NULL; - PyObject *__pyx_v_candlestick = NULL; - PyObject *__pyx_v_output = NULL; - PyObject *__pyx_v_documentation = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_490WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; + int __pyx_t_2; int __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *(*__pyx_t_5)(PyObject *); - int __pyx_t_6; - int __pyx_t_7; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9[4]; - Py_ssize_t __pyx_t_10; - int __pyx_t_11; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13[5]; - size_t __pyx_t_14; - PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_get_defaults_and_docs", 0); + __Pyx_RefNannySetupContext("WMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 770, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_defaults = ((PyObject*)__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 771, __pyx_L1_error); - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__7); - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__7); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_kp_u__7) != (0)) __PYX_ERR(2, 771, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_v_func_line = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 772, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2); - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_mstate_global->__pyx_kp_u_input_arrays_2) != (0)) __PYX_ERR(2, 772, __pyx_L1_error); - __pyx_v_func_args = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; + __pyx_t_2 = (__pyx_v_length == 0); - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 773, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_docs = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; + if (__pyx_t_2) { - __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_display_name_s_group_s, __pyx_v_func_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 774, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 774, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 776, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_input_names = __pyx_t_2; - __pyx_t_2 = 0; + } - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Inputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 777, __pyx_L1_error) + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } - if (likely(PyList_CheckExact(__pyx_v_input_names)) || PyTuple_CheckExact(__pyx_v_input_names)) { - __pyx_t_2 = __pyx_v_input_names; __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 778, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 778, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 778, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 778, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); - #endif - ++__pyx_t_4; + __pyx_L6:; } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 778, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_5(__pyx_t_2); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 778, __pyx_L1_error) - PyErr_Clear(); + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 10161, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_WMA_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; } - break; - } } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_input_names, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 779, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10165, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = PyList_Check(__pyx_v_value); - __pyx_t_7 = (!__pyx_t_6); + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_v_retCode = TA_WMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - if (__pyx_t_7) { + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_any_ndarray); - __Pyx_DECREF_SET(__pyx_v_value, __pyx_mstate_global->__pyx_kp_u_any_ndarray); + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_value), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__8; - __pyx_t_9[1] = __pyx_t_1; - __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u__2; - __pyx_t_9[3] = __pyx_t_8; - __pyx_t_10 = 6; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[3]); - #endif - __pyx_t_11 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_9[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[3]); - #endif - __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, __pyx_t_10, __pyx_t_11); - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_12); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 782, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; + } + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_params = __pyx_t_2; - __pyx_t_2 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_params); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 785, __pyx_L1_error) - if (__pyx_t_7) { + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Parameters); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 786, __pyx_L1_error) - } - if (likely(PyList_CheckExact(__pyx_v_params)) || PyTuple_CheckExact(__pyx_v_params)) { - __pyx_t_2 = __pyx_v_params; __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_params); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 787, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 787, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 787, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_12 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 787, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_12 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); - #else - __pyx_t_12 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); - #endif - ++__pyx_t_4; + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_493ZIGZAG(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_492ZIGZAG, "ZIGZAG(ndarray high, ndarray low, double sensitivity=5.0, int mintrendlength=-0x80000000)\n\nZIGZAG(high, low[, sensitivity=?, mintrendlength=?])\n\nZig Zag (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n sensitivity: 5.0\n mintrendlength: 1\nOutputs:\n zigzag\n trend\n pivotidx"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_493ZIGZAG = {"ZIGZAG", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_493ZIGZAG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_492ZIGZAG}; +static PyObject *__pyx_pw_5talib_7_ta_lib_493ZIGZAG(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + double __pyx_v_sensitivity; + int __pyx_v_mintrendlength; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ZIGZAG (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_sensitivity,&__pyx_mstate_global->__pyx_n_u_mintrendlength,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 10174, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 10174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 10174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 10174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 10174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ZIGZAG", 0) < (0)) __PYX_ERR(6, 10174, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ZIGZAG", 0, 2, 4, i); __PYX_ERR(6, 10174, __pyx_L3_error) } } - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 787, __pyx_L1_error) } else { - __pyx_t_12 = __pyx_t_5(__pyx_t_2); - if (unlikely(!__pyx_t_12)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 787, __pyx_L1_error) - PyErr_Clear(); - } + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(6, 10174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 10174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 10174, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 10174, __pyx_L3_error) break; + default: goto __pyx_L5_argtuple_error; } } - __Pyx_GOTREF(__pyx_t_12); - __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_12); - __pyx_t_12 = 0; + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_sensitivity = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_sensitivity == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 10176, __pyx_L3_error) + } else { + __pyx_v_sensitivity = ((double)((double)5.0)); + } + if (values[3]) { + __pyx_v_mintrendlength = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_mintrendlength == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 10176, __pyx_L3_error) + } else { + __pyx_v_mintrendlength = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ZIGZAG", 0, 2, 4, __pyx_nargs); __PYX_ERR(6, 10174, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ZIGZAG", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(6, 10176, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(6, 10176, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_492ZIGZAG(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_sensitivity, __pyx_v_mintrendlength); - __pyx_t_12 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_8), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__8; - __pyx_t_9[1] = __pyx_t_12; - __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u__2; - __pyx_t_9[3] = __pyx_t_1; - __pyx_t_10 = 6; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[3]); - #endif - __pyx_t_11 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_9[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[3]); - #endif - __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, __pyx_t_10, __pyx_t_11); - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 788, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; - __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_12 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_1), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u__9; - __pyx_t_13[1] = __pyx_t_8; - __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__10; - __pyx_t_13[3] = __pyx_t_12; - __pyx_t_13[4] = __pyx_mstate_global->__pyx_kp_u__11; - __pyx_t_10 = 3; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[3]); - #endif - __pyx_t_11 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_13[3]); - #endif - __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_13, 5, __pyx_t_10, __pyx_t_11); - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_args, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 789, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static PyObject *__pyx_pf_5talib_7_ta_lib_492ZIGZAG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_sensitivity, int __pyx_v_mintrendlength) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outzigzag = 0; + PyArrayObject *__pyx_v_outtrend = 0; + PyArrayObject *__pyx_v_outpivotidx = 0; + int *__pyx_v_outpivotidx_data; + int __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + int __pyx_t_8; + char const *__pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ZIGZAG", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyDict_SetItem(__pyx_v_defaults, __pyx_v_param, __pyx_t_1) < 0))) __PYX_ERR(2, 790, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_12 = __pyx_v_param; - __Pyx_INCREF(__pyx_t_12); - __pyx_t_14 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_mstate_global->__pyx_n_u_matype}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_endswith, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 791, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 791, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_7) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(6, 10202, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_docs, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_3, __pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_15 = PyList_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyList_SET_ITEM(__pyx_t_15, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 792, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyList_SET_ITEM(__pyx_t_15, 1, __pyx_t_8) != (0)) __PYX_ERR(2, 792, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_8 = 0; - __pyx_t_8 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__12, __pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely((__Pyx_SetItemInt(__pyx_v_docs, -1L, __pyx_t_8, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(2, 792, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_3 = (__pyx_v_length == 0); + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 10204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 10204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 10204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(6, 10204, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(6, 10204, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(6, 10204, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); } + __pyx_t_6 = 0; + goto __pyx_L0; } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 794, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_outputs = __pyx_t_2; - __pyx_t_2 = 0; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_function_flags); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 795, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 795, __pyx_L1_error) - if (!__pyx_t_7) { - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } else { - __Pyx_INCREF(__pyx_t_8); - __pyx_t_2 = __pyx_t_8; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L12_bool_binop_done; + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } } - __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 795, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_INCREF(__pyx_t_8); - __pyx_t_2 = __pyx_t_8; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_L12_bool_binop_done:; - __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_kp_u_Output_is_a_candlestick, __pyx_t_2, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 795, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 795, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_candlestick = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Outputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 796, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 10208, __pyx_L1_error) + /*try:*/ { - if (likely(PyList_CheckExact(__pyx_v_outputs)) || PyTuple_CheckExact(__pyx_v_outputs)) { - __pyx_t_2 = __pyx_v_outputs; __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 797, __pyx_L1_error) + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ZIGZAG_Lookback(__pyx_v_sensitivity, __pyx_v_mintrendlength)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 10212, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outzigzag = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 10213, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outtrend = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 10214, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outpivotidx = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ZIGZAG(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_sensitivity, __pyx_v_mintrendlength, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outzigzag)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outtrend)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outpivotidx)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } } - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_ExceptionSwap(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); + if ( unlikely(__Pyx_GetException(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12) < 0)) __Pyx_ErrFetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_15); + __pyx_t_7 = __pyx_lineno; __pyx_t_8 = __pyx_clineno; __pyx_t_9 = __pyx_filename; + { { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 797, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } } - __pyx_t_8 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 797, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; + } + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ErrRestore(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; + __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_8; __pyx_filename = __pyx_t_9; + goto __pyx_L1_error; + } + __pyx_L9:; + } + + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZIGZAG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 10220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __pyx_v_outpivotidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outpivotidx)); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_2 = __pyx_v_length; + + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { + + + __pyx_t_8 = __pyx_v_i; + (__pyx_v_outpivotidx_data[__pyx_t_8]) = ((__pyx_v_outpivotidx_data[__pyx_t_8]) + __pyx_v_begidx); } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_8 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); - #else - __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); - #endif - ++__pyx_t_4; + } - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 797, __pyx_L1_error) - } else { - __pyx_t_8 = __pyx_t_5(__pyx_t_2); - if (unlikely(!__pyx_t_8)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 797, __pyx_L1_error) - PyErr_Clear(); + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L26; } + __pyx_L26:; + } + } + + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 10225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_outzigzag); + __Pyx_GIVEREF((PyObject *)__pyx_v_outzigzag); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_outzigzag)) != (0)) __PYX_ERR(6, 10225, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outtrend); + __Pyx_GIVEREF((PyObject *)__pyx_v_outtrend); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_outtrend)) != (0)) __PYX_ERR(6, 10225, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outpivotidx); + __Pyx_GIVEREF((PyObject *)__pyx_v_outpivotidx); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_outpivotidx)) != (0)) __PYX_ERR(6, 10225, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.ZIGZAG", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outzigzag); + __Pyx_XDECREF((PyObject *)__pyx_v_outtrend); + __Pyx_XDECREF((PyObject *)__pyx_v_outpivotidx); + + + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_495ZLEMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_494ZLEMA, "ZLEMA(ndarray real, int timeperiod=-0x80000000)\n\nZLEMA(real[, timeperiod=?])\n\nZero-Lag Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_495ZLEMA = {"ZLEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_495ZLEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_494ZLEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_495ZLEMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ZLEMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 10227, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 10227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 10227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ZLEMA", 0) < (0)) __PYX_ERR(6, 10227, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, i); __PYX_ERR(6, 10227, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 10227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 10227, __pyx_L3_error) break; + default: goto __pyx_L5_argtuple_error; } } - __Pyx_GOTREF(__pyx_t_8); - __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_8); - __pyx_t_8 = 0; + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 10229, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(6, 10227, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ZLEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(6, 10229, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_494ZLEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_494ZLEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ZLEMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_begidx = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 10255, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ZLEMA_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10259, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ZLEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } + } + goto __pyx_L9; + } + __pyx_L8_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ( unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + } + __pyx_L9:; + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 10265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_497str2bytes(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_496str2bytes, "str2bytes(s)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_497str2bytes = {"str2bytes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_497str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_496str2bytes}; +static PyObject *__pyx_pw_5talib_7_ta_lib_497str2bytes(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_s = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 73, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 73, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "str2bytes", 0) < (0)) __PYX_ERR(2, 73, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, i); __PYX_ERR(2, 73, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 73, __pyx_L3_error) + } + __pyx_v_s = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 73, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_496str2bytes(__pyx_self, __pyx_v_s); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_496str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("str2bytes", 0); + + __pyx_t_2 = NULL; + __pyx_t_3 = 1; + { + PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_s, __pyx_mstate_global->__pyx_n_u_ascii}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyBytes_Type), __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_499bytes2str(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_498bytes2str, "bytes2str(b)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_499bytes2str = {"bytes2str", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_499bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_498bytes2str}; +static PyObject *__pyx_pw_5talib_7_ta_lib_499bytes2str(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_b = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 76, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 76, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "bytes2str", 0) < (0)) __PYX_ERR(2, 76, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, i); __PYX_ERR(2, 76, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 76, __pyx_L3_error) + } + __pyx_v_b = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 76, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_498bytes2str(__pyx_self, __pyx_v_b); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_498bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("bytes2str", 0); + + __pyx_t_2 = __pyx_v_b; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ascii}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_501str2bytes(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_500str2bytes, "str2bytes(s)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_501str2bytes = {"str2bytes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_501str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_500str2bytes}; +static PyObject *__pyx_pw_5talib_7_ta_lib_501str2bytes(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_s = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 81, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 81, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "str2bytes", 0) < (0)) __PYX_ERR(2, 81, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, i); __PYX_ERR(2, 81, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 81, __pyx_L3_error) + } + __pyx_v_s = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 81, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_500str2bytes(__pyx_self, __pyx_v_s); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_500str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("str2bytes", 0); + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_s); + __pyx_r = __pyx_v_s; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_503bytes2str(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_502bytes2str, "bytes2str(b)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_503bytes2str = {"bytes2str", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_503bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_502bytes2str}; +static PyObject *__pyx_pw_5talib_7_ta_lib_503bytes2str(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_b = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 84, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 84, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "bytes2str", 0) < (0)) __PYX_ERR(2, 84, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, i); __PYX_ERR(2, 84, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 84, __pyx_L3_error) + } + __pyx_v_b = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 84, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_502bytes2str(__pyx_self, __pyx_v_b); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_502bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("bytes2str", 0); + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_b); + __pyx_r = __pyx_v_b; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function___init__, "Function.__init__(self, function_name, func_object, *args, **kwargs)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function___init__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function_name = 0; + PyObject *__pyx_v_func_object = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kwargs = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); + __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 3, __pyx_nargs); + if (unlikely(!__pyx_v_args)) { + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_RefNannyFinishContext(); + return NULL; + } + __Pyx_GOTREF(__pyx_v_args); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_func_object,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 116, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + default: + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 116, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 116, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 116, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + const Py_ssize_t used_pos_args = (kwd_pos_args < 3) ? kwd_pos_args : 3; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "__init__", 1) < (0)) __PYX_ERR(2, 116, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, i); __PYX_ERR(2, 116, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs < 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 116, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 116, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 116, __pyx_L3_error) + } + __pyx_v_self = values[0]; + __pyx_v_function_name = values[1]; + __pyx_v_func_object = values[2]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, __pyx_nargs); __PYX_ERR(2, 116, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_AddTraceback("talib._ta_lib.Function.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function___init__(__pyx_self, __pyx_v_self, __pyx_v_function_name, __pyx_v_func_object, __pyx_v_args, __pyx_v_kwargs); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_args); + __Pyx_DECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_func_object, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_2 = __pyx_v_function_name; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 118, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__namestr, __pyx_t_1) < (0)) __PYX_ERR(2, 119, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_str2bytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_3 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_local); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_3 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_2, __pyx__function); + __pyx_t_3 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata, __pyx_t_1) < (0)) __PYX_ERR(2, 123, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object, __pyx_v_func_object) < (0)) __PYX_ERR(2, 127, __pyx_L1_error) + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.Function.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_2__local, "Function.__local(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_3__local = {"__local", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_3__local, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_2__local}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__local (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 129, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 129, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__local", 0) < (0)) __PYX_ERR(2, 129, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__local", 1, 1, 1, i); __PYX_ERR(2, 129, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 129, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__local", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 129, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__local", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_2__local(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_info = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_param_name = NULL; + PyObject *__pyx_v_output_name = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *(*__pyx_t_9)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__local", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_2 = __Pyx_HasAttr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 132, __pyx_L1_error) + __pyx_t_3 = (!__pyx_t_2); + + + if (__pyx_t_3) { + + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, Py_None) < (0)) __PYX_ERR(2, 133, __pyx_L1_error) + + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_1) < (0)) __PYX_ERR(2, 134, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_1) < (0)) __PYX_ERR(2, 137, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs, __pyx_t_1) < (0)) __PYX_ERR(2, 138, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_1) < (0)) __PYX_ERR(2, 139, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 140, __pyx_L1_error) + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_1) < (0)) __PYX_ERR(2, 143, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __pyx_t_8; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_inputs}; + __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_6 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 146, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + { + __pyx_t_1 = __pyx_t_9(__pyx_t_7); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 146, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_t_1 == Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { + + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((PyObject_SetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_8) < 0))) __PYX_ERR(2, 150, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + } + + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_input_name, __pyx_v_info) < 0))) __PYX_ERR(2, 151, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_7) < 0))) __PYX_ERR(2, 152, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + __pyx_t_8 = NULL; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_t_4; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_opt_inputs}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_1}; + __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + for (;;) { + { + __pyx_t_7 = __pyx_t_9(__pyx_t_1); + if (unlikely(!__pyx_t_7)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 155, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_7); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_8 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_8); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_5, __pyx_v_i}; + __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_v_param_name, __pyx_v_info) < 0))) __PYX_ERR(2, 158, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 159, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_7 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_7); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_1) < 0))) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __pyx_t_8; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_outputs}; + __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_6 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + { + __pyx_t_1 = __pyx_t_9(__pyx_t_7); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 163, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_output_name, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_v_output_name, __pyx_t_1) < 0))) __PYX_ERR(2, 166, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_output_name, Py_None) < 0))) __PYX_ERR(2, 167, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_7) < 0))) __PYX_ERR(2, 168, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_local); + __pyx_r = __pyx_v_local; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.Function.__local", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_info); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_param_name); + __Pyx_XDECREF(__pyx_v_output_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_4info, "Function.info(self)\n\nReturns a copy of the function\047s info dict."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_5info = {"info", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_5info, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_4info}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("info (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 171, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "info", 0) < (0)) __PYX_ERR(2, 171, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("info", 1, 1, 1, i); __PYX_ERR(2, 171, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 171, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("info", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 171, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.info", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_4info(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("info", 0); + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = __pyx_t_4; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Function.info", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_6function_flags, "Function.function_flags(self)\n\nReturns any function flags defined for this indicator function."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_7function_flags = {"function_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_7function_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_6function_flags}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("function_flags (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 178, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 178, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "function_flags", 0) < (0)) __PYX_ERR(2, 178, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("function_flags", 1, 1, 1, i); __PYX_ERR(2, 178, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 178, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("function_flags", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 178, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.function_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_6function_flags(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("function_flags", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Function.function_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_8output_flags, "Function.output_flags(self)\n\nReturns the flags for each output for this indicator function."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_9output_flags = {"output_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_9output_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_8output_flags}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("output_flags (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 185, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "output_flags", 0) < (0)) __PYX_ERR(2, 185, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("output_flags", 1, 1, 1, i); __PYX_ERR(2, 185, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 185, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("output_flags", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 185, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.output_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_8output_flags(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("output_flags", 0); + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = __pyx_t_3; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Function.output_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_10get_input_names, "Function.get_input_names(self)\n\nReturns the dict of input price series names that specifies which\nof the ndarrays in input_arrays will be used to calculate the function."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names = {"get_input_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_10get_input_names}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_input_names (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 192, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 192, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_input_names", 0) < (0)) __PYX_ERR(2, 192, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_input_names", 1, 1, 1, i); __PYX_ERR(2, 192, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 192, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("get_input_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 192, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.get_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_ret = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_input_names", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_ret = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 199, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 199, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 199, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); + #endif + ++__pyx_t_5; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 199, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_6(__pyx_t_3); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 199, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_input_name, __pyx_t_1) < 0))) __PYX_ERR(2, 200, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_ret); + __pyx_r = __pyx_v_ret; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.Function.get_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_ret); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_12set_input_names, "Function.set_input_names(self, input_names)\n\nSets the input price series names to use."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names = {"set_input_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_12set_input_names}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_names = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("set_input_names (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_names,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 203, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 203, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 203, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_input_names", 0) < (0)) __PYX_ERR(2, 203, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, i); __PYX_ERR(2, 203, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 203, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 203, __pyx_L3_error) + } + __pyx_v_self = values[0]; + __pyx_v_input_names = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 203, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(__pyx_self, __pyx_v_self, __pyx_v_input_names); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_names) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_price_series = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *(*__pyx_t_9)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("set_input_names", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_v_input_names; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 208, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 208, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 208, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 208, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_5(__pyx_t_2); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 208, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 208, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_6); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_7); + } else { + __pyx_t_6 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_7); + } + #else + __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); + index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 208, __pyx_L1_error) + __pyx_t_9 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 208, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_6); + __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_price_series) < 0))) __PYX_ERR(2, 209, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_input_name, __pyx_v_price_series) < 0))) __PYX_ERR(2, 210, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 211, __pyx_L1_error) + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_price_series); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays, "Function.get_input_arrays(self)\n\nReturns a copy of the dict of input arrays in use."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays = {"get_input_arrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_input_arrays (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 215, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 215, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_input_arrays", 0) < (0)) __PYX_ERR(2, 215, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_input_arrays", 1, 1, 1, i); __PYX_ERR(2, 215, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 215, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("get_input_arrays", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 215, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.get_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_input_arrays", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_t_1 != Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { + + } else { + + __pyx_t_2 = __pyx_t_3; + + goto __pyx_L4_bool_binop_done; + } + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 221, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_2 = __pyx_t_3; + + __pyx_L4_bool_binop_done:; + + if (__pyx_t_2) { + + + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = __pyx_t_5; + __Pyx_INCREF(__pyx_t_1); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_clone, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + + } + + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + } + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.Function.get_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays, "Function.set_input_arrays(self, input_arrays)\n\nSets the dict of input_arrays to use. Returns True/False for\nsubclasses:\n\nIf input_arrays is a dict with the keys open, high, low, close and\nvolume, it is assigned as the input_array to use and this function\nreturns True, returning False otherwise. If you implement your own\ndata type and wish to subclass Function, you should wrap this function\nwith an if-statement:\n\nclass CustomFunction(Function):\n def __init__(self, function_name):\n Function.__init__(self, function_name)\n\n def set_input_arrays(self, input_data):\n if Function.set_input_arrays(self, input_data):\n return True\n elif isinstance(input_data, some_module.CustomDataType):\n input_arrays = Function.get_input_arrays(self)\n # convert input_data to input_arrays and then call the super\n Function.set_input_arrays(self, input_arrays)\n return True\n return False"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays = {"set_input_arrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_arrays = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("set_input_arrays (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 226, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 226, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 226, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_input_arrays", 0) < (0)) __PYX_ERR(2, 226, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, i); __PYX_ERR(2, 226, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 226, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 226, __pyx_L3_error) + } + __pyx_v_self = values[0]; + __pyx_v_input_arrays = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 226, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(__pyx_self, __pyx_v_self, __pyx_v_input_arrays); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_missing_keys = NULL; + PyObject *__pyx_v_key = NULL; + PyObject *__pyx_v_missing = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_t_7; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11[4]; + int __pyx_t_12; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("set_input_arrays", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 252, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_missing_keys = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_3 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 254, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 254, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 254, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); + #endif + ++__pyx_t_5; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_6(__pyx_t_3); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 254, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); + __pyx_t_1 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = (__pyx_t_1 != Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_7) { + + } else { + + __pyx_t_2 = __pyx_t_7; + + goto __pyx_L7_bool_binop_done; + } + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(2, 256, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_t_7; + + __pyx_L7_bool_binop_done:; + + if (__pyx_t_2) { + + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_input_arrays, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 257, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1); + __pyx_t_1 = 0; + + goto __pyx_L6; + } + + /*else*/ { + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_input_arrays, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 259, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1); + __pyx_t_1 = 0; + } + __pyx_L6:; + + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_missing); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 260, __pyx_L1_error) + if (__pyx_t_2) { + + + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_missing_keys, __pyx_v_key); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 261, __pyx_L1_error) + + + } + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 262, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_5 == 0); + + + if (likely(__pyx_t_2)) { + + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_v_input_arrays) < (0)) __PYX_ERR(2, 263, __pyx_L1_error) + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 264, __pyx_L1_error) + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(Py_True); + __pyx_r = Py_True; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + } + + /*else*/ { + __pyx_t_1 = NULL; + + __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 268, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_5 > 1); + + + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_s); + __pyx_t_9 = __pyx_mstate_global->__pyx_n_u_s; + } else { + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__3); + __pyx_t_9 = __pyx_mstate_global->__pyx_kp_u__3; + } + + __pyx_t_10 = __Pyx_PyUnicode_Unicode(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_missing_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_input_arrays_parameter_missing_r; + __pyx_t_11[1] = __pyx_t_10; + __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u__2; + __pyx_t_11[3] = __pyx_t_9; + + __pyx_t_5 = 50; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11[3]); + #endif + __pyx_t_12 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_12 |= __Pyx_PyUnicode_KIND_04(__pyx_t_11[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_11[3]); + #endif + __pyx_t_13 = __Pyx_PyUnicode_Join(__pyx_t_11, 4, __pyx_t_5, __pyx_t_12); + if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_13}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 267, __pyx_L1_error) + } + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(Py_False); + __pyx_r = Py_False; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_missing_keys); + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XDECREF(__pyx_v_missing); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_18get_parameters, "Function.get_parameters(self)\n\nReturns the function\047s optional parameters and their default values."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters = {"get_parameters", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_18get_parameters}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_parameters (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 275, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 275, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_parameters", 0) < (0)) __PYX_ERR(2, 275, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_parameters", 1, 1, 1, i); __PYX_ERR(2, 275, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 275, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("get_parameters", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 275, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.get_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_ret = NULL; + PyObject *__pyx_v_opt_input = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_parameters", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_ret = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 281, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 281, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 281, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); + #endif + ++__pyx_t_5; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 281, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_6(__pyx_t_3); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 281, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_opt_input, __pyx_t_1) < 0))) __PYX_ERR(2, 282, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_ret); + __pyx_r = __pyx_v_ret; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.Function.get_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_ret); + __Pyx_XDECREF(__pyx_v_opt_input); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_20set_parameters, "Function.set_parameters(self, parameters=None, **kwargs)\n\nSets the function parameter values."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters = {"set_parameters", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_20set_parameters}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_parameters = 0; + PyObject *__pyx_v_kwargs = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("set_parameters (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_parameters,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 285, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, kwd_pos_args, __pyx_kwds_len, "set_parameters", 1) < (0)) __PYX_ERR(2, 285, __pyx_L3_error) + if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_parameters", 0, 1, 2, i); __PYX_ERR(2, 285, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 285, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + } + __pyx_v_self = values[0]; + __pyx_v_parameters = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("set_parameters", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 285, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(__pyx_self, __pyx_v_self, __pyx_v_parameters, __pyx_v_kwargs); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parameters, PyObject *__pyx_v_kwargs) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_updates = NULL; + PyObject *__pyx_v_param = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + Py_ssize_t __pyx_t_6; + PyObject *(*__pyx_t_7)(PyObject *); + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *(*__pyx_t_11)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("set_parameters", 0); + __Pyx_INCREF(__pyx_v_parameters); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_parameters); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 290, __pyx_L1_error) + if (!__pyx_t_2) { + } else { + __Pyx_INCREF(__pyx_v_parameters); + __pyx_t_1 = __pyx_v_parameters; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_1 = __pyx_t_3; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_L3_bool_binop_done:; + __Pyx_DECREF_SET(__pyx_v_parameters, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_3 = __pyx_v_parameters; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_kwargs}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_v_parameters; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; + __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { + __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 292, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_5))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 292, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 292, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6)); + #else + __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_6); + #endif + ++__pyx_t_6; + } + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 292, __pyx_L1_error) + } else { + __pyx_t_3 = __pyx_t_7(__pyx_t_5); + if (unlikely(!__pyx_t_3)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 292, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_3); + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 292, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_8); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_9); + } else { + __pyx_t_8 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_9); + } + #else + __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_10 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_10); + index = 0; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(2, 292, __pyx_L1_error) + __pyx_t_11 = NULL; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + goto __pyx_L8_unpacking_done; + __pyx_L7_unpacking_failed:; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_11 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 292, __pyx_L1_error) + __pyx_L8_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_8); + __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_9); + __pyx_t_9 = 0; + + __pyx_t_9 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_9); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[3] = {__pyx_t_9, __pyx_v_param, __pyx_v_value}; + __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 293, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_2) { + + + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_param); + __Pyx_GIVEREF(__pyx_v_param); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_param) != (0)) __PYX_ERR(2, 292, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_value) != (0)) __PYX_ERR(2, 292, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (unlikely(__Pyx_ListComp_AppendAndDecref(__pyx_t_1, __pyx_t_3))) __PYX_ERR(2, 292, __pyx_L1_error) + __pyx_t_3 = 0; + + } + + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_updates = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __pyx_v_updates; __Pyx_INCREF(__pyx_t_1); + __pyx_t_6 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 294, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_5 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { + PyObject* sequence = __pyx_t_5; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 294, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_9); + } else { + __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 294, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 294, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_9); + } + #else + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); + index = 0; __pyx_t_3 = __pyx_t_11(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L13_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_8); if (unlikely(!__pyx_t_9)) goto __pyx_L13_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 294, __pyx_L1_error) + __pyx_t_11 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L14_unpacking_done; + __pyx_L13_unpacking_failed:; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_11 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 294, __pyx_L1_error) + __pyx_L14_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_3); + __pyx_t_3 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_9); + __pyx_t_9 = 0; + + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_param); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 295, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 296, __pyx_L1_error) + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (unlikely((PyObject_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 297, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_updates); + __Pyx_XDECREF(__pyx_v_param); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_parameters); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_22set_function_args, "Function.set_function_args(self, *args, **kwargs)\n\noptional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args = {"set_function_args", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_22set_function_args}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kwargs = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("set_function_args (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); + __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs); + if (unlikely(!__pyx_v_args)) { + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_RefNannyFinishContext(); + return NULL; + } + __Pyx_GOTREF(__pyx_v_args); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 301, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + default: + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 301, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "set_function_args", 1) < (0)) __PYX_ERR(2, 301, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_function_args", 0, 1, 1, i); __PYX_ERR(2, 301, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs < 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 301, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("set_function_args", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 301, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_args); + __Pyx_DECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { + PyObject *__pyx_v_local = NULL; + int __pyx_v_update_info; + PyObject *__pyx_v_key = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_skip_first = NULL; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_param_name = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + Py_ssize_t __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + size_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PyObject *(*__pyx_t_11)(PyObject *); + int __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("set_function_args", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_v_update_info = 0; + + __pyx_t_2 = 0; + __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_kwargs, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_1); + __pyx_t_1 = __pyx_t_5; + __pyx_t_5 = 0; + while (1) { + __pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, NULL, NULL, __pyx_t_4); + if (unlikely(__pyx_t_6 == 0)) break; + if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(2, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 309, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_7) { + + + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_8 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_key, __pyx_v_value}; + __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 311, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_7) { + + + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_value, __pyx_t_5) < 0))) __PYX_ERR(2, 312, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_v_update_info = 1; + + } + + goto __pyx_L5; + } + + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 314, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_7) { + + + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_5) < 0))) __PYX_ERR(2, 315, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_v_key, __pyx_t_5) < 0))) __PYX_ERR(2, 316, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + } + __pyx_L5:; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 318, __pyx_L1_error) + __pyx_t_7 = (__pyx_temp != 0); + } + + if (__pyx_t_7) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_v_skip_first = __pyx_mstate_global->__pyx_int_0; + + __pyx_t_5 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_10 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_10}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 320, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_7) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1); + __Pyx_DECREF_SET(__pyx_v_skip_first, __pyx_mstate_global->__pyx_int_1); + + } + + __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(2, 322, __pyx_L1_error) + __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __pyx_t_7 = __Pyx_PyObject_CompareBoolGt_int_int(__pyx_t_1, __pyx_v_skip_first, Py_GT); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 322, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_7) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_t_1 = __pyx_mstate_global->__pyx_int_0; + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { + __pyx_t_5 = __pyx_t_10; __Pyx_INCREF(__pyx_t_5); + __pyx_t_3 = 0; + __pyx_t_11 = NULL; + } else { + __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 323, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + for (;;) { + if (likely(!__pyx_t_11)) { + if (likely(PyList_CheckExact(__pyx_t_5))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 323, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + __pyx_t_10 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_3; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 323, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_10 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3)); + #else + __pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_3); + #endif + ++__pyx_t_3; + } + if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 323, __pyx_L1_error) + } else { + __pyx_t_10 = __pyx_t_11(__pyx_t_5); + if (unlikely(!__pyx_t_10)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 323, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_10); + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_10); + __pyx_t_10 = 0; + __Pyx_INCREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); + __pyx_t_10 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_1); + __pyx_t_1 = __pyx_t_10; + __pyx_t_10 = 0; + + __pyx_t_10 = __Pyx_PyNumber_InPlaceAdd_object_int(__pyx_v_i, __pyx_v_skip_first); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_10); + __pyx_t_10 = 0; + + __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(2, 325, __pyx_L1_error) + __pyx_t_10 = PyLong_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + + __pyx_t_7 = __Pyx_PyObject_CompareBoolLt_object_int(__pyx_v_i, __pyx_t_10, Py_LT); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 325, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__pyx_t_7) { + + + __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_args, __pyx_v_i); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_10); + __pyx_t_10 = 0; + + __pyx_t_8 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_param_name, __pyx_v_value}; + __pyx_t_10 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 327, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__pyx_t_7) { + + + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_param_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 328, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + __pyx_v_update_info = 1; + + } + + } + + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + } + + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 331, __pyx_L1_error) + __pyx_t_12 = (__pyx_temp != 0); + } + + if (!__pyx_t_12) { + + } else { + + __pyx_t_7 = __pyx_t_12; + + goto __pyx_L16_bool_binop_done; + } + { + Py_ssize_t __pyx_temp = __Pyx_PyDict_GET_SIZE(__pyx_v_kwargs); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 331, __pyx_L1_error) + __pyx_t_12 = (__pyx_temp != 0); + } + + + __pyx_t_7 = __pyx_t_12; + + __pyx_L16_bool_binop_done:; + if (__pyx_t_7) { + + + if (__pyx_v_update_info) { + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 333, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 334, __pyx_L1_error) + + } + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_skip_first); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_param_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_24lookback, "Function.lookback(self)\n\nReturns the lookback window size for the function with the parameter\nvalues that are currently set."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_25lookback = {"lookback", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_25lookback, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_24lookback}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("lookback (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 336, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 336, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookback", 0) < (0)) __PYX_ERR(2, 336, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookback", 1, 1, 1, i); __PYX_ERR(2, 336, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 336, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("lookback", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 336, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.lookback", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_24lookback(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + TA_ParamHolder *__pyx_v_holder; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_opt_input = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_type_ = NULL; + int __pyx_v_lookback; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + TA_ParamHolder *__pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + Py_ssize_t __pyx_t_6; + PyObject *(*__pyx_t_7)(PyObject *); + PyObject *__pyx_t_8 = NULL; + size_t __pyx_t_9; + int __pyx_t_10; + int __pyx_t_11; + int __pyx_t_12; + double __pyx_t_13; + int __pyx_t_14; + int __pyx_t_15; + char const *__pyx_t_16; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + PyObject *__pyx_t_20 = NULL; + PyObject *__pyx_t_21 = NULL; + PyObject *__pyx_t_22 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("lookback", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_AsWritableString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(2, 344, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(__pyx_t_2); if (unlikely(__pyx_t_3 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 344, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_v_holder = __pyx_t_3; + + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_t_1 = __pyx_mstate_global->__pyx_int_0; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { + __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 345, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_5))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 345, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 345, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6)); + #else + __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_6); + #endif + ++__pyx_t_6; + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error) + } else { + __pyx_t_4 = __pyx_t_7(__pyx_t_5); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 345, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_4); + __pyx_t_4 = 0; + __Pyx_INCREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); + __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); + __pyx_t_1 = __pyx_t_4; + __pyx_t_4 = 0; + + __pyx_t_8 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_opt_input}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_opt_input); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_type_, __pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 348, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!__pyx_t_11) { + + } else { + + __pyx_t_10 = __pyx_t_11; + + goto __pyx_L6_bool_binop_done; + } + __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 348, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_10 = __pyx_t_11; + + __pyx_L6_bool_binop_done:; + if (__pyx_t_10) { + + + __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 349, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 349, __pyx_L1_error) + __pyx_t_14 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(__pyx_v_holder, __pyx_t_12, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 349, __pyx_L1_error) + + + + + goto __pyx_L5; + } + + __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 350, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!__pyx_t_11) { + + } else { + + __pyx_t_10 = __pyx_t_11; + + goto __pyx_L8_bool_binop_done; + } + __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 350, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_10 = __pyx_t_11; + + __pyx_L8_bool_binop_done:; + if (__pyx_t_10) { + + + __pyx_t_14 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_value); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error) + __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(__pyx_v_holder, __pyx_t_14, __pyx_t_12); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error) + + + + + } + __pyx_L5:; + + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /*try:*/ { + + __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_getLookback(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 354, __pyx_L12_error) + __pyx_v_lookback = __pyx_t_15; + } + + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 356, __pyx_L1_error) + + goto __pyx_L13; + } + __pyx_L12_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); + if ( unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); + __Pyx_XGOTREF(__pyx_t_17); + __Pyx_XGOTREF(__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_19); + __Pyx_XGOTREF(__pyx_t_20); + __Pyx_XGOTREF(__pyx_t_21); + __Pyx_XGOTREF(__pyx_t_22); + __pyx_t_15 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_16 = __pyx_filename; + { + __pyx_t_14 = __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(__pyx_v_holder); if (unlikely(__pyx_t_14 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 356, __pyx_L15_error) + + } + __Pyx_XGIVEREF(__pyx_t_20); + __Pyx_XGIVEREF(__pyx_t_21); + __Pyx_XGIVEREF(__pyx_t_22); + __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_XGIVEREF(__pyx_t_18); + __Pyx_XGIVEREF(__pyx_t_19); + __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19); + __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; + __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_16; + goto __pyx_L1_error; + __pyx_L15_error:; + __Pyx_XGIVEREF(__pyx_t_20); + __Pyx_XGIVEREF(__pyx_t_21); + __Pyx_XGIVEREF(__pyx_t_22); + __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; + goto __pyx_L1_error; + } + __pyx_L13:; + } + + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_lookback); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.Function.lookback", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_opt_input); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_type_); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_26output_names, "Function.output_names(self)\n\nReturns a list of the output names returned by this function."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_27output_names = {"output_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_27output_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_26output_names}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("output_names (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 359, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 359, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "output_names", 0) < (0)) __PYX_ERR(2, 359, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("output_names", 1, 1, 1, i); __PYX_ERR(2, 359, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 359, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("output_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 359, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.output_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_26output_names(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_ret = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("output_names", 0); + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = __pyx_t_4; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_ret = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_6 = PyList_Check(__pyx_v_ret); + __pyx_t_7 = (!__pyx_t_6); + + + if (__pyx_t_7) { + + + __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1); + __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_ret); + __pyx_r = __pyx_v_ret; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Function.output_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ret); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_28outputs, "Function.outputs(self)\n\nReturns the TA function values for the currently set input_arrays and\nparameters. Returned values are a ndarray if there is only one output\nor a list of ndarrays for more than one output."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_29outputs = {"outputs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_29outputs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_28outputs}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("outputs (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 369, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "outputs", 0) < (0)) __PYX_ERR(2, 369, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("outputs", 1, 1, 1, i); __PYX_ERR(2, 369, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 369, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("outputs", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 369, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.outputs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_28outputs(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_ret = NULL; + PyObject *__pyx_v_index = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + Py_ssize_t __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("outputs", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 377, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (!__pyx_t_2); + + + if (__pyx_t_3) { + + + __pyx_t_4 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_4); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = __pyx_t_6; + __Pyx_INCREF(__pyx_t_4); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_values, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_ret = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_3 = PyList_Check(__pyx_v_ret); + __pyx_t_2 = (!__pyx_t_3); + + + if (__pyx_t_2) { + + + __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1); + __pyx_t_1 = 0; + + } + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_t_1 != Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { + + } else { + + __pyx_t_2 = __pyx_t_3; + + goto __pyx_L6_bool_binop_done; + } + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_6); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 383, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __pyx_t_2 = __pyx_t_3; + + __pyx_L6_bool_binop_done:; + + if (__pyx_t_2) { + + + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_index = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 385, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_7 == 1); + + + if (__pyx_t_2) { + + + __pyx_t_6 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_8, __pyx_v_index}; + #if CYTHON_VECTORCALL + __pyx_t_9 = __pyx_mstate_global->__pyx_tuple[2]; + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 386, __pyx_L1_error) + __Pyx_INCREF(__pyx_t_9); + #else + { + PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_index}; + __pyx_t_9 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 1); + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + #endif + __pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_9); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + /*else*/ { + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_6 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_11))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_ret}; + __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + } + + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_9))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_t_8, __pyx_v_index, __pyx_t_11}; + #if CYTHON_VECTORCALL + __pyx_t_6 = __pyx_mstate_global->__pyx_tuple[3]; + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 388, __pyx_L1_error) + __Pyx_INCREF(__pyx_t_6); + #else + { + PyObject *__pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_index, __pyx_mstate_global->__pyx_n_u_columns}; + __pyx_t_6 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 2); + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + #endif + __pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + } + + } + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_t_1 != Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { + + } else { + + __pyx_t_2 = __pyx_t_3; + + goto __pyx_L9_bool_binop_done; + } + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_9); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 392, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_2 = __pyx_t_3; + + __pyx_L9_bool_binop_done:; + + if (__pyx_t_2) { + + + __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 393, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_7 == 1); + + + if (__pyx_t_2) { + + + __pyx_t_1 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_1); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_11}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_9; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_9 = 0; + goto __pyx_L0; + + } + + /*else*/ { + __pyx_t_6 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_8 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); + assert(__pyx_t_8); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_ret}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_11))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_10}; + #if CYTHON_VECTORCALL + __pyx_t_8 = __pyx_mstate_global->__pyx_tuple[4]; + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 396, __pyx_L1_error) + __Pyx_INCREF(__pyx_t_8); + #else + { + PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_schema}; + __pyx_t_8 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 1); + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + } + #endif + __pyx_t_9 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_9; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_9 = 0; + goto __pyx_L0; + } + + } + + /*else*/ { + __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 399, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_7 == 1); + + + if (__pyx_t_2) { + __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_9 = __pyx_t_11; + __pyx_t_11 = 0; + } else { + __Pyx_INCREF(__pyx_v_ret); + __pyx_t_9 = __pyx_v_ret; + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_9; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_9 = 0; + goto __pyx_L0; + } + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("talib._ta_lib.Function.outputs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_ret); + __Pyx_XDECREF(__pyx_v_index); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_30run, "Function.run(self, input_arrays=None)\n\nrun([input_arrays=None])\n\nThis is a shortcut to the outputs property that also allows setting\nthe input_arrays dict."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_31run = {"run", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_31run, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_30run}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_arrays = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("run (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 401, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 401, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 401, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "run", 0) < (0)) __PYX_ERR(2, 401, __pyx_L3_error) + if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("run", 0, 1, 2, i); __PYX_ERR(2, 401, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 401, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 401, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + } + __pyx_v_self = values[0]; + __pyx_v_input_arrays = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("run", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 401, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.run", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_30run(__pyx_self, __pyx_v_self, __pyx_v_input_arrays); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("run", 0); + + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_input_arrays); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 408, __pyx_L1_error) + if (__pyx_t_1) { + + + __pyx_t_3 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_input_arrays}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.Function.run", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_32__call__, "Function.__call__(self, *args, **kwargs)\n\nfunc_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs])\n\nThis is a shortcut to the outputs property that also allows setting\nthe input_arrays dict and function parameters."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_33__call__ = {"__call__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_33__call__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_32__call__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kwargs = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); + __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs); + if (unlikely(!__pyx_v_args)) { + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_RefNannyFinishContext(); + return NULL; + } + __Pyx_GOTREF(__pyx_v_args); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 413, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + default: + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "__call__", 1) < (0)) __PYX_ERR(2, 413, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, i); __PYX_ERR(2, 413, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs < 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 413, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 413, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_32__call__(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_args); + __Pyx_DECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_opt_input_values = NULL; + PyObject *__pyx_v_price_series_name_values = NULL; + PyObject *__pyx_v_input_arrays = NULL; + PyObject *__pyx_v_input_price_series_names = NULL; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_arg = NULL; + PyObject *__pyx_v_msg = NULL; + PyObject *__pyx_v_no_existing_input_arrays = NULL; + PyObject *__pyx_v_param_name = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_n = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + Py_ssize_t __pyx_t_6; + PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_t_8; + int __pyx_t_9; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_t_14; + PyObject *__pyx_t_15 = NULL; + Py_ssize_t __pyx_t_16; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19[5]; + PyObject *__pyx_t_20 = NULL; + PyObject *(*__pyx_t_21)(PyObject *); + int __pyx_t_22; + char const *__pyx_t_23; + PyObject *__pyx_t_24 = NULL; + PyObject *__pyx_t_25 = NULL; + PyObject *__pyx_t_26 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__call__", 0); + __Pyx_INCREF(__pyx_v_args); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { + __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); + __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 423, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 423, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 423, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6)); + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_6); + #endif + ++__pyx_t_6; + } + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 423, __pyx_L1_error) + } else { + __pyx_t_2 = __pyx_t_7(__pyx_t_4); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 423, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_param_name); + __Pyx_GIVEREF(__pyx_v_param_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_param_name) != (0)) __PYX_ERR(2, 422, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 422, __pyx_L1_error); + __pyx_t_2 = 0; + __Pyx_GIVEREF(__pyx_t_3); + if (unlikely(__Pyx_ListComp_AppendAndDecref(__pyx_t_1, __pyx_t_3))) __PYX_ERR(2, 422, __pyx_L1_error) + __pyx_t_3 = 0; + + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_opt_input_values = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { + __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); + __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 425, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 425, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 425, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6)); + #else + __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_6); + #endif + ++__pyx_t_6; + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 425, __pyx_L1_error) + } else { + __pyx_t_4 = __pyx_t_7(__pyx_t_3); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 425, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_n); + __Pyx_GIVEREF(__pyx_v_n); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_n) != (0)) __PYX_ERR(2, 424, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(2, 424, __pyx_L1_error); + __pyx_t_4 = 0; + __Pyx_GIVEREF(__pyx_t_2); + if (unlikely(__Pyx_ListComp_AppendAndDecref(__pyx_t_1, __pyx_t_2))) __PYX_ERR(2, 424, __pyx_L1_error) + __pyx_t_2 = 0; + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_price_series_name_values = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PySequence_List(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_input_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_3 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_input_price_series_names = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(2, 431, __pyx_L1_error) + if (__pyx_t_9) { + + } else { + + __pyx_t_8 = __pyx_t_9; + + goto __pyx_L10_bool_binop_done; + } + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = PyObject_IsInstance(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 431, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_10 = (!__pyx_t_9); + + + + __pyx_t_8 = __pyx_t_10; + + __pyx_L10_bool_binop_done:; + if (__pyx_t_8) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_t_3 = __pyx_mstate_global->__pyx_int_0; + if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { + __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); + __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 432, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 432, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 432, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6)); + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_6); + #endif + ++__pyx_t_6; + } + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 432, __pyx_L1_error) + } else { + __pyx_t_2 = __pyx_t_7(__pyx_t_1); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 432, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_2); + __pyx_t_2 = 0; + __Pyx_INCREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_3, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); + __pyx_t_3 = __pyx_t_2; + __pyx_t_2 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_8 = PyObject_IsInstance(__pyx_v_arg, __pyx_t_2); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 433, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_10 = (!__pyx_t_8); + + + if (__pyx_t_10) { + + + goto __pyx_L13_break; + + } + + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + /*try:*/ { + + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_input_price_series_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 437, __pyx_L15_error) + __Pyx_GOTREF(__pyx_t_2); + if (unlikely((PyDict_SetItem(__pyx_v_input_arrays, __pyx_t_2, __pyx_v_arg) < 0))) __PYX_ERR(2, 437, __pyx_L15_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + goto __pyx_L22_try_end; + __pyx_L15_error:; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError)))); + if (__pyx_t_14) { + __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(2, 438, __pyx_L17_except_error) + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_15); + + __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 440, __pyx_L17_except_error) + __pyx_t_17 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_17)) __PYX_ERR(2, 440, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_17); + + + __pyx_t_18 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_18)) __PYX_ERR(2, 441, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Too_many_price_arguments_expecte; + __pyx_t_19[1] = __pyx_t_17; + __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__5; + __pyx_t_19[3] = __pyx_t_18; + __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__6; + + __pyx_t_16 = 38; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_16 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[3]); + #endif + __pyx_t_14 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_14 |= __Pyx_PyUnicode_KIND_04(__pyx_t_19[3]); + #endif + __pyx_t_20 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, __pyx_t_16, __pyx_t_14); + if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 439, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_20); + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_v_msg = ((PyObject*)__pyx_t_20); + __pyx_t_20 = 0; + + __pyx_t_18 = NULL; + __pyx_t_5 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_v_msg}; + __pyx_t_20 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 442, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_20); + } + __Pyx_Raise(__pyx_t_20, 0, 0, 0); + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + __PYX_ERR(2, 442, __pyx_L17_except_error) + } + goto __pyx_L17_except_error; + + __pyx_L17_except_error:; + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + goto __pyx_L1_error; + __pyx_L22_try_end:; + } + + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L25_for_end; + __pyx_L13_break:; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L25_for_end; + __pyx_L25_for_end:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = (__pyx_t_3 != Py_None); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_8) { + + } else { + + __pyx_t_10 = __pyx_t_8; + + goto __pyx_L27_bool_binop_done; + } + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 445, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_10 = __pyx_t_8; + + __pyx_L27_bool_binop_done:; + + if (__pyx_t_10) { + + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_no_existing_input_arrays = __pyx_t_3; + __pyx_t_3 = 0; + + goto __pyx_L26; + } + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = (__pyx_t_3 != Py_None); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_8) { + + } else { + + __pyx_t_10 = __pyx_t_8; + + goto __pyx_L29_bool_binop_done; + } + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 448, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_10 = __pyx_t_8; + + __pyx_L29_bool_binop_done:; + + if (__pyx_t_10) { + + + __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_3 = __pyx_t_15; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_empty, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_no_existing_input_arrays = __pyx_t_1; + __pyx_t_1 = 0; + + goto __pyx_L26; + } + + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 451, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyBool_FromLong((!(!(!__pyx_t_10)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __pyx_v_no_existing_input_arrays = __pyx_t_1; + __pyx_t_1 = 0; + } + __pyx_L26:; + + __pyx_t_6 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(2, 453, __pyx_L1_error) + __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 453, __pyx_L1_error) + __pyx_t_10 = (__pyx_t_6 == __pyx_t_16); + + + + if (__pyx_t_10) { + + + __pyx_t_15 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_15); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_v_input_arrays}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 455, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_args, __pyx_t_16, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1); + __pyx_t_1 = 0; + + goto __pyx_L31; + } + + __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 456, __pyx_L1_error) + __pyx_t_8 = (__pyx_t_16 != 0); + + + if (!__pyx_t_8) { + + } else { + + __pyx_t_10 = __pyx_t_8; + + goto __pyx_L32_bool_binop_done; + } + __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_no_existing_input_arrays); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 456, __pyx_L1_error) + if (__pyx_t_8) { + + } else { + + __pyx_t_10 = __pyx_t_8; + + goto __pyx_L32_bool_binop_done; + } + + __pyx_t_16 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 457, __pyx_L1_error) + __pyx_t_8 = (!(__pyx_t_16 != 0)); + + + if (!__pyx_t_8) { + + } else { + + __pyx_t_10 = __pyx_t_8; + + goto __pyx_L32_bool_binop_done; + } + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_8 = PyObject_IsInstance(__pyx_t_1, __pyx_t_15); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 457, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_9 = (!__pyx_t_8); + + + + __pyx_t_10 = __pyx_t_9; + + __pyx_L32_bool_binop_done:; + + if (unlikely(__pyx_t_10)) { + + + __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 459, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 459, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + + + __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Not_enough_price_arguments_expec; + __pyx_t_19[1] = __pyx_t_15; + __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__5; + __pyx_t_19[3] = __pyx_t_1; + __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__6; + + __pyx_t_16 = 40; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_16 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[3]); + #endif + __pyx_t_14 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_14 |= __Pyx_PyUnicode_KIND_04(__pyx_t_19[3]); + #endif + __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, __pyx_t_16, __pyx_t_14); + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_msg = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + __pyx_t_1 = NULL; + __pyx_t_5 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_msg}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 461, __pyx_L1_error) + + } + __pyx_L31:; + + /*try:*/ { + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 464, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 464, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 464, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 464, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_15 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_15); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_15, NULL}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 465, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_4 = __pyx_v_opt_input_values; __Pyx_INCREF(__pyx_t_4); + __pyx_t_16 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 468, __pyx_L1_error) + #endif + if (__pyx_t_16 >= __pyx_temp) break; + } + __pyx_t_15 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_16; + if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) { + PyObject* sequence = __pyx_t_15; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 468, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_1); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_3); + } else { + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 468, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 468, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_3); + } + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_2 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); + index = 0; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L41_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_3 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L41_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 468, __pyx_L1_error) + __pyx_t_21 = NULL; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L42_unpacking_done; + __pyx_L41_unpacking_failed:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_21 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 468, __pyx_L1_error) + __pyx_L42_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_1); + __pyx_t_1 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_3); + __pyx_t_3 = 0; + + __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_4) < 0))) __PYX_ERR(2, 470, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __pyx_v_price_series_name_values; __Pyx_INCREF(__pyx_t_4); + __pyx_t_16 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 473, __pyx_L1_error) + #endif + if (__pyx_t_16 >= __pyx_temp) break; + } + __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_16; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 473, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_15); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_1); + } else { + __pyx_t_15 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 473, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_15); + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 473, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_1); + } + #else + __pyx_t_15 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); + index = 0; __pyx_t_15 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L46_unpacking_failed; + __Pyx_GOTREF(__pyx_t_15); + index = 1; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L46_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 473, __pyx_L1_error) + __pyx_t_21 = NULL; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L47_unpacking_done; + __pyx_L46_unpacking_failed:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_21 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 473, __pyx_L1_error) + __pyx_L47_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_15); + __pyx_t_15 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_value) < 0))) __PYX_ERR(2, 474, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_v_input_name, __pyx_v_value) < 0))) __PYX_ERR(2, 475, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L38; + } + __pyx_L37_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_ExceptionSwap(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26); + if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_24); + __Pyx_XGOTREF(__pyx_t_25); + __Pyx_XGOTREF(__pyx_t_26); + __pyx_t_14 = __pyx_lineno; __pyx_t_22 = __pyx_clineno; __pyx_t_23 = __pyx_filename; + { + + __pyx_t_4 = __pyx_v_opt_input_values; __Pyx_INCREF(__pyx_t_4); + __pyx_t_16 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 468, __pyx_L50_error) + #endif + if (__pyx_t_16 >= __pyx_temp) break; + } + __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_16; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 468, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_3); + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 468, __pyx_L50_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_1); + __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_15); + } else { + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 468, __pyx_L50_error) + __Pyx_XGOTREF(__pyx_t_1); + __pyx_t_15 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 468, __pyx_L50_error) + __Pyx_XGOTREF(__pyx_t_15); + } + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 468, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 468, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_15); + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 468, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); + index = 0; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L53_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_15 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L53_unpacking_failed; + __Pyx_GOTREF(__pyx_t_15); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 468, __pyx_L50_error) + __pyx_t_21 = NULL; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L54_unpacking_done; + __pyx_L53_unpacking_failed:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_21 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 468, __pyx_L50_error) + __pyx_L54_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_1); + __pyx_t_1 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_15); + __pyx_t_15 = 0; + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 469, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_param_name); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 469, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 469, __pyx_L50_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 470, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 470, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_15); + if (unlikely((PyObject_SetItem(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_4) < 0))) __PYX_ERR(2, 470, __pyx_L50_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __pyx_v_price_series_name_values; __Pyx_INCREF(__pyx_t_4); + __pyx_t_16 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 473, __pyx_L50_error) + #endif + if (__pyx_t_16 >= __pyx_temp) break; + } + __pyx_t_15 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_16; + if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 473, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_15); + if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) { + PyObject* sequence = __pyx_t_15; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 473, __pyx_L50_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_1); + } else { + __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 473, __pyx_L50_error) + __Pyx_XGOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 473, __pyx_L50_error) + __Pyx_XGOTREF(__pyx_t_1); + } + #else + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 473, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 473, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_2 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 473, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); + index = 0; __pyx_t_3 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L58_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 1; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L58_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 473, __pyx_L50_error) + __pyx_t_21 = NULL; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L59_unpacking_done; + __pyx_L58_unpacking_failed:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_21 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 473, __pyx_L50_error) + __pyx_L59_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_3); + __pyx_t_3 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 474, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 474, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_value) < 0))) __PYX_ERR(2, 474, __pyx_L50_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 475, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 475, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_15, __pyx_v_input_name, __pyx_v_value) < 0))) __PYX_ERR(2, 475, __pyx_L50_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_XGIVEREF(__pyx_t_25); + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_25, __pyx_t_26); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_13, __pyx_t_12, __pyx_t_11); + __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; + __pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_22; __pyx_filename = __pyx_t_23; + goto __pyx_L1_error; + __pyx_L50_error:; + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_XGIVEREF(__pyx_t_25); + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_25, __pyx_t_26); + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; + goto __pyx_L1_error; + } + __pyx_L38:; + } + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); + __Pyx_XDECREF(__pyx_t_20); + __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_opt_input_values); + __Pyx_XDECREF(__pyx_v_price_series_name_values); + __Pyx_XDECREF(__pyx_v_input_arrays); + __Pyx_XDECREF(__pyx_v_input_price_series_names); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_arg); + __Pyx_XDECREF(__pyx_v_msg); + __Pyx_XDECREF(__pyx_v_no_existing_input_arrays); + __Pyx_XDECREF(__pyx_v_param_name); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_n); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names, "Function.__input_price_series_names(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names = {"__input_price_series_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__input_price_series_names (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 480, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 480, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__input_price_series_names", 0) < (0)) __PYX_ERR(2, 480, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__input_price_series_names", 1, 1, 1, i); __PYX_ERR(2, 480, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 480, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__input_price_series_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 480, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__input_price_series_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_input_price_series_names = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_price_series = NULL; + PyObject *__pyx_v_name = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + PyObject *(*__pyx_t_4)(PyObject *); + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + Py_ssize_t __pyx_t_7; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__input_price_series_names", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_input_price_series_names = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 483, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + __pyx_t_4 = NULL; + } else { + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 483, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 483, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_4)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 483, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_3; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 483, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); + #endif + ++__pyx_t_3; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 483, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_4(__pyx_t_2); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 483, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_6 = PyList_Check(__pyx_v_price_series); + if (__pyx_t_6) { + + + if (likely(PyList_CheckExact(__pyx_v_price_series)) || PyTuple_CheckExact(__pyx_v_price_series)) { + __pyx_t_1 = __pyx_v_price_series; __Pyx_INCREF(__pyx_t_1); + __pyx_t_7 = 0; + __pyx_t_8 = NULL; + } else { + __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 486, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_8)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 486, __pyx_L1_error) + #endif + if (__pyx_t_7 >= __pyx_temp) break; + } + __pyx_t_5 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_7; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 486, __pyx_L1_error) + #endif + if (__pyx_t_7 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7)); + #else + __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_7); + #endif + ++__pyx_t_7; + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 486, __pyx_L1_error) + } else { + __pyx_t_5 = __pyx_t_8(__pyx_t_1); + if (unlikely(!__pyx_t_5)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 486, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_name); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 487, __pyx_L1_error) + + + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + goto __pyx_L5; + } + + /*else*/ { + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_price_series); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 489, __pyx_L1_error) + + } + __pyx_L5:; + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_input_price_series_names); + __pyx_r = __pyx_v_input_price_series_names; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.Function.__input_price_series_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_input_price_series_names); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_price_series); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_36__call_function, "Function.__call_function(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_37__call_function = {"__call_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_37__call_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_36__call_function}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__call_function (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 492, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 492, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__call_function", 0) < (0)) __PYX_ERR(2, 492, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__call_function", 1, 1, 1, i); __PYX_ERR(2, 492, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 492, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__call_function", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 492, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__call_function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_36__call_function(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_input_price_series_names = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_price_series = NULL; + PyObject *__pyx_v_series = NULL; + PyObject *__pyx_v_opt_input = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_results = NULL; + PyObject *__pyx_v_keys = NULL; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_output = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__call_function", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_input_price_series_names = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_args = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + if (likely(PyList_CheckExact(__pyx_v_input_price_series_names)) || PyTuple_CheckExact(__pyx_v_input_price_series_names)) { + __pyx_t_1 = __pyx_v_input_price_series_names; __Pyx_INCREF(__pyx_t_1); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 498, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 498, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 498, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 498, __pyx_L1_error) + } else { + __pyx_t_2 = __pyx_t_5(__pyx_t_1); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 498, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_price_series); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF_SET(__pyx_v_series, __pyx_t_6); + __pyx_t_6 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = (__pyx_t_6 != Py_None); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__pyx_t_8) { + + } else { + + __pyx_t_7 = __pyx_t_8; + + goto __pyx_L6_bool_binop_done; + } + + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 501, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __pyx_t_7 = __pyx_t_8; + + __pyx_L6_bool_binop_done:; + + if (__pyx_t_7) { + + + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_series, __pyx_mstate_global->__pyx_n_u_values); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __pyx_t_9; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)(&PyFloat_Type))}; + __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6); + __pyx_t_6 = 0; + + goto __pyx_L5; + } + + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = (__pyx_t_6 != Py_None); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__pyx_t_8) { + + } else { + + __pyx_t_7 = __pyx_t_8; + + goto __pyx_L8_bool_binop_done; + } + + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 504, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __pyx_t_7 = __pyx_t_8; + + __pyx_L8_bool_binop_done:; + + if (__pyx_t_7) { + + + __pyx_t_10 = __pyx_v_series; + __Pyx_INCREF(__pyx_t_10); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_numpy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_t_9 = __pyx_t_2; + __Pyx_INCREF(__pyx_t_9); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, ((PyObject *)(&PyFloat_Type))}; + __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6); + __pyx_t_6 = 0; + + } + __pyx_L5:; + + __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_series); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 506, __pyx_L1_error) + + + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 507, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_6))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 507, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_6, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_6); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 507, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 507, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_5(__pyx_t_6); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 507, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_value); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 509, __pyx_L1_error) + + + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_results = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_results, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray); + if (__pyx_t_7) { + + + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = __pyx_t_6; + __Pyx_INCREF(__pyx_t_1); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_v_keys = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_7 = PyList_Check(__pyx_v_keys); + __pyx_t_8 = (!__pyx_t_7); + + + if (__pyx_t_8) { + + + __pyx_t_2 = PySequence_List(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_2); + __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_keys, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_t_6, __pyx_v_results) < 0))) __PYX_ERR(2, 517, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + goto __pyx_L14; + } + + /*else*/ { + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_t_6 = __pyx_mstate_global->__pyx_int_0; + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { + __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 519, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 519, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 519, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 519, __pyx_L1_error) + } else { + __pyx_t_2 = __pyx_t_5(__pyx_t_1); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 519, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_2); + __pyx_t_2 = 0; + __Pyx_INCREF(__pyx_t_6); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6); + __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_6, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); + __pyx_t_6 = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_results, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (unlikely((PyObject_SetItem(__pyx_t_9, __pyx_v_output, __pyx_t_2) < 0))) __PYX_ERR(2, 520, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __pyx_L14:; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_True) < (0)) __PYX_ERR(2, 521, __pyx_L1_error) + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.Function.__call_function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_input_price_series_names); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_price_series); + __Pyx_XDECREF(__pyx_v_series); + __Pyx_XDECREF(__pyx_v_opt_input); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_results); + __Pyx_XDECREF(__pyx_v_keys); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_output); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value, "Function.__check_opt_input_value(self, input_name, value)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value = {"__check_opt_input_value", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_name = 0; + PyObject *__pyx_v_value = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__check_opt_input_value (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,&__pyx_mstate_global->__pyx_n_u_value,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 523, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 523, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 523, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 523, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__check_opt_input_value", 0) < (0)) __PYX_ERR(2, 523, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, i); __PYX_ERR(2, 523, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 523, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 523, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 523, __pyx_L3_error) + } + __pyx_v_self = values[0]; + __pyx_v_input_name = values[1]; + __pyx_v_value = values[2]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 523, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__check_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name, __pyx_v_value); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name, PyObject *__pyx_v_value) { + PyObject *__pyx_v_type_ = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9[7]; + Py_ssize_t __pyx_t_10; + int __pyx_t_11; + size_t __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__check_opt_input_value", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_type_ = __pyx_t_2; + __pyx_t_2 = 0; + + __Pyx_INCREF(__pyx_v_type_); + __pyx_t_2 = __pyx_v_type_; + __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 525, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(2, 525, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!__pyx_t_4) { + + } else { + + __pyx_t_3 = __pyx_t_4; + + goto __pyx_L4_bool_binop_done; + } + __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 525, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(2, 525, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_3 = __pyx_t_4; + + __pyx_L4_bool_binop_done:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = __pyx_t_3; + + + if (__pyx_t_4) { + + + __Pyx_INCREF((PyObject *)(&PyLong_Type)); + __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyLong_Type))); + + goto __pyx_L3; + } + + __Pyx_INCREF(__pyx_v_type_); + __pyx_t_2 = __pyx_v_type_; + __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 527, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!__pyx_t_3) { + + } else { + + __pyx_t_4 = __pyx_t_3; + + goto __pyx_L6_bool_binop_done; + } + __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 527, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_4 = __pyx_t_3; + + __pyx_L6_bool_binop_done:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_3 = __pyx_t_4; + + + if (__pyx_t_3) { + + + __Pyx_INCREF((PyObject *)(&PyFloat_Type)); + __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyFloat_Type))); + + } + __pyx_L3:; + + __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_v_type_); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 530, __pyx_L1_error) + if (__pyx_t_3) { + + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(Py_True); + __pyx_r = Py_True; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + } + + __pyx_t_3 = (__pyx_v_value != Py_None); + if (unlikely(__pyx_t_3)) { + + + __pyx_t_1 = NULL; + + __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_parameter_value_for; + __pyx_t_9[1] = __pyx_t_5; + __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_expected; + __pyx_t_9[3] = __pyx_t_7; + __pyx_t_9[4] = __pyx_mstate_global->__pyx_kp_u_got; + __pyx_t_9[5] = __pyx_t_8; + __pyx_t_9[6] = __pyx_mstate_global->__pyx_kp_u__6; + + __pyx_t_10 = 46; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[5]); + #endif + __pyx_t_11 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_9[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[5]); + #endif + __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_9, 7, __pyx_t_10, __pyx_t_11); + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_12 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(2, 533, __pyx_L1_error) + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(Py_False); + __pyx_r = Py_False; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.Function.__check_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_type_); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value, "Function.__get_opt_input_value(self, input_name)\n\nReturns the user-set value if there is one, otherwise the default."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value = {"__get_opt_input_value", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_name = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get_opt_input_value (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 538, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 538, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 538, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__get_opt_input_value", 0) < (0)) __PYX_ERR(2, 538, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, i); __PYX_ERR(2, 538, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 538, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 538, __pyx_L3_error) + } + __pyx_v_self = values[0]; + __pyx_v_input_name = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 538, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__get_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get_opt_input_value", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_value = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_3 = (__pyx_v_value == Py_None); + if (__pyx_t_3) { + + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_value); + __pyx_r = __pyx_v_value; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Function.__get_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_42__repr__, "Function.__repr__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_43__repr__ = {"__repr__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_43__repr__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_42__repr__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 548, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 548, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__repr__", 0) < (0)) __PYX_ERR(2, 548, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, i); __PYX_ERR(2, 548, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 548, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 548, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_42__repr__(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__repr__", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_2, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Function.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_44__unicode__, "Function.__unicode__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__ = {"__unicode__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_44__unicode__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__unicode__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 551, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 551, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__unicode__", 0) < (0)) __PYX_ERR(2, 551, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__unicode__", 1, 1, 1, i); __PYX_ERR(2, 551, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 551, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__unicode__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 551, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__unicode__", 0); + + __pyx_t_2 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_str, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Function.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_46__str__, "Function.__str__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_47__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_47__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_46__str__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 554, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 554, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < (0)) __PYX_ERR(2, 554, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(2, 554, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 554, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 554, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_46__str__(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__str__", 0); + + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Function.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_505_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_504_ta_getGroupTable, "_ta_getGroupTable()\n\nReturns the list of available TALIB function group names. *slow*"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_505_ta_getGroupTable = {"_ta_getGroupTable", (PyCFunction)__pyx_pw_5talib_7_ta_lib_505_ta_getGroupTable, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_504_ta_getGroupTable}; +static PyObject *__pyx_pw_5talib_7_ta_lib_505_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_getGroupTable (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_504_ta_getGroupTable(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_504_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self) { + TA_StringTable *__pyx_v_table; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_v_groups = NULL; + unsigned int __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + unsigned int __pyx_t_10; + unsigned int __pyx_t_11; + unsigned int __pyx_t_12; + int __pyx_t_13; + int __pyx_t_14; + int __pyx_t_15; + char const *__pyx_t_16; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + PyObject *__pyx_t_20 = NULL; + PyObject *__pyx_t_21 = NULL; + PyObject *__pyx_t_22 = NULL; + int __pyx_t_23; + int __pyx_t_24; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_getGroupTable", 0); + + /*with:*/ { + __pyx_t_2 = NULL; + __pyx_t_3 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 574, __pyx_L1_error) + __Pyx_GOTREF((PyObject *)__pyx_t_1); + } + __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 574, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = 1; + #if CYTHON_UNPACK_METHODS + if (likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_3 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 574, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0; + /*try:*/ { + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_GroupTableAlloc((&__pyx_v_table)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableAlloc, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 577, __pyx_L7_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /*try:*/ { + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 579, __pyx_L17_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_groups = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + + __pyx_t_10 = __pyx_v_table->size; + __pyx_t_11 = __pyx_t_10; + + for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { + __pyx_v_i = __pyx_t_12; + + __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 581, __pyx_L17_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_groups, __pyx_t_1); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(2, 581, __pyx_L17_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_GroupTableFree(__pyx_v_table); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableFree, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 585, __pyx_L7_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L18; + } + __pyx_L17_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); + if ( unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); + __Pyx_XGOTREF(__pyx_t_17); + __Pyx_XGOTREF(__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_19); + __Pyx_XGOTREF(__pyx_t_20); + __Pyx_XGOTREF(__pyx_t_21); + __Pyx_XGOTREF(__pyx_t_22); + __pyx_t_14 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename; + { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_GroupTableFree(__pyx_v_table); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L28; + } + __pyx_L28:; + } + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableFree, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 585, __pyx_L25_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __Pyx_XGIVEREF(__pyx_t_20); + __Pyx_XGIVEREF(__pyx_t_21); + __Pyx_XGIVEREF(__pyx_t_22); + __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_XGIVEREF(__pyx_t_18); + __Pyx_XGIVEREF(__pyx_t_19); + __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19); + __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; + __pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16; + goto __pyx_L7_error; + __pyx_L25_error:; + __Pyx_XGIVEREF(__pyx_t_20); + __Pyx_XGIVEREF(__pyx_t_21); + __Pyx_XGIVEREF(__pyx_t_22); + __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; + goto __pyx_L7_error; + } + __pyx_L18:; + } + + } + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L12_try_end; + __pyx_L7_error:; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + /*except:*/ { + __Pyx_AddTraceback("talib._ta_lib._ta_getGroupTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_6) < 0) __PYX_ERR(2, 574, __pyx_L9_except_error) + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_6); + { + PyObject* __pyx_temp[3] = {__pyx_t_1, __pyx_t_2, __pyx_t_6}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 574, __pyx_L9_except_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_22)) __PYX_ERR(2, 574, __pyx_L9_except_error) + __Pyx_GOTREF(__pyx_t_22); + __pyx_t_23 = __Pyx_PyObject_IsTrue(__pyx_t_22); + __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; + if (__pyx_t_23 < (0)) __PYX_ERR(2, 574, __pyx_L9_except_error) + __pyx_t_24 = (!__pyx_t_23); + + + if (unlikely(__pyx_t_24)) { + + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_2, __pyx_t_6); + __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_6 = 0; + __PYX_ERR(2, 574, __pyx_L9_except_error) + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L8_exception_handled; + } + __pyx_L9_except_error:; + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); + goto __pyx_L1_error; + __pyx_L8_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_L12_try_end:; + } + } + /*finally:*/ { + /*normal exit:*/{ + if (__pyx_t_4) { + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + goto __pyx_L6; + } + __pyx_L6:; + } + goto __pyx_L32; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L1_error; + __pyx_L32:; + } + + if (unlikely(!__pyx_v_groups)) { __Pyx_RaiseUnboundLocalError("groups"); __PYX_ERR(2, 586, __pyx_L1_error) } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_groups); + __pyx_r = __pyx_v_groups; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib._ta_getGroupTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF(__pyx_v_groups); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_507_ta_getFuncTable(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_506_ta_getFuncTable, "_ta_getFuncTable(char *group)\n\nReturns a list of the functions for the specified group name. *slow*"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_507_ta_getFuncTable = {"_ta_getFuncTable", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_507_ta_getFuncTable, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_506_ta_getFuncTable}; +static PyObject *__pyx_pw_5talib_7_ta_lib_507_ta_getFuncTable(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + char *__pyx_v_group; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_getFuncTable (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_group,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 588, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 588, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getFuncTable", 0) < (0)) __PYX_ERR(2, 588, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getFuncTable", 1, 1, 1, i); __PYX_ERR(2, 588, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 588, __pyx_L3_error) + } + __pyx_v_group = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_group) && PyErr_Occurred())) __PYX_ERR(2, 588, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getFuncTable", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 588, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_506_ta_getFuncTable(__pyx_self, __pyx_v_group); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_506_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group) { + TA_StringTable *__pyx_v_table; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_v_functions = NULL; + unsigned int __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + unsigned int __pyx_t_10; + unsigned int __pyx_t_11; + unsigned int __pyx_t_12; + int __pyx_t_13; + int __pyx_t_14; + int __pyx_t_15; + char const *__pyx_t_16; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + PyObject *__pyx_t_20 = NULL; + PyObject *__pyx_t_21 = NULL; + PyObject *__pyx_t_22 = NULL; + int __pyx_t_23; + int __pyx_t_24; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_getFuncTable", 0); + + /*with:*/ { + __pyx_t_2 = NULL; + __pyx_t_3 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 594, __pyx_L1_error) + __Pyx_GOTREF((PyObject *)__pyx_t_1); + } + __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 594, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = 1; + #if CYTHON_UNPACK_METHODS + if (likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_3 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 594, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0; + /*try:*/ { + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_FuncTableAlloc(__pyx_v_group, (&__pyx_v_table)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableAlloc, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 597, __pyx_L7_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /*try:*/ { + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 599, __pyx_L17_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_functions = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + + __pyx_t_10 = __pyx_v_table->size; + __pyx_t_11 = __pyx_t_10; + + for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { + __pyx_v_i = __pyx_t_12; + + __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 601, __pyx_L17_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_functions, __pyx_t_1); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(2, 601, __pyx_L17_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_FuncTableFree(__pyx_v_table); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableFree, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 605, __pyx_L7_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L18; + } + __pyx_L17_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); + if ( unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); + __Pyx_XGOTREF(__pyx_t_17); + __Pyx_XGOTREF(__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_19); + __Pyx_XGOTREF(__pyx_t_20); + __Pyx_XGOTREF(__pyx_t_21); + __Pyx_XGOTREF(__pyx_t_22); + __pyx_t_14 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename; + { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_FuncTableFree(__pyx_v_table); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L28; + } + __pyx_L28:; + } + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableFree, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 605, __pyx_L25_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __Pyx_XGIVEREF(__pyx_t_20); + __Pyx_XGIVEREF(__pyx_t_21); + __Pyx_XGIVEREF(__pyx_t_22); + __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_XGIVEREF(__pyx_t_18); + __Pyx_XGIVEREF(__pyx_t_19); + __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19); + __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; + __pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16; + goto __pyx_L7_error; + __pyx_L25_error:; + __Pyx_XGIVEREF(__pyx_t_20); + __Pyx_XGIVEREF(__pyx_t_21); + __Pyx_XGIVEREF(__pyx_t_22); + __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; + goto __pyx_L7_error; + } + __pyx_L18:; + } + + } + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L12_try_end; + __pyx_L7_error:; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + /*except:*/ { + __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_6) < 0) __PYX_ERR(2, 594, __pyx_L9_except_error) + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_6); + { + PyObject* __pyx_temp[3] = {__pyx_t_1, __pyx_t_2, __pyx_t_6}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 594, __pyx_L9_except_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_22)) __PYX_ERR(2, 594, __pyx_L9_except_error) + __Pyx_GOTREF(__pyx_t_22); + __pyx_t_23 = __Pyx_PyObject_IsTrue(__pyx_t_22); + __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; + if (__pyx_t_23 < (0)) __PYX_ERR(2, 594, __pyx_L9_except_error) + __pyx_t_24 = (!__pyx_t_23); + + + if (unlikely(__pyx_t_24)) { + + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_2, __pyx_t_6); + __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_6 = 0; + __PYX_ERR(2, 594, __pyx_L9_except_error) + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L8_exception_handled; + } + __pyx_L9_except_error:; + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); + goto __pyx_L1_error; + __pyx_L8_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_L12_try_end:; + } + } + /*finally:*/ { + /*normal exit:*/{ + if (__pyx_t_4) { + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + goto __pyx_L6; + } + __pyx_L6:; + } + goto __pyx_L32; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L1_error; + __pyx_L32:; + } + + if (unlikely(!__pyx_v_functions)) { __Pyx_RaiseUnboundLocalError("functions"); __PYX_ERR(2, 606, __pyx_L1_error) } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_functions); + __pyx_r = __pyx_v_functions; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF(__pyx_v_functions); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_509__get_flags(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_508__get_flags, "__get_flags(int flag, dict flags_lookup_dict)\n\nTA-LIB provides hints for multiple flags as a bitwise-ORed int.\nThis function returns the flags from flag found in the provided\nflags_lookup_dict."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_509__get_flags = {"__get_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_509__get_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_508__get_flags}; +static PyObject *__pyx_pw_5talib_7_ta_lib_509__get_flags(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + int __pyx_v_flag; + PyObject *__pyx_v_flags_lookup_dict = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get_flags (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flag,&__pyx_mstate_global->__pyx_n_u_flags_lookup_dict,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 608, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 608, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 608, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__get_flags", 0) < (0)) __PYX_ERR(2, 608, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, i); __PYX_ERR(2, 608, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 608, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 608, __pyx_L3_error) + } + __pyx_v_flag = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 608, __pyx_L3_error) + __pyx_v_flags_lookup_dict = ((PyObject*)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 608, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.__get_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flags_lookup_dict), (&PyDict_Type), 1, "flags_lookup_dict", 1))) __PYX_ERR(2, 608, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_508__get_flags(__pyx_self, __pyx_v_flag, __pyx_v_flags_lookup_dict); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_508__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict) { + PyObject *__pyx_v_bit = NULL; + PyObject *__pyx_v_description = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + Py_ssize_t __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *(*__pyx_t_9)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get_flags", 0); + + __pyx_t_1 = (__pyx_v_flag < 1); + + if (__pyx_t_1) { + + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + } + + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + if (unlikely(__pyx_v_flags_lookup_dict == Py_None)) { + PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "items"); + __PYX_ERR(2, 619, __pyx_L1_error) + } + __pyx_t_3 = __Pyx_PyDict_Items(__pyx_v_flags_lookup_dict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely((PyList_Sort(__pyx_t_4) < 0))) __PYX_ERR(2, 619, __pyx_L1_error) + __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 619, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { + PyObject* sequence = __pyx_t_4; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 619, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_6); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_7); + } else { + __pyx_t_6 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 619, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 619, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_7); + } + #else + __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); + index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 619, __pyx_L1_error) + __pyx_t_9 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 619, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_bit, __pyx_t_6); + __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_description, __pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_flag); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = __Pyx_PyNumber_And_object_int(__pyx_v_bit, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 620, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (__pyx_t_1) { + + + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, __pyx_v_description))) __PYX_ERR(2, 618, __pyx_L1_error) + + } + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.__get_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_bit); + __Pyx_XDECREF(__pyx_v_description); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_511_ta_getFuncInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_510_ta_getFuncInfo, "_ta_getFuncInfo(char *function_name)\n\nReturns the info dict for the function. It has the following keys: name,\ngroup, help, flags, num_inputs, num_opt_inputs and num_outputs."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_511_ta_getFuncInfo = {"_ta_getFuncInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_511_ta_getFuncInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_510_ta_getFuncInfo}; +static PyObject *__pyx_pw_5talib_7_ta_lib_511_ta_getFuncInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + char *__pyx_v_function_name; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_getFuncInfo (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 666, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 666, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getFuncInfo", 0) < (0)) __PYX_ERR(2, 666, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getFuncInfo", 1, 1, 1, i); __PYX_ERR(2, 666, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 666, __pyx_L3_error) + } + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 666, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getFuncInfo", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 666, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_getFuncInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_510_ta_getFuncInfo(__pyx_self, __pyx_v_function_name); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_510_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name) { + TA_FuncInfo const *__pyx_v_info; + TA_FuncHandle const *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_getFuncInfo", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 672, __pyx_L1_error) + __pyx_v_handle = __pyx_t_1; + + /*with:*/ { + __pyx_t_3 = NULL; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 674, __pyx_L1_error) + __Pyx_GOTREF((PyObject *)__pyx_t_2); + } + __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 674, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 674, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0; + /*try:*/ { + { + (void)__pyx_t_8; (void)__pyx_t_9; (void)__pyx_t_10; /* mark used */ + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_GetFuncInfo(__pyx_v_handle, (&__pyx_v_info)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + + } + } + } + /*finally:*/ { + /*normal exit:*/{ + if (__pyx_t_5) { + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + goto __pyx_L6; + } + __pyx_L6:; + } + goto __pyx_L16; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L1_error; + __pyx_L16:; + } + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetFuncInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 680, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 680, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_11 = __Pyx_PyBytes_FromString(__pyx_v_info->name); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 680, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_7); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_11}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 680, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_6 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_7 = __Pyx_PyBytes_FromString(__pyx_v_info->group); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_11))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_7}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_group, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_11 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_7); + assert(__pyx_t_11); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_7 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_11 = __Pyx_PyLong_From_TA_FuncFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_7); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_11, __pyx_t_12}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_6 = NULL; + __pyx_t_12 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbInput); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_12}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_12 = NULL; + __pyx_t_6 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOptInput); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_opt_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_6 = NULL; + __pyx_t_12 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOutput); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_12}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_outputs, __pyx_t_3) < (0)) __PYX_ERR(2, 680, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_AddTraceback("talib._ta_lib._ta_getFuncInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_513_ta_getInputParameterInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_512_ta_getInputParameterInfo, "_ta_getInputParameterInfo(char *function_name, int idx)\n\nReturns the function\047s input info dict for the given index. It has two\nkeys: name and flags."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_513_ta_getInputParameterInfo = {"_ta_getInputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_513_ta_getInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_512_ta_getInputParameterInfo}; +static PyObject *__pyx_pw_5talib_7_ta_lib_513_ta_getInputParameterInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + char *__pyx_v_function_name; + int __pyx_v_idx; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_getInputParameterInfo (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 689, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 689, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 689, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getInputParameterInfo", 0) < (0)) __PYX_ERR(2, 689, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 689, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 689, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 689, __pyx_L3_error) + } + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 689, __pyx_L3_error) + __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 689, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 689, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_512_ta_getInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_512_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { + TA_InputParameterInfo const *__pyx_v_info; + TA_FuncHandle const *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_v_name = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + Py_ssize_t __pyx_t_11; + int __pyx_t_12; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_getInputParameterInfo", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 695, __pyx_L1_error) + __pyx_v_handle = __pyx_t_1; + + /*with:*/ { + __pyx_t_3 = NULL; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 697, __pyx_L1_error) + __Pyx_GOTREF((PyObject *)__pyx_t_2); + } + __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 697, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 697, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0; + /*try:*/ { + { + (void)__pyx_t_8; (void)__pyx_t_9; (void)__pyx_t_10; /* mark used */ + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_GetInputParameterInfo(__pyx_v_handle, __pyx_v_idx, (&__pyx_v_info)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + + } + } + } + /*finally:*/ { + /*normal exit:*/{ + if (__pyx_t_5) { + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + goto __pyx_L6; + } + __pyx_L6:; + } + goto __pyx_L16; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L1_error; + __pyx_L16:; + } + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_v_name = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_11 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_in); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(2, 703, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_11, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + __pyx_t_7 = __pyx_t_6; + __Pyx_INCREF(__pyx_t_7); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_12 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(2, 704, __pyx_L1_error) + if (__pyx_t_12) { + + + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_replace); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[5], NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_6); + __pyx_t_6 = 0; + + goto __pyx_L17; + } + + __pyx_t_12 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_price, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(2, 706, __pyx_L1_error) + if (__pyx_t_12) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_prices); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_prices); + + } + __pyx_L17:; + + __pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 710, __pyx_L1_error) + + __pyx_t_7 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_13 = __Pyx_PyLong_From_TA_InputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS); if (unlikely(!__pyx_t_14)) __PYX_ERR(2, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_7); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_13, __pyx_t_14}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (PyDict_SetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_2) < (0)) __PYX_ERR(2, 710, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_515_ta_getOptInputParameterInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_514_ta_getOptInputParameterInfo, "_ta_getOptInputParameterInfo(char *function_name, int idx)\n\nReturns the function\047s opt_input info dict for the given index. It has the\nfollowing keys: name, display_name, type, help, default_value and value."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_515_ta_getOptInputParameterInfo = {"_ta_getOptInputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_515_ta_getOptInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_514_ta_getOptInputParameterInfo}; +static PyObject *__pyx_pw_5talib_7_ta_lib_515_ta_getOptInputParameterInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + char *__pyx_v_function_name; + int __pyx_v_idx; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 714, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 714, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 714, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getOptInputParameterInfo", 0) < (0)) __PYX_ERR(2, 714, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 714, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 714, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 714, __pyx_L3_error) + } + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 714, __pyx_L3_error) + __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 714, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 714, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_getOptInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_514_ta_getOptInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_514_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { + TA_OptInputParameterInfo const *__pyx_v_info; + TA_FuncHandle const *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_v_name = NULL; + PyObject *__pyx_v_default_value = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + Py_ssize_t __pyx_t_11; + int __pyx_t_12; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 720, __pyx_L1_error) + __pyx_v_handle = __pyx_t_1; + + /*with:*/ { + __pyx_t_3 = NULL; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 722, __pyx_L1_error) + __Pyx_GOTREF((PyObject *)__pyx_t_2); + } + __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 722, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 722, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0; + /*try:*/ { + { + (void)__pyx_t_8; (void)__pyx_t_9; (void)__pyx_t_10; /* mark used */ + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_GetOptInputParameterInfo(__pyx_v_handle, __pyx_v_idx, (&__pyx_v_info)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + + } + } + } + /*finally:*/ { + /*normal exit:*/{ + if (__pyx_t_5) { + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + goto __pyx_L6; + } + __pyx_L6:; + } + goto __pyx_L16; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L1_error; + __pyx_L16:; + } + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOptInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_v_name = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_11 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_optIn); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(2, 728, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_11, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + __pyx_t_7 = __pyx_t_6; + __Pyx_INCREF(__pyx_t_7); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_12 = (__pyx_v_info->type > 1); + + if (__pyx_t_12) { + __pyx_t_6 = PyLong_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = __pyx_t_6; + __pyx_t_6 = 0; + } else { + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = __pyx_t_6; + __pyx_t_6 = 0; + } + + __pyx_v_default_value = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 732, __pyx_L1_error) + + __pyx_t_7 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_13 = __Pyx_PyBytes_FromString(__pyx_v_info->displayName); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_7); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_13}; + __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_6) < (0)) __PYX_ERR(2, 732, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __pyx_t_6 = __Pyx_PyLong_From_TA_OptInputParameterType(__pyx_v_info->type); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 734, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_type_2, __pyx_t_6) < (0)) __PYX_ERR(2, 732, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_7 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_13))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_13, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_7}; + __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_help, __pyx_t_6) < (0)) __PYX_ERR(2, 732, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value, __pyx_v_default_value) < (0)) __PYX_ERR(2, 732, __pyx_L1_error) + + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value, Py_None) < (0)) __PYX_ERR(2, 732, __pyx_L1_error) + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib._ta_getOptInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XDECREF(__pyx_v_default_value); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_517_ta_getOutputParameterInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_516_ta_getOutputParameterInfo, "_ta_getOutputParameterInfo(char *function_name, int idx)\n\nReturns the function\047s output info dict for the given index. It has two\nkeys: name and flags."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_517_ta_getOutputParameterInfo = {"_ta_getOutputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_517_ta_getOutputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_516_ta_getOutputParameterInfo}; +static PyObject *__pyx_pw_5talib_7_ta_lib_517_ta_getOutputParameterInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + char *__pyx_v_function_name; + int __pyx_v_idx; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 740, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 740, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 740, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getOutputParameterInfo", 0) < (0)) __PYX_ERR(2, 740, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 740, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 740, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 740, __pyx_L3_error) + } + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 740, __pyx_L3_error) + __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 740, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 740, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_516_ta_getOutputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_516_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { + TA_OutputParameterInfo const *__pyx_v_info; + TA_FuncHandle const *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_v_name = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + Py_ssize_t __pyx_t_11; + int __pyx_t_12; + int __pyx_t_13; + int __pyx_t_14; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 746, __pyx_L1_error) + __pyx_v_handle = __pyx_t_1; + + /*with:*/ { + __pyx_t_3 = NULL; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 748, __pyx_L1_error) + __Pyx_GOTREF((PyObject *)__pyx_t_2); + } + __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 748, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 748, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0; + /*try:*/ { + { + (void)__pyx_t_8; (void)__pyx_t_9; (void)__pyx_t_10; /* mark used */ + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_GetOutputParameterInfo(__pyx_v_handle, __pyx_v_idx, (&__pyx_v_info)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + + } + } + } + /*finally:*/ { + /*normal exit:*/{ + if (__pyx_t_5) { + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + goto __pyx_L6; + } + __pyx_L6:; + } + goto __pyx_L16; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L1_error; + __pyx_L16:; + } + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOutputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_v_name = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_11 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_out); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(2, 754, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_11, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + __pyx_t_7 = __pyx_t_6; + __Pyx_INCREF(__pyx_t_7); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_13 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(2, 756, __pyx_L1_error) + if (__pyx_t_13) { + + } else { + + __pyx_t_12 = __pyx_t_13; + + goto __pyx_L18_bool_binop_done; + } + __Pyx_INCREF(__pyx_v_name); + __pyx_t_2 = __pyx_v_name; + __pyx_t_14 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real, Py_NE); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(2, 756, __pyx_L1_error) + if (__pyx_t_14) { + + } else { + + __pyx_t_13 = __pyx_t_14; + + goto __pyx_L20_bool_binop_done; + } + __pyx_t_14 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real0, Py_NE); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(2, 756, __pyx_L1_error) + if (__pyx_t_14) { + + } else { + + __pyx_t_13 = __pyx_t_14; + + goto __pyx_L20_bool_binop_done; + } + __pyx_t_14 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real1, Py_NE); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(2, 756, __pyx_L1_error) + + __pyx_t_13 = __pyx_t_14; + + __pyx_L20_bool_binop_done:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_14 = __pyx_t_13; + + + + __pyx_t_12 = __pyx_t_14; + + __pyx_L18_bool_binop_done:; + if (__pyx_t_12) { + + + __pyx_t_11 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_real); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(2, 757, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_11, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 760, __pyx_L1_error) + + __pyx_t_7 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_15 = __Pyx_PyLong_From_TA_OutputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS); if (unlikely(!__pyx_t_16)) __PYX_ERR(2, 761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_7); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_15, __pyx_t_16}; + __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_flags, __pyx_t_6) < (0)) __PYX_ERR(2, 760, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_AddTraceback("talib._ta_lib._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_519_get_defaults_and_docs(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_518_get_defaults_and_docs, "_get_defaults_and_docs(func_info)\n\nReturns a tuple with two outputs: defaults, a dict of parameter defaults,\nand documentation, a formatted docstring for the function.\n.. Note: func_info should come from Function.info, *not* _ta_getFuncInfo."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_519_get_defaults_and_docs = {"_get_defaults_and_docs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_519_get_defaults_and_docs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_518_get_defaults_and_docs}; +static PyObject *__pyx_pw_5talib_7_ta_lib_519_get_defaults_and_docs(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_func_info = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_get_defaults_and_docs (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_func_info,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 764, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 764, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_get_defaults_and_docs", 0) < (0)) __PYX_ERR(2, 764, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_get_defaults_and_docs", 1, 1, 1, i); __PYX_ERR(2, 764, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 764, __pyx_L3_error) + } + __pyx_v_func_info = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_get_defaults_and_docs", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 764, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._get_defaults_and_docs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_518_get_defaults_and_docs(__pyx_self, __pyx_v_func_info); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_518_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info) { + PyObject *__pyx_v_defaults = NULL; + PyObject *__pyx_v_func_line = NULL; + PyObject *__pyx_v_func_args = NULL; + PyObject *__pyx_v_docs = NULL; + PyObject *__pyx_v_input_names = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_params = NULL; + PyObject *__pyx_v_param = NULL; + PyObject *__pyx_v_outputs = NULL; + PyObject *__pyx_v_candlestick = NULL; + PyObject *__pyx_v_output = NULL; + PyObject *__pyx_v_documentation = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + int __pyx_t_6; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9[4]; + Py_ssize_t __pyx_t_10; + int __pyx_t_11; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13[5]; + size_t __pyx_t_14; + PyObject *__pyx_t_15 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_get_defaults_and_docs", 0); + + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_defaults = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 771, __pyx_L1_error); + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__7); + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__7); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_kp_u__7) != (0)) __PYX_ERR(2, 771, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_v_func_line = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2); + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_mstate_global->__pyx_kp_u_input_arrays_2) != (0)) __PYX_ERR(2, 772, __pyx_L1_error); + __pyx_v_func_args = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_docs = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_display_name_s_group_s, __pyx_v_func_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 774, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 774, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_input_names = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Inputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 777, __pyx_L1_error) + + + if (likely(PyList_CheckExact(__pyx_v_input_names)) || PyTuple_CheckExact(__pyx_v_input_names)) { + __pyx_t_2 = __pyx_v_input_names; __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 778, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 778, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 778, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 778, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_5(__pyx_t_2); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 778, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_input_names, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_6 = PyList_Check(__pyx_v_value); + __pyx_t_7 = (!__pyx_t_6); + + + if (__pyx_t_7) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_any_ndarray); + __Pyx_DECREF_SET(__pyx_v_value, __pyx_mstate_global->__pyx_kp_u_any_ndarray); + + } + + __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_value), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__8; + __pyx_t_9[1] = __pyx_t_1; + __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u__2; + __pyx_t_9[3] = __pyx_t_8; + __pyx_t_10 = 6; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[3]); + #endif + __pyx_t_11 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_9[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[3]); + #endif + __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, __pyx_t_10, __pyx_t_11); + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_12); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 782, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_params = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_params); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 785, __pyx_L1_error) + if (__pyx_t_7) { + + + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Parameters); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 786, __pyx_L1_error) + + + } + + if (likely(PyList_CheckExact(__pyx_v_params)) || PyTuple_CheckExact(__pyx_v_params)) { + __pyx_t_2 = __pyx_v_params; __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_params); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 787, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 787, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_12 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 787, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_12 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); + #else + __pyx_t_12 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 787, __pyx_L1_error) + } else { + __pyx_t_12 = __pyx_t_5(__pyx_t_2); + if (unlikely(!__pyx_t_12)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 787, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_12); + __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_12); + __pyx_t_12 = 0; + + __pyx_t_12 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_8), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__8; + __pyx_t_9[1] = __pyx_t_12; + __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u__2; + __pyx_t_9[3] = __pyx_t_1; + __pyx_t_10 = 6; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[3]); + #endif + __pyx_t_11 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_9[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[3]); + #endif + __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, __pyx_t_10, __pyx_t_11); + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 788, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + + __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_12 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_1), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u__9; + __pyx_t_13[1] = __pyx_t_8; + __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__10; + __pyx_t_13[3] = __pyx_t_12; + __pyx_t_13[4] = __pyx_mstate_global->__pyx_kp_u__11; + __pyx_t_10 = 3; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[3]); + #endif + __pyx_t_11 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_13[3]); + #endif + __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_13, 5, __pyx_t_10, __pyx_t_11); + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_args, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 789, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely((PyDict_SetItem(__pyx_v_defaults, __pyx_v_param, __pyx_t_1) < 0))) __PYX_ERR(2, 790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_12 = __pyx_v_param; + __Pyx_INCREF(__pyx_t_12); + __pyx_t_14 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_mstate_global->__pyx_n_u_matype}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_endswith, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 791, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_7) { + + + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_docs, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_3, __pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_15 = PyList_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyList_SET_ITEM(__pyx_t_15, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 792, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_8); + if (__Pyx_PyList_SET_ITEM(__pyx_t_15, 1, __pyx_t_8) != (0)) __PYX_ERR(2, 792, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_8 = 0; + __pyx_t_8 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__12, __pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely((__Pyx_SetItemInt(__pyx_v_docs, -1L, __pyx_t_8, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(2, 792, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + } + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_outputs = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_function_flags); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 795, __pyx_L1_error) + if (!__pyx_t_7) { + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else { + __Pyx_INCREF(__pyx_t_8); + __pyx_t_2 = __pyx_t_8; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L12_bool_binop_done; + } + __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_8); + __pyx_t_2 = __pyx_t_8; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_L12_bool_binop_done:; + __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_kp_u_Output_is_a_candlestick, __pyx_t_2, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 795, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_v_candlestick = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Outputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 796, __pyx_L1_error) + + + if (likely(PyList_CheckExact(__pyx_v_outputs)) || PyTuple_CheckExact(__pyx_v_outputs)) { + __pyx_t_2 = __pyx_v_outputs; __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 797, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 797, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_8 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 797, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_8 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); + #else + __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 797, __pyx_L1_error) + } else { + __pyx_t_8 = __pyx_t_5(__pyx_t_2); + if (unlikely(!__pyx_t_8)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 797, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_8); + __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_8); + __pyx_t_8 = 0; + + __pyx_t_6 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_v_output, __pyx_mstate_global->__pyx_n_u_integer, Py_EQ); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 798, __pyx_L1_error) + if (__pyx_t_6) { + + } else { + + __pyx_t_7 = __pyx_t_6; + + goto __pyx_L17_bool_binop_done; + } + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_candlestick); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 798, __pyx_L1_error) + + __pyx_t_7 = __pyx_t_6; + + __pyx_L17_bool_binop_done:; + if (__pyx_t_7) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100); + __Pyx_DECREF_SET(__pyx_v_output, __pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100); + + } + + __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_4, __pyx_v_output); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 800, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_func_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 802, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_mstate_global->__pyx_kp_u__13); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 803, __pyx_L1_error) + + + __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_func_line); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyList_Insert(__pyx_v_docs, 0, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 804, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + + __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__14, __pyx_v_docs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_documentation = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_defaults); + __Pyx_GIVEREF(__pyx_v_defaults); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_defaults) != (0)) __PYX_ERR(2, 806, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_documentation); + __Pyx_GIVEREF(__pyx_v_documentation); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_documentation) != (0)) __PYX_ERR(2, 806, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_AddTraceback("talib._ta_lib._get_defaults_and_docs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_defaults); + __Pyx_XDECREF(__pyx_v_func_line); + __Pyx_XDECREF(__pyx_v_func_args); + __Pyx_XDECREF(__pyx_v_docs); + __Pyx_XDECREF(__pyx_v_input_names); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_params); + __Pyx_XDECREF(__pyx_v_param); + __Pyx_XDECREF(__pyx_v_outputs); + __Pyx_XDECREF(__pyx_v_candlestick); + __Pyx_XDECREF(__pyx_v_output); + __Pyx_XDECREF(__pyx_v_documentation); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_FuncHandle const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *__pyx_v_function_name) { + TA_FuncHandle const *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + TA_FuncHandle const *__pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_getFuncHandle", 0); + + /*with:*/ { + __pyx_t_2 = NULL; + __pyx_t_3 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 823, __pyx_L1_error) + __Pyx_GOTREF((PyObject *)__pyx_t_1); + } + __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 823, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 823, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = 1; + #if CYTHON_UNPACK_METHODS + if (likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_3 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 823, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0; + /*try:*/ { + { + (void)__pyx_t_7; (void)__pyx_t_8; (void)__pyx_t_9; /* mark used */ + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_GetFuncHandle(__pyx_v_function_name, (&__pyx_v_handle)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + + } + } + } + /*finally:*/ { + /*normal exit:*/{ + if (__pyx_t_4) { + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 823, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + goto __pyx_L6; + } + __pyx_L6:; + } + goto __pyx_L16; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L1_error; + __pyx_L16:; + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetFuncHandle, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + + __pyx_r = __pyx_v_handle; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.__ta_getFuncHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *__pyx_v_function_name) { + TA_ParamHolder *__pyx_v_holder; + TA_FuncHandle const *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + TA_ParamHolder *__pyx_r; + __Pyx_RefNannyDeclarations + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_paramHolderAlloc", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 834, __pyx_L1_error) + __pyx_v_handle = __pyx_t_1; + + /*with:*/ { + __pyx_t_3 = NULL; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 836, __pyx_L1_error) + __Pyx_GOTREF((PyObject *)__pyx_t_2); + } + __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 836, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 836, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0; + /*try:*/ { + { + (void)__pyx_t_8; (void)__pyx_t_9; (void)__pyx_t_10; /* mark used */ + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ParamHolderAlloc(__pyx_v_handle, (&__pyx_v_holder)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + + } + } + } + /*finally:*/ { + /*normal exit:*/{ + if (__pyx_t_5) { + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + goto __pyx_L6; + } + __pyx_L6:; + } + goto __pyx_L16; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L1_error; + __pyx_L16:; + } + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ParamHolderAlloc, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 839, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + { + + __pyx_r = __pyx_v_holder; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.__ta_paramHolderAlloc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_params) { + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_paramHolderFree", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ParamHolderFree(__pyx_v_params); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ParamHolderFree, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.__ta_paramHolderFree", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, int __pyx_v_value) { + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_setOptInputParamInteger", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_SetOptInputParamInteger(__pyx_v_holder, __pyx_v_idx, __pyx_v_value); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetOptInputParamInteger, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 856, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.__ta_setOptInputParamInteger", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, double __pyx_v_value) { + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_setOptInputParamReal", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_SetOptInputParamReal(__pyx_v_holder, __pyx_v_idx, __pyx_v_value); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetOptInputParamReal, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.__ta_setOptInputParamReal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *__pyx_v_holder) { + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_getLookback", 0); + + /*with:*/ { + __pyx_t_2 = NULL; + __pyx_t_3 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 867, __pyx_L1_error) + __Pyx_GOTREF((PyObject *)__pyx_t_1); + } + __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 867, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = 1; + #if CYTHON_UNPACK_METHODS + if (likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_3 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 867, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0; + /*try:*/ { + { + (void)__pyx_t_7; (void)__pyx_t_8; (void)__pyx_t_9; /* mark used */ + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_GetLookback(__pyx_v_holder, (&__pyx_v_lookback)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + + } + } + } + /*finally:*/ { + /*normal exit:*/{ + if (__pyx_t_4) { + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + goto __pyx_L6; + } + __pyx_L6:; + } + goto __pyx_L16; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L1_error; + __pyx_L16:; + } + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetLookback, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + + __pyx_r = __pyx_v_lookback; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.__ta_getLookback", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static npy_intp __pyx_f_5talib_7_ta_lib_check_length(PyObject *__pyx_v_arrays) { + npy_intp __pyx_v_length; + PyObject *__pyx_v_other = NULL; + npy_intp __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("check_length", 0); + + if (unlikely(__pyx_v_arrays == Py_None)) { + PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable"); + __PYX_ERR(3, 2861, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_arrays, 0, Py_ssize_t, 1, PyLong_FromSsize_t, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2861, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(((PyArrayObject *)__pyx_t_1))[0]); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + if (unlikely(__pyx_v_arrays == Py_None)) { + PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable"); + __PYX_ERR(3, 2862, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyTuple_GetSlice(__pyx_v_arrays, 1, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 2862, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); + #endif + ++__pyx_t_3; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_other, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_4 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(((PyArrayObject *)__pyx_v_other))[0])); + + if (unlikely(__pyx_t_4)) { + + + __pyx_t_5 = NULL; + __pyx_t_6 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2864, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(3, 2864, __pyx_L1_error) + + } + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + { + + __pyx_r = __pyx_v_length; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.check_length", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1L; + __pyx_L0:; + + __Pyx_XDECREF(__pyx_v_other); + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib_check_begidx(npy_intp __pyx_v_length, PyObject *__pyx_v_arrays) { + double *__pyx_v_data[8]; + npy_intp __pyx_v_i; + int __pyx_v_k; + int __pyx_v_count; + int __pyx_r; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + int __pyx_t_8; + npy_intp __pyx_t_9; + npy_intp __pyx_t_10; + npy_intp __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("check_begidx", 0); + + if (unlikely(__pyx_v_arrays == Py_None)) { + PyErr_SetString(PyExc_TypeError, "object of type \047NoneType\047 has no len()"); + __PYX_ERR(3, 2872, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyTuple_GET_SIZE(__pyx_v_arrays); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(3, 2872, __pyx_L1_error) + __pyx_v_count = __pyx_t_1; + + __pyx_t_2 = (__pyx_v_count > 8); + + if (unlikely(__pyx_t_2)) { + + + __pyx_t_4 = NULL; + __pyx_t_5 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_too_many_input_arrays}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(3, 2874, __pyx_L1_error) + + } + + + __pyx_t_6 = __pyx_v_count; + __pyx_t_7 = __pyx_t_6; + + for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { + __pyx_v_k = __pyx_t_8; + + if (unlikely(__pyx_v_arrays == Py_None)) { + PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable"); + __PYX_ERR(3, 2876, __pyx_L1_error) + } + __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_arrays, __pyx_v_k, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + (__pyx_v_data[__pyx_v_k]) = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(((PyArrayObject *)__pyx_t_3))); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + + __pyx_t_9 = __pyx_v_length; + __pyx_t_10 = __pyx_t_9; + + for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { + __pyx_v_i = __pyx_t_11; + + + __pyx_t_6 = __pyx_v_count; + __pyx_t_7 = __pyx_t_6; + + for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { + __pyx_v_k = __pyx_t_8; + + __pyx_t_2 = (((__pyx_v_data[__pyx_v_k])[__pyx_v_i]) != ((__pyx_v_data[__pyx_v_k])[__pyx_v_i])); + + if (__pyx_t_2) { + + + goto __pyx_L12_break; + + } + } + /*else*/ { + + { + + __pyx_r = ((int)__pyx_v_i); + } + goto __pyx_L6_return; + } + __pyx_L12_break:; + + } + + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L6_return: { + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L0; + } + __pyx_L8:; + } + } + + { + + __pyx_r = (((int)__pyx_v_length) - 1); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.check_begidx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -2; + __pyx_L0:; + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static PyArrayObject *__pyx_f_5talib_7_ta_lib__stream_input(PyObject *__pyx_v_values) { + PyObject *__pyx_v_series = NULL; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + Py_ssize_t __pyx_t_5; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + size_t __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_stream_input", 0); + + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_values, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray); + if (__pyx_t_1) { + + + if (!(likely(((__pyx_v_values) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_values, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(3, 2894, __pyx_L1_error) + __pyx_t_2 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(((PyArrayObject *)__pyx_v_values))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyArrayObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = ((PyArrayObject *)__pyx_t_2); + } + __Pyx_XDECREF((PyObject *)__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + } + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 2895, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 2895, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + if (__pyx_t_5 >= 2) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); + #else + __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); + #endif + ++__pyx_t_5; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_series, __pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_6 = (__pyx_v_series != Py_None); + if (__pyx_t_6) { + + } else { + + __pyx_t_1 = __pyx_t_6; + + goto __pyx_L7_bool_binop_done; + } + __pyx_t_6 = PyObject_IsInstance(__pyx_v_values, __pyx_v_series); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 2896, __pyx_L1_error) + + __pyx_t_1 = __pyx_t_6; + + __pyx_L7_bool_binop_done:; + if (__pyx_t_1) { + + + __pyx_t_8 = __pyx_v_values; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL}; + __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_numpy, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_2 = __pyx_t_7; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)(&PyFloat_Type))}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(3, 2897, __pyx_L1_error) + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(((PyArrayObject *)__pyx_t_4))); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + { + PyArrayObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = ((PyArrayObject *)__pyx_t_7); + } + __Pyx_XDECREF((PyObject *)__pyx_temp); + } + __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L0; + + } + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_7 = NULL; + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_values)), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_input_must_be_a_numpy_array_or_a, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_2}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(3, 2898, __pyx_L1_error) + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib._stream_input", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_series); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib__stream_history(npy_intp __pyx_v_length, int __pyx_v_begidx) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_stream_history", 0); + + __pyx_t_1 = (__pyx_v_begidx < 0); + + if (unlikely(__pyx_t_1)) { + + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_InsufficientHistory); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2904, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_no_history_the_input_array_is_em}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2904, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(3, 2904, __pyx_L1_error) + + } + + { + + __pyx_r = ((int)(__pyx_v_length - __pyx_v_begidx)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib._stream_history", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static PyObject *__pyx_f_5talib_7_ta_lib__stream_open_failed(PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_retCode, int __pyx_v_historylen, int __pyx_v_need) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8[6]; + Py_ssize_t __pyx_t_9; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + size_t __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_stream_open_failed", 0); + + + __pyx_t_1 = (__pyx_v_retCode == 17); + + if (__pyx_t_1) { + + + __pyx_t_1 = (__pyx_v_need <= __pyx_v_historylen); + + if (__pyx_t_1) { + + + __pyx_v_need = (__pyx_v_historylen + 1); + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_InsufficientHistory); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_function_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyUnicode_From_int(__pyx_v_historylen, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyUnicode_From_int(__pyx_v_need, 0, ' ', 'd'); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8[0] = __pyx_t_5; + __pyx_t_8[1] = __pyx_mstate_global->__pyx_kp_u__2; + __pyx_t_8[2] = __pyx_t_6; + __pyx_t_8[3] = __pyx_mstate_global->__pyx_kp_u_bars_of_history_at_least; + __pyx_t_8[4] = __pyx_t_7; + __pyx_t_8[5] = __pyx_mstate_global->__pyx_kp_u_needed_a_leading_bar_that_is_Na; + + __pyx_t_9 = 92; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[0]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[2]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[4]); + #endif + __pyx_t_10 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_8[0]); + #endif + __pyx_t_11 = __Pyx_PyUnicode_Join(__pyx_t_8, 6, __pyx_t_9, __pyx_t_10); + if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 2913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_12 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_12 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_11}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(3, 2912, __pyx_L1_error) + + } + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_v_function_name, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("talib._ta_lib._stream_open_failed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static PyObject *__pyx_f_5talib_7_ta_lib__stream_like(PyObject *__pyx_v_sources, PyObject *__pyx_v_result) { + PyObject *__pyx_v_pandas = NULL; + PyObject *__pyx_v_polars = NULL; + PyObject *__pyx_v_s = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + size_t __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_stream_like", 0); + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely(__pyx_v_sources == Py_None)) { + PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not iterable"); + __PYX_ERR(3, 2919, __pyx_L1_error) + } + __pyx_t_2 = __pyx_v_sources; __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 2919, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); + #else + __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); + #endif + ++__pyx_t_3; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_s, __pyx_t_4); + __pyx_t_4 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = (__pyx_t_4 != Py_None); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_6) { + + } else { + + __pyx_t_5 = __pyx_t_6; + + goto __pyx_L6_bool_binop_done; + } + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = PyObject_IsInstance(__pyx_v_s, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 2920, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_5 = __pyx_t_6; + + __pyx_L6_bool_binop_done:; + if (__pyx_t_5) { + + + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, __pyx_v_s))) __PYX_ERR(3, 2919, __pyx_L1_error) + + } + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_pandas = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely(__pyx_v_sources == Py_None)) { + PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not iterable"); + __PYX_ERR(3, 2921, __pyx_L1_error) + } + __pyx_t_2 = __pyx_v_sources; __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 2921, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); + #else + __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); + #endif + ++__pyx_t_3; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_s, __pyx_t_4); + __pyx_t_4 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = (__pyx_t_4 != Py_None); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_6) { + + } else { + + __pyx_t_5 = __pyx_t_6; + + goto __pyx_L12_bool_binop_done; + } + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = PyObject_IsInstance(__pyx_v_s, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 2922, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_5 = __pyx_t_6; + + __pyx_L12_bool_binop_done:; + if (__pyx_t_5) { + + + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, __pyx_v_s))) __PYX_ERR(3, 2921, __pyx_L1_error) + + } + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_polars = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_pandas); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(3, 2923, __pyx_L1_error) + __pyx_t_6 = (__pyx_temp != 0); + } + + if (__pyx_t_6) { + + } else { + + __pyx_t_5 = __pyx_t_6; + + goto __pyx_L16_bool_binop_done; + } + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_polars); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(3, 2923, __pyx_L1_error) + __pyx_t_6 = (__pyx_temp != 0); + } + + + __pyx_t_5 = __pyx_t_6; + + __pyx_L16_bool_binop_done:; + if (unlikely(__pyx_t_5)) { + + + __pyx_t_2 = NULL; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Cannot_mix_polars_and_pandas}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(3, 2924, __pyx_L1_error) + + } + + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_pandas); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(3, 2925, __pyx_L1_error) + __pyx_t_5 = (__pyx_temp != 0); + } + + if (__pyx_t_5) { + + + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_pandas, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_result, __pyx_t_9}; + #if CYTHON_VECTORCALL + __pyx_t_8 = __pyx_mstate_global->__pyx_tuple[2]; + if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2926, __pyx_L1_error) + __Pyx_INCREF(__pyx_t_8); + #else + { + PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_index}; + __pyx_t_8 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 1); + if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + } + #endif + __pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_polars); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(3, 2927, __pyx_L1_error) + __pyx_t_5 = (__pyx_temp != 0); + } + + if (__pyx_t_5) { + + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_result}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_result); + __pyx_r = __pyx_v_result; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib._stream_like", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_pandas); + __Pyx_XDECREF(__pyx_v_polars); + __Pyx_XDECREF(__pyx_v_s); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_6Stream_1__cinit__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_6Stream_1__cinit__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return -1; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream___cinit__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_6Stream___cinit__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { + int __pyx_r; + + __pyx_v_self->_handle = NULL; + + + /* function exit code */ + __pyx_r = 0; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_6Stream__out_range(CYTHON_UNUSED struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self, CYTHON_UNUSED int *__pyx_v_outbegidx, CYTHON_UNUSED int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BAD_PARAM; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_6Stream__advance(CYTHON_UNUSED struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BAD_PARAM; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_9out_range_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_9out_range_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_9out_range___get__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_9out_range___get__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_begidx; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + size_t __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->_mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = ((struct __pyx_vtabstruct_5talib_7_ta_lib_Stream *)__pyx_v_self->__pyx_vtab)->_out_range(__pyx_v_self, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement)); + + __pyx_t_2 = __pyx_v_self->_begidx; + + __pyx_v_begidx = __pyx_t_2; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_3 = (__pyx_v_retCode != 0); + + if (__pyx_t_3) { + + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_out_range, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(((PyObject*)__pyx_t_5), __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + } + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_OutRange); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyLong_From_int((__pyx_v_outbegidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_outnbelement); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_9 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_7, __pyx_t_8}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.Stream.out_range.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_3advance(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6Stream_2advance, "Stream.advance(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_3advance(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("advance (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("advance", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("advance", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_2advance(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_2advance(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("advance", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->_mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = ((struct __pyx_vtabstruct_5talib_7_ta_lib_Stream *)__pyx_v_self->__pyx_vtab)->_advance(__pyx_v_self); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2972, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_advance, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2972, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(((PyObject*)__pyx_t_4), __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2972, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Stream.advance", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_5__copy__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6Stream_4__copy__, "Stream.__copy__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_6Stream_5__copy__ = {"__copy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_6Stream_5__copy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6Stream_4__copy__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_5__copy__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__copy__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__copy__", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__copy__", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_4__copy__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_4__copy__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__copy__", 0); + + __pyx_t_2 = ((PyObject *)__pyx_v_self); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Stream.__copy__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_7__deepcopy__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6Stream_6__deepcopy__, "Stream.__deepcopy__(self, memo)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_6Stream_7__deepcopy__ = {"__deepcopy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_6Stream_7__deepcopy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6Stream_6__deepcopy__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_7__deepcopy__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + CYTHON_UNUSED PyObject *__pyx_v_memo = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__deepcopy__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_memo,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2977, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2977, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__deepcopy__", 0) < (0)) __PYX_ERR(3, 2977, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 1, 1, i); __PYX_ERR(3, 2977, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2977, __pyx_L3_error) + } + __pyx_v_memo = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2977, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Stream.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_6__deepcopy__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self), __pyx_v_memo); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_6__deepcopy__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_memo) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__deepcopy__", 0); + + __pyx_t_2 = ((PyObject *)__pyx_v_self); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Stream.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_9__reduce__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6Stream_8__reduce__, "Stream.__reduce__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_6Stream_9__reduce__ = {"__reduce__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_6Stream_9__reduce__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6Stream_8__reduce__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_9__reduce__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce__", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce__", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_8__reduce__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_8__reduce__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__reduce__", 0); + + __pyx_t_2 = NULL; + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_cannot_pickle_s_a_stream_handle, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(3, 2981, __pyx_L1_error) + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Stream.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_9AC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9AC_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_9AC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_9AC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AC_Close(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_9AC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_9AC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3008, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3008, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, i); __PYX_ERR(3, 3008, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3008, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3008, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3008, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3008, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3008, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 3008, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_9AC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AC_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3009, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3011, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3011, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3012, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3013, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3014, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3019, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_AC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1); + + __pyx_v_retCode = TA_AC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AC_Close(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AC_Stream_4open_and_fill, "AC_Stream.open_and_fill(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9AC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3038, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3038, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3038, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3038, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3038, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3038, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3038, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, i); __PYX_ERR(3, 3038, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3038, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3038, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3038, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3038, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3038, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3039, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3039, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3039, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 3038, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AC_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3040, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3041, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3042, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3042, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3042, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3043, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3044, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3045, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3053, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_AC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3057, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_AC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3069, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3069, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3069, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 3069, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AC_Stream_6update, "AC_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3071, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3071, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3071, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3071, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3071, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3071, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3071, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3072, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3072, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3071, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AC_Update(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AC_Stream_8peek, "AC_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3082, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3082, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3082, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3082, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3082, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3082, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3082, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3083, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3083, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3082, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AC_Peek(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AC_Value(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AC_OutRange(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AC_Advance(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AC_Stream_10copy, "AC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self) { + TA_AC_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream))))) __PYX_ERR(3, 3113, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_AC_Clone(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ACCBANDS_Close(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3149, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3149, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 3149, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3149, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3149, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3149, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3149, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3149, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ACCBANDS_Stream *__pyx_v_handle; + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3153, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3153, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3153, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3154, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3155, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3156, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3163, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_ACCBANDS_Lookback(__pyx_v_timeperiod) + 1); + + __pyx_v_retCode = TA_ACCBANDS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ACCBANDS_Close(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill, "ACCBANDS_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3182, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3182, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3182, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3182, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3182, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3182, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 3182, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3182, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3182, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3182, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3182, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3183, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3182, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outupperband = 0; + PyArrayObject *__pyx_v_outmiddleband = 0; + PyArrayObject *__pyx_v_outlowerband = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ACCBANDS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3187, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3187, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3187, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3188, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3189, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3190, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ACCBANDS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3200, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ACCBANDS_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3204, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3205, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3206, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ACCBANDS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowerband)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 3218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_15 = 0; + __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 3218, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_15; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_15 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outlowerband); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_6update, "ACCBANDS_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3220, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3220, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3220, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3220, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3220, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 3220, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3220, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3220, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3220, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3221, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3221, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3221, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3220, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ACCBANDS_Update(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 3231, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 3231, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 3231, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_8peek, "ACCBANDS_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3233, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3233, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 3233, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3233, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3233, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3233, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3234, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3234, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3234, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3233, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ACCBANDS_Peek(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 3244, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 3244, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 3244, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ACCBANDS_Value(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 3257, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 3257, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 3257, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ACCBANDS_OutRange(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ACCBANDS_Advance(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_10copy, "ACCBANDS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self) { + TA_ACCBANDS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream))))) __PYX_ERR(3, 3268, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_ACCBANDS_Clone(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11ACOS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11ACOS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ACOS_Close(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3300, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3300, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3300, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 3300, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3300, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3300, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ACOS_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3302, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3303, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3304, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3305, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3310, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_ACOS_Lookback() + 1); + + __pyx_v_retCode = TA_ACOS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ACOS_Close(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill, "ACOS_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3329, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3329, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3329, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 3329, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3329, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3329, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ACOS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3332, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3333, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3334, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3335, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ACOS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3343, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ACOS_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3347, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ACOS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACOS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 3359, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3359, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 3359, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ACOS_Stream_6update, "ACOS_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3361, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3361, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3361, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 3361, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3361, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3362, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3361, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ACOS_Update(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ACOS_Stream_8peek, "ACOS_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3372, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3372, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3372, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 3372, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3372, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3373, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3372, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ACOS_Peek(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ACOS_Value(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ACOS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ACOS_OutRange(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ACOS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ACOS_Advance(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ACOS_Stream_10copy, "ACOS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self) { + TA_ACOS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream))))) __PYX_ERR(3, 3403, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_ACOS_Clone(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_9AD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9AD_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_9AD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_9AD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AD_Close(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_9AD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_9AD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3435, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3435, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3435, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3435, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3435, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3435, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 3435, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3435, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3435, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3435, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3435, __pyx_L3_error) + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3435, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AD_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3439, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3440, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3440, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3440, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3440, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3441, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3442, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3443, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3448, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_AD_Lookback() + 1); + + __pyx_v_retCode = TA_AD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AD_Close(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AD_Stream_4open_and_fill, "AD_Stream.open_and_fill(high, low, close, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9AD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3467, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3467, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 3467, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3467, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3467, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3467, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3467, __pyx_L3_error) + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3467, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AD_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3473, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3473, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3473, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3473, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3474, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3475, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3476, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3484, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_AD_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3488, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_AD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3500, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3500, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3500, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 3500, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3500, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 3500, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AD_Stream_6update, "AD_Stream.update(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3502, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3502, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3502, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3502, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3502, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3502, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 3502, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3502, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3502, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3502, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3502, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3503, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3503, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3503, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3503, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3502, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AD_Update(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AD_Stream_8peek, "AD_Stream.peek(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3513, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3513, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 3513, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3513, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3513, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3513, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3513, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3514, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3514, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3514, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3514, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3513, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AD_Peek(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AD_Value(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AD_OutRange(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AD_Advance(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AD_Stream_10copy, "AD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self) { + TA_AD_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream))))) __PYX_ERR(3, 3544, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_AD_Clone(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10ADD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10ADD_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10ADD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10ADD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ADD_Close(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10ADD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10ADD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3577, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3577, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 3577, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3577, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3577, __pyx_L3_error) + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3577, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ADD_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 3580, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 3580, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3581, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3582, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3583, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3588, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_ADD_Lookback() + 1); + + __pyx_v_retCode = TA_ADD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ADD_Close(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADD_Stream_4open_and_fill, "ADD_Stream.open_and_fill(real0, real1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ADD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3607, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3607, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3607, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3607, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 3607, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3607, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3607, __pyx_L3_error) + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3607, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ADD_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 3611, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 3611, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3612, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3613, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3614, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3622, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADD_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3626, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ADD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real0); + __Pyx_GIVEREF(__pyx_v_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 3638, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_real1); + __Pyx_GIVEREF(__pyx_v_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 3638, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3638, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 3638, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADD_Stream_6update, "ADD_Stream.update(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real0; + double __pyx_v_real1; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3640, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3640, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3640, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3640, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3640, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3640, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3640, __pyx_L3_error) + } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3641, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3641, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3640, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADD_Update(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADD_Stream_8peek, "ADD_Stream.peek(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real0; + double __pyx_v_real1; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3651, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3651, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3651, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3651, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3651, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3651, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3651, __pyx_L3_error) + } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3652, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3652, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3651, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADD_Peek(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADD_Value(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADD_OutRange(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADD_Advance(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADD_Stream_10copy, "ADD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self) { + TA_ADD_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream))))) __PYX_ERR(3, 3682, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_ADD_Clone(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ADOSC_Close(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3717, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3717, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, i); __PYX_ERR(3, 3717, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3717, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3717, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3717, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3717, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3717, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3717, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, __pyx_nargs); __PYX_ERR(3, 3717, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ADOSC_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3721, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3722, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3722, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3722, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3722, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3723, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3724, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3725, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3730, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1); + + __pyx_v_retCode = TA_ADOSC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ADOSC_Close(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill, "ADOSC_Stream.open_and_fill(high, low, close, volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3749, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3749, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3749, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3749, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3749, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3749, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3749, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3749, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 6, i); __PYX_ERR(3, 3749, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3749, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3749, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3749, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3749, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3749, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3749, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3750, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3750, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 6, __pyx_nargs); __PYX_ERR(3, 3749, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ADOSC_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3755, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3755, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3755, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3755, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3756, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3757, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3758, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3766, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3770, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ADOSC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3782, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3782, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3782, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 3782, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3782, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 3782, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_6update, "ADOSC_Stream.update(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3784, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3784, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3784, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3784, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3784, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3784, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 3784, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3784, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3784, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3784, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3784, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3785, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3785, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3785, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3785, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3784, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADOSC_Update(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3793, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_8peek, "ADOSC_Stream.peek(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3795, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3795, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3795, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3795, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3795, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3795, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 3795, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3795, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3795, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3795, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3795, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3796, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3796, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3796, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3796, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3795, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADOSC_Peek(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADOSC_Value(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12ADOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADOSC_OutRange(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12ADOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADOSC_Advance(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_10copy, "ADOSC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self) { + TA_ADOSC_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream))))) __PYX_ERR(3, 3826, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_ADOSC_Clone(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10ADR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10ADR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10ADR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10ADR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ADR_Close(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10ADR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10ADR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3860, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3860, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 3860, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3860, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3860, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3860, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3860, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ADR_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3861, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3863, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3863, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3863, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3864, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3865, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3866, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3871, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_ADR_Lookback(__pyx_v_timeperiod) + 1); + + __pyx_v_retCode = TA_ADR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ADR_Close(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADR_Stream_4open_and_fill, "ADR_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ADR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3890, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3890, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 3890, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3890, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3890, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3891, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3890, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ADR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3892, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3894, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3894, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3895, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3896, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3897, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3905, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADR_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3909, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ADR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3921, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3921, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3921, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 3921, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADR_Stream_6update, "ADR_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3923, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3923, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3923, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3923, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3923, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3923, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3923, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3924, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3924, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3923, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADR_Update(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3931, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3932, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADR_Stream_8peek, "ADR_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3934, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3934, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3934, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3934, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3934, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3934, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3934, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3935, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3935, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3934, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADR_Peek(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADR_Value(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3953, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3954, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADR_OutRange(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADR_Advance(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADR_Stream_10copy, "ADR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self) { + TA_ADR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream))))) __PYX_ERR(3, 3965, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_ADR_Clone(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10ADX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10ADX_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10ADX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10ADX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ADX_Close(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10ADX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10ADX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3999, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3999, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3999, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3999, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3999, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3999, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 3999, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3999, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3999, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3999, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3999, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3999, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3999, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ADX_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4003, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4003, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4003, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4004, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4005, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4006, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4011, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_ADX_Lookback(__pyx_v_timeperiod) + 1); + + __pyx_v_retCode = TA_ADX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ADX_Close(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADX_Stream_4open_and_fill, "ADX_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ADX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4030, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4030, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4030, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4030, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4030, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4030, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 4030, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4030, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4030, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4030, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4030, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4031, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4030, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ADX_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4033, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4034, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4035, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4035, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4035, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4036, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4037, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4038, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4046, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADX_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4050, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ADX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4062, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4062, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 4062, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4062, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 4062, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADX_Stream_6update, "ADX_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4064, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4064, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4064, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4064, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4064, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 4064, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4064, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4064, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4064, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4065, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4065, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4065, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4064, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADX_Update(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADX_Stream_8peek, "ADX_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4075, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4075, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 4075, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4075, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4075, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4075, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4076, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4076, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4076, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4075, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADX_Peek(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4083, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADX_Value(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4094, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADX_OutRange(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADX_Advance(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADX_Stream_10copy, "ADX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self) { + TA_ADX_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream))))) __PYX_ERR(3, 4106, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_ADX_Clone(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11ADXR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11ADXR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ADXR_Close(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4140, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4140, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4140, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4140, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4140, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4140, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 4140, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4140, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4140, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4140, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4140, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4140, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4140, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ADXR_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4144, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4144, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4144, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4145, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4146, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4147, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4152, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_ADXR_Lookback(__pyx_v_timeperiod) + 1); + + __pyx_v_retCode = TA_ADXR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ADXR_Close(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill, "ADXR_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4171, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4171, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 4171, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4171, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4171, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4171, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4172, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4171, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ADXR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4176, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4176, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4176, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4177, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4178, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4179, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADXR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4187, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADXR_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4191, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ADXR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADXR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4203, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4203, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 4203, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4203, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 4203, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ADXR_Stream_6update, "ADXR_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4205, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4205, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4205, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4205, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4205, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 4205, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4205, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4205, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4205, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4206, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4206, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4206, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4205, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADXR_Update(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ADXR_Stream_8peek, "ADXR_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4216, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4216, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4216, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4216, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4216, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 4216, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4216, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4216, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4216, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4217, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4217, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4217, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4216, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADXR_Peek(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ADXR_Value(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ADXR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADXR_OutRange(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ADXR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADXR_Advance(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ADXR_Stream_10copy, "ADXR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self) { + TA_ADXR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream))))) __PYX_ERR(3, 4247, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_ADXR_Clone(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11ALMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11ALMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11ALMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11ALMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ALMA_Close(((TA_ALMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11ALMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11ALMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_sigma; + double __pyx_v_offset; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_sigma,&__pyx_mstate_global->__pyx_n_u_offset,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4283, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4283, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 4283, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4283, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4283, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_sigma = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4283, __pyx_L3_error) + } else { + __pyx_v_sigma = ((double)6.0); + } + if (values[3]) { + __pyx_v_offset = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offset == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4283, __pyx_L3_error) + } else { + __pyx_v_offset = ((double)0.85); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 4283, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ALMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ALMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_sigma, __pyx_v_offset); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11ALMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_sigma, double __pyx_v_offset) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ALMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4285, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4286, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4287, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4288, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4293, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_ALMA_Lookback(__pyx_v_timeperiod, __pyx_v_sigma, __pyx_v_offset) + 1); + + __pyx_v_retCode = TA_ALMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_sigma, __pyx_v_offset, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ALMA_Close(((TA_ALMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ALMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ALMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ALMA_Stream_4open_and_fill, "ALMA_Stream.open_and_fill(real, int timeperiod=-0x80000000, double sigma=6.0, double offset=0.85)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ALMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ALMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_sigma; + double __pyx_v_offset; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_sigma,&__pyx_mstate_global->__pyx_n_u_offset,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4312, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4312, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4312, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4312, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4312, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4312, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 4312, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4312, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4312, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4312, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4312, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4313, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_sigma = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4313, __pyx_L3_error) + } else { + __pyx_v_sigma = ((double)6.0); + } + if (values[3]) { + __pyx_v_offset = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offset == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4313, __pyx_L3_error) + } else { + __pyx_v_offset = ((double)0.85); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 4312, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ALMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ALMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_sigma, __pyx_v_offset); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ALMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_sigma, double __pyx_v_offset) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ALMA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4315, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4316, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4317, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4318, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ALMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4326, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ALMA_Lookback(__pyx_v_timeperiod, __pyx_v_sigma, __pyx_v_offset)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4330, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ALMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_sigma, __pyx_v_offset, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ALMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4342, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4342, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 4342, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.ALMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ALMA_Stream_6update, "ALMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4344, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4344, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4344, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 4344, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4344, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4345, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4344, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ALMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ALMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ALMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ALMA_Update(((TA_ALMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ALMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ALMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ALMA_Stream_8peek, "ALMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4355, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4355, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4355, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4355, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4355, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4356, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4355, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ALMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ALMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ALMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ALMA_Peek(((TA_ALMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ALMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ALMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ALMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ALMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ALMA_Value(((TA_ALMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ALMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ALMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ALMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ALMA_OutRange(((TA_ALMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ALMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ALMA_Advance(((TA_ALMA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ALMA_Stream_10copy, "ALMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ALMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ALMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_self) { + TA_ALMA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream))))) __PYX_ERR(3, 4386, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_ALMA_Clone(((TA_ALMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ALMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ALMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_9AO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9AO_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_9AO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_9AO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AO_Close(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_9AO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_9AO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4421, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4421, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 4421, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4421, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4421, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4421, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4421, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 4421, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AO_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4424, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4424, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4425, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4426, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4427, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4432, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1); + + __pyx_v_retCode = TA_AO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AO_Close(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AO_Stream_4open_and_fill, "AO_Stream.open_and_fill(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9AO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4451, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4451, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4451, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4451, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4451, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4451, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 4451, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4451, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4451, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4451, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4451, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4452, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4452, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 4451, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AO_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4455, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4455, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4456, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4457, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4458, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4466, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4470, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_AO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4482, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4482, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4482, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 4482, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AO_Stream_6update, "AO_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4484, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4484, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4484, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4484, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 4484, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4484, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4484, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4485, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4485, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4484, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AO_Update(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AO_Stream_8peek, "AO_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4495, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4495, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4495, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4495, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 4495, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4495, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4495, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4496, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4496, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4495, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AO_Peek(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AO_Value(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AO_OutRange(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AO_Advance(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AO_Stream_10copy, "AO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self) { + TA_AO_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream))))) __PYX_ERR(3, 4526, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_AO_Clone(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10APO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10APO_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10APO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10APO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_APO_Close(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10APO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10APO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4562, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4562, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4562, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4562, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4562, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4562, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 4562, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4562, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4562, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4562, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4562, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4562, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4562, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4562, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)1); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 4562, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_APO_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4563, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4564, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4565, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4566, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4567, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4572, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1); + + __pyx_v_retCode = TA_APO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_APO_Close(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_APO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10APO_Stream_4open_and_fill, "APO_Stream.open_and_fill(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10APO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10APO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10APO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4591, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4591, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 4591, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4591, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4592, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4592, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4592, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)1); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 4591, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_APO_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4594, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4595, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4596, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4597, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_APO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4605, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4609, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_APO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_APO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4621, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4621, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 4621, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10APO_Stream_6update, "APO_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4623, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4623, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4623, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 4623, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4623, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4624, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4623, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_APO_Update(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10APO_Stream_8peek, "APO_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4634, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4634, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4634, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4634, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4634, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4635, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4634, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_APO_Peek(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4643, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_APO_Value(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10APO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_APO_OutRange(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10APO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_APO_Advance(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10APO_Stream_10copy, "APO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self) { + TA_APO_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream))))) __PYX_ERR(3, 4665, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_APO_Clone(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_12AROON_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12AROON_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_12AROON_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_12AROON_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AROON_Close(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_12AROON_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_12AROON_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4700, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4700, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4700, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4700, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4700, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 4700, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4700, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4700, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4700, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4700, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4700, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AROON_Stream *__pyx_v_handle; + double __pyx_v_outaroondown; + double __pyx_v_outaroonup; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4703, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4703, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4704, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4705, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4706, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4712, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_AROON_Lookback(__pyx_v_timeperiod) + 1); + + __pyx_v_retCode = TA_AROON_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AROON_Close(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROON_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12AROON_Stream_4open_and_fill, "AROON_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12AROON_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12AROON_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4731, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4731, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4731, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4731, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4731, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 4731, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4731, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4731, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4731, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4732, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4731, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outaroondown = 0; + PyArrayObject *__pyx_v_outaroonup = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AROON_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4734, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4735, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4735, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4736, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4737, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4738, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AROON_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4745, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4747, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_AROON_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4751, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4752, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_AROON_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroondown)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroonup)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROON_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4763, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4764, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4764, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outaroondown)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4764, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4764, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outaroonup)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 4764, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 4764, __pyx_L1_error); + __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4764, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 4764, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_14; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_14 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outaroondown); + __Pyx_XDECREF((PyObject *)__pyx_v_outaroonup); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12AROON_Stream_6update, "AROON_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4766, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4766, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4766, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4766, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 4766, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4766, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4766, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4767, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4767, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4766, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outaroondown; + double __pyx_v_outaroonup; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AROON_Update(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 4776, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 4776, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12AROON_Stream_8peek, "AROON_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4778, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4778, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4778, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4778, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 4778, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4778, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4778, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4779, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4779, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4778, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outaroondown; + double __pyx_v_outaroonup; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AROON_Peek(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 4788, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 4788, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self) { + double __pyx_v_outaroondown; + double __pyx_v_outaroonup; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AROON_Value(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 4800, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 4800, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12AROON_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AROON_OutRange(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12AROON_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AROON_Advance(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12AROON_Stream_10copy, "AROON_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self) { + TA_AROON_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream))))) __PYX_ERR(3, 4811, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_AROON_Clone(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AROONOSC_Close(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4845, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4845, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4845, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4845, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4845, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 4845, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4845, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4845, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4845, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4845, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4845, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AROONOSC_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4847, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4848, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4848, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4849, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4850, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4851, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4856, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_AROONOSC_Lookback(__pyx_v_timeperiod) + 1); + + __pyx_v_retCode = TA_AROONOSC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AROONOSC_Close(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill, "AROONOSC_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4875, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4875, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4875, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4875, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4875, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 4875, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4875, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4875, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4875, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4876, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4875, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AROONOSC_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4879, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4879, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4880, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4881, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4882, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AROONOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4890, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_AROONOSC_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4894, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_AROONOSC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4906, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4906, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4906, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4906, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4906, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4906, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 4906, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_6update, "AROONOSC_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4908, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4908, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4908, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4908, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 4908, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4908, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4908, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4909, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4909, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4908, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AROONOSC_Update(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_8peek, "AROONOSC_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4919, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4919, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4919, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4919, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 4919, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4919, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4919, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4920, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4920, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4919, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AROONOSC_Peek(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AROONOSC_Value(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4938, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AROONOSC_OutRange(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AROONOSC_Advance(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_10copy, "AROONOSC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self) { + TA_AROONOSC_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream))))) __PYX_ERR(3, 4950, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_AROONOSC_Clone(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4960, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10ASI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10ASI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10ASI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10ASI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ASI_Close(((TA_ASI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10ASI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10ASI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_limitmove; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_limitmove,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4984, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4984, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4984, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4984, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4984, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4984, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4984, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 4984, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4984, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4984, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4984, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4984, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4984, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_limitmove = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_limitmove == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4984, __pyx_L3_error) + } else { + __pyx_v_limitmove = ((double)-4e37); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 4984, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ASI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ASI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_limitmove); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10ASI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_limitmove) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ASI_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4989, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4989, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4989, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4989, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4990, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4991, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4992, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4997, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_ASI_Lookback(__pyx_v_limitmove) + 1); + + __pyx_v_retCode = TA_ASI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_limitmove, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ASI_Close(((TA_ASI_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ASI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ASI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ASI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ASI_Stream_4open_and_fill, "ASI_Stream.open_and_fill(open, high, low, close, double limitmove=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ASI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ASI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ASI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10ASI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_limitmove; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_limitmove,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5016, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5016, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5016, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5016, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5016, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5016, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5016, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 5016, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5016, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5016, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5016, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5016, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5016, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_limitmove = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_limitmove == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5017, __pyx_L3_error) + } else { + __pyx_v_limitmove = ((double)-4e37); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 5016, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ASI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ASI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_limitmove); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ASI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_limitmove) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ASI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5019, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5021, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5022, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5022, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5022, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5022, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5023, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5024, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5025, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ASI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5033, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ASI_Lookback(__pyx_v_limitmove)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5037, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ASI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_limitmove, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ASI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5049, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5049, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5049, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5049, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5049, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 5049, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.ASI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ASI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ASI_Stream_6update, "ASI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ASI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5051, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5051, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5051, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5051, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5051, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5051, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5051, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5051, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5051, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5051, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5051, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5052, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5052, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5052, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5052, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5051, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ASI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ASI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ASI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ASI_Update(((TA_ASI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ASI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ASI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ASI_Stream_8peek, "ASI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ASI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5062, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5062, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5062, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5062, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5062, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5062, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5062, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5062, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5062, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5062, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5062, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5063, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5063, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5063, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5063, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5062, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ASI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ASI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ASI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ASI_Peek(((TA_ASI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ASI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ASI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ASI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ASI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ASI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ASI_Value(((TA_ASI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ASI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ASI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ASI_OutRange(((TA_ASI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ASI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ASI_Advance(((TA_ASI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ASI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ASI_Stream_10copy, "ASI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ASI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ASI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ASI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_self) { + TA_ASI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASI_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASI_Stream))))) __PYX_ERR(3, 5093, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_ASI_Clone(((TA_ASI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ASI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11ASIN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11ASIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ASIN_Close(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5125, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5125, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5125, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 5125, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5125, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5125, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ASIN_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 5127, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5128, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5129, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5130, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5135, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_ASIN_Lookback() + 1); + + __pyx_v_retCode = TA_ASIN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ASIN_Close(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill, "ASIN_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5154, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5154, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5154, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 5154, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5154, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5154, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ASIN_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 5157, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5158, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5159, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5160, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ASIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5168, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ASIN_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5172, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ASIN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ASIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 5184, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5184, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 5184, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ASIN_Stream_6update, "ASIN_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5186, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5186, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5186, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 5186, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5186, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5187, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5186, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ASIN_Update(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ASIN_Stream_8peek, "ASIN_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5197, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5197, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5197, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 5197, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5197, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5198, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5197, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ASIN_Peek(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ASIN_Value(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ASIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ASIN_OutRange(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ASIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ASIN_Advance(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ASIN_Stream_10copy, "ASIN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self) { + TA_ASIN_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream))))) __PYX_ERR(3, 5228, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_ASIN_Clone(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11ATAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11ATAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ATAN_Close(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5260, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5260, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5260, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 5260, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5260, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5260, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ATAN_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5262, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 5262, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5263, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5264, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5265, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5270, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_ATAN_Lookback() + 1); + + __pyx_v_retCode = TA_ATAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ATAN_Close(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill, "ATAN_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5289, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5289, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5289, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 5289, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5289, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5289, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ATAN_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 5292, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5293, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5294, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5295, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ATAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5303, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ATAN_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5307, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ATAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 5319, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5319, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 5319, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ATAN_Stream_6update, "ATAN_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5321, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5321, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5321, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 5321, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5321, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5322, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5321, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ATAN_Update(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5330, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ATAN_Stream_8peek, "ATAN_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5332, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5332, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5332, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 5332, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5332, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5333, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5332, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ATAN_Peek(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ATAN_Value(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ATAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ATAN_OutRange(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ATAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ATAN_Advance(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ATAN_Stream_10copy, "ATAN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self) { + TA_ATAN_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream))))) __PYX_ERR(3, 5363, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_ATAN_Clone(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10ATR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10ATR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10ATR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10ATR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ATR_Close(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10ATR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10ATR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5397, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5397, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5397, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5397, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5397, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5397, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 5397, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5397, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5397, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5397, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5397, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5397, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 5397, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ATR_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5401, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5401, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5401, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5402, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5403, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5404, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5409, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_ATR_Lookback(__pyx_v_timeperiod) + 1); + + __pyx_v_retCode = TA_ATR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ATR_Close(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ATR_Stream_4open_and_fill, "ATR_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ATR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ATR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5428, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5428, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5428, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5428, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5428, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5428, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 5428, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5428, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5428, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5428, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5428, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5429, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 5428, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ATR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5433, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5433, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5433, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5434, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5435, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5436, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ATR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5444, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_ATR_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5448, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_ATR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5459, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 5460, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 5460, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 5460, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5460, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 5460, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ATR_Stream_6update, "ATR_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5462, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5462, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5462, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5462, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5462, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 5462, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5462, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5462, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5462, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5463, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5463, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5463, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 5462, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ATR_Update(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ATR_Stream_8peek, "ATR_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5473, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5473, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 5473, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5473, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5473, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5473, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5474, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5474, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5474, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 5473, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ATR_Peek(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ATR_Value(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ATR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ATR_OutRange(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ATR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ATR_Advance(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ATR_Stream_10copy, "ATR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self) { + TA_ATR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream))))) __PYX_ERR(3, 5504, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_ATR_Clone(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AVGDEV_Close(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5538, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5538, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5538, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5538, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 5538, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5538, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5538, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5538, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 5538, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AVGDEV_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 5540, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5541, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5542, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5543, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5548, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_AVGDEV_Lookback(__pyx_v_timeperiod) + 1); + + __pyx_v_retCode = TA_AVGDEV_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AVGDEV_Close(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill, "AVGDEV_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5567, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5567, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5567, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5567, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 5567, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5567, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5567, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5568, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 5567, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AVGDEV_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 5570, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5571, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5572, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5573, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AVGDEV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5581, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_AVGDEV_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5585, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_AVGDEV_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 5597, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5597, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 5597, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_6update, "AVGDEV_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5599, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5599, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5599, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 5599, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5599, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5600, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5599, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AVGDEV_Update(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5608, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_8peek, "AVGDEV_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5610, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5610, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5610, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 5610, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5610, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5611, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5610, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AVGDEV_Peek(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AVGDEV_Value(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5630, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AVGDEV_OutRange(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AVGDEV_Advance(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_10copy, "AVGDEV_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self) { + TA_AVGDEV_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream))))) __PYX_ERR(3, 5641, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_AVGDEV_Clone(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AVGPRICE_Close(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5673, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5673, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5673, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5673, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5673, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5673, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5673, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5673, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5673, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5673, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5673, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5673, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AVGPRICE_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5678, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5678, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5678, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5678, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5679, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5680, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5681, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5686, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_AVGPRICE_Lookback() + 1); + + __pyx_v_retCode = TA_AVGPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AVGPRICE_Close(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill, "AVGPRICE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5705, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5705, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5705, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5705, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5705, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5705, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5705, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5705, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5705, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5705, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5705, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5705, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AVGPRICE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5711, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5711, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5711, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5711, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5712, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5713, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5714, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AVGPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5722, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_AVGPRICE_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5726, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_AVGPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5738, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5738, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5738, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5738, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5738, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 5738, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_6update, "AVGPRICE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5740, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5740, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5740, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5740, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5740, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5740, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5740, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5740, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5740, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5740, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5740, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5741, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5741, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5741, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5741, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5740, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AVGPRICE_Update(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_8peek, "AVGPRICE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5751, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5751, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5751, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5751, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5751, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5751, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5751, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5751, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5751, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5751, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5751, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5752, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5752, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5752, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5752, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5751, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AVGPRICE_Peek(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_AVGPRICE_Value(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AVGPRICE_OutRange(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AVGPRICE_Advance(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_10copy, "AVGPRICE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self) { + TA_AVGPRICE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream))))) __PYX_ERR(3, 5782, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_AVGPRICE_Clone(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_BBANDS_Close(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5821, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5821, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, i); __PYX_ERR(3, 5821, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5821, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5821, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5821, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)-4e37); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5821, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)-4e37); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5821, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 5821, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_BBANDS_Stream *__pyx_v_handle; + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5822, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5823, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 5823, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5824, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5825, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5826, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5833, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype) + 1); + + __pyx_v_retCode = TA_BBANDS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_BBANDS_Close(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill, "BBANDS_Stream.open_and_fill(real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5852, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5852, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, i); __PYX_ERR(3, 5852, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5852, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5853, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5853, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)-4e37); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5853, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)-4e37); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5853, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 5852, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outupperband = 0; + PyArrayObject *__pyx_v_outmiddleband = 0; + PyArrayObject *__pyx_v_outlowerband = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_BBANDS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 5855, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5856, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5857, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5858, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BBANDS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5868, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5872, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5873, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5874, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_BBANDS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowerband)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 5886, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 5886, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 5886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 5886, __pyx_L1_error); + __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 5886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 5886, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 5886, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 5886, __pyx_L1_error); + __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_15 = 0; + __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 5886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5886, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 5886, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_15; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_15 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outlowerband); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_6update, "BBANDS_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5888, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5888, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5888, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 5888, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5888, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5889, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5888, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_BBANDS_Update(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 5899, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 5899, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 5899, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_8peek, "BBANDS_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5901, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5901, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5901, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 5901, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5901, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5902, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5901, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_BBANDS_Peek(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 5912, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 5912, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 5912, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_BBANDS_Value(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 5925, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 5925, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 5925, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13BBANDS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BBANDS_OutRange(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13BBANDS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BBANDS_Advance(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_10copy, "BBANDS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self) { + TA_BBANDS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream))))) __PYX_ERR(3, 5936, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_BBANDS_Clone(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5946, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10BBW_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10BBW_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10BBW_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10BBW_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_BBW_Close(((TA_BBW_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10BBW_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10BBW_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5973, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5973, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, i); __PYX_ERR(3, 5973, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5973, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5973, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5973, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)-4e37); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5973, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)-4e37); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5973, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 5973, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BBW_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BBW_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10BBW_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_BBW_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 5975, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5976, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5977, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5978, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5983, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_BBW_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype) + 1); + + __pyx_v_retCode = TA_BBW_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_BBW_Close(((TA_BBW_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BBW_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.BBW_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BBW_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BBW_Stream_4open_and_fill, "BBW_Stream.open_and_fill(real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10BBW_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10BBW_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10BBW_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10BBW_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6002, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6002, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6002, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6002, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6002, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6002, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6002, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, i); __PYX_ERR(3, 6002, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6002, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6002, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6002, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6002, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6002, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 6003, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6003, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)-4e37); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6003, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)-4e37); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 6003, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 6002, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BBW_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BBW_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BBW_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_BBW_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 6005, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6006, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6007, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6008, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BBW_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBW_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6016, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_BBW_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6020, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_BBW_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BBW_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 6032, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6032, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6032, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.BBW_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BBW_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BBW_Stream_6update, "BBW_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10BBW_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6034, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6034, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6034, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 6034, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6034, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6035, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 6034, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BBW_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BBW_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BBW_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_BBW_Update(((TA_BBW_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBW_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6042, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.BBW_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BBW_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BBW_Stream_8peek, "BBW_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10BBW_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6045, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6045, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6045, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 6045, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6045, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6046, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 6045, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BBW_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BBW_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BBW_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_BBW_Peek(((TA_BBW_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBW_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.BBW_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BBW_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BBW_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BBW_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BBW_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_BBW_Value(((TA_BBW_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBW_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6065, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.BBW_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10BBW_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BBW_OutRange(((TA_BBW_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10BBW_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BBW_Advance(((TA_BBW_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BBW_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BBW_Stream_10copy, "BBW_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10BBW_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BBW_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BBW_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_self) { + TA_BBW_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBW_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBW_Stream))))) __PYX_ERR(3, 6076, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_BBW_Clone(((TA_BBW_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBW_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.BBW_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11BETA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11BETA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11BETA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11BETA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_BETA_Close(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11BETA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11BETA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6111, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6111, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6111, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6111, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6111, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 6111, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6111, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6111, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6111, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 6111, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 6111, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_BETA_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 6114, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 6114, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6115, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6116, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6117, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6122, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_BETA_Lookback(__pyx_v_timeperiod) + 1); + + __pyx_v_retCode = TA_BETA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_BETA_Close(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BETA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11BETA_Stream_4open_and_fill, "BETA_Stream.open_and_fill(real0, real1, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11BETA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11BETA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6141, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6141, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6141, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6141, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6141, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 6141, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6141, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6141, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6141, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 6142, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 6141, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_BETA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 6145, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 6145, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6146, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6147, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6148, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BETA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6156, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_BETA_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6160, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_BETA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BETA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real0); + __Pyx_GIVEREF(__pyx_v_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 6172, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_real1); + __Pyx_GIVEREF(__pyx_v_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 6172, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6172, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6172, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11BETA_Stream_6update, "BETA_Stream.update(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real0; + double __pyx_v_real1; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6174, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6174, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 6174, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6174, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6174, __pyx_L3_error) + } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6175, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6175, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 6174, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_BETA_Update(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11BETA_Stream_8peek, "BETA_Stream.peek(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real0; + double __pyx_v_real1; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6185, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6185, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 6185, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6185, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6185, __pyx_L3_error) + } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6186, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6186, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 6185, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_BETA_Peek(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_BETA_Value(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11BETA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BETA_OutRange(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11BETA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BETA_Advance(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11BETA_Stream_10copy, "BETA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self) { + TA_BETA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream))))) __PYX_ERR(3, 6216, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_BETA_Clone(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10BOP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10BOP_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10BOP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10BOP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_BOP_Close(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10BOP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10BOP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6248, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6248, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6248, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6248, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6248, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6248, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6248, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6248, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6248, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6248, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6248, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6248, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_BOP_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6253, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6253, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6253, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6253, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6254, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6255, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6256, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6261, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_BOP_Lookback() + 1); + + __pyx_v_retCode = TA_BOP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_BOP_Close(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BOP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BOP_Stream_4open_and_fill, "BOP_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10BOP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10BOP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6280, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6280, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6280, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6280, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6280, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6280, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6280, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6280, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6280, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6280, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6280, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6280, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_BOP_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6286, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6286, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6286, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6286, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6287, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6288, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6289, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BOP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6297, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_BOP_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6301, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_BOP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BOP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6313, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6313, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6313, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6313, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6313, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6313, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BOP_Stream_6update, "BOP_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6315, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6315, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6315, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6315, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6315, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6315, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6315, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6316, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6316, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6316, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6316, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6315, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_BOP_Update(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BOP_Stream_8peek, "BOP_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6326, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6326, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6326, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6326, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6326, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6326, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6326, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6326, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6326, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6326, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6326, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6327, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6327, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6327, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6327, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6326, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_BOP_Peek(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_BOP_Value(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10BOP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BOP_OutRange(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10BOP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BOP_Advance(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BOP_Stream_10copy, "BOP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self) { + TA_BOP_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream))))) __PYX_ERR(3, 6357, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_BOP_Clone(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10CCI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10CCI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10CCI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10CCI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CCI_Close(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10CCI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10CCI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6391, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6391, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6391, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6391, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6391, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6391, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 6391, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6391, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6391, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6391, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6391, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 6391, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 6391, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CCI_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6395, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6395, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6395, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6396, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6397, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6398, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6403, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_CCI_Lookback(__pyx_v_timeperiod) + 1); + + __pyx_v_retCode = TA_CCI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CCI_Close(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CCI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CCI_Stream_4open_and_fill, "CCI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10CCI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CCI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6422, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6422, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6422, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6422, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6422, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6422, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 6422, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6422, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6422, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6422, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6422, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 6423, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 6422, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CCI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6427, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6427, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6427, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6428, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6429, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6430, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CCI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6438, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_CCI_Lookback(__pyx_v_timeperiod)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6442, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_CCI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CCI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 6454, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 6454, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 6454, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6454, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6454, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CCI_Stream_6update, "CCI_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6456, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6456, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6456, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6456, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6456, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 6456, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6456, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6456, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6456, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6457, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6457, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6457, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 6456, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CCI_Update(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CCI_Stream_8peek, "CCI_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6467, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6467, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 6467, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6467, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6467, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6467, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6468, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6468, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6468, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 6467, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CCI_Peek(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CCI_Value(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CCI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CCI_OutRange(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CCI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CCI_Advance(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CCI_Stream_10copy, "CCI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self) { + TA_CCI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream))))) __PYX_ERR(3, 6498, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_CCI_Clone(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL2CROWS_Close(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6530, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6530, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6530, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6530, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6530, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6530, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6530, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6530, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6530, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6530, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6530, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6530, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL2CROWS_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6535, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6535, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6535, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6535, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6536, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6537, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6538, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6543, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_CDL2CROWS_Lookback() + 1); + + __pyx_v_retCode = TA_CDL2CROWS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL2CROWS_Close(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill, "CDL2CROWS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6562, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6562, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6562, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6562, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6562, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6562, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6562, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6562, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6562, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6562, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6562, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6562, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL2CROWS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6568, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6568, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6568, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6568, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6569, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6570, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6571, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL2CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6579, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL2CROWS_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6583, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_CDL2CROWS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6595, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6595, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6595, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6595, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6595, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6595, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_6update, "CDL2CROWS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6597, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6597, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6597, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6597, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6597, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6597, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6597, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6597, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6597, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6597, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6597, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6598, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6598, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6598, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6598, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6597, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL2CROWS_Update(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6606, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek, "CDL2CROWS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6608, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6608, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6608, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6608, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6608, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6608, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6608, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6608, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6608, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6608, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6608, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6609, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6609, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6609, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6609, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6608, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL2CROWS_Peek(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL2CROWS_Value(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL2CROWS_OutRange(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL2CROWS_Advance(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy, "CDL2CROWS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self) { + TA_CDL2CROWS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream))))) __PYX_ERR(3, 6639, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_CDL2CROWS_Clone(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL3BLACKCROWS_Close(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6671, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6671, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6671, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6671, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6671, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6671, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6671, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6671, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL3BLACKCROWS_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6676, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6676, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6676, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6676, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6677, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6678, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6679, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6684, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_CDL3BLACKCROWS_Lookback() + 1); + + __pyx_v_retCode = TA_CDL3BLACKCROWS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL3BLACKCROWS_Close(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill, "CDL3BLACKCROWS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6703, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6703, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6703, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6703, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6703, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6703, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6703, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6703, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL3BLACKCROWS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6710, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6711, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6712, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6720, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3BLACKCROWS_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6724, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3BLACKCROWS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6736, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6736, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6736, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6736, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6736, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6736, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update, "CDL3BLACKCROWS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6738, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6738, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6738, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6738, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6738, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6738, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6738, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6738, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6738, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6738, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6738, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6739, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6739, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6739, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6739, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6738, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3BLACKCROWS_Update(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek, "CDL3BLACKCROWS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6749, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6749, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6749, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6749, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6749, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6749, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6749, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6749, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6749, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6749, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6749, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6750, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6750, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6750, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6750, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6749, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3BLACKCROWS_Peek(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3BLACKCROWS_Value(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3BLACKCROWS_OutRange(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3BLACKCROWS_Advance(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy, "CDL3BLACKCROWS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self) { + TA_CDL3BLACKCROWS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream))))) __PYX_ERR(3, 6780, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3BLACKCROWS_Clone(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL3INSIDE_Close(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6812, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6812, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6812, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6812, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6812, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6812, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6812, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6812, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6812, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6812, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6812, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6812, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL3INSIDE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6817, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6817, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6817, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6817, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6818, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6819, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6820, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6825, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_CDL3INSIDE_Lookback() + 1); + + __pyx_v_retCode = TA_CDL3INSIDE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL3INSIDE_Close(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill, "CDL3INSIDE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6844, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6844, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6844, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6844, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6844, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6844, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6844, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6844, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6844, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6844, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6844, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6844, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL3INSIDE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6847, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6850, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6850, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6850, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6850, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6851, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6852, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6853, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3INSIDE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6861, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3INSIDE_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6865, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3INSIDE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6877, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6877, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6877, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6877, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6877, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6877, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update, "CDL3INSIDE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6879, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6879, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6879, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6879, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6879, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6879, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6879, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6879, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6879, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6879, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6879, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6880, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6880, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6880, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6880, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6879, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3INSIDE_Update(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek, "CDL3INSIDE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6890, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6890, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6890, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6890, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6890, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6890, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6890, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6891, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6891, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6891, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6891, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6890, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3INSIDE_Peek(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3INSIDE_Value(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6909, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3INSIDE_OutRange(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3INSIDE_Advance(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy, "CDL3INSIDE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self) { + TA_CDL3INSIDE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream))))) __PYX_ERR(3, 6921, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3INSIDE_Clone(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6931, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL3LINESTRIKE_Close(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6953, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6953, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6953, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6953, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6953, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6953, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6953, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6953, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6953, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6953, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6953, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6953, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL3LINESTRIKE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6954, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6955, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6958, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6958, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6958, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6958, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6959, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6960, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6961, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6966, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_CDL3LINESTRIKE_Lookback() + 1); + + __pyx_v_retCode = TA_CDL3LINESTRIKE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL3LINESTRIKE_Close(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill, "CDL3LINESTRIKE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6985, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6985, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6985, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6985, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6985, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6985, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6985, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6985, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6985, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6985, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6985, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6985, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL3LINESTRIKE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6991, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6991, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6991, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6991, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6992, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6993, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6994, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7002, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3LINESTRIKE_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7006, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3LINESTRIKE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7018, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7018, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7018, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7018, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7018, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7018, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update, "CDL3LINESTRIKE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7020, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7020, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7020, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7020, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7020, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7020, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7020, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7020, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7020, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7020, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7020, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7021, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7021, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7021, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7021, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7020, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3LINESTRIKE_Update(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7029, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek, "CDL3LINESTRIKE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7031, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7031, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7031, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7031, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7031, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7031, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7031, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7031, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7031, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7031, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7031, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7032, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7032, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7032, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7032, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7031, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3LINESTRIKE_Peek(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7040, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3LINESTRIKE_Value(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3LINESTRIKE_OutRange(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3LINESTRIKE_Advance(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy, "CDL3LINESTRIKE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self) { + TA_CDL3LINESTRIKE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream))))) __PYX_ERR(3, 7062, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3LINESTRIKE_Clone(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL3OUTSIDE_Close(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7094, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7094, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7094, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7094, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7094, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7094, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7094, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7094, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7094, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7094, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7094, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7094, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL3OUTSIDE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7098, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7099, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7099, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7099, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7099, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7100, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7101, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7102, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7107, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_CDL3OUTSIDE_Lookback() + 1); + + __pyx_v_retCode = TA_CDL3OUTSIDE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL3OUTSIDE_Close(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill, "CDL3OUTSIDE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7126, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7126, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7126, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7126, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7126, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7126, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7126, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7126, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7126, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7126, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7126, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7126, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL3OUTSIDE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7132, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7132, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7132, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7132, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7133, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7134, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7135, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3OUTSIDE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7143, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3OUTSIDE_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7147, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3OUTSIDE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7159, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7159, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7159, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7159, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7159, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7159, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update, "CDL3OUTSIDE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7161, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7161, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7161, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7161, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7161, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7161, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7161, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7161, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7161, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7161, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7161, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7162, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7162, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7162, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7162, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7161, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3OUTSIDE_Update(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek, "CDL3OUTSIDE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7172, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7172, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7172, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7172, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7172, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7172, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7172, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7172, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7172, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7172, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7172, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7173, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7173, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7173, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7173, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7172, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3OUTSIDE_Peek(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3OUTSIDE_Value(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3OUTSIDE_OutRange(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3OUTSIDE_Advance(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy, "CDL3OUTSIDE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self) { + TA_CDL3OUTSIDE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream))))) __PYX_ERR(3, 7203, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3OUTSIDE_Clone(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL3STARSINSOUTH_Close(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7235, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7235, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7235, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7235, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7235, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7235, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7235, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7235, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7235, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7235, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7235, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7235, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL3STARSINSOUTH_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7240, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7240, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7240, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7240, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7241, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7242, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7243, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7248, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_CDL3STARSINSOUTH_Lookback() + 1); + + __pyx_v_retCode = TA_CDL3STARSINSOUTH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL3STARSINSOUTH_Close(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill, "CDL3STARSINSOUTH_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7267, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7267, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7267, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7267, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7267, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7267, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7267, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7267, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7267, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7267, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7267, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7267, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL3STARSINSOUTH_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7272, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7273, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7273, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7273, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7273, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7274, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7275, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7276, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7284, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3STARSINSOUTH_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7288, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3STARSINSOUTH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7300, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7300, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7300, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7300, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7300, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7300, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update, "CDL3STARSINSOUTH_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7302, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7302, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7302, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7302, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7302, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7302, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7302, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7302, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7302, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7302, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7302, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7303, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7303, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7303, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7303, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7302, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3STARSINSOUTH_Update(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek, "CDL3STARSINSOUTH_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7313, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7313, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7313, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7313, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7313, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7313, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7313, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7314, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7314, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7314, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7314, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7313, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3STARSINSOUTH_Peek(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3STARSINSOUTH_Value(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3STARSINSOUTH_OutRange(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3STARSINSOUTH_Advance(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy, "CDL3STARSINSOUTH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self) { + TA_CDL3STARSINSOUTH_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream))))) __PYX_ERR(3, 7344, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3STARSINSOUTH_Clone(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL3WHITESOLDIERS_Close(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7376, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7376, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7376, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7376, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7376, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7376, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7376, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7376, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7376, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7376, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7376, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7376, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL3WHITESOLDIERS_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7381, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7381, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7381, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7381, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7382, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7383, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7384, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7389, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_CDL3WHITESOLDIERS_Lookback() + 1); + + __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL3WHITESOLDIERS_Close(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill, "CDL3WHITESOLDIERS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7408, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7408, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7408, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7408, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7408, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7408, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7408, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7408, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7408, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7408, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7408, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7408, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL3WHITESOLDIERS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7414, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7414, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7414, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7414, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7415, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7416, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7417, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7425, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3WHITESOLDIERS_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7429, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3WHITESOLDIERS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7441, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7441, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7441, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7441, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7441, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7441, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update, "CDL3WHITESOLDIERS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7443, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7443, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7443, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7443, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7443, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7443, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7443, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7443, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7443, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7443, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7443, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7444, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7444, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7444, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7444, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7443, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Update(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek, "CDL3WHITESOLDIERS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7454, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7454, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7454, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7454, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7454, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7454, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7454, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7454, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7454, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7454, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7454, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7455, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7455, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7455, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7455, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7454, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Peek(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Value(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3WHITESOLDIERS_OutRange(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3WHITESOLDIERS_Advance(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy, "CDL3WHITESOLDIERS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self) { + TA_CDL3WHITESOLDIERS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream))))) __PYX_ERR(3, 7485, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Clone(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLABANDONEDBABY_Close(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7519, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 7519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7519, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 7519, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 7519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7519, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7519, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7519, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7519, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7519, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 7519, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLABANDONEDBABY_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7524, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7524, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7524, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7524, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7525, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7526, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7527, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7532, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration) + 1); + + __pyx_v_retCode = TA_CDLABANDONEDBABY_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLABANDONEDBABY_Close(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill, "CDLABANDONEDBABY_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7551, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 7551, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7551, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7551, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7551, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7551, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7551, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 7551, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 7551, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7551, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7551, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7551, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7551, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7552, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 7551, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLABANDONEDBABY_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7557, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7557, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7557, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7557, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7558, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7559, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7560, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7568, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7572, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_CDLABANDONEDBABY_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7584, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7584, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7584, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7584, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7584, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7584, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update, "CDLABANDONEDBABY_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7586, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7586, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7586, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7586, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7586, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7586, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7586, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7587, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7587, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7587, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7587, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7586, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDLABANDONEDBABY_Update(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek, "CDLABANDONEDBABY_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7597, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7597, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7597, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7597, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7597, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7597, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7597, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7597, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7597, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7597, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7597, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7598, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7598, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7598, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7598, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7597, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDLABANDONEDBABY_Peek(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7606, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDLABANDONEDBABY_Value(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLABANDONEDBABY_OutRange(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLABANDONEDBABY_Advance(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy, "CDLABANDONEDBABY_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self) { + TA_CDLABANDONEDBABY_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream))))) __PYX_ERR(3, 7628, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_CDLABANDONEDBABY_Clone(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLADVANCEBLOCK_Close(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7660, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7660, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7660, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7660, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7660, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7660, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7660, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7660, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7660, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7660, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7660, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7660, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLADVANCEBLOCK_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7665, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7665, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7665, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7665, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7666, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7667, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7668, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7673, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_CDLADVANCEBLOCK_Lookback() + 1); + + __pyx_v_retCode = TA_CDLADVANCEBLOCK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLADVANCEBLOCK_Close(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill, "CDLADVANCEBLOCK_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7692, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7692, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7692, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7692, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7692, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7692, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7692, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7692, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7692, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7692, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7692, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7692, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLADVANCEBLOCK_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7698, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7698, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7698, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7698, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7699, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7700, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7701, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7709, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLADVANCEBLOCK_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7713, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_retCode = TA_CDLADVANCEBLOCK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7725, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7725, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7725, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7725, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7725, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7725, __pyx_L1_error); + __pyx_t_13 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update, "CDLADVANCEBLOCK_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7727, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7727, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7727, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7727, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7727, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7727, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7727, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7728, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7728, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7728, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7728, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7727, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDLADVANCEBLOCK_Update(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek, "CDLADVANCEBLOCK_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7738, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7738, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7738, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7738, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7738, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7738, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7738, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7738, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7738, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7738, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7738, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7739, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7739, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7739, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7739, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7738, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDLADVANCEBLOCK_Peek(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDLADVANCEBLOCK_Value(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLADVANCEBLOCK_OutRange(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLADVANCEBLOCK_Advance(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy, "CDLADVANCEBLOCK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self) { + TA_CDLADVANCEBLOCK_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream))))) __PYX_ERR(3, 7769, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_CDLADVANCEBLOCK_Clone(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self) { + int __pyx_t_1; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLBELTHOLD_Close(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7801, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7801, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7801, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7801, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7801, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7801, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7801, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7801, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLBELTHOLD_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7806, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7806, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7806, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7806, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7807, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7808, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7809, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7814, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_need = (TA_CDLBELTHOLD_Lookback() + 1); + + __pyx_v_retCode = TA_CDLBELTHOLD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode == 0); + + if (__pyx_t_4) { + + + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLBELTHOLD_Close(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle))); + + goto __pyx_L13; + } + + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; + } + __pyx_L5:; + } + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill, "CDLBELTHOLD_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7833, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7833, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7833, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7833, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7833, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7833, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7833, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7833, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7833, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7833, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7833, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7833, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLBELTHOLD_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7837, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7838, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7839, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7839, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7839, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7839, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7839, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7840, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7841, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7842, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLBELTHOLD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7850, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_Lookback()); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } + } + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7854, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_6 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_v_output, __pyx_mstate_global->__pyx_n_u_integer, Py_EQ); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 798, __pyx_L1_error) - if (__pyx_t_6) { + __pyx_v_retCode = TA_CDLBELTHOLD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - } else { + __pyx_t_4 = (__pyx_v_retCode == 0); - __pyx_t_7 = __pyx_t_6; + if (__pyx_t_4) { - goto __pyx_L17_bool_binop_done; - } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_candlestick); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 798, __pyx_L1_error) - __pyx_t_7 = __pyx_t_6; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_L17_bool_binop_done:; - if (__pyx_t_7) { + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100); - __Pyx_DECREF_SET(__pyx_v_output, __pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100); + } + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } } + } - __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_4, __pyx_v_output); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 800, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 800, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_func_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 802, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 802, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L5:; + } - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_mstate_global->__pyx_kp_u__13); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 803, __pyx_L1_error) + __pyx_t_4 = (__pyx_v_retCode != 0); + if (__pyx_t_4) { - __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_func_line); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 804, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyList_Insert(__pyx_v_docs, 0, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 804, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__14, __pyx_v_docs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 805, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_documentation = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; + } - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 806, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_defaults); - __Pyx_GIVEREF(__pyx_v_defaults); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_defaults) != (0)) __PYX_ERR(2, 806, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_documentation); - __Pyx_GIVEREF(__pyx_v_documentation); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_documentation) != (0)) __PYX_ERR(2, 806, __pyx_L1_error); + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7866, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7866, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7866, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7866, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7866, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7866, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_12); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_AddTraceback("talib._ta_lib._get_defaults_and_docs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_defaults); - __Pyx_XDECREF(__pyx_v_func_line); - __Pyx_XDECREF(__pyx_v_func_args); - __Pyx_XDECREF(__pyx_v_docs); - __Pyx_XDECREF(__pyx_v_input_names); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_params); - __Pyx_XDECREF(__pyx_v_param); - __Pyx_XDECREF(__pyx_v_outputs); - __Pyx_XDECREF(__pyx_v_candlestick); - __Pyx_XDECREF(__pyx_v_output); - __Pyx_XDECREF(__pyx_v_documentation); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_FuncHandle const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *__pyx_v_function_name) { - TA_FuncHandle const *__pyx_v_handle; - TA_RetCode __pyx_v_retCode; - TA_FuncHandle const *__pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update, "CDLBELTHOLD_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_getFuncHandle", 0); - - /*with:*/ { - __pyx_t_2 = NULL; - __pyx_t_3 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 823, __pyx_L1_error) - __Pyx_GOTREF((PyObject *)__pyx_t_1); - } - __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 823, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = NULL; - __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 823, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = 1; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_3 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 823, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0; - /*try:*/ { - { - (void)__pyx_t_7; (void)__pyx_t_8; (void)__pyx_t_9; /* mark used */ - /*try:*/ { - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - __pyx_v_retCode = TA_GetFuncHandle(__pyx_v_function_name, (&__pyx_v_handle)); - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L15; - } - __pyx_L15:; - } - } - - } + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7868, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7868, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7868, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7868, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7868, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; } - } - /*finally:*/ { - /*normal exit:*/{ - if (__pyx_t_4) { - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 823, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } - goto __pyx_L6; + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7868, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7868, __pyx_L3_error) } } - __pyx_L6:; + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7868, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7868, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7868, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7868, __pyx_L3_error) } - goto __pyx_L16; - __pyx_L3_error:; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - goto __pyx_L1_error; - __pyx_L16:; + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7869, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7869, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7869, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7869, __pyx_L3_error) } - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetFuncHandle, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 826, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - { - - __pyx_r = __pyx_v_handle; + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7868, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L0; - + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.__ta_getFuncHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + @@ -110885,202 +179613,217 @@ static TA_FuncHandle const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *__p return __pyx_r; } - -static TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *__pyx_v_function_name) { - TA_ParamHolder *__pyx_v_holder; - TA_FuncHandle const *__pyx_v_handle; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; - TA_ParamHolder *__pyx_r; + PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; - PyObject *__pyx_t_2 = NULL; + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_paramHolderAlloc", 0); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 834, __pyx_L1_error) - __pyx_v_handle = __pyx_t_1; + __Pyx_RefNannySetupContext("update", 0); - /*with:*/ { - __pyx_t_3 = NULL; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 836, __pyx_L1_error) - __Pyx_GOTREF((PyObject *)__pyx_t_2); - } - __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 836, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 836, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 836, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0; - /*try:*/ { - { - (void)__pyx_t_8; (void)__pyx_t_9; (void)__pyx_t_10; /* mark used */ - /*try:*/ { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { - __pyx_v_retCode = TA_ParamHolderAlloc(__pyx_v_handle, (&__pyx_v_holder)); - } + __pyx_v_retCode = TA_CDLBELTHOLD_Update(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L15; - } - __pyx_L15:; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; } - } - + __pyx_L8:; + } } } - } - /*finally:*/ { - /*normal exit:*/{ - if (__pyx_t_5) { - __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 836, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; } - goto __pyx_L6; + __pyx_L5:; } - __pyx_L6:; - } - goto __pyx_L16; - __pyx_L3_error:; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - goto __pyx_L1_error; - __pyx_L16:; } - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ParamHolderAlloc, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 839, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = (__pyx_v_retCode != 0); - { + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_r = __pyx_v_holder; } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("talib._ta_lib.__ta_paramHolderAlloc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_params) { - TA_RetCode __pyx_v_retCode; - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek, "CDLBELTHOLD_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_paramHolderFree", 0); - + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - __pyx_v_retCode = TA_ParamHolderFree(__pyx_v_params); + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7879, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7879, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7879, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7879, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7879, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L5; - } - __pyx_L5:; + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7879, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7879, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7879, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7879, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7879, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7879, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7880, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7880, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7880, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7880, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7879, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); } + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ParamHolderFree, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 850, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.__ta_paramHolderFree", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } - -static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, int __pyx_v_value) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; - int __pyx_r; + PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_setOptInputParamInteger", 0); + __Pyx_RefNannySetupContext("peek", 0); { PyThreadState * _save; @@ -111088,7 +179831,22 @@ static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SetOptInputParamInteger(__pyx_v_holder, __pyx_v_idx, __pyx_v_value); + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDLBELTHOLD_Peek(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } } /*finally:*/ { @@ -111101,35 +179859,72 @@ static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder * } } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetOptInputParamInteger, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 856, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = (__pyx_v_retCode != 0); + if (__pyx_t_2) { - /* function exit code */ - __pyx_r = 0; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; goto __pyx_L0; + + + /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.__ta_setOptInputParamInteger", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, double __pyx_v_value) { +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; - int __pyx_r; + PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_setOptInputParamReal", 0); + __Pyx_RefNannySetupContext("__get__", 0); { PyThreadState * _save; @@ -111137,7 +179932,22 @@ static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *__p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SetOptInputParamReal(__pyx_v_holder, __pyx_v_idx, __pyx_v_value); + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDLBELTHOLD_Value(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } } /*finally:*/ { @@ -111150,323 +179960,151 @@ static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *__p } } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetOptInputParamReal, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 862, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.__ta_setOptInputParamReal", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - - - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *__pyx_v_holder) { - int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_getLookback", 0); - - /*with:*/ { - __pyx_t_2 = NULL; - __pyx_t_3 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib__TA_ReadLease, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 867, __pyx_L1_error) - __Pyx_GOTREF((PyObject *)__pyx_t_1); - } - __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = NULL; - __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 867, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = 1; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_3 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 867, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0; - /*try:*/ { - { - (void)__pyx_t_7; (void)__pyx_t_8; (void)__pyx_t_9; /* mark used */ - /*try:*/ { + __pyx_t_2 = (__pyx_v_retCode != 0); - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + if (__pyx_t_2) { - __pyx_v_retCode = TA_GetLookback(__pyx_v_holder, (&__pyx_v_lookback)); - } - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L15; - } - __pyx_L15:; - } - } + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } - } - } - /*finally:*/ { - /*normal exit:*/{ - if (__pyx_t_4) { - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } - goto __pyx_L6; - } - __pyx_L6:; - } - goto __pyx_L16; - __pyx_L3_error:; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - goto __pyx_L1_error; - __pyx_L16:; } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetLookback, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 870, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - - __pyx_r = __pyx_v_lookback; + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); } + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.__ta_getLookback", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; - + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static npy_intp __pyx_f_5talib_7_ta_lib_check_length(PyObject *__pyx_v_arrays) { - npy_intp __pyx_v_length; - PyObject *__pyx_v_other = NULL; - npy_intp __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - Py_ssize_t __pyx_t_3; - int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - size_t __pyx_t_6; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("check_length", 0); +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; - if (unlikely(__pyx_v_arrays == Py_None)) { - PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable"); - __PYX_ERR(3, 2429, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_arrays, 0, Py_ssize_t, 1, PyLong_FromSsize_t, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2429, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(((PyArrayObject *)__pyx_t_1))[0]); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { - if (unlikely(__pyx_v_arrays == Py_None)) { - PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable"); - __PYX_ERR(3, 2430, __pyx_L1_error) + __pyx_r = TA_CDLBELTHOLD_OutRange(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } - __pyx_t_1 = __Pyx_PyTuple_GetSlice(__pyx_v_arrays, 1, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2430, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 2430, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); - #endif - ++__pyx_t_3; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2430, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_other, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_4 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(((PyArrayObject *)__pyx_v_other))[0])); - - if (unlikely(__pyx_t_4)) { + goto __pyx_L0; - __pyx_t_5 = NULL; - __pyx_t_6 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(3, 2432, __pyx_L1_error) + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} - } - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; { - __pyx_r = __pyx_v_length; + __pyx_r = TA_CDLBELTHOLD_Advance(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.check_length", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1L; __pyx_L0:; + return __pyx_r; +} - __Pyx_XDECREF(__pyx_v_other); +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy, "CDLBELTHOLD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self)); + + /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } - -static int __pyx_f_5talib_7_ta_lib_check_begidx(npy_intp __pyx_v_length, PyObject *__pyx_v_arrays) { - double *__pyx_v_data[8]; - npy_intp __pyx_v_i; - int __pyx_v_k; - int __pyx_v_count; - int __pyx_r; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self) { + TA_CDLBELTHOLD_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - Py_ssize_t __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; int __pyx_t_6; - int __pyx_t_7; - int __pyx_t_8; - npy_intp __pyx_t_9; - npy_intp __pyx_t_10; - npy_intp __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("check_begidx", 0); - - if (unlikely(__pyx_v_arrays == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type \047NoneType\047 has no len()"); - __PYX_ERR(3, 2440, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_PyTuple_GET_SIZE(__pyx_v_arrays); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(3, 2440, __pyx_L1_error) - __pyx_v_count = __pyx_t_1; - - __pyx_t_2 = (__pyx_v_count > 8); - - if (unlikely(__pyx_t_2)) { - - - __pyx_t_4 = NULL; - __pyx_t_5 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_too_many_input_arrays}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2442, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(3, 2442, __pyx_L1_error) - - } - - - __pyx_t_6 = __pyx_v_count; - __pyx_t_7 = __pyx_t_6; + __Pyx_RefNannySetupContext("copy", 0); - for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { - __pyx_v_k = __pyx_t_8; + __pyx_v_clone = NULL; - if (unlikely(__pyx_v_arrays == Py_None)) { - PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable"); - __PYX_ERR(3, 2444, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_arrays, __pyx_v_k, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - (__pyx_v_data[__pyx_v_k]) = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(((PyArrayObject *)__pyx_t_3))); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); } - + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream))))) __PYX_ERR(3, 7910, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; { PyThreadState * _save; @@ -111474,746 +180112,853 @@ static int __pyx_f_5talib_7_ta_lib_check_begidx(npy_intp __pyx_v_length, PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { - __pyx_t_9 = __pyx_v_length; - __pyx_t_10 = __pyx_t_9; - - for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { - __pyx_v_i = __pyx_t_11; + __pyx_v_retCode = TA_CDLBELTHOLD_Clone(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_t_5 = (__pyx_v_retCode == 0); - __pyx_t_6 = __pyx_v_count; - __pyx_t_7 = __pyx_t_6; + if (__pyx_t_5) { - for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { - __pyx_v_k = __pyx_t_8; - __pyx_t_2 = (((__pyx_v_data[__pyx_v_k])[__pyx_v_i]) != ((__pyx_v_data[__pyx_v_k])[__pyx_v_i])); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - if (__pyx_t_2) { + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; - goto __pyx_L12_break; + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } } - } - /*else*/ { - - { - __pyx_r = ((int)__pyx_v_i); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; } - goto __pyx_L6_return; - } - __pyx_L12_break:; - } - } /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); - goto __pyx_L8; - } - __pyx_L6_return: { - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L0; + goto __pyx_L5; } - __pyx_L8:; + __pyx_L5:; } } - { + __pyx_t_5 = (__pyx_v_retCode != 0); - __pyx_r = (((int)__pyx_v_length) - 1); + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); } goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.check_begidx", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -2; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); - - - + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyArrayObject *__pyx_f_5talib_7_ta_lib__stream_input(PyObject *__pyx_v_values) { - PyObject *__pyx_v_series = NULL; - PyArrayObject *__pyx_r = NULL; +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - Py_ssize_t __pyx_t_5; - int __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - size_t __pyx_t_9; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_stream_input", 0); - - __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_values, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray); - if (__pyx_t_1) { - - - if (!(likely(((__pyx_v_values) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_values, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(3, 2462, __pyx_L1_error) - __pyx_t_2 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(((PyArrayObject *)__pyx_v_values))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - { - PyArrayObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = ((PyArrayObject *)__pyx_t_2); - } - __Pyx_XDECREF((PyObject *)__pyx_temp); - } - __pyx_t_2 = 0; - goto __pyx_L0; + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self)); - } + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 2463, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 2463, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - for (;;) { - if (__pyx_t_5 >= 2) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); - #endif - ++__pyx_t_5; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_series, __pyx_t_4); - __pyx_t_4 = 0; +static void __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self) { + int __pyx_t_1; - __pyx_t_6 = (__pyx_v_series != Py_None); - if (__pyx_t_6) { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - } else { + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); - __pyx_t_1 = __pyx_t_6; + if (__pyx_t_1) { - goto __pyx_L7_bool_binop_done; - } - __pyx_t_6 = PyObject_IsInstance(__pyx_v_values, __pyx_v_series); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 2464, __pyx_L1_error) - __pyx_t_1 = __pyx_t_6; + (void)(TA_CDLBREAKAWAY_Close(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle))); - __pyx_L7_bool_binop_done:; - if (__pyx_t_1) { + __pyx_v_self->__pyx_base._handle = NULL; + __pyx_f_5talib_7_ta_lib__ta_stream_closed(); - __pyx_t_8 = __pyx_v_values; - __Pyx_INCREF(__pyx_t_8); - __pyx_t_9 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL}; - __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_numpy, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - } - __pyx_t_2 = __pyx_t_7; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_9 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)(&PyFloat_Type))}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + } } - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(3, 2465, __pyx_L1_error) - __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(((PyArrayObject *)__pyx_t_4))); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - { - PyArrayObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = ((PyArrayObject *)__pyx_t_7); + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; } - __Pyx_XDECREF((PyObject *)__pyx_temp); + __pyx_L5:; } - __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L0; + } - } - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* function exit code */ - __pyx_t_7 = NULL; +} - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_values)), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2467, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_input_must_be_a_numpy_array_or_a, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2467, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = 1; + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_2}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7942, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7942, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7942, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7942, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7942, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7942, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7942, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7942, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7942, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7942, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7942, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(3, 2466, __pyx_L1_error) - + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7942, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib._stream_input", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_series); - __Pyx_XGIVEREF((PyObject *)__pyx_r); + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } __Pyx_RefNannyFinishContext(); return __pyx_r; } - -static int __pyx_f_5talib_7_ta_lib__stream_history(npy_intp __pyx_v_length, int __pyx_v_begidx) { +static int __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLBREAKAWAY_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_v_need; int __pyx_r; __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + __Pyx_Locks_PyMutex *__pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_stream_history", 0); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = (__pyx_v_begidx < 0); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - if (unlikely(__pyx_t_1)) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7945, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7946, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7947, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7947, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7947, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7947, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7947, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7948, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7949, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7950, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7955, __pyx_L1_error) + + /*try:*/ { - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_InsufficientHistory); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_5 = 0; - } - #endif { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_no_history_the_input_array_is_em}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(3, 2472, __pyx_L1_error) + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - } + __pyx_v_need = (TA_CDLBREAKAWAY_Lookback() + 1); - { + __pyx_v_retCode = TA_CDLBREAKAWAY_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); - __pyx_r = ((int)(__pyx_v_length - __pyx_v_begidx)); - } - goto __pyx_L0; + __pyx_t_4 = (__pyx_v_retCode == 0); + if (__pyx_t_4) { - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib._stream_history", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + { + __pyx_t_5 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_5); + /*try:*/ { + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); -static PyObject *__pyx_f_5talib_7_ta_lib__stream_open_failed(PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_retCode, int __pyx_v_historylen, int __pyx_v_need) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8[6]; - Py_ssize_t __pyx_t_9; - int __pyx_t_10; - PyObject *__pyx_t_11 = NULL; - size_t __pyx_t_12; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_stream_open_failed", 0); + if (__pyx_t_4) { - __pyx_t_1 = (__pyx_v_retCode == 17); + (void)(TA_CDLBREAKAWAY_Close(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle))); - if (__pyx_t_1) { + goto __pyx_L13; + } + /*else*/ { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + __pyx_L13:; - __pyx_t_1 = (__pyx_v_need <= __pyx_v_historylen); + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); - if (__pyx_t_1) { + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_5); + goto __pyx_L12; + } + __pyx_L12:; + } + } - __pyx_v_need = (__pyx_v_historylen + 1); + } + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } } + } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_InsufficientHistory); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_function_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2482, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyUnicode_From_int(__pyx_v_historylen, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2482, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyUnicode_From_int(__pyx_v_need, 0, ' ', 'd'); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2482, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8[0] = __pyx_t_5; - __pyx_t_8[1] = __pyx_mstate_global->__pyx_kp_u__2; - __pyx_t_8[2] = __pyx_t_6; - __pyx_t_8[3] = __pyx_mstate_global->__pyx_kp_u_bars_of_history_at_least; - __pyx_t_8[4] = __pyx_t_7; - __pyx_t_8[5] = __pyx_mstate_global->__pyx_kp_u_needed_a_leading_bar_that_is_Na; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __pyx_t_9 = 92; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[0]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[2]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[4]); - #endif - __pyx_t_10 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_8[0]); - #endif - __pyx_t_11 = __Pyx_PyUnicode_Join(__pyx_t_8, 6, __pyx_t_9, __pyx_t_10); - if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 2481, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_12 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_12 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_11}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L16; + } + __pyx_L16:; + } + } + goto __pyx_L5; } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(3, 2480, __pyx_L1_error) - + __pyx_L5:; } - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_v_function_name, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2483, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7972, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_AddTraceback("talib._ta_lib._stream_open_failed", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_f_5talib_7_ta_lib__stream_like(PyObject *__pyx_v_sources, PyObject *__pyx_v_result) { - PyObject *__pyx_v_pandas = NULL; - PyObject *__pyx_v_polars = NULL; - PyObject *__pyx_v_s = NULL; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill, "CDLBREAKAWAY_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7974, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7974, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7974, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7974, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7974, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7974, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7974, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7974, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7974, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7974, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7974, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7974, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLBREAKAWAY_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - Py_ssize_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_t_5; - int __pyx_t_6; - size_t __pyx_t_7; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_stream_like", 0); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2487, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__pyx_v_sources == Py_None)) { - PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not iterable"); - __PYX_ERR(3, 2487, __pyx_L1_error) - } - __pyx_t_2 = __pyx_v_sources; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 2487, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); - #endif - ++__pyx_t_3; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2487, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_s, __pyx_t_4); - __pyx_t_4 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2488, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = (__pyx_t_4 != Py_None); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { - - } else { - - __pyx_t_5 = __pyx_t_6; - - goto __pyx_L6_bool_binop_done; - } - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2488, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PyObject_IsInstance(__pyx_v_s, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 2488, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_5 = __pyx_t_6; - - __pyx_L6_bool_binop_done:; - if (__pyx_t_5) { - + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, __pyx_v_s))) __PYX_ERR(3, 2487, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7977, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - } + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_pandas = ((PyObject*)__pyx_t_1); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2489, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__pyx_v_sources == Py_None)) { - PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not iterable"); - __PYX_ERR(3, 2489, __pyx_L1_error) - } - __pyx_t_2 = __pyx_v_sources; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 2489, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); - #endif - ++__pyx_t_3; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2489, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_s, __pyx_t_4); - __pyx_t_4 = 0; + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7980, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7980, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7980, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7980, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = (__pyx_t_4 != Py_None); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_6) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7981, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - } else { + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7982, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_5 = __pyx_t_6; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7983, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - goto __pyx_L12_bool_binop_done; - } - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PyObject_IsInstance(__pyx_v_s, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 2490, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_handle = NULL; - __pyx_t_5 = __pyx_t_6; + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLBREAKAWAY_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_L12_bool_binop_done:; - if (__pyx_t_5) { + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7991, __pyx_L1_error) + + /*try:*/ { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, __pyx_v_s))) __PYX_ERR(3, 2489, __pyx_L1_error) + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBREAKAWAY_Lookback()); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } } - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_polars = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7995, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_pandas); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(3, 2491, __pyx_L1_error) - __pyx_t_6 = (__pyx_temp != 0); - } + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - if (__pyx_t_6) { + __pyx_v_retCode = TA_CDLBREAKAWAY_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - } else { + __pyx_t_4 = (__pyx_v_retCode == 0); - __pyx_t_5 = __pyx_t_6; + if (__pyx_t_4) { - goto __pyx_L16_bool_binop_done; - } - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_polars); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(3, 2491, __pyx_L1_error) - __pyx_t_6 = (__pyx_temp != 0); - } + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_5 = __pyx_t_6; + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_L16_bool_binop_done:; - if (unlikely(__pyx_t_5)) { + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + } + } - __pyx_t_2 = NULL; - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Cannot_mix_polars_and_pandas}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2492, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } } - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(3, 2492, __pyx_L1_error) - - } - - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_pandas); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(3, 2493, __pyx_L1_error) - __pyx_t_5 = (__pyx_temp != 0); } - if (__pyx_t_5) { + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2494, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_pandas, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2494, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2494, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_result, __pyx_t_9}; - #if CYTHON_VECTORCALL - __pyx_t_8 = __pyx_mstate_global->__pyx_tuple[2]; - if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2494, __pyx_L1_error) - __Pyx_INCREF(__pyx_t_8); - #else - { - PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_index}; - __pyx_t_8 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 1); - if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2494, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } } - #endif - __pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2494, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + goto __pyx_L5; } - { - PyObject *__pyx_temp; + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_3 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; + } + __pyx_L20:; + } + } } - __Pyx_XDECREF(__pyx_temp); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; } - __pyx_t_1 = 0; - goto __pyx_L0; - + __pyx_L5:; } - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_polars); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(3, 2495, __pyx_L1_error) - __pyx_t_5 = (__pyx_temp != 0); - } + __pyx_t_4 = (__pyx_v_retCode != 0); - if (__pyx_t_5) { + if (__pyx_t_4) { - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_result}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_1 = 0; - goto __pyx_L0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8006, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8007, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8007, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8007, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8007, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8007, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8007, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8007, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8007, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8007, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_result); - __pyx_r = __pyx_v_result; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("talib._ta_lib._stream_like", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_pandas); - __Pyx_XDECREF(__pyx_v_polars); - __Pyx_XDECREF(__pyx_v_s); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -112221,126 +180966,130 @@ static PyObject *__pyx_f_5talib_7_ta_lib__stream_like(PyObject *__pyx_v_sources, /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_6Stream_1__cinit__(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_6Stream_1__cinit__(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL_TPNEW +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update, "CDLBREAKAWAY_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - #if !CYTHON_VECTORCALL_TPNEW + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - int __pyx_r; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); - #if !CYTHON_VECTORCALL_TPNEW + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; } - const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) return -1; - if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream___cinit__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_5talib_7_ta_lib_6Stream___cinit__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { - int __pyx_r; - - __pyx_v_self->_handle = NULL; - - - /* function exit code */ - __pyx_r = 0; - - return __pyx_r; -} - - -static TA_RetCode __pyx_f_5talib_7_ta_lib_6Stream__out_range(CYTHON_UNUSED struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self, CYTHON_UNUSED int *__pyx_v_outbegidx, CYTHON_UNUSED int *__pyx_v_outnbelement) { - TA_RetCode __pyx_r; - + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - - __pyx_r = TA_BAD_PARAM; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8009, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8009, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8009, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8009, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8009, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8009, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8009, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8009, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8009, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8009, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8009, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8010, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8010, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8010, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8010, __pyx_L3_error) } - goto __pyx_L0; - + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8009, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - __pyx_L0:; - return __pyx_r; -} - - -static TA_RetCode __pyx_f_5talib_7_ta_lib_6Stream__advance(CYTHON_UNUSED struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { - TA_RetCode __pyx_r; - - { - - __pyx_r = TA_BAD_PARAM; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L0; - - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_9out_range_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_9out_range_1__get__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_9out_range___get__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); - /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_9out_range___get__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_begidx; +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - size_t __pyx_t_9; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_RefNannySetupContext("update", 0); { PyThreadState * _save; @@ -112349,15 +181098,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_9out_range___get__(struct __py /*try:*/ { { - __pyx_t_1 = &__pyx_v_self->_mutex; + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = ((struct __pyx_vtabstruct_5talib_7_ta_lib_Stream *)__pyx_v_self->__pyx_vtab)->_out_range(__pyx_v_self, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement)); - - __pyx_t_2 = __pyx_v_self->_begidx; - - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_CDLBREAKAWAY_Update(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -112380,78 +181125,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_9out_range___get__(struct __py } } - __pyx_t_3 = (__pyx_v_retCode != 0); + __pyx_t_2 = (__pyx_v_retCode != 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2530, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_out_range, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2530, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(((PyObject*)__pyx_t_5), __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2530, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_OutRange); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyLong_From_int((__pyx_v_outbegidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_outnbelement); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_9 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_7, __pyx_t_8}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - } + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.Stream.out_range.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -112459,28 +181165,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_9out_range___get__(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_3advance(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6Stream_2advance, "Stream.advance(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_3advance(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek, "CDLBREAKAWAY_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("advance (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -112489,29 +181203,92 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("advance", 1, 0, 0, __pyx_nargs); return NULL; } - const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) return NULL; - if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("advance", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_2advance(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8020, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8020, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8020, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8020, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8020, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8020, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8020, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8020, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8020, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8020, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8020, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8021, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8021, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8021, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8021, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8020, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_2advance(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("advance", 0); + __Pyx_RefNannySetupContext("peek", 0); { PyThreadState * _save; @@ -112520,11 +181297,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_2advance(struct __pyx_obj_5tal /*try:*/ { { - __pyx_t_1 = &__pyx_v_self->_mutex; + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = ((struct __pyx_vtabstruct_5talib_7_ta_lib_Stream *)__pyx_v_self->__pyx_vtab)->_advance(__pyx_v_self); + __pyx_v_retCode = TA_CDLBREAKAWAY_Peek(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -112552,29 +181329,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_2advance(struct __pyx_obj_5tal if (__pyx_t_2) { - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_advance, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(((PyObject*)__pyx_t_4), __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2540, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8029, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Stream.advance", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -112582,237 +181364,148 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_2advance(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_5__copy__(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6Stream_4__copy__, "Stream.__copy__(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_6Stream_5__copy__ = {"__copy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_6Stream_5__copy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6Stream_4__copy__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_5__copy__(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__copy__ (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__copy__", 1, 0, 0, __pyx_nargs); return NULL; } - const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) return NULL; - if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__copy__", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_4__copy__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_4__copy__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__copy__", 0); + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_2 = ((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_CDLBREAKAWAY_Value(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8040, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Stream.__copy__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_7__deepcopy__(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6Stream_6__deepcopy__, "Stream.__deepcopy__(self, memo)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_6Stream_7__deepcopy__ = {"__deepcopy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_6Stream_7__deepcopy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6Stream_6__deepcopy__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_7__deepcopy__(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - CYTHON_UNUSED PyObject *__pyx_v_memo = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__deepcopy__ (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_memo,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2545, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2545, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__deepcopy__", 0) < (0)) __PYX_ERR(3, 2545, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 1, 1, i); __PYX_ERR(3, 2545, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2545, __pyx_L3_error) - } - __pyx_v_memo = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2545, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + + __pyx_r = TA_CDLBREAKAWAY_OutRange(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } - __Pyx_AddTraceback("talib._ta_lib.Stream.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_6__deepcopy__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self), __pyx_v_memo); + goto __pyx_L0; + /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_RefNannyFinishContext(); + __pyx_L0:; return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_6__deepcopy__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_memo) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__deepcopy__", 0); - __pyx_t_2 = ((PyObject *)__pyx_v_self); - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2546, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + + __pyx_r = TA_CDLBREAKAWAY_Advance(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle)); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Stream.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_9__reduce__(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6Stream_8__reduce__, "Stream.__reduce__(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_6Stream_9__reduce__ = {"__reduce__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_6Stream_9__reduce__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6Stream_8__reduce__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_9__reduce__(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy, "CDLBREAKAWAY_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -112825,7 +181518,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce__ (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -112834,59 +181527,132 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce__", 1, 0, 0, __pyx_nargs); return NULL; } + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; - if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce__", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_8__reduce__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_8__reduce__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self) { + TA_CDLBREAKAWAY_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_stream = 0; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; + size_t __pyx_t_3; + __Pyx_Locks_PyMutex *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce__", 0); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_2 = NULL; + __pyx_v_clone = NULL; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2551, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_cannot_pickle_s_a_stream_handle, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2551, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = 1; + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2549, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(3, 2549, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream))))) __PYX_ERR(3, 8051, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_4 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); + /*try:*/ { + + __pyx_v_retCode = TA_CDLBREAKAWAY_Clone(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_5 = (__pyx_v_retCode == 0); + + if (__pyx_t_5) { + + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_6 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_6; + + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); + + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_4); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_5 = (__pyx_v_retCode != 0); + + if (__pyx_t_5) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Stream.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -112894,19 +181660,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_8__reduce__(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_9AC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_9AC_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_9AC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_9AC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -112920,7 +181686,7 @@ static void __pyx_pf_5talib_7_ta_lib_9AC_Stream___dealloc__(struct __pyx_obj_5ta if (__pyx_t_1) { - (void)(TA_AC_Close(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLCLOSINGMARUBOZU_Close(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -112946,30 +181712,29 @@ static void __pyx_pf_5talib_7_ta_lib_9AC_Stream___dealloc__(struct __pyx_obj_5ta /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_9AC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_9AC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -112985,115 +181750,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2576, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8083, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 2576, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2576, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8083, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2576, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8083, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2576, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8083, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2576, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8083, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2576, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, i); __PYX_ERR(3, 2576, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 2576, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2576, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2576, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2576, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2576, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8083, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8083, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2576, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2576, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2576, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_signalperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8083, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8083, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8083, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8083, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 2576, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8083, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_9AC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static int __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_AC_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLCLOSINGMARUBOZU_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -113108,39 +181844,55 @@ static int __pyx_pf_5talib_7_ta_lib_9AC_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2577, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2578, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2579, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8088, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2579, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8088, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2579, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8088, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8088, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2580, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8089, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2581, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8090, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2582, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8091, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 2587, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8096, __pyx_L1_error) /*try:*/ { @@ -113150,9 +181902,9 @@ static int __pyx_pf_5talib_7_ta_lib_9AC_Stream_2__init__(struct __pyx_obj_5talib __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_AC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1); + __pyx_v_need = (TA_CDLCLOSINGMARUBOZU_Lookback() + 1); - __pyx_v_retCode = TA_AC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -113169,7 +181921,7 @@ static int __pyx_pf_5talib_7_ta_lib_9AC_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - (void)(TA_AC_Close(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLCLOSINGMARUBOZU_Close(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -113237,7 +181989,7 @@ static int __pyx_pf_5talib_7_ta_lib_9AC_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2604, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -113249,11 +182001,13 @@ static int __pyx_pf_5talib_7_ta_lib_9AC_Stream_2__init__(struct __pyx_obj_5talib goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -113269,32 +182023,31 @@ static int __pyx_pf_5talib_7_ta_lib_9AC_Stream_2__init__(struct __pyx_obj_5talib /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AC_Stream_4open_and_fill, "AC_Stream.open_and_fill(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9AC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AC_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill, "CDLCLOSINGMARUBOZU_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -113310,119 +182063,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2606, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8115, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 2606, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2606, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2606, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2606, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2606, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2606, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, i); __PYX_ERR(3, 2606, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 2606, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2606, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2606, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2606, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2606, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8115, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8115, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2607, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2607, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2607, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_signalperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8115, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8115, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8115, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8115, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 2606, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8115, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_AC_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_stream = 0; + TA_CDLCLOSINGMARUBOZU_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -113444,44 +182168,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2608, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2609, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2610, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8121, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2610, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8121, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2610, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8121, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8121, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2611, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8122, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2612, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8123, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2613, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8124, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2619, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 2621, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8132, __pyx_L1_error) /*try:*/ { @@ -113491,7 +182231,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_AC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCLOSINGMARUBOZU_Lookback()); } /*finally:*/ { @@ -113504,9 +182244,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2625, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8136, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -113515,7 +182255,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_AC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -113619,30 +182359,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2636, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2637, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8148, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2637, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8148, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2637, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 2637, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8148, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8148, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2637, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 2637, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8148, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 2637, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8148, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -113660,17 +182406,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(PyObject *__ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.AC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -113683,28 +182431,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AC_Stream_6update, "AC_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update, "CDLCLOSINGMARUBOZU_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -113720,52 +182470,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2639, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8150, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8150, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8150, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8150, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8150, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 2639, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 2639, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8150, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8150, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8150, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8150, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8150, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8150, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2640, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2640, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8151, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8151, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8151, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8151, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 2639, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8150, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -113773,12 +182537,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -113801,7 +182567,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_6update(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AC_Update(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Update(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -113829,13 +182595,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_6update(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2647, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2648, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -113852,7 +182618,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_6update(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -113864,28 +182630,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_6update(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AC_Stream_8peek, "AC_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek, "CDLCLOSINGMARUBOZU_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -113901,52 +182669,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2650, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8161, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8161, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8161, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2650, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8161, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2650, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8161, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 2650, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 2650, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8161, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8161, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2650, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8161, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2650, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8161, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8161, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8161, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2651, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2651, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8162, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8162, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8162, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8162, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 2650, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8161, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -113954,12 +182736,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -113982,7 +182766,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_8peek(struct __pyx_obj_5tal __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AC_Peek(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Peek(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -114010,13 +182794,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2658, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2659, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -114033,7 +182817,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_8peek(struct __pyx_obj_5tal /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -114045,22 +182829,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_8peek(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -114083,7 +182867,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_5value___get__(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AC_Value(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Value(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -114111,13 +182895,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_5value___get__(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2669, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2670, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -114134,7 +182918,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_5value___get__(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -114145,12 +182929,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_5value___get__(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9AC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_AC_OutRange(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLCLOSINGMARUBOZU_OutRange(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -114161,12 +182945,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9AC_Stream__out_range(struct __pyx_obj } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9AC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_AC_Advance(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLCLOSINGMARUBOZU_Advance(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -114178,15 +182962,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9AC_Stream__advance(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AC_Stream_10copy, "AC_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy, "CDLCLOSINGMARUBOZU_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -114212,16 +182996,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self) { - TA_AC_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self) { + TA_CDLCLOSINGMARUBOZU_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -114238,18 +183022,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_10copy(struct __pyx_obj_5ta __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2681, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream))))) __PYX_ERR(3, 2681, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream))))) __PYX_ERR(3, 8192, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -114263,7 +183047,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_10copy(struct __pyx_obj_5ta __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_AC_Clone(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Clone(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -114306,7 +183090,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2691, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -114328,7 +183112,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_10copy(struct __pyx_obj_5ta __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.AC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -114341,19 +183125,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_10copy(struct __pyx_obj_5ta /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -114367,7 +183151,7 @@ static void __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_ACCBANDS_Close(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLCONCEALBABYSWALL_Close(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -114393,24 +183177,24 @@ static void __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -114431,86 +183215,77 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2717, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8224, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2717, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8224, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2717, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8224, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2717, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8224, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2717, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8224, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2717, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 2717, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2717, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2717, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2717, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2717, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8224, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8224, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2717, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8224, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8224, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8224, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8224, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 2717, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8224, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -114518,10 +183293,8 @@ static int __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(struct __pyx_obj npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ACCBANDS_Stream *__pyx_v_handle; - double __pyx_v_outupperband; - double __pyx_v_outmiddleband; - double __pyx_v_outlowerband; + TA_CDLCONCEALBABYSWALL_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -114536,47 +183309,55 @@ static int __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2718, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2719, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2720, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2721, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8229, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2721, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8229, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2721, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8229, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2721, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8229, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2722, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8230, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2723, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8231, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2724, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8232, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 2731, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8237, __pyx_L1_error) /*try:*/ { @@ -114586,9 +183367,9 @@ static int __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ACCBANDS_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_CDLCONCEALBABYSWALL_Lookback() + 1); - __pyx_v_retCode = TA_ACCBANDS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -114605,7 +183386,7 @@ static int __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_ACCBANDS_Close(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLCONCEALBABYSWALL_Close(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -114673,7 +183454,7 @@ static int __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2748, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -114685,9 +183466,10 @@ static int __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -114700,34 +183482,32 @@ static int __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(struct __pyx_obj - - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill, "ACCBANDS_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill, "CDLCONCEALBABYSWALL_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -114748,86 +183528,77 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2750, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8256, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2750, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2750, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2750, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2750, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2750, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 2750, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2750, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2750, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2750, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2750, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8256, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8256, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2751, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8256, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8256, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8256, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8256, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 2750, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8256, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -114836,13 +183607,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObj int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outupperband = 0; - PyArrayObject *__pyx_v_outmiddleband = 0; - PyArrayObject *__pyx_v_outlowerband = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ACCBANDS_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_stream = 0; + TA_CDLCONCEALBABYSWALL_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -114859,59 +183628,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObj PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2752, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8258, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2753, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2754, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2755, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8262, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2755, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8262, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2755, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8262, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2755, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8262, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2756, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8263, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2757, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8264, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2758, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8265, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ACCBANDS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2766, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 2768, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8273, __pyx_L1_error) /*try:*/ { @@ -114921,7 +183696,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ACCBANDS_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCONCEALBABYSWALL_Lookback()); } /*finally:*/ { @@ -114934,19 +183709,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2772, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2773, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8277, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2774, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -114955,7 +183720,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ACCBANDS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowerband)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -115059,82 +183824,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2785, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2786, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8289, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8289, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8289, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 2786, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8289, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 2786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); - __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2786, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_15 = 0; - __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 2786, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8289, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8289, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_15; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_15 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -115142,11 +183871,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -115155,9 +183883,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObj - __Pyx_XDECREF((PyObject *)__pyx_v_outupperband); - __Pyx_XDECREF((PyObject *)__pyx_v_outmiddleband); - __Pyx_XDECREF((PyObject *)__pyx_v_outlowerband); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -115170,21 +183896,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_6update, "ACCBANDS_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update, "CDLCONCEALBABYSWALL_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -115192,7 +183919,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -115208,59 +183935,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2788, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8291, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8291, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2788, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8291, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2788, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8291, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2788, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8291, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 2788, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 2788, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8291, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8291, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2788, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8291, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2788, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8291, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2788, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8291, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8291, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2789, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2789, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2789, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8292, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8292, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8292, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8292, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 2788, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8291, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -115269,23 +184003,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outupperband; - double __pyx_v_outmiddleband; - double __pyx_v_outlowerband; +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -115302,7 +184032,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ACCBANDS_Update(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Update(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -115330,54 +184060,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_6update(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2798, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2799, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2799, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2799, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2799, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 2799, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 2799, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 2799, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -115385,21 +184095,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_8peek, "ACCBANDS_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek, "CDLCONCEALBABYSWALL_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -115407,7 +184118,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -115423,59 +184134,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2801, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8302, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8302, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8302, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8302, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8302, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 2801, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 2801, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8302, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8302, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8302, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8302, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8302, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8302, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2802, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2802, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2802, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8303, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8303, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8303, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8303, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 2801, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8302, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -115484,23 +184202,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outupperband; - double __pyx_v_outmiddleband; - double __pyx_v_outlowerband; +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -115517,7 +184231,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ACCBANDS_Peek(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Peek(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -115545,54 +184259,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_8peek(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2811, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2812, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 2812, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 2812, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 2812, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -115600,33 +184294,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self) { - double __pyx_v_outupperband; - double __pyx_v_outmiddleband; - double __pyx_v_outlowerband; +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -115643,7 +184332,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ACCBANDS_Value(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Value(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -115671,66 +184360,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_5value___get__(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2824, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2825, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2825, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2825, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2825, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 2825, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 2825, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 2825, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ACCBANDS_OutRange(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLCONCEALBABYSWALL_OutRange(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -115741,12 +184410,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ACCBANDS_Advance(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLCONCEALBABYSWALL_Advance(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -115758,15 +184427,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_10copy, "ACCBANDS_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy, "CDLCONCEALBABYSWALL_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -115792,16 +184461,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self) { - TA_ACCBANDS_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self) { + TA_CDLCONCEALBABYSWALL_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -115818,18 +184487,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2836, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream))))) __PYX_ERR(3, 2836, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream))))) __PYX_ERR(3, 8333, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -115843,7 +184512,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ACCBANDS_Clone(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Clone(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -115886,7 +184555,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2846, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -115908,7 +184577,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -115921,19 +184590,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11ACOS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11ACOS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -115947,7 +184616,7 @@ static void __pyx_pf_5talib_7_ta_lib_11ACOS_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_ACOS_Close(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLCOUNTERATTACK_Close(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -115973,26 +184642,29 @@ static void __pyx_pf_5talib_7_ta_lib_11ACOS_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -116008,45 +184680,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2868, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8365, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8365, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8365, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8365, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8365, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2868, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 2868, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8365, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8365, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8365, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8365, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8365, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8365, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2868, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8365, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -116056,14 +184749,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ACOS_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLCOUNTERATTACK_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -116078,31 +184774,55 @@ static int __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2869, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2870, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 2870, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8370, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8370, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8370, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8370, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2871, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8371, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2872, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8372, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2873, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8373, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 2878, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8378, __pyx_L1_error) /*try:*/ { @@ -116112,9 +184832,9 @@ static int __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ACOS_Lookback() + 1); + __pyx_v_need = (TA_CDLCOUNTERATTACK_Lookback() + 1); - __pyx_v_retCode = TA_ACOS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLCOUNTERATTACK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -116131,7 +184851,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_ACOS_Close(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLCOUNTERATTACK_Close(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -116199,7 +184919,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2895, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -116211,10 +184931,13 @@ static int __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -116230,28 +184953,31 @@ static int __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill, "ACOS_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill, "CDLCOUNTERATTACK_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -116267,45 +184993,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2897, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8397, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8397, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8397, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8397, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8397, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2897, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 2897, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8397, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8397, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8397, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8397, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8397, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8397, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2897, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8397, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -116315,18 +185062,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ACOS_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_stream = 0; + TA_CDLCOUNTERATTACK_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -116348,36 +185098,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2899, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2900, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 2900, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8403, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8403, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8403, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8403, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2901, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8404, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2902, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8405, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2903, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8406, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ACOS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2909, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 2911, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8414, __pyx_L1_error) /*try:*/ { @@ -116387,7 +185161,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ACOS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCOUNTERATTACK_Lookback()); } /*finally:*/ { @@ -116400,9 +185174,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2915, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8418, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -116411,7 +185185,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ACOS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLCOUNTERATTACK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -116515,27 +185289,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACOS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2926, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2927, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 2927, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 2927, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8430, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8430, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8430, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8430, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2927, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 2927, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8430, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 2927, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8430, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -116553,16 +185336,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -116575,27 +185361,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ACOS_Stream_6update, "ACOS_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update, "CDLCOUNTERATTACK_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -116611,57 +185400,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2929, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8432, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8432, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8432, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8432, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8432, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 2929, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 2929, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8432, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8432, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8432, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8432, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8432, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8432, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2930, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8433, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8433, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8433, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8433, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2929, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8432, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -116684,7 +185497,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ACOS_Update(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLCOUNTERATTACK_Update(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -116712,13 +185525,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2937, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2938, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -116735,7 +185548,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -116747,27 +185560,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ACOS_Stream_8peek, "ACOS_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek, "CDLCOUNTERATTACK_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -116783,57 +185599,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2940, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8443, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8443, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8443, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8443, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2940, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8443, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 2940, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 2940, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8443, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8443, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2940, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8443, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8443, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8443, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8443, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2941, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8444, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8444, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8444, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8444, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2940, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8443, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -116856,7 +185696,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ACOS_Peek(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLCOUNTERATTACK_Peek(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -116884,13 +185724,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2948, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2949, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -116907,7 +185747,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -116919,22 +185759,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -116957,7 +185797,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ACOS_Value(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLCOUNTERATTACK_Value(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -116985,13 +185825,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2959, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2960, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -117008,7 +185848,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -117019,12 +185859,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11ACOS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ACOS_OutRange(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLCOUNTERATTACK_OutRange(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -117035,12 +185875,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ACOS_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11ACOS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ACOS_Advance(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLCOUNTERATTACK_Advance(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -117052,15 +185892,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ACOS_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ACOS_Stream_10copy, "ACOS_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy, "CDLCOUNTERATTACK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -117086,16 +185926,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self) { - TA_ACOS_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self) { + TA_CDLCOUNTERATTACK_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -117112,18 +185952,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2971, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream))))) __PYX_ERR(3, 2971, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream))))) __PYX_ERR(3, 8474, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -117137,7 +185977,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ACOS_Clone(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLCOUNTERATTACK_Clone(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -117180,7 +186020,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2981, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -117202,7 +186042,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -117215,19 +186055,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_9AD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_9AD_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_9AD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_9AD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -117241,7 +186081,7 @@ static void __pyx_pf_5talib_7_ta_lib_9AD_Stream___dealloc__(struct __pyx_obj_5ta if (__pyx_t_1) { - (void)(TA_AD_Close(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLDARKCLOUDCOVER_Close(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -117267,29 +186107,30 @@ static void __pyx_pf_5talib_7_ta_lib_9AD_Stream___dealloc__(struct __pyx_obj_5ta /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_9AD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_9AD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -117305,86 +186146,103 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3003, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8508, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8508, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8508, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8508, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8508, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8508, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3003, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8508, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 3003, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 8508, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3003, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3003, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3003, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3003, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8508, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8508, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8508, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8508, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8508, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8508, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.5); } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - __pyx_v_volume = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3003, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8508, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { +static int __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_AD_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLDARKCLOUDCOVER_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -117399,55 +186257,55 @@ static int __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3004, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3005, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3006, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3007, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3008, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8513, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3008, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8513, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3008, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8513, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3008, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3008, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8513, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3009, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8514, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3010, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8515, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3011, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8516, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3016, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8521, __pyx_L1_error) /*try:*/ { @@ -117457,9 +186315,9 @@ static int __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(struct __pyx_obj_5talib __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_AD_Lookback() + 1); + __pyx_v_need = (TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration) + 1); - __pyx_v_retCode = TA_AD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -117476,7 +186334,7 @@ static int __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - (void)(TA_AD_Close(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLDARKCLOUDCOVER_Close(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -117544,7 +186402,7 @@ static int __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3033, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -117556,13 +186414,13 @@ static int __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(struct __pyx_obj_5talib goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -117578,31 +186436,32 @@ static int __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(struct __pyx_obj_5talib /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AD_Stream_4open_and_fill, "AD_Stream.open_and_fill(high, low, close, volume)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9AD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AD_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill, "CDLDARKCLOUDCOVER_Stream.open_and_fill(open, high, low, close, double penetration=0.5)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -117618,90 +186477,107 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3035, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8540, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8540, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3035, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8540, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3035, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8540, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3035, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8540, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3035, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8540, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3035, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8540, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 3035, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 8540, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3035, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3035, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3035, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3035, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8540, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8540, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8540, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8540, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8540, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8541, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.5); } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - __pyx_v_volume = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3035, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8540, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_AD_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_stream = 0; + TA_CDLDARKCLOUDCOVER_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -117723,60 +186599,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3037, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3038, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3039, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3040, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3041, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8546, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3041, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8546, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3041, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8546, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3041, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3041, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8546, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3042, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8547, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3043, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8548, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3044, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8549, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3050, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3052, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8557, __pyx_L1_error) /*try:*/ { @@ -117786,7 +186662,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_AD_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration)); } /*finally:*/ { @@ -117799,9 +186675,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3056, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8561, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -117810,7 +186686,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_AD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -117914,36 +186790,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3067, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3068, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8573, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3068, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8573, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3068, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8573, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3068, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_volume); - __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 3068, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3068, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8573, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3068, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3068, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8573, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 3068, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8573, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -117961,19 +186837,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.AD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -117986,25 +186862,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AD_Stream_6update, "AD_Stream.update(self, double high, double low, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update, "CDLDARKCLOUDCOVER_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; - double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -118025,66 +186901,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3070, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8575, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3070, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8575, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3070, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8575, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3070, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8575, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3070, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8575, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3070, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8575, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 3070, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8575, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3070, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8575, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3070, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8575, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3070, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8575, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3070, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8575, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3071, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3071, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3071, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3071, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8576, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8576, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8576, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8576, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3070, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8575, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -118098,8 +186974,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -118122,7 +186998,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_6update(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AD_Update(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Update(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -118150,13 +187026,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_6update(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3078, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3079, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -118173,7 +187049,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_6update(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -118185,25 +187061,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_6update(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AD_Stream_8peek, "AD_Stream.peek(self, double high, double low, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek, "CDLDARKCLOUDCOVER_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; - double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -118224,66 +187100,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3081, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8586, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8586, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8586, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8586, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8586, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3081, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8586, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 3081, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8586, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8586, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8586, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8586, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8586, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3082, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3082, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3082, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3082, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8587, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8587, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8587, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8587, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3081, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8586, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -118297,8 +187173,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -118321,7 +187197,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_8peek(struct __pyx_obj_5tal __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AD_Peek(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Peek(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -118349,13 +187225,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3089, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3090, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -118372,7 +187248,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_8peek(struct __pyx_obj_5tal /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -118384,22 +187260,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_8peek(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -118422,7 +187298,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_5value___get__(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AD_Value(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Value(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -118450,13 +187326,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_5value___get__(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3100, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3101, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -118473,7 +187349,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_5value___get__(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -118484,12 +187360,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_5value___get__(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9AD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_AD_OutRange(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLDARKCLOUDCOVER_OutRange(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -118500,12 +187376,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9AD_Stream__out_range(struct __pyx_obj } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9AD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_AD_Advance(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLDARKCLOUDCOVER_Advance(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -118517,15 +187393,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9AD_Stream__advance(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AD_Stream_10copy, "AD_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy, "CDLDARKCLOUDCOVER_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -118551,16 +187427,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self) { - TA_AD_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self) { + TA_CDLDARKCLOUDCOVER_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -118577,18 +187453,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(struct __pyx_obj_5ta __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3112, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream))))) __PYX_ERR(3, 3112, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream))))) __PYX_ERR(3, 8617, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -118602,7 +187478,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(struct __pyx_obj_5ta __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_AD_Clone(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Clone(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -118645,7 +187521,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3122, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -118667,7 +187543,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(struct __pyx_obj_5ta __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.AD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -118680,19 +187556,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(struct __pyx_obj_5ta /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10ADD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10ADD_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10ADD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10ADD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -118706,7 +187582,7 @@ static void __pyx_pf_5talib_7_ta_lib_10ADD_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_ADD_Close(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLDOJI_Close(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -118732,27 +187608,29 @@ static void __pyx_pf_5talib_7_ta_lib_10ADD_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10ADD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10ADD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real0 = 0; - PyObject *__pyx_v_real1 = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -118768,52 +187646,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3145, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8649, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8649, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8649, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3145, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8649, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3145, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8649, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3145, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 3145, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8649, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8649, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3145, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8649, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3145, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8649, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8649, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8649, __pyx_L3_error) } - __pyx_v_real0 = values[0]; - __pyx_v_real1 = values[1]; + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3145, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8649, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -118823,15 +187715,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { - PyArrayObject *__pyx_v_a_real0 = 0; - PyArrayObject *__pyx_v_a_real1 = 0; +static int __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ADD_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLDOJI_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -118846,39 +187740,55 @@ static int __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3146, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3147, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3148, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real0); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 3148, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_real1); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 3148, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8654, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8654, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8654, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8654, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3149, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8655, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3150, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8656, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3151, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8657, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3156, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8662, __pyx_L1_error) /*try:*/ { @@ -118888,9 +187798,9 @@ static int __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ADD_Lookback() + 1); + __pyx_v_need = (TA_CDLDOJI_Lookback() + 1); - __pyx_v_retCode = TA_ADD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDOJI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -118907,7 +187817,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_ADD_Close(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLDOJI_Close(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -118975,7 +187885,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3173, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -118987,11 +187897,13 @@ static int __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -119007,29 +187919,31 @@ static int __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADD_Stream_4open_and_fill, "ADD_Stream.open_and_fill(real0, real1)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ADD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADD_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill, "CDLDOJI_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real0 = 0; - PyObject *__pyx_v_real1 = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -119045,52 +187959,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3175, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8681, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8681, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8681, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3175, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8681, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3175, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8681, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3175, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 3175, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8681, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8681, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3175, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8681, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3175, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8681, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8681, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8681, __pyx_L3_error) } - __pyx_v_real0 = values[0]; - __pyx_v_real1 = values[1]; + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3175, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8681, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -119100,19 +188028,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { - PyArrayObject *__pyx_v_a_real0 = 0; - PyArrayObject *__pyx_v_a_real1 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ADD_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_stream = 0; + TA_CDLDOJI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -119134,44 +188064,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3177, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3178, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3179, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real0); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 3179, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_real1); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 3179, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8687, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8687, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8687, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8687, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3180, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8688, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3181, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8689, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3182, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8690, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3188, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3190, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8698, __pyx_L1_error) /*try:*/ { @@ -119181,7 +188127,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ADD_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJI_Lookback()); } /*finally:*/ { @@ -119194,9 +188140,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3194, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8702, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -119205,7 +188151,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ADD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDOJI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -119309,30 +188255,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3205, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3206, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real0); - __Pyx_GIVEREF(__pyx_v_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 3206, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_real1); - __Pyx_GIVEREF(__pyx_v_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 3206, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3206, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8714, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8714, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8714, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8714, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3206, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3206, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8714, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 3206, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8714, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -119350,17 +188302,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -119373,28 +188327,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADD_Stream_6update, "ADD_Stream.update(self, double real0, double real1)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_6update, "CDLDOJI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real0; - double __pyx_v_real1; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -119410,52 +188366,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3208, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8716, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8716, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8716, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3208, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8716, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3208, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8716, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3208, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3208, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8716, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8716, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3208, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8716, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3208, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8716, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8716, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8716, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3209, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3209, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8717, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8717, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8717, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8717, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3208, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8716, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -119463,12 +188433,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -119491,7 +188463,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADD_Update(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDOJI_Update(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -119519,13 +188491,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3216, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3217, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -119542,7 +188514,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -119554,28 +188526,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADD_Stream_8peek, "ADD_Stream.peek(self, double real0, double real1)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_8peek, "CDLDOJI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real0; - double __pyx_v_real1; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -119591,52 +188565,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3219, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8727, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8727, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8727, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8727, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3219, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3219, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8727, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8727, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8727, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8727, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8727, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8727, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3220, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3220, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8728, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8728, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8728, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8728, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3219, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8727, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -119644,12 +188632,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -119672,7 +188662,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADD_Peek(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDOJI_Peek(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -119700,13 +188690,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3227, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3228, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -119723,7 +188713,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -119735,22 +188725,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -119773,7 +188763,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADD_Value(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDOJI_Value(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -119801,13 +188791,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3238, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3239, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -119824,7 +188814,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -119835,12 +188825,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ADD_OutRange(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLDOJI_OutRange(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -119851,12 +188841,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADD_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ADD_Advance(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLDOJI_Advance(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -119868,15 +188858,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADD_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADD_Stream_10copy, "ADD_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_10copy, "CDLDOJI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -119902,16 +188892,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self) { - TA_ADD_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self) { + TA_CDLDOJI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -119928,18 +188918,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3250, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream))))) __PYX_ERR(3, 3250, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream))))) __PYX_ERR(3, 8758, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -119953,7 +188943,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ADD_Clone(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLDOJI_Clone(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -119996,7 +188986,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3260, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -120018,7 +189008,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -120031,19 +189021,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -120057,7 +189047,7 @@ static void __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream___dealloc__(struct __pyx_obj if (__pyx_t_1) { - (void)(TA_ADOSC_Close(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLDOJISTAR_Close(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -120083,31 +189073,29 @@ static void __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream___dealloc__(struct __pyx_obj /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -120123,117 +189111,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3285, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8790, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3285, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3285, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3285, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8790, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, i); __PYX_ERR(3, 3285, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8790, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3285, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3285, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3285, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3285, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3285, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3285, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - __pyx_v_volume = values[3]; - if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3285, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3285, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8790, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8790, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8790, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8790, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, __pyx_nargs); __PYX_ERR(3, 3285, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8790, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { +static int __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ADOSC_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLDOJISTAR_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -120248,55 +189205,55 @@ static int __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3286, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3287, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3288, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3289, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3290, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8795, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3290, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8795, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3290, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8795, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3290, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3290, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8795, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3291, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8796, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3292, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8797, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3293, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8798, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3298, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8803, __pyx_L1_error) /*try:*/ { @@ -120306,9 +189263,9 @@ static int __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(struct __pyx_obj_5t __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1); + __pyx_v_need = (TA_CDLDOJISTAR_Lookback() + 1); - __pyx_v_retCode = TA_ADOSC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDOJISTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -120325,7 +189282,7 @@ static int __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - (void)(TA_ADOSC_Close(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLDOJISTAR_Close(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -120393,7 +189350,7 @@ static int __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3315, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -120405,13 +189362,13 @@ static int __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(struct __pyx_obj_5t goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -120427,33 +189384,31 @@ static int __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill, "ADOSC_Stream.open_and_fill(high, low, close, volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill, "CDLDOJISTAR_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -120469,121 +189424,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3317, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8822, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3317, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3317, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3317, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8822, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 6, i); __PYX_ERR(3, 3317, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3317, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3317, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3317, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3317, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3317, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3317, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8822, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - __pyx_v_volume = values[3]; - if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3318, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3318, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_slowperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8822, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8822, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8822, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8822, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 6, __pyx_nargs); __PYX_ERR(3, 3317, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8822, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ADOSC_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_stream = 0; + TA_CDLDOJISTAR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -120605,60 +189529,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3319, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3320, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3321, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3322, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3323, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8828, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3323, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8828, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3323, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8828, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3323, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3323, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8828, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3324, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8829, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3325, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8830, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3326, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8831, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3332, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3334, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8839, __pyx_L1_error) /*try:*/ { @@ -120668,7 +189592,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJISTAR_Lookback()); } /*finally:*/ { @@ -120681,9 +189605,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3338, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8843, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -120692,7 +189616,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ADOSC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDOJISTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -120796,36 +189720,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3349, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3350, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8855, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3350, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8855, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3350, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8855, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3350, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_volume); - __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 3350, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3350, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8855, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3350, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3350, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8855, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 3350, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8855, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -120843,19 +189767,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -120868,25 +189792,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_6update, "ADOSC_Stream.update(self, double high, double low, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update, "CDLDOJISTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; - double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -120907,66 +189831,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3352, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8857, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8857, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8857, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8857, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8857, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3352, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8857, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 3352, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8857, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8857, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8857, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8857, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8857, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3353, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3353, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3353, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3353, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8858, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8858, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8858, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8858, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3352, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8857, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -120980,8 +189904,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -121004,7 +189928,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_6update(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADOSC_Update(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDOJISTAR_Update(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -121032,13 +189956,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_6update(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3360, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3361, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -121055,7 +189979,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_6update(struct __pyx_ob /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -121067,25 +189991,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_6update(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_8peek, "ADOSC_Stream.peek(self, double high, double low, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek, "CDLDOJISTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; - double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -121106,66 +190030,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3363, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8868, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8868, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8868, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8868, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8868, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3363, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8868, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 3363, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8868, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8868, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8868, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8868, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8868, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3364, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3364, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3364, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3364, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8869, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8869, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8869, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8869, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3363, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8868, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -121179,8 +190103,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -121203,7 +190127,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_8peek(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADOSC_Peek(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDOJISTAR_Peek(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -121231,13 +190155,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_8peek(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3371, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3372, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -121254,7 +190178,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_8peek(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -121266,22 +190190,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_8peek(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -121304,7 +190228,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_5value___get__(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADOSC_Value(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDOJISTAR_Value(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -121332,13 +190256,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_5value___get__(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3382, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3383, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -121355,7 +190279,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_5value___get__(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -121366,12 +190290,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_5value___get__(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12ADOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ADOSC_OutRange(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLDOJISTAR_OutRange(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -121382,12 +190306,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12ADOSC_Stream__out_range(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12ADOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ADOSC_Advance(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLDOJISTAR_Advance(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -121399,15 +190323,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12ADOSC_Stream__advance(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_10copy, "ADOSC_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy, "CDLDOJISTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -121433,16 +190357,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self) { - TA_ADOSC_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self) { + TA_CDLDOJISTAR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -121459,18 +190383,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(struct __pyx_obj __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3394, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream))))) __PYX_ERR(3, 3394, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream))))) __PYX_ERR(3, 8899, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -121484,7 +190408,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ADOSC_Clone(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLDOJISTAR_Clone(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -121527,7 +190451,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(struct __pyx_obj if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3404, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -121549,7 +190473,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(struct __pyx_obj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -121562,19 +190486,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(struct __pyx_obj /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10ADR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10ADR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10ADR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10ADR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -121588,7 +190512,7 @@ static void __pyx_pf_5talib_7_ta_lib_10ADR_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_ADR_Close(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLDRAGONFLYDOJI_Close(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -121614,28 +190538,29 @@ static void __pyx_pf_5talib_7_ta_lib_10ADR_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10ADR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10ADR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -121651,87 +190576,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3428, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8931, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8931, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8931, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8931, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8931, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3428, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 3428, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3428, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3428, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3428, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8931, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8931, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3428, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8931, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8931, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8931, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8931, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3428, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8931, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ADR_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLDRAGONFLYDOJI_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -121746,39 +190670,55 @@ static int __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3429, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8932, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3430, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3431, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8936, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3431, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8936, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3431, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8936, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8936, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3432, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8937, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3433, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8938, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3434, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8939, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3439, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8944, __pyx_L1_error) /*try:*/ { @@ -121788,9 +190728,9 @@ static int __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ADR_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_CDLDRAGONFLYDOJI_Lookback() + 1); - __pyx_v_retCode = TA_ADR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -121807,7 +190747,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_ADR_Close(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLDRAGONFLYDOJI_Close(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -121875,7 +190815,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3456, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -121887,11 +190827,13 @@ static int __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -121907,30 +190849,31 @@ static int __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADR_Stream_4open_and_fill, "ADR_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ADR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill, "CDLDRAGONFLYDOJI_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -121946,91 +190889,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3458, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8963, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8963, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3458, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3458, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3458, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3458, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 3458, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3458, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3458, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3458, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8963, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8963, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3459, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8963, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8963, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8963, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8963, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3458, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8963, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ADR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_stream = 0; + TA_CDLDRAGONFLYDOJI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -122052,44 +190994,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3460, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3461, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3462, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8969, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3462, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8969, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3462, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8969, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8969, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3463, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8970, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3464, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8971, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3465, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8972, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3471, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3473, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8980, __pyx_L1_error) /*try:*/ { @@ -122099,7 +191057,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ADR_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDRAGONFLYDOJI_Lookback()); } /*finally:*/ { @@ -122112,9 +191070,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3477, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8984, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -122123,7 +191081,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ADR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -122227,30 +191185,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3488, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3489, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8996, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3489, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8996, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3489, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3489, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8996, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8996, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3489, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3489, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8996, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 3489, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8996, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -122268,17 +191232,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -122291,28 +191257,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADR_Stream_6update, "ADR_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update, "CDLDRAGONFLYDOJI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -122328,52 +191296,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3491, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8998, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8998, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8998, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8998, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8998, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3491, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3491, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8998, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8998, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8998, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8998, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8998, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8998, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3492, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3492, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8999, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8999, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8999, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8999, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3491, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8998, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -122381,12 +191363,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -122409,7 +191393,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADR_Update(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Update(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -122437,13 +191421,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3499, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3500, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -122460,7 +191444,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -122472,28 +191456,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADR_Stream_8peek, "ADR_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek, "CDLDRAGONFLYDOJI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -122509,52 +191495,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3502, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9009, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9009, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9009, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3502, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9009, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3502, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9009, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3502, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3502, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9009, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9009, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3502, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9009, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3502, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9009, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9009, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9009, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3503, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3503, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9010, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9010, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9010, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9010, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3502, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9009, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -122562,12 +191562,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -122590,7 +191592,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADR_Peek(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Peek(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -122618,13 +191620,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3510, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3511, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -122641,7 +191643,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -122653,22 +191655,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -122691,7 +191693,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADR_Value(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Value(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -122719,13 +191721,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3521, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3522, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -122742,7 +191744,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -122753,12 +191755,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ADR_OutRange(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLDRAGONFLYDOJI_OutRange(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -122769,12 +191771,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADR_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ADR_Advance(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLDRAGONFLYDOJI_Advance(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -122786,15 +191788,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADR_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADR_Stream_10copy, "ADR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy, "CDLDRAGONFLYDOJI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -122820,16 +191822,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self) { - TA_ADR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self) { + TA_CDLDRAGONFLYDOJI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -122846,18 +191848,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3533, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream))))) __PYX_ERR(3, 3533, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream))))) __PYX_ERR(3, 9040, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -122871,7 +191873,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ADR_Clone(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Clone(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -122914,7 +191916,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3543, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -122936,7 +191938,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -122949,19 +191951,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10ADX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10ADX_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10ADX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10ADX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -122975,7 +191977,7 @@ static void __pyx_pf_5talib_7_ta_lib_10ADX_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_ADX_Close(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLENGULFING_Close(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -123001,24 +192003,24 @@ static void __pyx_pf_5talib_7_ta_lib_10ADX_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10ADX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10ADX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -123039,86 +192041,77 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3567, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9072, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3567, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 3567, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3567, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3567, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3567, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3567, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9072, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9072, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3567, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9072, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9072, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9072, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9072, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3567, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9072, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -123126,8 +192119,8 @@ static int __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(struct __pyx_obj_5tal npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ADX_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLENGULFING_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -123142,47 +192135,55 @@ static int __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3568, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3569, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3570, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3571, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9077, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3571, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9077, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3571, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9077, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3571, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9077, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3572, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9078, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3573, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9079, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3574, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9080, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3579, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9085, __pyx_L1_error) /*try:*/ { @@ -123192,9 +192193,9 @@ static int __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ADX_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_CDLENGULFING_Lookback() + 1); - __pyx_v_retCode = TA_ADX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLENGULFING_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -123211,7 +192212,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_ADX_Close(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLENGULFING_Close(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -123279,7 +192280,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3596, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -123291,9 +192292,10 @@ static int __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -123312,26 +192314,26 @@ static int __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADX_Stream_4open_and_fill, "ADX_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ADX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADX_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill, "CDLENGULFING_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -123352,86 +192354,77 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3598, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9104, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3598, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9104, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3598, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9104, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3598, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9104, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3598, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9104, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3598, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 3598, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3598, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3598, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3598, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3598, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9104, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9104, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3599, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9104, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9104, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9104, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9104, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3598, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9104, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -123440,11 +192433,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject * int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ADX_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_stream = 0; + TA_CDLENGULFING_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -123466,52 +192459,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3600, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3601, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3602, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3603, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9110, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3603, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9110, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3603, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9110, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3603, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9110, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3604, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9111, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3605, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9112, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3606, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9113, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3612, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLENGULFING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3614, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9121, __pyx_L1_error) /*try:*/ { @@ -123521,7 +192522,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ADX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLENGULFING_Lookback()); } /*finally:*/ { @@ -123534,9 +192535,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3618, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9125, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -123545,7 +192546,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ADX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLENGULFING_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -123649,33 +192650,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3629, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3630, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9137, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3630, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9137, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3630, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9137, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3630, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3630, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9137, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3630, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3630, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9137, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 3630, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9137, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -123693,9 +192697,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -123704,7 +192709,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject * - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -123717,21 +192722,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADX_Stream_6update, "ADX_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_6update, "CDLENGULFING_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -123739,7 +192745,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -123755,59 +192761,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3632, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9139, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9139, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9139, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9139, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9139, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3632, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 3632, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9139, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9139, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9139, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9139, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9139, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9139, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3633, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3633, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3633, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9140, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9140, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9140, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9140, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3632, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9139, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -123816,12 +192829,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -123844,7 +192858,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADX_Update(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLENGULFING_Update(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -123872,13 +192886,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3640, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3641, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -123895,7 +192909,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -123907,21 +192921,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADX_Stream_8peek, "ADX_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek, "CDLENGULFING_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -123929,7 +192944,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -123945,59 +192960,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3643, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9150, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9150, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9150, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9150, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9150, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3643, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 3643, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9150, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9150, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9150, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9150, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9150, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9150, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3644, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3644, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3644, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9151, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9151, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9151, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9151, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3643, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9150, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -124006,12 +193028,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -124034,7 +193057,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADX_Peek(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLENGULFING_Peek(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -124062,13 +193085,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3651, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3652, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -124085,7 +193108,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -124097,22 +193120,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -124135,7 +193158,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADX_Value(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLENGULFING_Value(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -124163,13 +193186,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3662, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3663, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -124186,7 +193209,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -124197,12 +193220,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ADX_OutRange(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLENGULFING_OutRange(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -124213,12 +193236,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADX_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ADX_Advance(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLENGULFING_Advance(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -124230,15 +193253,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADX_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADX_Stream_10copy, "ADX_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy, "CDLENGULFING_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -124264,16 +193287,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self) { - TA_ADX_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self) { + TA_CDLENGULFING_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -124290,18 +193313,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3674, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream))))) __PYX_ERR(3, 3674, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream))))) __PYX_ERR(3, 9181, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -124315,7 +193338,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ADX_Clone(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLENGULFING_Clone(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -124358,7 +193381,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3684, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -124380,7 +193403,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -124393,19 +193416,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11ADXR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11ADXR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -124419,7 +193442,7 @@ static void __pyx_pf_5talib_7_ta_lib_11ADXR_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_ADXR_Close(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLEVENINGDOJISTAR_Close(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -124445,29 +193468,30 @@ static void __pyx_pf_5talib_7_ta_lib_11ADXR_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -124483,75 +193507,82 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3708, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9215, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9215, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3708, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 3708, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9215, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 9215, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9215, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3708, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9215, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9215, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9215, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9215, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3708, __pyx_L3_error) + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9215, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3708, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 9215, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -124562,7 +193593,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -124570,8 +193602,8 @@ static int __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(struct __pyx_obj_5ta npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ADXR_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLEVENINGDOJISTAR_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -124586,47 +193618,55 @@ static int __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3709, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3710, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3711, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3712, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9220, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3712, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9220, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3712, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9220, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3712, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9220, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3713, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9221, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3714, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9222, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3715, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9223, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3720, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9228, __pyx_L1_error) /*try:*/ { @@ -124636,9 +193676,9 @@ static int __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ADXR_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration) + 1); - __pyx_v_retCode = TA_ADXR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -124655,7 +193695,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_ADXR_Close(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLEVENINGDOJISTAR_Close(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -124723,7 +193763,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3737, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -124735,9 +193775,10 @@ static int __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -124756,31 +193797,32 @@ static int __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill, "ADXR_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill, "CDLEVENINGDOJISTAR_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -124796,75 +193838,82 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3739, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9247, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9247, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3739, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3739, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3739, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3739, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3739, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 3739, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9247, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 9247, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9247, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3739, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9247, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3739, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9247, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3739, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9247, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3739, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9247, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3740, __pyx_L3_error) + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9248, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3739, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 9247, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -124875,7 +193924,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -124884,11 +193934,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ADXR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_stream = 0; + TA_CDLEVENINGDOJISTAR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -124910,52 +193960,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3741, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3742, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3743, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3744, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9253, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3744, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9253, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3744, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9253, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3744, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9253, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3745, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9254, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3746, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9255, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3747, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9256, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADXR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3753, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3755, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9264, __pyx_L1_error) /*try:*/ { @@ -124965,7 +194023,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ADXR_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration)); } /*finally:*/ { @@ -124978,9 +194036,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3759, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9268, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -124989,7 +194047,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ADXR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -125093,33 +194151,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADXR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3770, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3771, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9280, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3771, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9280, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3771, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9280, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3771, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3771, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9280, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3771, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3771, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9280, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 3771, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9280, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -125137,9 +194198,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -125148,7 +194210,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -125161,21 +194223,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ADXR_Stream_6update, "ADXR_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update, "CDLEVENINGDOJISTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -125183,7 +194246,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -125199,59 +194262,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3773, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9282, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9282, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3773, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9282, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3773, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9282, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3773, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9282, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3773, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 3773, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9282, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9282, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3773, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9282, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3773, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9282, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3773, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9282, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9282, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3774, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3774, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3774, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9283, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9283, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9283, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9283, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3773, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9282, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -125260,12 +194330,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -125288,7 +194359,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADXR_Update(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Update(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -125316,13 +194387,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3781, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3782, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -125339,7 +194410,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -125351,21 +194422,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ADXR_Stream_8peek, "ADXR_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek, "CDLEVENINGDOJISTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -125373,7 +194445,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -125389,59 +194461,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3784, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9293, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9293, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9293, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9293, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9293, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3784, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 3784, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9293, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9293, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9293, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9293, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9293, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9293, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3785, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3785, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3785, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9294, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9294, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9294, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9294, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3784, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9293, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -125450,12 +194529,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -125478,7 +194558,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADXR_Peek(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Peek(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -125506,13 +194586,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3792, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3793, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -125529,7 +194609,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -125541,22 +194621,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -125579,7 +194659,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ADXR_Value(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Value(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -125607,13 +194687,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3803, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3804, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -125630,7 +194710,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -125641,12 +194721,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11ADXR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ADXR_OutRange(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLEVENINGDOJISTAR_OutRange(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -125657,12 +194737,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ADXR_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11ADXR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ADXR_Advance(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLEVENINGDOJISTAR_Advance(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -125674,15 +194754,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ADXR_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ADXR_Stream_10copy, "ADXR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy, "CDLEVENINGDOJISTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -125708,16 +194788,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self) { - TA_ADXR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self) { + TA_CDLEVENINGDOJISTAR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -125734,18 +194814,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3815, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream))))) __PYX_ERR(3, 3815, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream))))) __PYX_ERR(3, 9324, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -125759,7 +194839,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ADXR_Clone(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Clone(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -125802,7 +194882,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3825, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -125824,7 +194904,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -125837,19 +194917,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_9AO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_9AO_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_9AO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_9AO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -125863,7 +194943,7 @@ static void __pyx_pf_5talib_7_ta_lib_9AO_Stream___dealloc__(struct __pyx_obj_5ta if (__pyx_t_1) { - (void)(TA_AO_Close(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLEVENINGSTAR_Close(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -125889,29 +194969,30 @@ static void __pyx_pf_5talib_7_ta_lib_9AO_Stream___dealloc__(struct __pyx_obj_5ta /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_9AO_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_9AO_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -125927,101 +195008,103 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3850, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9358, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9358, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3850, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9358, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3850, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9358, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3850, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9358, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3850, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9358, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3850, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 3850, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9358, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 9358, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9358, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3850, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9358, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3850, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9358, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3850, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9358, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3850, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9358, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3850, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3850, __pyx_L3_error) + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9358, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)-2147483648); + __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 3850, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 9358, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { +static int __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_AO_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLEVENINGSTAR_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -126036,39 +195119,55 @@ static int __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3851, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3852, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3853, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9363, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3853, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9363, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3853, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9363, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9363, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3854, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9364, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3855, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9365, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3856, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9366, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3861, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9371, __pyx_L1_error) /*try:*/ { @@ -126078,9 +195177,9 @@ static int __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(struct __pyx_obj_5talib __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1); + __pyx_v_need = (TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration) + 1); - __pyx_v_retCode = TA_AO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLEVENINGSTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -126097,7 +195196,7 @@ static int __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - (void)(TA_AO_Close(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLEVENINGSTAR_Close(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -126165,7 +195264,7 @@ static int __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3878, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -126177,11 +195276,13 @@ static int __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(struct __pyx_obj_5talib goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -126197,31 +195298,32 @@ static int __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(struct __pyx_obj_5talib /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AO_Stream_4open_and_fill, "AO_Stream.open_and_fill(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9AO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AO_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill, "CDLEVENINGSTAR_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -126237,105 +195339,107 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3880, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9390, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9390, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3880, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 3880, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9390, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 9390, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9390, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3880, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9390, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3880, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9390, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9390, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9390, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3881, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3881, __pyx_L3_error) + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9391, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)-2147483648); + __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 3880, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 9390, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_AO_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_stream = 0; + TA_CDLEVENINGSTAR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -126357,44 +195461,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3882, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3883, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3884, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9396, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3884, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9396, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3884, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9396, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9396, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3885, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9397, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3886, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9398, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3887, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9399, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3893, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3895, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9407, __pyx_L1_error) /*try:*/ { @@ -126404,7 +195524,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration)); } /*finally:*/ { @@ -126417,9 +195537,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3899, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9411, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -126428,7 +195548,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_AO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLEVENINGSTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -126532,30 +195652,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3910, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3911, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9423, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9423, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3911, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 3911, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9423, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9423, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3911, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9423, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 3911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9423, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -126573,17 +195699,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.AO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -126596,28 +195724,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AO_Stream_6update, "AO_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update, "CDLEVENINGSTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -126633,52 +195763,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3913, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9425, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9425, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9425, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9425, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9425, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3913, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3913, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9425, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9425, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9425, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9425, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9425, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9425, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3914, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3914, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9426, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9426, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9426, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9426, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3913, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9425, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -126686,12 +195830,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -126714,7 +195860,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_6update(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AO_Update(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLEVENINGSTAR_Update(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -126742,13 +195888,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_6update(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3921, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3922, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -126765,7 +195911,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_6update(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -126777,28 +195923,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_6update(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AO_Stream_8peek, "AO_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek, "CDLEVENINGSTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -126814,52 +195962,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3924, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9436, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9436, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9436, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3924, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9436, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3924, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9436, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3924, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3924, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9436, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9436, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3924, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9436, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3924, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9436, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9436, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9436, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3925, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3925, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9437, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9437, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9437, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9437, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3924, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9436, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -126867,12 +196029,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -126895,7 +196059,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_8peek(struct __pyx_obj_5tal __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AO_Peek(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLEVENINGSTAR_Peek(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -126923,13 +196087,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3932, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3933, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -126946,7 +196110,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_8peek(struct __pyx_obj_5tal /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -126958,22 +196122,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_8peek(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -126996,7 +196160,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_5value___get__(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AO_Value(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLEVENINGSTAR_Value(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -127024,13 +196188,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_5value___get__(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3943, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3944, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -127047,7 +196211,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_5value___get__(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -127058,12 +196222,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_5value___get__(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9AO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_AO_OutRange(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLEVENINGSTAR_OutRange(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -127074,12 +196238,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9AO_Stream__out_range(struct __pyx_obj } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9AO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_AO_Advance(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLEVENINGSTAR_Advance(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -127091,15 +196255,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9AO_Stream__advance(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AO_Stream_10copy, "AO_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy, "CDLEVENINGSTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -127125,16 +196289,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self) { - TA_AO_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self) { + TA_CDLEVENINGSTAR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -127151,18 +196315,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(struct __pyx_obj_5ta __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3955, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream))))) __PYX_ERR(3, 3955, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream))))) __PYX_ERR(3, 9467, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -127176,7 +196340,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(struct __pyx_obj_5ta __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_AO_Clone(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLEVENINGSTAR_Clone(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -127219,7 +196383,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3965, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -127241,7 +196405,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(struct __pyx_obj_5ta __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.AO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -127254,19 +196418,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(struct __pyx_obj_5ta /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10APO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10APO_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10APO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10APO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -127280,7 +196444,7 @@ static void __pyx_pf_5talib_7_ta_lib_10APO_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_APO_Close(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLGAPSIDESIDEWHITE_Close(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -127306,24 +196470,24 @@ static void __pyx_pf_5talib_7_ta_lib_10APO_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10APO_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10APO_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -127344,107 +196508,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3991, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9499, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9499, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9499, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9499, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9499, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3991, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 3991, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3991, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3991, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3991, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3991, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9499, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9499, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3991, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3991, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3991, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_matype = ((int)1); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9499, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9499, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9499, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9499, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 3991, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9499, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.APO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_APO_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -127459,31 +196602,55 @@ static int __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3992, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3993, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3993, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9504, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9504, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9504, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9504, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3994, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9505, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3995, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9506, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3996, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9507, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4001, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9512, __pyx_L1_error) /*try:*/ { @@ -127493,9 +196660,9 @@ static int __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1); + __pyx_v_need = (TA_CDLGAPSIDESIDEWHITE_Lookback() + 1); - __pyx_v_retCode = TA_APO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -127512,7 +196679,7 @@ static int __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_APO_Close(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLGAPSIDESIDEWHITE_Close(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -127580,7 +196747,7 @@ static int __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_APO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4018, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -127592,10 +196759,13 @@ static int __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.APO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -127611,26 +196781,26 @@ static int __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10APO_Stream_4open_and_fill, "APO_Stream.open_and_fill(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10APO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10APO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10APO_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill, "CDLGAPSIDESIDEWHITE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -127651,111 +196821,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4020, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9531, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4020, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4020, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4020, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4020, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4020, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 4020, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4020, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4020, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4020, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4020, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9531, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9531, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4021, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4021, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4021, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_matype = ((int)1); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9531, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9531, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9531, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9531, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 4020, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9531, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.APO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_APO_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_stream = 0; + TA_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -127777,36 +196926,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4022, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4023, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4023, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9537, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9537, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9537, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9537, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4024, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9538, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4025, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9539, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4026, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9540, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_APO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4032, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4034, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9548, __pyx_L1_error) /*try:*/ { @@ -127816,7 +196989,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGAPSIDESIDEWHITE_Lookback()); } /*finally:*/ { @@ -127829,9 +197002,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4038, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9552, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -127840,7 +197013,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_APO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -127944,27 +197117,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_APO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4049, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4050, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4050, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4050, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9564, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9564, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9564, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9564, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4050, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4050, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9564, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 4050, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9564, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -127982,16 +197164,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.APO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -128004,27 +197189,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10APO_Stream_6update, "APO_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update, "CDLGAPSIDESIDEWHITE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -128040,57 +197228,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4052, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9566, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9566, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9566, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9566, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9566, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4052, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 4052, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9566, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9566, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9566, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9566, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9566, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9566, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4053, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9567, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9567, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9567, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9567, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4052, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9566, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.APO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -128113,7 +197325,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_APO_Update(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Update(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -128141,13 +197353,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4060, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4061, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -128164,7 +197376,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.APO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -128176,27 +197388,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10APO_Stream_8peek, "APO_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek, "CDLGAPSIDESIDEWHITE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -128212,57 +197427,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4063, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9577, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9577, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4063, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9577, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4063, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4063, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9577, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9577, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4063, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9577, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9577, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9577, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9577, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4064, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9578, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9578, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9578, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9578, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4063, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9577, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.APO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -128285,7 +197524,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_APO_Peek(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Peek(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -128313,13 +197552,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4071, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4072, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -128336,7 +197575,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.APO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -128348,22 +197587,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -128386,7 +197625,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_APO_Value(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Value(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -128414,13 +197653,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4082, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4083, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -128437,7 +197676,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.APO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -128448,12 +197687,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10APO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_APO_OutRange(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLGAPSIDESIDEWHITE_OutRange(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -128464,12 +197703,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10APO_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10APO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_APO_Advance(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLGAPSIDESIDEWHITE_Advance(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -128481,15 +197720,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10APO_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10APO_Stream_10copy, "APO_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy, "CDLGAPSIDESIDEWHITE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -128515,16 +197754,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self) { - TA_APO_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self) { + TA_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -128541,18 +197780,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4094, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream))))) __PYX_ERR(3, 4094, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream))))) __PYX_ERR(3, 9608, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -128566,7 +197805,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_APO_Clone(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Clone(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -128609,7 +197848,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4104, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -128631,7 +197870,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.APO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -128644,19 +197883,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_12AROON_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_12AROON_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_12AROON_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_12AROON_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -128670,7 +197909,7 @@ static void __pyx_pf_5talib_7_ta_lib_12AROON_Stream___dealloc__(struct __pyx_obj if (__pyx_t_1) { - (void)(TA_AROON_Close(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLGRAVESTONEDOJI_Close(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -128696,28 +197935,29 @@ static void __pyx_pf_5talib_7_ta_lib_12AROON_Stream___dealloc__(struct __pyx_obj /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_12AROON_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_12AROON_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -128733,88 +197973,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4129, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9640, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9640, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4129, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 4129, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4129, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4129, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4129, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9640, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9640, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4129, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9640, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9640, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9640, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9640, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4129, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9640, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_AROON_Stream *__pyx_v_handle; - double __pyx_v_outaroondown; - double __pyx_v_outaroonup; + TA_CDLGRAVESTONEDOJI_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -128829,39 +198067,55 @@ static int __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4130, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4131, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4132, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9645, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4132, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9645, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4132, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9645, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9645, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4133, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9646, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4134, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9647, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4135, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9648, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4141, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9653, __pyx_L1_error) /*try:*/ { @@ -128871,9 +198125,9 @@ static int __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(struct __pyx_obj_5t __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_AROON_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_CDLGRAVESTONEDOJI_Lookback() + 1); - __pyx_v_retCode = TA_AROON_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -128890,7 +198144,7 @@ static int __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - (void)(TA_AROON_Close(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLGRAVESTONEDOJI_Close(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -128958,7 +198212,7 @@ static int __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROON_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4158, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -128970,11 +198224,13 @@ static int __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(struct __pyx_obj_5t goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -128984,37 +198240,37 @@ static int __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(struct __pyx_obj_5t - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12AROON_Stream_4open_and_fill, "AROON_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12AROON_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12AROON_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill, "CDLGRAVESTONEDOJI_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -129030,92 +198286,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4160, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9672, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9672, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4160, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9672, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4160, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9672, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4160, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9672, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4160, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 4160, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4160, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4160, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4160, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9672, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9672, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4161, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9672, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9672, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9672, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9672, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4160, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9672, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outaroondown = 0; - PyArrayObject *__pyx_v_outaroonup = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_AROON_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_stream = 0; + TA_CDLGRAVESTONEDOJI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -129132,50 +198386,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4162, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4163, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4164, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9678, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4164, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9678, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4164, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9678, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9678, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4165, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9679, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4166, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9680, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4167, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9681, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AROON_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4174, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4176, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9689, __pyx_L1_error) /*try:*/ { @@ -129185,7 +198454,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_AROON_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGRAVESTONEDOJI_Lookback()); } /*finally:*/ { @@ -129198,14 +198467,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4180, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9693, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4181, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -129214,7 +198478,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_AROON_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroondown)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroonup)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -129318,59 +198582,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROON_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4192, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4193, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9705, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4193, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9705, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4193, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outaroondown)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4193, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9705, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9705, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4193, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4193, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outaroonup)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4193, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 4193, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 4193, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4193, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 4193, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9705, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9705, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_14; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_14 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -129378,19 +198629,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outaroondown); - __Pyx_XDECREF((PyObject *)__pyx_v_outaroonup); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -129403,28 +198654,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12AROON_Stream_6update, "AROON_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update, "CDLGRAVESTONEDOJI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -129440,52 +198693,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4195, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9707, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9707, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9707, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4195, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4195, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4195, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 4195, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9707, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9707, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4195, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9707, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4195, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9707, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9707, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9707, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4196, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4196, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9708, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9708, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9708, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9708, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4195, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9707, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -129493,21 +198760,20 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outaroondown; - double __pyx_v_outaroonup; +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -129524,7 +198790,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_6update(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AROON_Update(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Update(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -129552,47 +198818,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_6update(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4204, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4205, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4205, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4205, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 4205, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 4205, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -129600,28 +198853,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_6update(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12AROON_Stream_8peek, "AROON_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek, "CDLGRAVESTONEDOJI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -129637,52 +198892,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4207, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9718, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9718, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9718, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4207, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9718, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4207, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9718, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4207, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 4207, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9718, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9718, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4207, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9718, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4207, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9718, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9718, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9718, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4208, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4208, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9719, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9719, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9719, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9719, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4207, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9718, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -129690,21 +198959,20 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outaroondown; - double __pyx_v_outaroonup; +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -129721,7 +198989,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_8peek(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AROON_Peek(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Peek(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -129749,47 +199017,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_8peek(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4216, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4217, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4217, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4217, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 4217, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 4217, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -129797,31 +199052,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_8peek(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self) { - double __pyx_v_outaroondown; - double __pyx_v_outaroonup; +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -129838,7 +199090,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_5value___get__(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AROON_Value(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Value(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -129866,59 +199118,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_5value___get__(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4228, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4229, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 4229, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 4229, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12AROON_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_AROON_OutRange(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLGRAVESTONEDOJI_OutRange(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -129929,12 +199168,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12AROON_Stream__out_range(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12AROON_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_AROON_Advance(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLGRAVESTONEDOJI_Advance(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -129946,15 +199185,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12AROON_Stream__advance(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12AROON_Stream_10copy, "AROON_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy, "CDLGRAVESTONEDOJI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -129980,16 +199219,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self) { - TA_AROON_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self) { + TA_CDLGRAVESTONEDOJI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -130006,18 +199245,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(struct __pyx_obj __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4240, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream))))) __PYX_ERR(3, 4240, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream))))) __PYX_ERR(3, 9749, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -130031,7 +199270,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_AROON_Clone(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Clone(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -130074,7 +199313,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(struct __pyx_obj if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4250, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -130096,7 +199335,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(struct __pyx_obj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -130109,19 +199348,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(struct __pyx_obj /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -130135,7 +199374,7 @@ static void __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_AROONOSC_Close(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHAMMER_Close(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -130161,28 +199400,29 @@ static void __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -130198,87 +199438,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4274, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9781, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9781, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4274, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9781, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4274, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9781, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4274, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9781, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4274, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 4274, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4274, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4274, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4274, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9781, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9781, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4274, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9781, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9781, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9781, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9781, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4274, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9781, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_AROONOSC_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLHAMMER_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -130293,39 +199532,55 @@ static int __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4275, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4276, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4277, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9786, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4277, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9786, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4277, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9786, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9786, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4278, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9787, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4279, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9788, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4280, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9789, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4285, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9794, __pyx_L1_error) /*try:*/ { @@ -130335,9 +199590,9 @@ static int __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_AROONOSC_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_CDLHAMMER_Lookback() + 1); - __pyx_v_retCode = TA_AROONOSC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHAMMER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -130354,7 +199609,7 @@ static int __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_AROONOSC_Close(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHAMMER_Close(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -130422,7 +199677,7 @@ static int __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4302, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -130434,11 +199689,13 @@ static int __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -130454,30 +199711,31 @@ static int __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill, "AROONOSC_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill, "CDLHAMMER_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -130493,91 +199751,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4304, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9813, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9813, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4304, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4304, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4304, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4304, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 4304, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4304, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4304, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4304, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9813, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9813, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4305, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9813, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9813, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9813, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9813, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4304, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9813, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_AROONOSC_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_stream = 0; + TA_CDLHAMMER_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -130599,44 +199856,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4306, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4307, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4308, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9819, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4308, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9819, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4308, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9819, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9819, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4309, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9820, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4310, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9821, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4311, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9822, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AROONOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4317, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHAMMER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4319, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9830, __pyx_L1_error) /*try:*/ { @@ -130646,7 +199919,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_AROONOSC_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHAMMER_Lookback()); } /*finally:*/ { @@ -130659,9 +199932,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4323, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9834, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -130670,7 +199943,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_AROONOSC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHAMMER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -130774,30 +200047,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4334, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4335, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9846, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4335, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9846, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4335, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4335, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9846, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9846, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4335, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4335, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9846, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 4335, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9846, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -130815,17 +200094,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -130838,28 +200119,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_6update, "AROONOSC_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_6update, "CDLHAMMER_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -130875,52 +200158,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4337, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9848, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9848, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9848, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9848, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9848, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4337, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 4337, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9848, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9848, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9848, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9848, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9848, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9848, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4338, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4338, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9849, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9849, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9849, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9849, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4337, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9848, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -130928,12 +200225,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -130956,7 +200255,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AROONOSC_Update(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHAMMER_Update(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -130984,13 +200283,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_6update(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4345, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4346, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -131007,7 +200306,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_6update(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -131019,28 +200318,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_8peek, "AROONOSC_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek, "CDLHAMMER_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -131056,52 +200357,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4348, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9859, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9859, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9859, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9859, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9859, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4348, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 4348, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9859, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9859, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9859, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9859, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9859, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9859, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4349, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4349, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9860, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9860, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9860, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9860, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4348, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9859, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -131109,12 +200424,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -131137,7 +200454,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AROONOSC_Peek(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHAMMER_Peek(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -131165,13 +200482,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_8peek(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4356, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4357, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -131188,7 +200505,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_8peek(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -131200,22 +200517,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -131238,7 +200555,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AROONOSC_Value(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHAMMER_Value(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -131266,13 +200583,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_5value___get__(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4367, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4368, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -131289,7 +200606,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_5value___get__(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -131300,12 +200617,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_5value___get__(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_AROONOSC_OutRange(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLHAMMER_OutRange(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -131316,12 +200633,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_AROONOSC_Advance(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLHAMMER_Advance(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -131333,15 +200650,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_10copy, "AROONOSC_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy, "CDLHAMMER_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -131367,16 +200684,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self) { - TA_AROONOSC_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self) { + TA_CDLHAMMER_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -131393,18 +200710,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4379, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream))))) __PYX_ERR(3, 4379, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream))))) __PYX_ERR(3, 9890, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -131418,7 +200735,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_AROONOSC_Clone(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLHAMMER_Clone(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -131461,7 +200778,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4389, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -131483,7 +200800,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -131496,19 +200813,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11ASIN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11ASIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -131522,7 +200839,7 @@ static void __pyx_pf_5talib_7_ta_lib_11ASIN_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_ASIN_Close(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHANGINGMAN_Close(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -131548,26 +200865,29 @@ static void __pyx_pf_5talib_7_ta_lib_11ASIN_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -131583,45 +200903,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4411, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9922, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9922, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9922, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9922, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9922, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4411, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 4411, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9922, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9922, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9922, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9922, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9922, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9922, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4411, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9922, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -131631,14 +200972,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ASIN_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLHANGINGMAN_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -131653,31 +200997,55 @@ static int __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4412, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4413, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4413, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9927, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9927, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9927, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9927, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4414, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9928, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4415, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9929, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4416, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9930, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4421, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9935, __pyx_L1_error) /*try:*/ { @@ -131687,9 +201055,9 @@ static int __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ASIN_Lookback() + 1); + __pyx_v_need = (TA_CDLHANGINGMAN_Lookback() + 1); - __pyx_v_retCode = TA_ASIN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHANGINGMAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -131706,7 +201074,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_ASIN_Close(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHANGINGMAN_Close(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -131774,7 +201142,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4438, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -131786,10 +201154,13 @@ static int __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -131805,28 +201176,31 @@ static int __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill, "ASIN_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill, "CDLHANGINGMAN_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -131842,45 +201216,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4440, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9954, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9954, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9954, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9954, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9954, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4440, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 4440, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9954, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9954, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9954, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9954, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9954, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9954, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4440, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9954, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -131890,18 +201285,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ASIN_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_stream = 0; + TA_CDLHANGINGMAN_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -131923,36 +201321,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4442, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4443, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4443, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9959, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9960, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9960, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9960, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9960, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9960, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4444, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9961, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4445, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9962, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4446, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9963, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ASIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4452, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHANGINGMAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4454, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9971, __pyx_L1_error) /*try:*/ { @@ -131962,7 +201384,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ASIN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHANGINGMAN_Lookback()); } /*finally:*/ { @@ -131975,9 +201397,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4458, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9975, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -131986,7 +201408,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ASIN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHANGINGMAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -132090,27 +201512,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ASIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4469, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4470, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4470, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4470, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9987, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9987, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9987, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9987, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4470, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4470, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9987, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 4470, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9987, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -132128,16 +201559,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -132150,27 +201584,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ASIN_Stream_6update, "ASIN_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update, "CDLHANGINGMAN_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -132186,57 +201623,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4472, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9989, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9989, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9989, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9989, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4472, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9989, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4472, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 4472, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9989, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9989, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4472, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9989, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9989, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9989, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9989, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4473, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9990, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9990, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9990, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9990, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4472, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9989, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -132259,7 +201720,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ASIN_Update(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHANGINGMAN_Update(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -132287,13 +201748,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4480, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4481, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -132310,7 +201771,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -132322,27 +201783,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ASIN_Stream_8peek, "ASIN_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek, "CDLHANGINGMAN_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -132358,57 +201822,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4483, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10000, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10000, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10000, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10000, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4483, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10000, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4483, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4483, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10000, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10000, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4483, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10000, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10000, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10000, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10000, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4484, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10001, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10001, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10001, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10001, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4483, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10000, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -132431,7 +201919,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ASIN_Peek(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHANGINGMAN_Peek(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -132459,13 +201947,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4491, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4492, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -132482,7 +201970,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -132494,22 +201982,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -132532,7 +202020,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ASIN_Value(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHANGINGMAN_Value(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -132560,13 +202048,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4502, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4503, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -132583,7 +202071,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -132594,12 +202082,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11ASIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ASIN_OutRange(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLHANGINGMAN_OutRange(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -132610,12 +202098,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ASIN_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11ASIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ASIN_Advance(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLHANGINGMAN_Advance(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -132627,15 +202115,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ASIN_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ASIN_Stream_10copy, "ASIN_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy, "CDLHANGINGMAN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -132661,16 +202149,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self) { - TA_ASIN_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self) { + TA_CDLHANGINGMAN_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -132687,18 +202175,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4514, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream))))) __PYX_ERR(3, 4514, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream))))) __PYX_ERR(3, 10031, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -132712,7 +202200,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ASIN_Clone(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLHANGINGMAN_Clone(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -132755,7 +202243,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4524, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -132777,7 +202265,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -132790,19 +202278,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11ATAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11ATAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -132816,7 +202304,7 @@ static void __pyx_pf_5talib_7_ta_lib_11ATAN_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_ATAN_Close(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHARAMI_Close(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -132842,26 +202330,29 @@ static void __pyx_pf_5talib_7_ta_lib_11ATAN_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -132877,45 +202368,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4546, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10063, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10063, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10063, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10063, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10063, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4546, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 4546, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10063, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10063, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10063, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10063, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10063, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10063, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4546, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10063, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -132925,14 +202437,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ATAN_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLHARAMI_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -132947,31 +202462,55 @@ static int __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4547, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4548, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4548, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10066, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10067, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10068, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10068, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10068, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10068, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4549, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10069, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4550, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10070, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4551, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10071, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4556, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10076, __pyx_L1_error) /*try:*/ { @@ -132981,9 +202520,9 @@ static int __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ATAN_Lookback() + 1); + __pyx_v_need = (TA_CDLHARAMI_Lookback() + 1); - __pyx_v_retCode = TA_ATAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHARAMI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -133000,7 +202539,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_ATAN_Close(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHARAMI_Close(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -133068,7 +202607,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4573, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -133080,10 +202619,13 @@ static int __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -133099,28 +202641,31 @@ static int __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill, "ATAN_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill, "CDLHARAMI_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -133136,45 +202681,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4575, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10095, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10095, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10095, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10095, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10095, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4575, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 4575, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10095, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10095, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10095, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10095, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10095, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10095, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4575, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10095, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -133184,18 +202750,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ATAN_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_stream = 0; + TA_CDLHARAMI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -133217,36 +202786,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4577, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4578, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4578, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10101, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10101, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10101, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10101, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4579, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10102, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4580, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10103, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4581, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10104, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ATAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4587, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHARAMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4589, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10112, __pyx_L1_error) /*try:*/ { @@ -133256,7 +202849,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ATAN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMI_Lookback()); } /*finally:*/ { @@ -133269,9 +202862,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4593, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10116, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -133280,7 +202873,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ATAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHARAMI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -133384,27 +202977,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4604, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4605, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4605, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4605, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10128, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10128, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10128, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10128, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4605, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4605, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10128, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 4605, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10128, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -133422,16 +203024,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -133444,27 +203049,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ATAN_Stream_6update, "ATAN_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_6update, "CDLHARAMI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -133480,57 +203088,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4607, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10130, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10130, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10130, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10130, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10130, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4607, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 4607, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10130, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10130, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10130, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10130, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10130, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10130, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4608, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10131, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10131, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10131, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10131, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4607, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10130, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -133553,7 +203185,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ATAN_Update(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHARAMI_Update(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -133581,13 +203213,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4615, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4616, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -133604,7 +203236,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -133616,27 +203248,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ATAN_Stream_8peek, "ATAN_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek, "CDLHARAMI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -133652,57 +203287,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4618, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10141, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10141, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10141, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10141, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4618, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4618, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10141, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10141, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10141, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10141, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10141, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10141, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4619, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10142, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10142, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10142, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10142, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4618, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10141, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -133725,7 +203384,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ATAN_Peek(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHARAMI_Peek(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -133753,13 +203412,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4626, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4627, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -133776,7 +203435,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -133788,22 +203447,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -133826,7 +203485,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ATAN_Value(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHARAMI_Value(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -133854,13 +203513,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4637, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4638, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -133877,7 +203536,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -133888,12 +203547,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11ATAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ATAN_OutRange(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLHARAMI_OutRange(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -133904,12 +203563,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ATAN_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11ATAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ATAN_Advance(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLHARAMI_Advance(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -133921,15 +203580,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ATAN_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ATAN_Stream_10copy, "ATAN_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy, "CDLHARAMI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -133955,16 +203614,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self) { - TA_ATAN_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self) { + TA_CDLHARAMI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -133981,18 +203640,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4649, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream))))) __PYX_ERR(3, 4649, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream))))) __PYX_ERR(3, 10172, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -134006,7 +203665,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ATAN_Clone(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLHARAMI_Clone(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -134049,7 +203708,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4659, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -134071,7 +203730,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -134084,19 +203743,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10ATR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10ATR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10ATR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10ATR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -134110,7 +203769,7 @@ static void __pyx_pf_5talib_7_ta_lib_10ATR_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_ATR_Close(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHARAMICROSS_Close(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -134136,24 +203795,24 @@ static void __pyx_pf_5talib_7_ta_lib_10ATR_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10ATR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10ATR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -134174,86 +203833,77 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4683, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10204, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4683, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 4683, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4683, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4683, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4683, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4683, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10204, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10204, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4683, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10204, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10204, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10204, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10204, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4683, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10204, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -134261,8 +203911,8 @@ static int __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(struct __pyx_obj_5tal npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ATR_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLHARAMICROSS_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -134277,47 +203927,55 @@ static int __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4684, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4685, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4686, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4687, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10209, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4687, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10209, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4687, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10209, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4687, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10209, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4688, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10210, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4689, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10211, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4690, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10212, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4695, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10217, __pyx_L1_error) /*try:*/ { @@ -134327,9 +203985,9 @@ static int __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ATR_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_CDLHARAMICROSS_Lookback() + 1); - __pyx_v_retCode = TA_ATR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHARAMICROSS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -134346,7 +204004,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_ATR_Close(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHARAMICROSS_Close(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -134414,7 +204072,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4712, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -134426,9 +204084,10 @@ static int __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -134447,26 +204106,26 @@ static int __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ATR_Stream_4open_and_fill, "ATR_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ATR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ATR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill, "CDLHARAMICROSS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -134487,86 +204146,77 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4714, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10236, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4714, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10236, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4714, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10236, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4714, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10236, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4714, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10236, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4714, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 4714, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4714, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4714, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4714, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4714, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10236, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10236, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4715, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10236, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10236, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10236, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10236, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4714, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10236, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -134575,11 +204225,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject * int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ATR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_stream = 0; + TA_CDLHARAMICROSS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -134601,52 +204251,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4716, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4717, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4718, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4719, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10242, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4719, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10242, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4719, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10242, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4719, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10242, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4720, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10243, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4721, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10244, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4722, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10245, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ATR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4728, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHARAMICROSS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4730, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10253, __pyx_L1_error) /*try:*/ { @@ -134656,7 +204314,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ATR_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMICROSS_Lookback()); } /*finally:*/ { @@ -134669,9 +204327,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4734, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10257, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -134680,7 +204338,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ATR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHARAMICROSS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -134784,33 +204442,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4745, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4746, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10269, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4746, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10269, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4746, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10269, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 4746, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4746, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10269, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4746, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4746, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10269, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 4746, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10269, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -134828,9 +204489,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -134839,7 +204501,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject * - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -134852,21 +204514,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ATR_Stream_6update, "ATR_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update, "CDLHARAMICROSS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -134874,7 +204537,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -134890,59 +204553,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4748, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10271, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10271, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4748, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4748, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4748, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4748, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 4748, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10271, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10271, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4748, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10271, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4748, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10271, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4748, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10271, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10271, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4749, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4749, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4749, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10272, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10272, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10272, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10272, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4748, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10271, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -134951,12 +204621,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -134979,7 +204650,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ATR_Update(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHARAMICROSS_Update(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -135007,13 +204678,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4756, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4757, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -135030,7 +204701,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -135042,21 +204713,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ATR_Stream_8peek, "ATR_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek, "CDLHARAMICROSS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -135064,7 +204736,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -135080,59 +204752,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4759, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10282, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10282, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4759, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10282, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4759, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10282, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4759, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10282, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4759, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 4759, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10282, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10282, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4759, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10282, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4759, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10282, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4759, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10282, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10282, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4760, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4760, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4760, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10283, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10283, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10283, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10283, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4759, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10282, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -135141,12 +204820,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -135169,7 +204849,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ATR_Peek(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHARAMICROSS_Peek(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -135197,13 +204877,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4767, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4768, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -135220,7 +204900,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -135232,22 +204912,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -135270,7 +204950,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ATR_Value(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHARAMICROSS_Value(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -135298,13 +204978,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4778, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4779, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -135321,7 +205001,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -135332,12 +205012,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10ATR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ATR_OutRange(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLHARAMICROSS_OutRange(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -135348,12 +205028,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ATR_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10ATR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ATR_Advance(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLHARAMICROSS_Advance(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -135365,15 +205045,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ATR_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ATR_Stream_10copy, "ATR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy, "CDLHARAMICROSS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -135399,16 +205079,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self) { - TA_ATR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self) { + TA_CDLHARAMICROSS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -135425,18 +205105,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4790, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream))))) __PYX_ERR(3, 4790, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream))))) __PYX_ERR(3, 10313, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -135450,7 +205130,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ATR_Clone(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLHARAMICROSS_Clone(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -135493,7 +205173,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4800, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -135515,7 +205195,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -135528,19 +205208,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -135554,7 +205234,7 @@ static void __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream___dealloc__(struct __pyx_ob if (__pyx_t_1) { - (void)(TA_AVGDEV_Close(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHIGHWAVE_Close(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -135580,27 +205260,29 @@ static void __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream___dealloc__(struct __pyx_ob /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -135616,79 +205298,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4824, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10345, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10345, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10345, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4824, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10345, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4824, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10345, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4824, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 4824, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4824, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4824, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10345, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10345, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4824, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10345, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10345, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10345, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10345, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 4824, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10345, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_AVGDEV_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLHIGHWAVE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -135703,31 +205392,55 @@ static int __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4825, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4826, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4826, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10350, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10350, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10350, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10350, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4827, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10351, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4828, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10352, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4829, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10353, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4834, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10358, __pyx_L1_error) /*try:*/ { @@ -135737,9 +205450,9 @@ static int __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(struct __pyx_obj_5 __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_AVGDEV_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_CDLHIGHWAVE_Lookback() + 1); - __pyx_v_retCode = TA_AVGDEV_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHIGHWAVE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -135756,7 +205469,7 @@ static int __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - (void)(TA_AVGDEV_Close(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHIGHWAVE_Close(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -135824,7 +205537,7 @@ static int __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4851, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -135836,10 +205549,13 @@ static int __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(struct __pyx_obj_5 goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -135855,29 +205571,31 @@ static int __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill, "AVGDEV_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill, "CDLHIGHWAVE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -135893,83 +205611,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4853, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10377, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10377, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10377, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10377, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10377, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4853, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 4853, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4853, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4853, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10377, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10377, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4854, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10377, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10377, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10377, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10377, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 4853, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10377, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_AVGDEV_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_stream = 0; + TA_CDLHIGHWAVE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -135991,36 +205716,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4855, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4856, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4856, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10383, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10383, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10383, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10383, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4857, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10384, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4858, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10385, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4859, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10386, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AVGDEV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4865, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIGHWAVE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4867, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10394, __pyx_L1_error) /*try:*/ { @@ -136030,7 +205779,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_AVGDEV_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIGHWAVE_Lookback()); } /*finally:*/ { @@ -136043,9 +205792,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4871, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10398, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -136054,7 +205803,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_AVGDEV_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHIGHWAVE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -136158,27 +205907,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4882, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4883, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4883, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 4883, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10410, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10410, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10410, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10410, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4883, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4883, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10410, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 4883, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10410, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -136196,16 +205954,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObjec __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -136218,27 +205979,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_6update, "AVGDEV_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update, "CDLHIGHWAVE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -136254,57 +206018,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4885, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10412, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10412, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10412, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10412, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4885, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10412, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4885, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 4885, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10412, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10412, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4885, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10412, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10412, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10412, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10412, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4886, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10413, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10413, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10413, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10413, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4885, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10412, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -136327,7 +206115,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_6update(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AVGDEV_Update(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHIGHWAVE_Update(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -136355,13 +206143,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_6update(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4893, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4894, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -136378,7 +206166,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_6update(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -136390,27 +206178,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_6update(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_8peek, "AVGDEV_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek, "CDLHIGHWAVE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -136426,57 +206217,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4896, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10423, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10423, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10423, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10423, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4896, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10423, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4896, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4896, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10423, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10423, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4896, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10423, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10423, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10423, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10423, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4897, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10424, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10424, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10424, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10424, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4896, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10423, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -136499,7 +206314,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_8peek(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AVGDEV_Peek(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHIGHWAVE_Peek(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -136527,13 +206342,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_8peek(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4904, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4905, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -136550,7 +206365,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_8peek(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -136562,22 +206377,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_8peek(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -136600,7 +206415,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AVGDEV_Value(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHIGHWAVE_Value(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -136628,13 +206443,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4915, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4916, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -136651,7 +206466,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_5value___get__(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -136662,12 +206477,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_5value___get__(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_AVGDEV_OutRange(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLHIGHWAVE_OutRange(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -136678,12 +206493,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__out_range(struct __py } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_AVGDEV_Advance(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLHIGHWAVE_Advance(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -136695,15 +206510,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__advance(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_10copy, "AVGDEV_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy, "CDLHIGHWAVE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -136729,16 +206544,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self) { - TA_AVGDEV_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self) { + TA_CDLHIGHWAVE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -136755,18 +206570,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(struct __pyx_ob __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4927, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream))))) __PYX_ERR(3, 4927, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream))))) __PYX_ERR(3, 10454, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -136780,7 +206595,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_AVGDEV_Clone(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLHIGHWAVE_Clone(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -136823,7 +206638,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(struct __pyx_ob if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4937, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -136845,7 +206660,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(struct __pyx_ob __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -136858,19 +206673,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(struct __pyx_ob /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -136884,7 +206699,7 @@ static void __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_AVGPRICE_Close(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHIKKAKE_Close(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -136910,14 +206725,14 @@ static void __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -136950,44 +206765,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4959, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10486, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4959, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10486, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4959, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10486, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10486, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10486, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10486, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10486, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -136996,18 +206811,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4959, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10486, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -137017,7 +206832,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -137026,8 +206841,8 @@ static int __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(struct __pyx_obj npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_AVGPRICE_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLHIKKAKE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -137042,55 +206857,55 @@ static int __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4960, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4961, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4962, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4963, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4964, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4964, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10491, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4964, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10491, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4964, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10491, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4964, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10491, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4965, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10492, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4966, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10493, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4967, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10494, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 4972, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10499, __pyx_L1_error) /*try:*/ { @@ -137100,9 +206915,9 @@ static int __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_AVGPRICE_Lookback() + 1); + __pyx_v_need = (TA_CDLHIKKAKE_Lookback() + 1); - __pyx_v_retCode = TA_AVGPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHIKKAKE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -137119,7 +206934,7 @@ static int __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_AVGPRICE_Close(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHIKKAKE_Close(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -137187,7 +207002,7 @@ static int __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4989, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -137199,7 +207014,7 @@ static int __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -137221,16 +207036,16 @@ static int __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill, "AVGPRICE_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill, "CDLHIKKAKE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -137263,44 +207078,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4991, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10518, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10518, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10518, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10518, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10518, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4991, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10518, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4991, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10518, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10518, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10518, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10518, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10518, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -137309,18 +207124,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4991, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10518, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -137330,7 +207145,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -137340,11 +207155,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObj int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_AVGPRICE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_stream = 0; + TA_CDLHIKKAKE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -137366,60 +207181,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4993, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4994, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4995, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4996, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4997, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4997, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10524, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4997, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10524, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4997, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10524, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4997, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10524, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4998, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10525, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4999, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10526, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5000, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10527, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AVGPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5006, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5008, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10535, __pyx_L1_error) /*try:*/ { @@ -137429,7 +207244,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_AVGPRICE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKE_Lookback()); } /*finally:*/ { @@ -137442,9 +207257,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5012, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10539, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -137453,7 +207268,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_AVGPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHIKKAKE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -137557,36 +207372,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5023, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5024, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5024, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10551, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5024, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10551, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5024, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10551, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5024, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5024, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10551, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5024, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5024, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10551, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 5024, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10551, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -137604,7 +207419,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -137616,7 +207431,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObj - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -137629,15 +207444,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_6update, "AVGPRICE_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update, "CDLHIKKAKE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -137670,64 +207485,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5026, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10553, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5026, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10553, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5026, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10553, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5026, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10553, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5026, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10553, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5026, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10553, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5026, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10553, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5026, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10553, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5026, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10553, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5026, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10553, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5026, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10553, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5027, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5027, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5027, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5027, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10554, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10554, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10554, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10554, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5026, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10553, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -137741,8 +207556,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -137765,7 +207580,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AVGPRICE_Update(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHIKKAKE_Update(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -137793,13 +207608,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_6update(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5034, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5035, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -137816,7 +207631,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_6update(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -137828,15 +207643,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_8peek, "AVGPRICE_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek, "CDLHIKKAKE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -137869,64 +207684,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5037, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10564, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5037, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10564, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5037, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10564, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5037, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10564, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5037, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10564, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5037, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10564, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5037, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10564, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5037, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10564, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5037, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10564, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5037, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10564, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5037, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10564, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5038, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5038, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5038, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5038, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10565, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10565, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10565, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10565, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5037, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10564, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -137940,8 +207755,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -137964,7 +207779,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AVGPRICE_Peek(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHIKKAKE_Peek(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -137992,13 +207807,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_8peek(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5045, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5046, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -138015,7 +207830,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_8peek(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -138027,22 +207842,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -138065,7 +207880,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_AVGPRICE_Value(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHIKKAKE_Value(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -138093,13 +207908,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_5value___get__(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5056, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5057, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -138116,7 +207931,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_5value___get__(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -138127,12 +207942,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_5value___get__(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_AVGPRICE_OutRange(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLHIKKAKE_OutRange(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -138143,12 +207958,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_AVGPRICE_Advance(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLHIKKAKE_Advance(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -138160,15 +207975,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_10copy, "AVGPRICE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy, "CDLHIKKAKE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -138194,16 +208009,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self) { - TA_AVGPRICE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self) { + TA_CDLHIKKAKE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -138220,18 +208035,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5068, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream))))) __PYX_ERR(3, 5068, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream))))) __PYX_ERR(3, 10595, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -138245,7 +208060,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_AVGPRICE_Clone(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLHIKKAKE_Clone(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -138288,7 +208103,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5078, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -138310,7 +208125,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -138323,19 +208138,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -138349,7 +208164,7 @@ static void __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream___dealloc__(struct __pyx_ob if (__pyx_t_1) { - (void)(TA_BBANDS_Close(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHIKKAKEMOD_Close(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -138375,30 +208190,29 @@ static void __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream___dealloc__(struct __pyx_ob /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_nbdevup; - double __pyx_v_nbdevdn; - int __pyx_v_matype; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -138414,123 +208228,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5107, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10627, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5107, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5107, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10627, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5107, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10627, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5107, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10627, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5107, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10627, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5107, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, i); __PYX_ERR(3, 5107, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5107, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5107, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5107, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5107, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5107, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10627, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10627, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5107, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } - if (values[2]) { - __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5107, __pyx_L3_error) - } else { - __pyx_v_nbdevup = ((double)-4e37); - } - if (values[3]) { - __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5107, __pyx_L3_error) - } else { - __pyx_v_nbdevdn = ((double)-4e37); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5107, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_matype = ((int)0); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10627, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10627, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10627, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10627, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 5107, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10627, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_BBANDS_Stream *__pyx_v_handle; - double __pyx_v_outupperband; - double __pyx_v_outmiddleband; - double __pyx_v_outlowerband; + TA_CDLHIKKAKEMOD_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -138545,31 +208322,55 @@ static int __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5108, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5109, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 5109, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10630, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10632, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10632, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10632, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10632, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5110, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10633, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5111, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10634, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5112, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10635, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5119, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10640, __pyx_L1_error) /*try:*/ { @@ -138579,9 +208380,9 @@ static int __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(struct __pyx_obj_5 __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype) + 1); + __pyx_v_need = (TA_CDLHIKKAKEMOD_Lookback() + 1); - __pyx_v_retCode = TA_BBANDS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_CDLHIKKAKEMOD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -138598,7 +208399,7 @@ static int __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - (void)(TA_BBANDS_Close(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHIKKAKEMOD_Close(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -138666,7 +208467,7 @@ static int __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5136, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -138678,10 +208479,13 @@ static int __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(struct __pyx_obj_5 goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -138691,40 +208495,37 @@ static int __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(struct __pyx_obj_5 - - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill, "BBANDS_Stream.open_and_fill(real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill, "CDLHIKKAKEMOD_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_nbdevup; - double __pyx_v_nbdevdn; - int __pyx_v_matype; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -138740,127 +208541,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5138, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10659, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5138, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5138, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, i); __PYX_ERR(3, 5138, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5138, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5138, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5138, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5138, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5138, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10659, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10659, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5139, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } - if (values[2]) { - __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5139, __pyx_L3_error) - } else { - __pyx_v_nbdevup = ((double)-4e37); - } - if (values[3]) { - __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5139, __pyx_L3_error) - } else { - __pyx_v_nbdevdn = ((double)-4e37); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5139, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_matype = ((int)0); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10659, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10659, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10659, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10659, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 5138, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10659, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outupperband = 0; - PyArrayObject *__pyx_v_outmiddleband = 0; - PyArrayObject *__pyx_v_outlowerband = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_BBANDS_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_stream = 0; + TA_CDLHIKKAKEMOD_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -138877,43 +208641,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObjec PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5140, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5141, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 5141, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10665, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10665, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10665, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10665, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5142, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10666, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5143, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10667, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5144, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10668, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BBANDS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5152, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5154, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10676, __pyx_L1_error) /*try:*/ { @@ -138923,7 +208709,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKEMOD_Lookback()); } /*finally:*/ { @@ -138936,19 +208722,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5158, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5159, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10680, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5160, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -138957,7 +208733,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_BBANDS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowerband)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHIKKAKEMOD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -139061,64 +208837,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5171, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5172, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 5172, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5172, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10692, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10692, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10692, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10692, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 5172, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 5172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5172, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 5172, __pyx_L1_error); - __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 5172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 5172, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 5172, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 5172, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_15 = 0; - __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 5172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5172, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 5172, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10692, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10692, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_15; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_15 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -139126,20 +208884,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObjec __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outupperband); - __Pyx_XDECREF((PyObject *)__pyx_v_outmiddleband); - __Pyx_XDECREF((PyObject *)__pyx_v_outlowerband); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -139152,27 +208909,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_6update, "BBANDS_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update, "CDLHIKKAKEMOD_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -139188,68 +208948,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5174, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10694, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10694, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10694, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10694, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5174, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10694, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5174, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 5174, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10694, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10694, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5174, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10694, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10694, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10694, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10694, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5175, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10695, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10695, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10695, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10695, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5174, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10694, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outupperband; - double __pyx_v_outmiddleband; - double __pyx_v_outlowerband; +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -139266,7 +209045,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_BBANDS_Update(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_CDLHIKKAKEMOD_Update(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -139294,54 +209073,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5184, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5185, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 5185, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 5185, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 5185, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -139349,27 +209108,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_8peek, "BBANDS_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek, "CDLHIKKAKEMOD_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -139385,68 +209147,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5187, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10705, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10705, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10705, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10705, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10705, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5187, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 5187, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10705, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10705, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10705, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10705, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10705, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10705, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5188, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10706, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10706, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10706, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10706, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 5187, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10705, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outupperband; - double __pyx_v_outmiddleband; - double __pyx_v_outlowerband; +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -139463,7 +209244,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_BBANDS_Peek(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_CDLHIKKAKEMOD_Peek(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -139491,54 +209272,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5197, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5198, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 5198, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 5198, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 5198, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -139546,33 +209307,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self) { - double __pyx_v_outupperband; - double __pyx_v_outmiddleband; - double __pyx_v_outlowerband; +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -139589,7 +209345,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_BBANDS_Value(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_CDLHIKKAKEMOD_Value(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -139617,66 +209373,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5210, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5211, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 5211, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 5211, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 5211, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13BBANDS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_BBANDS_OutRange(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLHIKKAKEMOD_OutRange(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -139687,12 +209423,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13BBANDS_Stream__out_range(struct __py } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13BBANDS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_BBANDS_Advance(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLHIKKAKEMOD_Advance(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -139704,15 +209440,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13BBANDS_Stream__advance(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_10copy, "BBANDS_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy, "CDLHIKKAKEMOD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -139738,16 +209474,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self) { - TA_BBANDS_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self) { + TA_CDLHIKKAKEMOD_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -139764,18 +209500,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(struct __pyx_ob __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5222, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream))))) __PYX_ERR(3, 5222, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream))))) __PYX_ERR(3, 10736, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -139789,7 +209525,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_BBANDS_Clone(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLHIKKAKEMOD_Clone(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -139832,7 +209568,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(struct __pyx_ob if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5232, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -139854,7 +209590,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(struct __pyx_ob __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -139867,19 +209603,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(struct __pyx_ob /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11BETA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11BETA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11BETA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11BETA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -139893,7 +209629,7 @@ static void __pyx_pf_5talib_7_ta_lib_11BETA_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_BETA_Close(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHOMINGPIGEON_Close(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -139919,28 +209655,29 @@ static void __pyx_pf_5talib_7_ta_lib_11BETA_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11BETA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11BETA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real0 = 0; - PyObject *__pyx_v_real1 = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -139956,87 +209693,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5257, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10768, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10768, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5257, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10768, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5257, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10768, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5257, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10768, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5257, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 5257, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5257, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5257, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5257, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10768, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10768, __pyx_L3_error) } } - } - __pyx_v_real0 = values[0]; - __pyx_v_real1 = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5257, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10768, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10768, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10768, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10768, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 5257, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10768, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real0 = 0; - PyArrayObject *__pyx_v_a_real1 = 0; +static int __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_BETA_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLHOMINGPIGEON_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -140051,39 +209787,55 @@ static int __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5258, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5259, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5260, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real0); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 5260, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_real1); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 5260, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10773, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10773, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10773, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10773, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5261, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10774, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5262, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10775, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5263, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10776, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5268, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10781, __pyx_L1_error) /*try:*/ { @@ -140093,9 +209845,9 @@ static int __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_BETA_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_CDLHOMINGPIGEON_Lookback() + 1); - __pyx_v_retCode = TA_BETA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHOMINGPIGEON_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -140112,7 +209864,7 @@ static int __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_BETA_Close(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLHOMINGPIGEON_Close(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -140180,7 +209932,7 @@ static int __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BETA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5285, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -140192,11 +209944,13 @@ static int __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -140212,30 +209966,31 @@ static int __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11BETA_Stream_4open_and_fill, "BETA_Stream.open_and_fill(real0, real1, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11BETA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11BETA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill, "CDLHOMINGPIGEON_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real0 = 0; - PyObject *__pyx_v_real1 = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -140251,91 +210006,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5287, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10800, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10800, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10800, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10800, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10800, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5287, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 5287, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5287, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5287, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5287, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10800, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10800, __pyx_L3_error) } } - } - __pyx_v_real0 = values[0]; - __pyx_v_real1 = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5288, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10800, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10800, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10800, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10800, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 5287, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10800, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real0 = 0; - PyArrayObject *__pyx_v_a_real1 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_BETA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_stream = 0; + TA_CDLHOMINGPIGEON_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -140357,44 +210111,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5289, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5290, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5291, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real0); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 5291, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_real1); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 5291, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10806, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10806, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10806, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10806, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5292, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10807, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5293, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10808, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5294, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10809, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BETA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5300, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5302, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10817, __pyx_L1_error) /*try:*/ { @@ -140404,7 +210174,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_BETA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHOMINGPIGEON_Lookback()); } /*finally:*/ { @@ -140417,9 +210187,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5306, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10821, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -140428,7 +210198,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_BETA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHOMINGPIGEON_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -140532,30 +210302,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BETA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5317, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5318, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real0); - __Pyx_GIVEREF(__pyx_v_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 5318, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_real1); - __Pyx_GIVEREF(__pyx_v_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 5318, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5318, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10833, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10833, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10833, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10833, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5318, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5318, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10833, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 5318, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10833, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -140573,17 +210349,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -140596,28 +210374,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11BETA_Stream_6update, "BETA_Stream.update(self, double real0, double real1)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update, "CDLHOMINGPIGEON_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real0; - double __pyx_v_real1; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -140633,52 +210413,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5320, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10835, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10835, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10835, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5320, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10835, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5320, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10835, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5320, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 5320, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10835, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10835, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5320, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10835, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5320, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10835, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10835, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10835, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5321, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5321, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10836, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10836, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10836, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10836, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 5320, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10835, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -140686,12 +210480,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -140714,7 +210510,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_BETA_Update(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHOMINGPIGEON_Update(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -140742,13 +210538,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5328, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5329, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -140765,7 +210561,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -140777,28 +210573,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11BETA_Stream_8peek, "BETA_Stream.peek(self, double real0, double real1)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek, "CDLHOMINGPIGEON_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real0; - double __pyx_v_real1; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -140814,52 +210612,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5331, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10846, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10846, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10846, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5331, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10846, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5331, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10846, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5331, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 5331, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10846, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10846, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5331, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10846, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5331, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10846, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10846, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10846, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5332, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5332, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10847, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10847, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10847, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10847, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 5331, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10846, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -140867,12 +210679,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -140895,7 +210709,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_BETA_Peek(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHOMINGPIGEON_Peek(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -140923,13 +210737,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5339, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5340, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -140946,7 +210760,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -140958,22 +210772,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -140996,7 +210810,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_BETA_Value(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLHOMINGPIGEON_Value(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -141024,13 +210838,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5350, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5351, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -141047,7 +210861,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -141058,12 +210872,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11BETA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_BETA_OutRange(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLHOMINGPIGEON_OutRange(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -141074,12 +210888,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11BETA_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11BETA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_BETA_Advance(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLHOMINGPIGEON_Advance(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -141091,15 +210905,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11BETA_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11BETA_Stream_10copy, "BETA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy, "CDLHOMINGPIGEON_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -141125,16 +210939,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self) { - TA_BETA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self) { + TA_CDLHOMINGPIGEON_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -141151,18 +210965,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5362, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream))))) __PYX_ERR(3, 5362, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream))))) __PYX_ERR(3, 10877, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -141176,7 +210990,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_BETA_Clone(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLHOMINGPIGEON_Clone(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -141219,7 +211033,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5372, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -141241,7 +211055,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -141254,19 +211068,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10BOP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10BOP_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10BOP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10BOP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -141280,7 +211094,7 @@ static void __pyx_pf_5talib_7_ta_lib_10BOP_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_BOP_Close(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLIDENTICAL3CROWS_Close(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -141306,14 +211120,14 @@ static void __pyx_pf_5talib_7_ta_lib_10BOP_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10BOP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10BOP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -141346,44 +211160,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5394, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10909, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5394, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10909, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5394, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10909, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10909, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10909, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10909, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10909, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -141392,18 +211206,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5394, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10909, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -141413,7 +211227,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -141422,8 +211236,8 @@ static int __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(struct __pyx_obj_5tal npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_BOP_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLIDENTICAL3CROWS_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -141438,55 +211252,55 @@ static int __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5395, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5396, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5397, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5398, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5399, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5399, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10914, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5399, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10914, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5399, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10914, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5399, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10914, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5400, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10915, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5401, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10916, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5402, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10917, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5407, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10922, __pyx_L1_error) /*try:*/ { @@ -141496,9 +211310,9 @@ static int __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_BOP_Lookback() + 1); + __pyx_v_need = (TA_CDLIDENTICAL3CROWS_Lookback() + 1); - __pyx_v_retCode = TA_BOP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -141515,7 +211329,7 @@ static int __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_BOP_Close(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLIDENTICAL3CROWS_Close(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -141583,7 +211397,7 @@ static int __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BOP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5424, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -141595,7 +211409,7 @@ static int __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -141617,16 +211431,16 @@ static int __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BOP_Stream_4open_and_fill, "BOP_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10BOP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10BOP_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill, "CDLIDENTICAL3CROWS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -141659,44 +211473,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5426, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10941, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10941, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10941, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10941, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10941, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5426, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10941, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5426, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10941, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10941, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10941, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10941, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10941, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -141705,18 +211519,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5426, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10941, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -141726,7 +211540,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -141736,11 +211550,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject * int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_BOP_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_stream = 0; + TA_CDLIDENTICAL3CROWS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -141762,60 +211576,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5428, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5429, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5430, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5431, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5432, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5432, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10947, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5432, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10947, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5432, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10947, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5432, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10947, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5433, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10948, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5434, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10949, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5435, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10950, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BOP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5441, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5443, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10958, __pyx_L1_error) /*try:*/ { @@ -141825,7 +211639,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_BOP_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLIDENTICAL3CROWS_Lookback()); } /*finally:*/ { @@ -141838,9 +211652,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5447, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10962, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -141849,7 +211663,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_BOP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -141953,36 +211767,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BOP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5458, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5459, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5459, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10974, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5459, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10974, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5459, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10974, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5459, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5459, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10974, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5459, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5459, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10974, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 5459, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10974, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -142000,7 +211814,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -142012,7 +211826,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject * - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -142025,15 +211839,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BOP_Stream_6update, "BOP_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update, "CDLIDENTICAL3CROWS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -142066,64 +211880,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5461, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10976, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10976, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10976, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10976, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10976, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5461, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10976, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5461, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10976, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10976, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10976, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10976, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10976, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5462, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5462, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5462, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5462, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10977, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10977, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10977, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10977, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5461, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10976, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -142137,8 +211951,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -142161,7 +211975,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_BOP_Update(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Update(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -142189,13 +212003,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5469, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5470, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -142212,7 +212026,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -142224,15 +212038,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BOP_Stream_8peek, "BOP_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek, "CDLIDENTICAL3CROWS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -142265,64 +212079,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5472, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10987, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5472, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10987, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5472, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10987, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5472, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10987, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5472, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10987, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5472, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10987, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5472, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10987, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5472, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10987, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5472, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10987, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5472, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10987, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5472, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10987, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5473, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5473, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5473, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5473, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10988, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10988, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10988, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10988, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5472, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10987, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -142336,8 +212150,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -142360,7 +212174,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_BOP_Peek(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Peek(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -142388,13 +212202,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5480, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5481, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -142411,7 +212225,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -142423,22 +212237,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -142461,7 +212275,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_BOP_Value(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Value(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -142489,13 +212303,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5491, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5492, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -142512,7 +212326,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -142523,12 +212337,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10BOP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_BOP_OutRange(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLIDENTICAL3CROWS_OutRange(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -142539,12 +212353,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10BOP_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10BOP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_BOP_Advance(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLIDENTICAL3CROWS_Advance(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -142556,15 +212370,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10BOP_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BOP_Stream_10copy, "BOP_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy, "CDLIDENTICAL3CROWS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -142590,16 +212404,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self) { - TA_BOP_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self) { + TA_CDLIDENTICAL3CROWS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -142616,18 +212430,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5503, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream))))) __PYX_ERR(3, 5503, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream))))) __PYX_ERR(3, 11018, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -142641,7 +212455,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_BOP_Clone(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Clone(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -142684,7 +212498,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5513, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -142706,7 +212520,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -142719,19 +212533,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10CCI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10CCI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10CCI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10CCI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -142745,7 +212559,7 @@ static void __pyx_pf_5talib_7_ta_lib_10CCI_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_CCI_Close(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLINNECK_Close(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -142771,24 +212585,24 @@ static void __pyx_pf_5talib_7_ta_lib_10CCI_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10CCI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10CCI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -142809,86 +212623,77 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5537, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11050, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11050, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11050, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11050, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11050, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5537, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 5537, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5537, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5537, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5537, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5537, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11050, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 11050, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5537, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11050, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11050, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11050, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11050, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 5537, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11050, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -142896,8 +212701,8 @@ static int __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(struct __pyx_obj_5tal npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CCI_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_CDLINNECK_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -142912,47 +212717,55 @@ static int __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5538, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5539, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5540, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5541, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11055, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5541, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11055, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5541, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11055, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5541, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11055, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5542, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11056, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5543, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11057, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5544, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11058, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5549, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11063, __pyx_L1_error) /*try:*/ { @@ -142962,9 +212775,9 @@ static int __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CCI_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_CDLINNECK_Lookback() + 1); - __pyx_v_retCode = TA_CCI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLINNECK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -142981,7 +212794,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_CCI_Close(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLINNECK_Close(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -143049,7 +212862,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CCI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5566, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -143061,9 +212874,10 @@ static int __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -143082,26 +212896,26 @@ static int __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CCI_Stream_4open_and_fill, "CCI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10CCI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CCI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill, "CDLINNECK_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -143122,86 +212936,77 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5568, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11082, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5568, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11082, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5568, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11082, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5568, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11082, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5568, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11082, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5568, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 5568, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5568, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5568, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5568, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5568, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11082, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 11082, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5569, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11082, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11082, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11082, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11082, __pyx_L3_error) } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 5568, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11082, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -143210,11 +213015,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject * int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CCI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_stream = 0; + TA_CDLINNECK_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -143236,52 +213041,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5570, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5571, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5572, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5573, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11088, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5573, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11088, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5573, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11088, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5573, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11088, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5574, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11089, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5575, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11090, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5576, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11091, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CCI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5582, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLINNECK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5584, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11099, __pyx_L1_error) /*try:*/ { @@ -143291,7 +213104,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CCI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINNECK_Lookback()); } /*finally:*/ { @@ -143304,9 +213117,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5588, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11103, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -143315,7 +213128,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CCI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLINNECK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -143419,33 +213232,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CCI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5599, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5600, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11115, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 5600, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11115, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 5600, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11115, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 5600, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5600, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11115, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5600, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5600, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11115, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 5600, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11115, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -143463,9 +213279,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -143474,7 +213291,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject * - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -143487,21 +213304,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CCI_Stream_6update, "CCI_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_6update, "CDLINNECK_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -143509,7 +213327,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -143525,59 +213343,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5602, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11117, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11117, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11117, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11117, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11117, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5602, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 5602, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11117, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11117, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11117, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11117, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11117, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11117, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5603, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5603, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5603, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11118, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11118, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11118, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11118, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 5602, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11117, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -143586,12 +213411,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -143614,7 +213440,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CCI_Update(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLINNECK_Update(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -143642,13 +213468,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5610, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5611, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -143665,7 +213491,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -143677,21 +213503,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CCI_Stream_8peek, "CCI_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_8peek, "CDLINNECK_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -143699,7 +213526,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -143715,59 +213542,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5613, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11128, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11128, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11128, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11128, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11128, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5613, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 5613, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11128, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11128, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11128, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11128, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11128, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11128, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5614, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5614, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5614, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11129, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11129, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11129, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11129, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 5613, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11128, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -143776,12 +213610,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -143804,7 +213639,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CCI_Peek(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLINNECK_Peek(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -143832,13 +213667,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5621, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5622, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -143855,7 +213690,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -143867,22 +213702,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -143905,7 +213740,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CCI_Value(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_CDLINNECK_Value(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -143933,13 +213768,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5632, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5633, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -143956,7 +213791,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -143967,12 +213802,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10CCI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CCI_OutRange(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLINNECK_OutRange(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -143983,12 +213818,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10CCI_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10CCI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CCI_Advance(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLINNECK_Advance(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -144000,15 +213835,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10CCI_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CCI_Stream_10copy, "CCI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_10copy, "CDLINNECK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -144034,16 +213869,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self) { - TA_CCI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self) { + TA_CDLINNECK_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -144060,18 +213895,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5644, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream))))) __PYX_ERR(3, 5644, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream))))) __PYX_ERR(3, 11159, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -144085,7 +213920,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CCI_Clone(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLINNECK_Clone(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -144128,7 +213963,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5654, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -144150,7 +213985,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -144163,19 +213998,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -144189,7 +214024,7 @@ static void __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream___dealloc__(struct __pyx if (__pyx_t_1) { - (void)(TA_CDL2CROWS_Close(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLINVERTEDHAMMER_Close(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -144215,14 +214050,14 @@ static void __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream___dealloc__(struct __pyx /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -144255,44 +214090,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5676, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11191, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11191, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11191, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11191, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11191, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5676, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11191, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5676, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 11191, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11191, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11191, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11191, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11191, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -144301,18 +214136,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5676, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11191, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -144322,7 +214157,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -144331,7 +214166,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(struct __pyx_ob npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDL2CROWS_Stream *__pyx_v_handle; + TA_CDLINVERTEDHAMMER_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -144347,55 +214182,55 @@ static int __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5677, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5678, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5679, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5680, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5681, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5681, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11196, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5681, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11196, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5681, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11196, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5681, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11196, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5682, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11197, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5683, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11198, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5684, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11199, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5689, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11204, __pyx_L1_error) /*try:*/ { @@ -144405,9 +214240,9 @@ static int __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(struct __pyx_ob __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDL2CROWS_Lookback() + 1); + __pyx_v_need = (TA_CDLINVERTEDHAMMER_Lookback() + 1); - __pyx_v_retCode = TA_CDL2CROWS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -144424,7 +214259,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - (void)(TA_CDL2CROWS_Close(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLINVERTEDHAMMER_Close(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -144492,7 +214327,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5706, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -144504,7 +214339,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(struct __pyx_ob goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -144526,16 +214361,16 @@ static int __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill, "CDL2CROWS_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill, "CDLINVERTEDHAMMER_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -144568,44 +214403,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5708, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11223, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11223, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11223, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11223, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11223, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5708, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11223, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5708, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 11223, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11223, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11223, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11223, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11223, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -144614,18 +214449,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5708, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11223, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -144635,7 +214470,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -144648,8 +214483,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyOb PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDL2CROWS_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_stream = 0; + TA_CDLINVERTEDHAMMER_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -144671,60 +214506,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5710, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5711, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5712, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5713, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5714, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5714, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11229, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5714, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11229, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5714, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11229, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5714, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11229, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5715, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11230, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5716, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11231, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5717, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11232, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL2CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5723, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5725, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11240, __pyx_L1_error) /*try:*/ { @@ -144734,7 +214569,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL2CROWS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINVERTEDHAMMER_Lookback()); } /*finally:*/ { @@ -144747,7 +214582,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyOb } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5729, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11244, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -144758,7 +214593,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL2CROWS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLINVERTEDHAMMER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -144862,36 +214697,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5740, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5741, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5741, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11256, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5741, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11256, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5741, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11256, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5741, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5741, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11256, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5741, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5741, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11256, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 5741, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11256, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -144909,7 +214744,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyOb __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -144934,15 +214769,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_6update, "CDL2CROWS_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update, "CDLINVERTEDHAMMER_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -144975,64 +214810,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5743, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11258, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11258, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11258, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11258, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11258, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5743, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11258, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5743, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11258, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11258, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11258, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11258, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11258, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5744, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5744, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5744, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5744, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11259, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11259, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11259, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11259, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5743, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11258, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -145046,7 +214881,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -145070,7 +214905,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_6update(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL2CROWS_Update(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Update(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -145098,13 +214933,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_6update(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5751, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5752, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -145121,7 +214956,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_6update(struct __py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -145133,15 +214968,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_6update(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek, "CDL2CROWS_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek, "CDLINVERTEDHAMMER_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -145174,64 +215009,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5754, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11269, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5754, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11269, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5754, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11269, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5754, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11269, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5754, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11269, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5754, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11269, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5754, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11269, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5754, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11269, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5754, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11269, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5754, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11269, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5754, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11269, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5755, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5755, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5755, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5755, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11270, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11270, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11270, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11270, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5754, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11269, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -145245,7 +215080,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -145269,7 +215104,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL2CROWS_Peek(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Peek(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -145297,13 +215132,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5762, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5763, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -145320,7 +215155,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek(struct __pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -145332,21 +215167,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -145370,7 +215205,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_5value___get__(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL2CROWS_Value(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Value(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -145398,13 +215233,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_5value___get__(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5773, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5774, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -145421,7 +215256,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_5value___get__(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -145432,12 +215267,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_5value___get__(stru } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL2CROWS_OutRange(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLINVERTEDHAMMER_OutRange(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -145448,12 +215283,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__out_range(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL2CROWS_Advance(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLINVERTEDHAMMER_Advance(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -145465,15 +215300,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__advance(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy, "CDL2CROWS_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy, "CDLINVERTEDHAMMER_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -145499,16 +215334,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self) { - TA_CDL2CROWS_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self) { + TA_CDLINVERTEDHAMMER_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -145525,18 +215360,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(struct __pyx __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5785, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream))))) __PYX_ERR(3, 5785, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream))))) __PYX_ERR(3, 11300, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -145550,7 +215385,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDL2CROWS_Clone(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Clone(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -145593,7 +215428,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(struct __pyx if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5795, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -145615,7 +215450,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(struct __pyx __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -145628,19 +215463,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(struct __pyx /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -145654,7 +215489,7 @@ static void __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_CDL3BLACKCROWS_Close(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLKICKING_Close(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -145680,14 +215515,14 @@ static void __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -145720,44 +215555,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5817, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11332, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5817, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11332, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5817, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 11332, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11332, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11332, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11332, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11332, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -145766,18 +215601,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5817, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11332, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -145787,7 +215622,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -145796,7 +215631,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(struct __p npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDL3BLACKCROWS_Stream *__pyx_v_handle; + TA_CDLKICKING_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -145812,55 +215647,55 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5818, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5819, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5820, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5821, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5822, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5822, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11337, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5822, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11337, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5822, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11337, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5822, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11337, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5823, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11338, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5824, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11339, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5825, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11340, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5830, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11345, __pyx_L1_error) /*try:*/ { @@ -145870,9 +215705,9 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(struct __p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDL3BLACKCROWS_Lookback() + 1); + __pyx_v_need = (TA_CDLKICKING_Lookback() + 1); - __pyx_v_retCode = TA_CDL3BLACKCROWS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLKICKING_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -145889,7 +215724,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(struct __p if (__pyx_t_4) { - (void)(TA_CDL3BLACKCROWS_Close(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLKICKING_Close(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -145957,7 +215792,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5847, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -145969,7 +215804,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(struct __p goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -145991,16 +215826,16 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill, "CDL3BLACKCROWS_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill, "CDLKICKING_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -146033,44 +215868,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5849, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11364, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5849, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11364, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5849, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11364, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5849, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11364, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5849, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11364, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5849, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11364, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5849, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 11364, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5849, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11364, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5849, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11364, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5849, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11364, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5849, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11364, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -146079,18 +215914,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5849, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11364, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -146100,7 +215935,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -146113,8 +215948,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDL3BLACKCROWS_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_stream = 0; + TA_CDLKICKING_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -146136,60 +215971,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5851, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5852, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5853, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5854, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5855, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5855, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11370, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5855, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11370, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5855, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11370, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5855, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11370, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5856, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11371, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5857, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11372, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5858, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11373, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5864, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLKICKING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5866, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11381, __pyx_L1_error) /*try:*/ { @@ -146199,7 +216034,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3BLACKCROWS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKING_Lookback()); } /*finally:*/ { @@ -146212,7 +216047,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5870, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11385, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -146223,7 +216058,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL3BLACKCROWS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLKICKING_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -146327,36 +216162,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5881, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5882, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5882, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11397, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5882, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11397, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5882, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11397, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5882, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 5882, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11397, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5882, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5882, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11397, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 5882, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11397, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -146374,7 +216209,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -146399,15 +216234,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update, "CDL3BLACKCROWS_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_6update, "CDLKICKING_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -146440,64 +216275,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5884, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11399, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5884, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11399, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5884, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11399, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11399, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11399, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11399, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11399, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5885, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5885, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5885, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5885, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11400, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11400, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11400, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11400, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5884, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11399, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -146511,7 +216346,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -146535,7 +216370,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3BLACKCROWS_Update(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLKICKING_Update(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -146563,13 +216398,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5892, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5893, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -146586,7 +216421,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -146598,15 +216433,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek, "CDL3BLACKCROWS_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_8peek, "CDLKICKING_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -146639,64 +216474,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5895, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11410, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5895, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11410, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5895, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11410, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5895, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11410, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5895, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11410, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5895, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11410, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5895, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11410, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5895, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11410, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5895, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11410, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5895, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11410, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5895, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11410, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5896, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5896, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5896, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5896, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11411, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11411, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11411, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11411, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5895, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11410, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -146710,7 +216545,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -146734,7 +216569,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3BLACKCROWS_Peek(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLKICKING_Peek(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -146762,13 +216597,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5903, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5904, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -146785,7 +216620,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -146797,21 +216632,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -146835,7 +216670,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value___get__ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3BLACKCROWS_Value(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLKICKING_Value(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -146863,13 +216698,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value___get__ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5914, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5915, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -146886,7 +216721,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value___get__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -146897,12 +216732,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value___get__ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL3BLACKCROWS_OutRange(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLKICKING_OutRange(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -146913,12 +216748,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__out_range(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL3BLACKCROWS_Advance(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLKICKING_Advance(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -146930,15 +216765,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__advance(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy, "CDL3BLACKCROWS_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_10copy, "CDLKICKING_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -146964,16 +216799,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self) { - TA_CDL3BLACKCROWS_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self) { + TA_CDLKICKING_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -146990,18 +216825,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5926, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream))))) __PYX_ERR(3, 5926, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream))))) __PYX_ERR(3, 11441, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -147015,7 +216850,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDL3BLACKCROWS_Clone(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLKICKING_Clone(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -147058,7 +216893,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5936, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -147080,7 +216915,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -147093,19 +216928,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -147119,7 +216954,7 @@ static void __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream___dealloc__(struct __py if (__pyx_t_1) { - (void)(TA_CDL3INSIDE_Close(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLKICKINGBYLENGTH_Close(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -147145,14 +216980,14 @@ static void __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream___dealloc__(struct __py /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -147185,44 +217020,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5958, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11473, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11473, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11473, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11473, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11473, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5958, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11473, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5958, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 11473, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11473, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11473, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11473, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11473, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -147231,18 +217066,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5958, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11473, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -147252,7 +217087,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -147261,7 +217096,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(struct __pyx_o npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDL3INSIDE_Stream *__pyx_v_handle; + TA_CDLKICKINGBYLENGTH_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -147277,55 +217112,55 @@ static int __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5959, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5960, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5961, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5962, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5963, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5963, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11478, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5963, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11478, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5963, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11478, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5963, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11478, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5964, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11479, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5965, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11480, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5966, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11481, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 5971, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11486, __pyx_L1_error) /*try:*/ { @@ -147335,9 +217170,9 @@ static int __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(struct __pyx_o __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDL3INSIDE_Lookback() + 1); + __pyx_v_need = (TA_CDLKICKINGBYLENGTH_Lookback() + 1); - __pyx_v_retCode = TA_CDL3INSIDE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -147354,7 +217189,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - (void)(TA_CDL3INSIDE_Close(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLKICKINGBYLENGTH_Close(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -147422,7 +217257,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5988, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -147434,7 +217269,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(struct __pyx_o goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -147456,16 +217291,16 @@ static int __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill, "CDL3INSIDE_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill, "CDLKICKINGBYLENGTH_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -147498,44 +217333,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5990, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11505, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11505, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11505, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11505, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11505, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5990, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11505, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5990, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 11505, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11505, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11505, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11505, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11505, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -147544,18 +217379,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5990, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11505, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -147565,7 +217400,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -147578,8 +217413,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyO PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDL3INSIDE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_stream = 0; + TA_CDLKICKINGBYLENGTH_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -147601,60 +217436,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5992, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5993, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5994, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5995, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5996, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5996, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11511, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5996, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11511, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5996, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11511, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5996, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11511, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5997, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11512, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5998, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11513, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5999, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11514, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3INSIDE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6005, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6007, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11522, __pyx_L1_error) /*try:*/ { @@ -147664,7 +217499,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3INSIDE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKINGBYLENGTH_Lookback()); } /*finally:*/ { @@ -147677,7 +217512,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyO } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6011, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11526, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -147688,7 +217523,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL3INSIDE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -147792,36 +217627,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6022, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6023, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6023, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11538, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6023, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11538, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6023, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11538, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6023, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6023, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11538, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6023, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6023, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11538, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6023, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11538, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -147839,7 +217674,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyO __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -147864,15 +217699,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update, "CDL3INSIDE_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update, "CDLKICKINGBYLENGTH_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -147905,64 +217740,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6025, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11540, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11540, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11540, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11540, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11540, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6025, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11540, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6025, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11540, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11540, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11540, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11540, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11540, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6026, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6026, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6026, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6026, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11541, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11541, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11541, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11541, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6025, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11540, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -147976,7 +217811,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -148000,7 +217835,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3INSIDE_Update(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Update(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -148028,13 +217863,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6033, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6034, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -148051,7 +217886,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -148063,15 +217898,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek, "CDL3INSIDE_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek, "CDLKICKINGBYLENGTH_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -148104,64 +217939,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6036, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11551, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6036, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11551, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6036, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11551, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6036, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11551, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6036, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11551, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6036, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11551, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6036, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11551, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6036, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11551, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6036, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11551, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6036, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11551, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6036, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11551, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6037, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6037, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6037, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6037, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11552, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11552, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11552, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11552, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6036, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11551, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -148175,7 +218010,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -148199,7 +218034,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3INSIDE_Peek(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Peek(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -148227,13 +218062,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6044, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6045, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -148250,7 +218085,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -148262,21 +218097,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -148300,7 +218135,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value___get__(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3INSIDE_Value(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Value(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -148328,13 +218163,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value___get__(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6055, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6056, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -148351,7 +218186,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value___get__(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -148362,12 +218197,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value___get__(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL3INSIDE_OutRange(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLKICKINGBYLENGTH_OutRange(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -148378,12 +218213,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL3INSIDE_Advance(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLKICKINGBYLENGTH_Advance(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -148395,15 +218230,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__advance(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy, "CDL3INSIDE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy, "CDLKICKINGBYLENGTH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -148429,16 +218264,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self) { - TA_CDL3INSIDE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self) { + TA_CDLKICKINGBYLENGTH_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -148455,18 +218290,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(struct __py __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6067, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream))))) __PYX_ERR(3, 6067, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream))))) __PYX_ERR(3, 11582, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -148480,7 +218315,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDL3INSIDE_Clone(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Clone(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -148523,7 +218358,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(struct __py if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6077, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -148545,7 +218380,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(struct __py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -148558,19 +218393,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(struct __py /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -148584,7 +218419,7 @@ static void __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_CDL3LINESTRIKE_Close(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLLADDERBOTTOM_Close(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -148610,14 +218445,14 @@ static void __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -148650,44 +218485,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6099, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11614, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6099, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11614, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6099, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11614, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6099, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11614, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6099, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11614, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6099, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11614, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6099, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 11614, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6099, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11614, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6099, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11614, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6099, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11614, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6099, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11614, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -148696,18 +218531,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6099, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11614, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -148717,7 +218552,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -148726,7 +218561,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(struct __p npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDL3LINESTRIKE_Stream *__pyx_v_handle; + TA_CDLLADDERBOTTOM_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -148742,55 +218577,55 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6100, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6101, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6102, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6103, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6104, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6104, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11619, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6104, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11619, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6104, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11619, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6104, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11619, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6105, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11620, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6106, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11621, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6107, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11622, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6112, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11627, __pyx_L1_error) /*try:*/ { @@ -148800,9 +218635,9 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(struct __p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDL3LINESTRIKE_Lookback() + 1); + __pyx_v_need = (TA_CDLLADDERBOTTOM_Lookback() + 1); - __pyx_v_retCode = TA_CDL3LINESTRIKE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLLADDERBOTTOM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -148819,7 +218654,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(struct __p if (__pyx_t_4) { - (void)(TA_CDL3LINESTRIKE_Close(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLLADDERBOTTOM_Close(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -148887,7 +218722,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6129, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -148899,7 +218734,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(struct __p goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -148921,16 +218756,16 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill, "CDL3LINESTRIKE_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill, "CDLLADDERBOTTOM_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -148963,44 +218798,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6131, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11646, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11646, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11646, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11646, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11646, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6131, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11646, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6131, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 11646, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11646, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11646, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11646, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11646, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -149009,18 +218844,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6131, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11646, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -149030,7 +218865,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -149043,8 +218878,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDL3LINESTRIKE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_stream = 0; + TA_CDLLADDERBOTTOM_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -149066,60 +218901,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6133, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6134, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6135, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6136, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6137, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6137, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11652, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6137, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11652, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6137, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11652, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6137, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11652, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6138, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11653, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6139, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11654, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6140, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11655, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6146, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6148, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11663, __pyx_L1_error) /*try:*/ { @@ -149129,7 +218964,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3LINESTRIKE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLADDERBOTTOM_Lookback()); } /*finally:*/ { @@ -149142,7 +218977,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6152, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11667, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -149153,7 +218988,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL3LINESTRIKE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLLADDERBOTTOM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -149257,36 +219092,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6163, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6164, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6164, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11679, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6164, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11679, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6164, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11679, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6164, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6164, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11679, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6164, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6164, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11679, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6164, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11679, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -149304,7 +219139,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -149329,15 +219164,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update, "CDL3LINESTRIKE_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update, "CDLLADDERBOTTOM_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -149370,64 +219205,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6166, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11681, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11681, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11681, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11681, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11681, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6166, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11681, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6166, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11681, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11681, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11681, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11681, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11681, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6167, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6167, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6167, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6167, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11682, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11682, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11682, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11682, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6166, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11681, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -149441,7 +219276,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -149465,7 +219300,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3LINESTRIKE_Update(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLLADDERBOTTOM_Update(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -149493,13 +219328,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6174, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6175, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -149516,7 +219351,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -149528,15 +219363,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek, "CDL3LINESTRIKE_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek, "CDLLADDERBOTTOM_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -149569,64 +219404,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6177, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11692, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11692, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11692, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11692, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11692, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6177, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11692, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6177, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11692, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11692, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11692, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11692, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11692, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6178, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6178, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6178, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6178, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11693, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11693, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11693, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11693, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6177, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11692, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -149640,7 +219475,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -149664,7 +219499,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3LINESTRIKE_Peek(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLLADDERBOTTOM_Peek(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -149692,13 +219527,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6185, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6186, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -149715,7 +219550,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -149727,21 +219562,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -149765,7 +219600,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value___get__ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3LINESTRIKE_Value(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLLADDERBOTTOM_Value(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -149793,13 +219628,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value___get__ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6196, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6197, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -149816,7 +219651,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value___get__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -149827,12 +219662,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value___get__ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL3LINESTRIKE_OutRange(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLLADDERBOTTOM_OutRange(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -149843,12 +219678,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__out_range(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL3LINESTRIKE_Advance(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLLADDERBOTTOM_Advance(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -149860,15 +219695,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__advance(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy, "CDL3LINESTRIKE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy, "CDLLADDERBOTTOM_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -149894,16 +219729,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self) { - TA_CDL3LINESTRIKE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self) { + TA_CDLLADDERBOTTOM_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -149920,18 +219755,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6208, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream))))) __PYX_ERR(3, 6208, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream))))) __PYX_ERR(3, 11723, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -149945,7 +219780,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDL3LINESTRIKE_Clone(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLLADDERBOTTOM_Clone(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -149988,7 +219823,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6218, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -150010,7 +219845,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -150023,19 +219858,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -150049,7 +219884,7 @@ static void __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream___dealloc__(struct __p if (__pyx_t_1) { - (void)(TA_CDL3OUTSIDE_Close(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLLONGLEGGEDDOJI_Close(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -150075,14 +219910,14 @@ static void __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream___dealloc__(struct __p /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -150115,44 +219950,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6240, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11755, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6240, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11755, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6240, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11755, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6240, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11755, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6240, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11755, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6240, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11755, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6240, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 11755, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6240, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11755, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6240, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11755, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6240, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11755, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6240, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11755, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -150161,18 +219996,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6240, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11755, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -150182,7 +220017,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -150191,7 +220026,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(struct __pyx_ npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDL3OUTSIDE_Stream *__pyx_v_handle; + TA_CDLLONGLEGGEDDOJI_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -150207,55 +220042,55 @@ static int __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6241, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6242, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6243, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6244, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6245, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6245, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11760, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6245, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11760, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6245, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11760, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6245, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11760, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6246, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11761, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6247, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11762, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6248, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11763, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6253, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11768, __pyx_L1_error) /*try:*/ { @@ -150265,9 +220100,9 @@ static int __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(struct __pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDL3OUTSIDE_Lookback() + 1); + __pyx_v_need = (TA_CDLLONGLEGGEDDOJI_Lookback() + 1); - __pyx_v_retCode = TA_CDL3OUTSIDE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -150284,7 +220119,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - (void)(TA_CDL3OUTSIDE_Close(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLLONGLEGGEDDOJI_Close(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -150352,7 +220187,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6270, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -150364,7 +220199,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(struct __pyx_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -150386,16 +220221,16 @@ static int __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill, "CDL3OUTSIDE_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill, "CDLLONGLEGGEDDOJI_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -150428,44 +220263,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6272, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11787, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6272, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11787, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6272, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11787, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6272, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11787, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6272, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11787, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6272, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11787, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6272, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 11787, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6272, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11787, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6272, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11787, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6272, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11787, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6272, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11787, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -150474,18 +220309,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6272, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11787, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -150495,7 +220330,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -150508,8 +220343,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(Py PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDL3OUTSIDE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_stream = 0; + TA_CDLLONGLEGGEDDOJI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -150531,60 +220366,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6274, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6275, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6276, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6277, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6278, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6278, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11793, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6278, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11793, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6278, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11793, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6278, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11793, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6279, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11794, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6280, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11795, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6281, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11796, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3OUTSIDE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6287, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6289, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11804, __pyx_L1_error) /*try:*/ { @@ -150594,7 +220429,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3OUTSIDE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLEGGEDDOJI_Lookback()); } /*finally:*/ { @@ -150607,7 +220442,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6293, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11808, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -150618,7 +220453,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL3OUTSIDE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -150722,36 +220557,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6304, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6305, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6305, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11820, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6305, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11820, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6305, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11820, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6305, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6305, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11820, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6305, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6305, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11820, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6305, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11820, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -150769,7 +220604,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(Py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -150794,15 +220629,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update, "CDL3OUTSIDE_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update, "CDLLONGLEGGEDDOJI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -150835,64 +220670,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6307, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11822, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6307, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11822, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6307, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11822, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11822, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11822, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11822, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11822, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6308, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6308, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6308, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6308, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11823, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11823, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11823, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11823, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6307, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11822, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -150906,7 +220741,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -150930,7 +220765,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3OUTSIDE_Update(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Update(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -150958,13 +220793,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6315, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6316, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -150981,7 +220816,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -150993,15 +220828,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek, "CDL3OUTSIDE_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek, "CDLLONGLEGGEDDOJI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -151034,64 +220869,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6318, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11833, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6318, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11833, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6318, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11833, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11833, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11833, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11833, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11833, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6319, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6319, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6319, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6319, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11834, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11834, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11834, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11834, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6318, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11833, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -151105,7 +220940,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -151129,7 +220964,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3OUTSIDE_Peek(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Peek(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -151157,13 +220992,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6326, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6327, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -151180,7 +221015,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek(struct __py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -151192,21 +221027,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -151230,7 +221065,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value___get__(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3OUTSIDE_Value(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Value(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -151258,13 +221093,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value___get__(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6337, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6338, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -151281,7 +221116,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value___get__(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -151292,12 +221127,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value___get__(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL3OUTSIDE_OutRange(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLLONGLEGGEDDOJI_OutRange(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -151308,12 +221143,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL3OUTSIDE_Advance(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLLONGLEGGEDDOJI_Advance(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -151325,15 +221160,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__advance(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy, "CDL3OUTSIDE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy, "CDLLONGLEGGEDDOJI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -151359,16 +221194,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self) { - TA_CDL3OUTSIDE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self) { + TA_CDLLONGLEGGEDDOJI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -151385,18 +221220,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(struct __p __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6349, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream))))) __PYX_ERR(3, 6349, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream))))) __PYX_ERR(3, 11864, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -151410,7 +221245,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDL3OUTSIDE_Clone(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Clone(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -151453,7 +221288,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(struct __p if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6359, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -151475,7 +221310,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(struct __p __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -151488,19 +221323,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(struct __p /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -151514,7 +221349,7 @@ static void __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream___dealloc__(struc if (__pyx_t_1) { - (void)(TA_CDL3STARSINSOUTH_Close(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLLONGLINE_Close(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -151540,14 +221375,14 @@ static void __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream___dealloc__(struc /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -151580,44 +221415,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6381, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11896, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11896, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11896, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11896, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11896, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6381, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11896, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6381, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 11896, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11896, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11896, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11896, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11896, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -151626,18 +221461,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6381, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11896, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -151647,7 +221482,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -151656,7 +221491,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(struct _ npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDL3STARSINSOUTH_Stream *__pyx_v_handle; + TA_CDLLONGLINE_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -151672,55 +221507,55 @@ static int __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6382, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6383, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6384, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6385, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6386, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6386, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11901, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6386, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11901, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6386, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11901, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6386, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11901, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6387, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11902, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6388, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11903, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6389, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11904, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6394, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11909, __pyx_L1_error) /*try:*/ { @@ -151730,9 +221565,9 @@ static int __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(struct _ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDL3STARSINSOUTH_Lookback() + 1); + __pyx_v_need = (TA_CDLLONGLINE_Lookback() + 1); - __pyx_v_retCode = TA_CDL3STARSINSOUTH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLLONGLINE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -151749,7 +221584,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(struct _ if (__pyx_t_4) { - (void)(TA_CDL3STARSINSOUTH_Close(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLLONGLINE_Close(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -151817,7 +221652,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(struct _ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6411, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -151829,7 +221664,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(struct _ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -151851,16 +221686,16 @@ static int __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill, "CDL3STARSINSOUTH_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill, "CDLLONGLINE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -151893,44 +221728,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6413, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11928, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11928, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11928, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11928, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11928, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6413, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11928, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6413, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 11928, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11928, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11928, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11928, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11928, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -151939,18 +221774,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6413, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11928, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -151960,7 +221795,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -151973,8 +221808,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fi PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDL3STARSINSOUTH_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_stream = 0; + TA_CDLLONGLINE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -151996,60 +221831,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fi int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6415, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6416, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6417, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6418, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6419, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6419, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11934, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6419, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11934, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6419, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11934, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6419, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11934, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6420, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11935, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6421, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11936, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6422, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11937, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6428, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLONGLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6430, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11945, __pyx_L1_error) /*try:*/ { @@ -152059,7 +221894,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fi __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3STARSINSOUTH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLINE_Lookback()); } /*finally:*/ { @@ -152072,7 +221907,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fi } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6434, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11949, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -152083,7 +221918,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fi __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL3STARSINSOUTH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLLONGLINE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -152187,36 +222022,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fi if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6445, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6446, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6446, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11961, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6446, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11961, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6446, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11961, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6446, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6446, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11961, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6446, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6446, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11961, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6446, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11961, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -152234,7 +222069,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fi __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -152259,15 +222094,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fi /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update, "CDL3STARSINSOUTH_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update, "CDLLONGLINE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -152300,64 +222135,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6448, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11963, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6448, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11963, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6448, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11963, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11963, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11963, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11963, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11963, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6449, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6449, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6449, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6449, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11964, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11964, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11964, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11964, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6448, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11963, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -152371,7 +222206,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -152395,7 +222230,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3STARSINSOUTH_Update(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLLONGLINE_Update(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -152423,13 +222258,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6456, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6457, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -152446,7 +222281,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -152458,15 +222293,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek, "CDL3STARSINSOUTH_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek, "CDLLONGLINE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -152499,64 +222334,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6459, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11974, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6459, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11974, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6459, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11974, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6459, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11974, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6459, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11974, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6459, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11974, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6459, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11974, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6459, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11974, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6459, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11974, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6459, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11974, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6459, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11974, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6460, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6460, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6460, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6460, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11975, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11975, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11975, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11975, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6459, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11974, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -152570,7 +222405,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -152594,7 +222429,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3STARSINSOUTH_Peek(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLLONGLINE_Peek(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -152622,13 +222457,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6467, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6468, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -152645,7 +222480,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -152657,21 +222492,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -152695,7 +222530,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value___get __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3STARSINSOUTH_Value(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLLONGLINE_Value(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -152723,13 +222558,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value___get if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6478, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6479, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -152746,7 +222581,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value___get /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -152757,12 +222592,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value___get } -static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL3STARSINSOUTH_OutRange(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLLONGLINE_OutRange(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -152773,12 +222608,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__out_range(s } -static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL3STARSINSOUTH_Advance(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLLONGLINE_Advance(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -152790,15 +222625,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__advance(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy, "CDL3STARSINSOUTH_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy, "CDLLONGLINE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -152824,16 +222659,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self) { - TA_CDL3STARSINSOUTH_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self) { + TA_CDLLONGLINE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -152850,18 +222685,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(struc __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6490, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream))))) __PYX_ERR(3, 6490, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream))))) __PYX_ERR(3, 12005, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -152875,7 +222710,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDL3STARSINSOUTH_Clone(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLLONGLINE_Clone(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -152918,7 +222753,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(struc if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6500, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -152940,7 +222775,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(struc __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -152953,19 +222788,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(struc /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -152979,7 +222814,7 @@ static void __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream___dealloc__(stru if (__pyx_t_1) { - (void)(TA_CDL3WHITESOLDIERS_Close(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLMARUBOZU_Close(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -153005,14 +222840,14 @@ static void __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream___dealloc__(stru /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -153045,44 +222880,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6522, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12037, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12037, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12037, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12037, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12037, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6522, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12037, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6522, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 12037, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12037, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12037, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12037, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12037, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -153091,18 +222926,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6522, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12037, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -153112,7 +222947,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -153121,7 +222956,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(struct npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDL3WHITESOLDIERS_Stream *__pyx_v_handle; + TA_CDLMARUBOZU_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -153137,55 +222972,55 @@ static int __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6523, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6524, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6525, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6526, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6527, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6527, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12042, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6527, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12042, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6527, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12042, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6527, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12042, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6528, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12043, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6529, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12044, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6530, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12045, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6535, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12050, __pyx_L1_error) /*try:*/ { @@ -153195,9 +223030,9 @@ static int __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(struct __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDL3WHITESOLDIERS_Lookback() + 1); + __pyx_v_need = (TA_CDLMARUBOZU_Lookback() + 1); - __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMARUBOZU_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -153214,7 +223049,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(struct if (__pyx_t_4) { - (void)(TA_CDL3WHITESOLDIERS_Close(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLMARUBOZU_Close(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -153282,7 +223117,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6552, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -153294,7 +223129,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(struct goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -153316,16 +223151,16 @@ static int __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill, "CDL3WHITESOLDIERS_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill, "CDLMARUBOZU_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -153358,44 +223193,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6554, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12069, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12069, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12069, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12069, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12069, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6554, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12069, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6554, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 12069, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12069, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12069, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12069, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12069, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -153404,18 +223239,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6554, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12069, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -153425,7 +223260,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -153438,8 +223273,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_f PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDL3WHITESOLDIERS_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_stream = 0; + TA_CDLMARUBOZU_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -153461,60 +223296,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6556, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6557, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6558, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6559, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6560, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6560, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12075, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6560, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12075, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6560, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12075, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6560, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12075, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6561, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12076, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6562, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12077, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6563, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12078, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6569, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMARUBOZU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6571, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12086, __pyx_L1_error) /*try:*/ { @@ -153524,7 +223359,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_f __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3WHITESOLDIERS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMARUBOZU_Lookback()); } /*finally:*/ { @@ -153537,7 +223372,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_f } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6575, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12090, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -153548,7 +223383,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_f __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDL3WHITESOLDIERS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMARUBOZU_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -153652,36 +223487,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_f if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6586, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6587, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6587, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12102, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6587, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12102, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6587, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12102, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6587, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6587, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12102, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6587, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6587, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12102, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6587, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12102, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -153699,7 +223534,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_f __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -153724,15 +223559,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_f /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update, "CDL3WHITESOLDIERS_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update, "CDLMARUBOZU_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -153765,64 +223600,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6589, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12104, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12104, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12104, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12104, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12104, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6589, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12104, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6589, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12104, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12104, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12104, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12104, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12104, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6590, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6590, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6590, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6590, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12105, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12105, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12105, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12105, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6589, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12104, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -153836,7 +223671,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -153860,7 +223695,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Update(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMARUBOZU_Update(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -153888,13 +223723,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6597, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6598, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -153911,7 +223746,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -153923,15 +223758,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek, "CDL3WHITESOLDIERS_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek, "CDLMARUBOZU_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -153964,64 +223799,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6600, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12115, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6600, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12115, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6600, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12115, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12115, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12115, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12115, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12115, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6601, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6601, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6601, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6601, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12116, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12116, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12116, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12116, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6600, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12115, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -154035,7 +223870,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -154059,7 +223894,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Peek(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMARUBOZU_Peek(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -154087,13 +223922,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6608, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6609, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -154110,7 +223945,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -154122,21 +223957,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -154160,7 +223995,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value___ge __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Value(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMARUBOZU_Value(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -154188,13 +224023,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value___ge if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6619, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6620, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -154211,7 +224046,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value___ge /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -154222,12 +224057,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value___ge } -static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL3WHITESOLDIERS_OutRange(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLMARUBOZU_OutRange(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -154238,12 +224073,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__out_range( } -static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDL3WHITESOLDIERS_Advance(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLMARUBOZU_Advance(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -154255,15 +224090,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__advance(st /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy, "CDL3WHITESOLDIERS_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy, "CDLMARUBOZU_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -154289,16 +224124,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self) { - TA_CDL3WHITESOLDIERS_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self) { + TA_CDLMARUBOZU_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -154315,18 +224150,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(stru __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6631, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream))))) __PYX_ERR(3, 6631, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream))))) __PYX_ERR(3, 12146, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -154340,7 +224175,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Clone(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLMARUBOZU_Clone(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -154383,7 +224218,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(stru if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6641, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -154405,7 +224240,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(stru __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -154418,19 +224253,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(stru /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -154444,7 +224279,7 @@ static void __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream___dealloc__(struc if (__pyx_t_1) { - (void)(TA_CDLABANDONEDBABY_Close(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLMATCHINGLOW_Close(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -154470,14 +224305,14 @@ static void __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream___dealloc__(struc /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -154488,12 +224323,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -154509,93 +224343,76 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6665, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12178, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6665, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6665, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12178, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 6665, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 12178, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6665, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6665, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6665, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6665, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6665, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12178, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12178, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12178, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12178, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6665, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)0.3); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6665, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12178, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { +static int __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -154604,7 +224421,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(struct _ npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLABANDONEDBABY_Stream *__pyx_v_handle; + TA_CDLMATCHINGLOW_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -154620,55 +224437,55 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6666, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6667, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6668, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6669, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6670, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6670, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12183, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6670, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12183, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6670, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12183, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6670, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12183, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6671, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12184, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6672, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12185, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6673, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12186, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6678, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12191, __pyx_L1_error) /*try:*/ { @@ -154678,9 +224495,9 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(struct _ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration) + 1); + __pyx_v_need = (TA_CDLMATCHINGLOW_Lookback() + 1); - __pyx_v_retCode = TA_CDLABANDONEDBABY_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMATCHINGLOW_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -154697,7 +224514,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(struct _ if (__pyx_t_4) { - (void)(TA_CDLABANDONEDBABY_Close(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLMATCHINGLOW_Close(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -154765,7 +224582,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(struct _ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6695, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -154777,7 +224594,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(struct _ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -154799,16 +224616,16 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill, "CDLABANDONEDBABY_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill, "CDLMATCHINGLOW_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -154819,12 +224636,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -154840,93 +224656,76 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6697, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12210, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6697, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6697, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12210, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6697, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12210, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6697, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12210, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6697, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12210, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6697, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12210, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 6697, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 12210, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6697, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6697, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6697, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6697, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6697, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12210, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12210, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12210, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12210, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6698, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)0.3); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6697, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12210, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -154939,8 +224738,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fi PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLABANDONEDBABY_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_stream = 0; + TA_CDLMATCHINGLOW_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -154962,60 +224761,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fi int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6699, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6700, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6701, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6702, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6703, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6703, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12216, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6703, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12216, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6703, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12216, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6703, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12216, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6704, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12217, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6705, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12218, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6706, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12219, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6712, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6714, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12227, __pyx_L1_error) /*try:*/ { @@ -155025,7 +224824,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fi __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATCHINGLOW_Lookback()); } /*finally:*/ { @@ -155038,7 +224837,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fi } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6718, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12231, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -155049,7 +224848,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fi __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLABANDONEDBABY_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMATCHINGLOW_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -155153,36 +224952,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fi if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6729, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6730, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6730, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12243, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6730, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12243, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6730, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12243, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6730, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6730, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12243, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6730, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6730, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12243, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6730, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12243, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -155200,7 +224999,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fi __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -155225,15 +225024,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fi /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update, "CDLABANDONEDBABY_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update, "CDLMATCHINGLOW_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -155266,64 +225065,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6732, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12245, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12245, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12245, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12245, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12245, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6732, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12245, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6732, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12245, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12245, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12245, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12245, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12245, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6733, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6733, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6733, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6733, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12246, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12246, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12246, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12246, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6732, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12245, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -155337,7 +225136,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -155361,7 +225160,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLABANDONEDBABY_Update(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMATCHINGLOW_Update(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -155389,13 +225188,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6740, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6741, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -155412,7 +225211,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -155424,15 +225223,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek, "CDLABANDONEDBABY_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek, "CDLMATCHINGLOW_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -155465,64 +225264,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6743, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12256, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6743, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12256, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6743, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12256, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12256, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12256, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12256, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12256, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6744, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6744, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6744, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6744, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12257, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12257, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12257, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12257, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6743, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12256, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -155536,7 +225335,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -155560,7 +225359,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLABANDONEDBABY_Peek(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMATCHINGLOW_Peek(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -155588,13 +225387,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6751, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6752, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -155611,7 +225410,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -155623,21 +225422,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -155661,7 +225460,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value___get __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLABANDONEDBABY_Value(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMATCHINGLOW_Value(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -155689,13 +225488,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value___get if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6762, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6763, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -155712,7 +225511,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value___get /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -155723,12 +225522,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value___get } -static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLABANDONEDBABY_OutRange(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLMATCHINGLOW_OutRange(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -155739,12 +225538,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__out_range(s } -static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLABANDONEDBABY_Advance(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLMATCHINGLOW_Advance(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -155756,15 +225555,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__advance(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy, "CDLABANDONEDBABY_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy, "CDLMATCHINGLOW_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -155790,16 +225589,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self) { - TA_CDLABANDONEDBABY_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self) { + TA_CDLMATCHINGLOW_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -155816,18 +225615,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(struc __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6774, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream))))) __PYX_ERR(3, 6774, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream))))) __PYX_ERR(3, 12287, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -155841,7 +225640,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLABANDONEDBABY_Clone(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLMATCHINGLOW_Clone(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -155884,7 +225683,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(struc if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6784, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -155906,7 +225705,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(struc __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -155919,19 +225718,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(struc /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -155945,7 +225744,7 @@ static void __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_CDLADVANCEBLOCK_Close(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLMATHOLD_Close(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -155971,14 +225770,14 @@ static void __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -155989,11 +225788,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -156009,76 +225809,93 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6806, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12321, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 12321, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6806, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12321, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6806, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12321, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6806, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12321, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6806, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12321, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6806, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12321, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6806, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 12321, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6806, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6806, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6806, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6806, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 12321, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12321, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12321, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12321, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12321, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12321, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.5); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6806, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 12321, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -156087,7 +225904,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(struct __ npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLADVANCEBLOCK_Stream *__pyx_v_handle; + TA_CDLMATHOLD_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -156103,55 +225920,55 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6807, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6808, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6809, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6810, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6811, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12326, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12326, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12326, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12326, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6812, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12327, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6813, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12328, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6814, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12329, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6819, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12334, __pyx_L1_error) /*try:*/ { @@ -156161,9 +225978,9 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(struct __ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLADVANCEBLOCK_Lookback() + 1); + __pyx_v_need = (TA_CDLMATHOLD_Lookback(__pyx_v_penetration) + 1); - __pyx_v_retCode = TA_CDLADVANCEBLOCK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMATHOLD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -156180,7 +225997,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(struct __ if (__pyx_t_4) { - (void)(TA_CDLADVANCEBLOCK_Close(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLMATHOLD_Close(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -156248,7 +226065,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6836, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -156260,7 +226077,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(struct __ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -156282,16 +226099,16 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill, "CDLADVANCEBLOCK_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill, "CDLMATHOLD_Stream.open_and_fill(open, high, low, close, double penetration=0.5)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -156302,11 +226119,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -156322,76 +226140,93 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6838, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12353, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 12353, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6838, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6838, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6838, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6838, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6838, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12353, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6838, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 12353, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6838, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6838, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6838, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6838, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 12353, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12353, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12353, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12353, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12353, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12354, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.5); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6838, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 12353, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -156404,8 +226239,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fil PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLADVANCEBLOCK_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_stream = 0; + TA_CDLMATHOLD_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -156427,60 +226262,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6840, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6841, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6842, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6843, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6844, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6844, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12359, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6844, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12359, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6844, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12359, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6844, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12359, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6845, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12360, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6846, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12361, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6847, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12362, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6853, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMATHOLD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6855, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12370, __pyx_L1_error) /*try:*/ { @@ -156490,7 +226325,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLADVANCEBLOCK_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATHOLD_Lookback(__pyx_v_penetration)); } /*finally:*/ { @@ -156503,7 +226338,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fil } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6859, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12374, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -156514,7 +226349,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLADVANCEBLOCK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMATHOLD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -156618,36 +226453,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6870, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6871, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6871, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12386, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6871, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12386, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6871, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12386, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6871, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 6871, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12386, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6871, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6871, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12386, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 6871, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12386, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -156665,7 +226500,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fil __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -156690,15 +226525,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fil /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update, "CDLADVANCEBLOCK_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update, "CDLMATHOLD_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -156731,64 +226566,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6873, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12388, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6873, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12388, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6873, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12388, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12388, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12388, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12388, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12388, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6874, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6874, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6874, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6874, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12389, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12389, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12389, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12389, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6873, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12388, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -156802,7 +226637,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -156826,7 +226661,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLADVANCEBLOCK_Update(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMATHOLD_Update(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -156854,13 +226689,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6881, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6882, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -156877,7 +226712,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -156889,15 +226724,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek, "CDLADVANCEBLOCK_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek, "CDLMATHOLD_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -156930,64 +226765,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6884, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12399, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6884, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12399, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6884, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12399, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12399, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12399, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12399, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12399, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6885, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6885, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6885, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6885, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12400, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12400, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12400, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12400, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6884, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12399, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -157001,7 +226836,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -157025,7 +226860,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLADVANCEBLOCK_Peek(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMATHOLD_Peek(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -157053,13 +226888,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6892, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6893, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -157076,7 +226911,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -157088,21 +226923,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -157126,7 +226961,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value___get_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLADVANCEBLOCK_Value(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMATHOLD_Value(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -157154,13 +226989,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value___get_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6903, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6904, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -157177,7 +227012,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value___get_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -157188,12 +227023,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value___get_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLADVANCEBLOCK_OutRange(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLMATHOLD_OutRange(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -157204,12 +227039,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__out_range(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLADVANCEBLOCK_Advance(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLMATHOLD_Advance(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -157221,15 +227056,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__advance(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy, "CDLADVANCEBLOCK_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy, "CDLMATHOLD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -157255,16 +227090,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self) { - TA_CDLADVANCEBLOCK_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self) { + TA_CDLMATHOLD_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -157281,18 +227116,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6915, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream))))) __PYX_ERR(3, 6915, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream))))) __PYX_ERR(3, 12430, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -157306,7 +227141,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLADVANCEBLOCK_Clone(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLMATHOLD_Clone(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -157349,7 +227184,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6925, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -157371,7 +227206,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -157384,19 +227219,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -157410,7 +227245,7 @@ static void __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream___dealloc__(struct __p if (__pyx_t_1) { - (void)(TA_CDLBELTHOLD_Close(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLMORNINGDOJISTAR_Close(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -157436,14 +227271,14 @@ static void __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream___dealloc__(struct __p /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -157454,11 +227289,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -157474,76 +227310,93 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6947, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12464, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 12464, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6947, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12464, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6947, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12464, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6947, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12464, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6947, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12464, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6947, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12464, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6947, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 12464, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6947, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6947, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6947, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6947, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 12464, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12464, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12464, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12464, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12464, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12464, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6947, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 12464, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -157552,7 +227405,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(struct __pyx_ npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLBELTHOLD_Stream *__pyx_v_handle; + TA_CDLMORNINGDOJISTAR_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -157568,55 +227421,55 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6948, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6949, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6950, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6951, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6952, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6952, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12469, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6952, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12469, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6952, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12469, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6952, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12469, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6953, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12470, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6954, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12471, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6955, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12472, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6960, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12477, __pyx_L1_error) /*try:*/ { @@ -157626,9 +227479,9 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(struct __pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLBELTHOLD_Lookback() + 1); + __pyx_v_need = (TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration) + 1); - __pyx_v_retCode = TA_CDLBELTHOLD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -157645,7 +227498,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - (void)(TA_CDLBELTHOLD_Close(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLMORNINGDOJISTAR_Close(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -157713,7 +227566,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6977, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -157725,7 +227578,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(struct __pyx_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -157747,16 +227600,16 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill, "CDLBELTHOLD_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill, "CDLMORNINGDOJISTAR_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -157767,11 +227620,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -157787,76 +227641,93 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6979, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12496, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 12496, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6979, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12496, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6979, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12496, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6979, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12496, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6979, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12496, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6979, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12496, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6979, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 12496, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6979, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6979, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6979, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6979, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 12496, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12496, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12496, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12496, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12496, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12497, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6979, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 12496, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -157869,8 +227740,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(Py PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLBELTHOLD_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_stream = 0; + TA_CDLMORNINGDOJISTAR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -157892,60 +227763,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6981, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6982, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6983, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6984, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6985, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6985, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12502, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6985, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12502, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6985, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12502, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6985, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12502, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6986, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12503, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6987, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12504, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6988, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12505, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLBELTHOLD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6994, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 6996, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12513, __pyx_L1_error) /*try:*/ { @@ -157955,7 +227826,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration)); } /*finally:*/ { @@ -157968,7 +227839,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7000, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12517, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -157979,7 +227850,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLBELTHOLD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -158083,36 +227954,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7011, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7012, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7012, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12529, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7012, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12529, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7012, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12529, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7012, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7012, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12529, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7012, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7012, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12529, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7012, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12529, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -158130,7 +228001,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(Py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -158155,15 +228026,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update, "CDLBELTHOLD_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update, "CDLMORNINGDOJISTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -158196,64 +228067,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7014, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12531, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7014, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12531, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7014, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12531, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12531, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12531, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12531, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12531, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7015, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7015, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7015, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7015, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12532, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12532, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12532, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12532, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7014, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12531, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -158267,7 +228138,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -158291,7 +228162,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLBELTHOLD_Update(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Update(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -158319,13 +228190,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7022, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7023, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -158342,7 +228213,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -158354,15 +228225,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek, "CDLBELTHOLD_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek, "CDLMORNINGDOJISTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -158395,64 +228266,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7025, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12542, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12542, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12542, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12542, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12542, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7025, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12542, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7025, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12542, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12542, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12542, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12542, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12542, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7026, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7026, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7026, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7026, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12543, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12543, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12543, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12543, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7025, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12542, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -158466,7 +228337,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -158490,7 +228361,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLBELTHOLD_Peek(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Peek(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -158518,13 +228389,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7033, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7034, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -158541,7 +228412,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek(struct __py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -158553,21 +228424,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -158591,7 +228462,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value___get__(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLBELTHOLD_Value(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Value(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -158619,13 +228490,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value___get__(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7044, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7045, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -158642,7 +228513,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value___get__(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -158653,12 +228524,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value___get__(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLBELTHOLD_OutRange(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLMORNINGDOJISTAR_OutRange(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -158669,12 +228540,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLBELTHOLD_Advance(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLMORNINGDOJISTAR_Advance(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -158686,15 +228557,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__advance(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy, "CDLBELTHOLD_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy, "CDLMORNINGDOJISTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -158720,16 +228591,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self) { - TA_CDLBELTHOLD_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self) { + TA_CDLMORNINGDOJISTAR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -158746,18 +228617,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(struct __p __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7056, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream))))) __PYX_ERR(3, 7056, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream))))) __PYX_ERR(3, 12573, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -158771,7 +228642,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLBELTHOLD_Clone(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Clone(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -158814,7 +228685,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(struct __p if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7066, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -158836,7 +228707,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(struct __p __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -158849,19 +228720,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(struct __p /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -158875,7 +228746,7 @@ static void __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream___dealloc__(struct __ if (__pyx_t_1) { - (void)(TA_CDLBREAKAWAY_Close(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLMORNINGSTAR_Close(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -158901,14 +228772,14 @@ static void __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream___dealloc__(struct __ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -158919,11 +228790,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -158939,76 +228811,93 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7088, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12607, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 12607, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7088, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7088, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7088, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7088, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7088, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12607, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7088, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 12607, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7088, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7088, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7088, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7088, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 12607, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12607, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12607, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12607, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12607, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12607, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7088, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 12607, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -159017,7 +228906,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(struct __pyx npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLBREAKAWAY_Stream *__pyx_v_handle; + TA_CDLMORNINGSTAR_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -159033,55 +228922,55 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7089, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7090, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7091, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7092, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7093, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7093, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12612, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7093, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12612, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7093, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12612, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7093, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12612, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7094, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12613, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7095, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12614, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7096, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12615, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7101, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12620, __pyx_L1_error) /*try:*/ { @@ -159091,9 +228980,9 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(struct __pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLBREAKAWAY_Lookback() + 1); + __pyx_v_need = (TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration) + 1); - __pyx_v_retCode = TA_CDLBREAKAWAY_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMORNINGSTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -159110,7 +228999,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(struct __pyx if (__pyx_t_4) { - (void)(TA_CDLBREAKAWAY_Close(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLMORNINGSTAR_Close(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -159178,7 +229067,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7118, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -159190,7 +229079,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(struct __pyx goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -159212,16 +229101,16 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill, "CDLBREAKAWAY_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill, "CDLMORNINGSTAR_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -159232,11 +229121,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -159252,76 +229142,93 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7120, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12639, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 12639, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12639, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12639, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12639, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12639, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7120, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12639, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7120, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 12639, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7120, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7120, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7120, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7120, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 12639, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12639, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12639, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12639, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12639, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12640, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7120, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 12639, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -159334,8 +229241,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(P PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLBREAKAWAY_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_stream = 0; + TA_CDLMORNINGSTAR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -159357,60 +229264,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7122, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7123, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7124, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7125, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7126, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7126, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12645, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7126, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12645, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7126, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12645, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7126, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12645, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7127, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12646, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7128, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12647, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7129, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12648, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLBREAKAWAY_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7135, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7137, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12656, __pyx_L1_error) /*try:*/ { @@ -159420,7 +229327,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBREAKAWAY_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration)); } /*finally:*/ { @@ -159433,7 +229340,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(P } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7141, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12660, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -159444,7 +229351,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLBREAKAWAY_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMORNINGSTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -159548,36 +229455,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7152, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7153, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7153, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12672, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7153, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12672, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7153, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12672, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7153, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7153, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12672, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7153, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7153, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12672, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7153, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12672, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -159595,7 +229502,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(P __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -159620,15 +229527,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update, "CDLBREAKAWAY_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update, "CDLMORNINGSTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -159661,64 +229568,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7155, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12674, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12674, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12674, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12674, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12674, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7155, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12674, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7155, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12674, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12674, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12674, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12674, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12674, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7156, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7156, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7156, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7156, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12675, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12675, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12675, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12675, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7155, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12674, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -159732,7 +229639,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -159756,7 +229663,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLBREAKAWAY_Update(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMORNINGSTAR_Update(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -159784,13 +229691,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7163, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7164, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -159807,7 +229714,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -159819,15 +229726,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek, "CDLBREAKAWAY_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek, "CDLMORNINGSTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -159860,64 +229767,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7166, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12685, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12685, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12685, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12685, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12685, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7166, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12685, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7166, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12685, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12685, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12685, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12685, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12685, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7167, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7167, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7167, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7167, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12686, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12686, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12686, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12686, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7166, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12685, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -159931,7 +229838,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -159955,7 +229862,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLBREAKAWAY_Peek(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMORNINGSTAR_Peek(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -159983,13 +229890,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7174, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7175, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -160006,7 +229913,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -160018,21 +229925,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -160056,7 +229963,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value___get__(s __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLBREAKAWAY_Value(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLMORNINGSTAR_Value(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -160084,13 +229991,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value___get__(s if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7185, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7186, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -160107,7 +230014,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value___get__(s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -160118,12 +230025,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value___get__(s } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLBREAKAWAY_OutRange(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLMORNINGSTAR_OutRange(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -160134,12 +230041,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__out_range(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLBREAKAWAY_Advance(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLMORNINGSTAR_Advance(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -160151,15 +230058,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__advance(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy, "CDLBREAKAWAY_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy, "CDLMORNINGSTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -160185,16 +230092,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self) { - TA_CDLBREAKAWAY_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self) { + TA_CDLMORNINGSTAR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -160211,18 +230118,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(struct __ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7197, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream))))) __PYX_ERR(3, 7197, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream))))) __PYX_ERR(3, 12716, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -160236,7 +230143,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLBREAKAWAY_Clone(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLMORNINGSTAR_Clone(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -160279,7 +230186,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(struct __ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7207, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -160301,7 +230208,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(struct __ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -160314,19 +230221,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(struct __ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -160340,7 +230247,7 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream___dealloc__(str if (__pyx_t_1) { - (void)(TA_CDLCLOSINGMARUBOZU_Close(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLONNECK_Close(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -160366,14 +230273,14 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream___dealloc__(str /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -160406,44 +230313,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7229, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12748, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7229, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12748, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7229, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 12748, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12748, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12748, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12748, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12748, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -160452,18 +230359,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7229, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12748, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -160473,7 +230380,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -160482,7 +230389,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(struct npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLCLOSINGMARUBOZU_Stream *__pyx_v_handle; + TA_CDLONNECK_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -160498,55 +230405,55 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7230, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7231, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7232, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7233, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7234, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7234, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12753, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7234, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12753, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7234, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12753, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7234, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12753, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7235, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12754, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7236, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12755, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7237, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12756, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7242, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12761, __pyx_L1_error) /*try:*/ { @@ -160556,9 +230463,9 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(struct __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLCLOSINGMARUBOZU_Lookback() + 1); + __pyx_v_need = (TA_CDLONNECK_Lookback() + 1); - __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLONNECK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -160575,7 +230482,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(struct if (__pyx_t_4) { - (void)(TA_CDLCLOSINGMARUBOZU_Close(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLONNECK_Close(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -160643,7 +230550,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7259, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -160655,7 +230562,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(struct goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -160677,16 +230584,16 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill, "CDLCLOSINGMARUBOZU_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill, "CDLONNECK_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -160719,44 +230626,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7261, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12780, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7261, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12780, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7261, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 12780, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12780, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12780, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12780, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12780, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -160765,18 +230672,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7261, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12780, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -160786,7 +230693,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -160799,8 +230706,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_ PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLCLOSINGMARUBOZU_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_stream = 0; + TA_CDLONNECK_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -160822,60 +230729,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7263, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7264, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7265, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7266, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7267, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7267, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12786, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7267, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12786, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7267, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12786, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7267, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12786, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7268, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12787, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7269, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12788, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7270, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12789, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7276, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLONNECK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7278, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12797, __pyx_L1_error) /*try:*/ { @@ -160885,7 +230792,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCLOSINGMARUBOZU_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLONNECK_Lookback()); } /*finally:*/ { @@ -160898,7 +230805,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7282, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12801, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -160909,7 +230816,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLONNECK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -161013,36 +230920,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7293, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7294, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7294, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12813, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7294, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12813, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7294, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12813, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7294, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7294, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12813, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7294, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7294, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12813, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7294, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12813, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -161060,7 +230967,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -161085,15 +230992,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update, "CDLCLOSINGMARUBOZU_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_6update, "CDLONNECK_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -161126,64 +231033,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7296, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12815, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7296, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12815, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7296, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12815, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12815, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12815, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12815, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12815, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7297, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7297, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7297, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7297, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12816, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12816, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12816, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12816, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7296, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12815, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -161197,7 +231104,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -161221,7 +231128,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Update(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLONNECK_Update(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -161249,13 +231156,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7304, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7305, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -161272,7 +231179,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -161284,15 +231191,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update(st /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek, "CDLCLOSINGMARUBOZU_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_8peek, "CDLONNECK_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -161325,64 +231232,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7307, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12826, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12826, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12826, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12826, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12826, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7307, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12826, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7307, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12826, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12826, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12826, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12826, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12826, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7308, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7308, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7308, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7308, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12827, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12827, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12827, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12827, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7307, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12826, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -161396,7 +231303,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -161420,7 +231327,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Peek(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLONNECK_Peek(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -161448,13 +231355,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7315, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7316, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -161471,7 +231378,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -161483,21 +231390,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -161521,7 +231428,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value___g __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Value(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLONNECK_Value(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -161549,13 +231456,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value___g if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7326, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7327, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -161572,7 +231479,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value___g /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -161583,12 +231490,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value___g } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLCLOSINGMARUBOZU_OutRange(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLONNECK_OutRange(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -161599,12 +231506,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__out_range } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLCLOSINGMARUBOZU_Advance(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLONNECK_Advance(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -161616,15 +231523,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__advance(s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy, "CDLCLOSINGMARUBOZU_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_10copy, "CDLONNECK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -161650,16 +231557,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self) { - TA_CDLCLOSINGMARUBOZU_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self) { + TA_CDLONNECK_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -161676,18 +231583,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(str __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7338, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream))))) __PYX_ERR(3, 7338, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream))))) __PYX_ERR(3, 12857, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -161701,7 +231608,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Clone(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLONNECK_Clone(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -161744,7 +231651,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(str if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7348, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -161766,7 +231673,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(str __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -161779,19 +231686,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(str /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -161805,7 +231712,7 @@ static void __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream___dealloc__(st if (__pyx_t_1) { - (void)(TA_CDLCONCEALBABYSWALL_Close(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLPIERCING_Close(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -161831,14 +231738,14 @@ static void __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream___dealloc__(st /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -161871,44 +231778,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7370, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12889, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12889, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12889, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12889, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12889, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7370, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12889, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7370, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 12889, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12889, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12889, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12889, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12889, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -161917,18 +231824,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7370, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12889, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -161938,7 +231845,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -161947,7 +231854,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(struc npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLCONCEALBABYSWALL_Stream *__pyx_v_handle; + TA_CDLPIERCING_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -161963,55 +231870,55 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7371, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7372, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7373, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7374, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7375, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7375, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12894, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7375, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12894, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7375, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12894, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7375, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12894, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7376, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12895, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7377, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12896, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7378, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12897, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7383, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12902, __pyx_L1_error) /*try:*/ { @@ -162021,9 +231928,9 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(struc __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLCONCEALBABYSWALL_Lookback() + 1); + __pyx_v_need = (TA_CDLPIERCING_Lookback() + 1); - __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLPIERCING_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -162040,7 +231947,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(struc if (__pyx_t_4) { - (void)(TA_CDLCONCEALBABYSWALL_Close(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLPIERCING_Close(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -162108,7 +232015,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(struc if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7400, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -162120,7 +232027,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(struc goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -162142,16 +232049,16 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill, "CDLCONCEALBABYSWALL_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill, "CDLPIERCING_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -162184,44 +232091,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7402, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12921, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7402, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12921, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7402, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 12921, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12921, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12921, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12921, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12921, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -162230,18 +232137,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7402, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12921, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -162251,7 +232158,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -162264,8 +232171,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLCONCEALBABYSWALL_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_stream = 0; + TA_CDLPIERCING_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -162287,60 +232194,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7404, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7405, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7406, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7407, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7408, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7408, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12927, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7408, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12927, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7408, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12927, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7408, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12927, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7409, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12928, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7410, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12929, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7411, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12930, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7417, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLPIERCING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7419, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12938, __pyx_L1_error) /*try:*/ { @@ -162350,7 +232257,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCONCEALBABYSWALL_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLPIERCING_Lookback()); } /*finally:*/ { @@ -162363,7 +232270,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7423, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12942, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -162374,7 +232281,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLPIERCING_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -162478,36 +232385,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7434, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7435, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7435, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12954, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7435, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12954, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7435, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12954, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7435, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7435, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12954, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7435, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7435, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12954, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7435, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12954, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -162525,7 +232432,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -162550,15 +232457,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update, "CDLCONCEALBABYSWALL_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_6update, "CDLPIERCING_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -162591,64 +232498,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7437, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12956, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7437, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12956, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7437, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12956, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7437, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12956, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7437, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12956, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7437, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12956, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7437, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12956, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7437, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12956, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7437, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12956, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7437, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12956, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7437, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12956, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7438, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7438, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7438, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7438, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12957, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12957, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12957, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12957, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7437, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12956, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -162662,7 +232569,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -162686,7 +232593,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update(s __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Update(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLPIERCING_Update(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -162714,13 +232621,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update(s if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7445, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7446, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -162737,7 +232644,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update(s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -162749,15 +232656,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update(s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek, "CDLCONCEALBABYSWALL_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek, "CDLPIERCING_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -162790,64 +232697,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7448, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12967, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7448, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12967, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7448, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12967, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12967, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12967, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12967, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7448, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12967, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7449, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7449, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7449, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7449, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12968, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12968, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12968, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12968, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7448, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12967, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -162861,7 +232768,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -162885,7 +232792,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Peek(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLPIERCING_Peek(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -162913,13 +232820,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7456, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7457, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -162936,7 +232843,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -162948,21 +232855,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -162986,7 +232893,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value___ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Value(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLPIERCING_Value(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -163014,13 +232921,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value___ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7467, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7468, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -163037,7 +232944,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value___ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -163048,12 +232955,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value___ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLCONCEALBABYSWALL_OutRange(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLPIERCING_OutRange(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -163064,12 +232971,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__out_rang } -static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLCONCEALBABYSWALL_Advance(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLPIERCING_Advance(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -163081,15 +232988,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__advance( /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy, "CDLCONCEALBABYSWALL_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy, "CDLPIERCING_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -163115,16 +233022,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self) { - TA_CDLCONCEALBABYSWALL_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self) { + TA_CDLPIERCING_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -163141,18 +233048,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(st __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7479, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream))))) __PYX_ERR(3, 7479, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream))))) __PYX_ERR(3, 12998, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -163166,7 +233073,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Clone(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLPIERCING_Clone(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -163209,7 +233116,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(st if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7489, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -163231,7 +233138,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(st __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -163244,19 +233151,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(st /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -163270,7 +233177,7 @@ static void __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream___dealloc__(struc if (__pyx_t_1) { - (void)(TA_CDLCOUNTERATTACK_Close(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLRICKSHAWMAN_Close(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -163296,14 +233203,14 @@ static void __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream___dealloc__(struc /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -163336,44 +233243,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7511, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13030, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13030, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13030, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13030, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13030, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7511, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13030, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7511, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13030, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13030, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13030, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13030, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13030, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -163382,18 +233289,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7511, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13030, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -163403,7 +233310,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -163412,7 +233319,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(struct _ npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLCOUNTERATTACK_Stream *__pyx_v_handle; + TA_CDLRICKSHAWMAN_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -163428,55 +233335,55 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7512, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7513, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7514, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7515, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7516, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7516, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13035, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7516, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13035, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7516, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13035, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7516, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13035, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7517, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13036, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7518, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13037, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7519, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13038, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7524, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13043, __pyx_L1_error) /*try:*/ { @@ -163486,9 +233393,9 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(struct _ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLCOUNTERATTACK_Lookback() + 1); + __pyx_v_need = (TA_CDLRICKSHAWMAN_Lookback() + 1); - __pyx_v_retCode = TA_CDLCOUNTERATTACK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLRICKSHAWMAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -163505,7 +233412,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(struct _ if (__pyx_t_4) { - (void)(TA_CDLCOUNTERATTACK_Close(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLRICKSHAWMAN_Close(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -163573,7 +233480,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(struct _ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7541, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -163585,7 +233492,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(struct _ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -163607,16 +233514,16 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill, "CDLCOUNTERATTACK_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill, "CDLRICKSHAWMAN_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -163649,44 +233556,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7543, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13062, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13062, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13062, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13062, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13062, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7543, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13062, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7543, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13062, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13062, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13062, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13062, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13062, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -163695,18 +233602,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7543, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13062, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -163716,7 +233623,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -163729,8 +233636,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fi PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLCOUNTERATTACK_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_stream = 0; + TA_CDLRICKSHAWMAN_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -163752,60 +233659,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fi int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7545, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7546, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7547, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7548, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7549, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7549, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13068, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7549, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13068, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7549, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13068, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7549, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13068, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7550, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13069, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7551, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13070, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7552, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13071, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7558, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7560, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13079, __pyx_L1_error) /*try:*/ { @@ -163815,7 +233722,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fi __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCOUNTERATTACK_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRICKSHAWMAN_Lookback()); } /*finally:*/ { @@ -163828,7 +233735,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fi } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7564, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13083, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -163839,7 +233746,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fi __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLCOUNTERATTACK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLRICKSHAWMAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -163943,36 +233850,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fi if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7575, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7576, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13095, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13095, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13095, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7576, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13095, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7576, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13095, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13095, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -163990,7 +233897,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fi __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -164015,15 +233922,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fi /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update, "CDLCOUNTERATTACK_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update, "CDLRICKSHAWMAN_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -164056,64 +233963,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7578, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13097, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7578, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13097, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7578, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13097, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7578, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13097, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7578, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13097, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7578, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13097, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7578, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13097, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7578, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13097, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7578, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13097, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7578, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13097, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7578, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13097, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7579, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7579, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7579, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7579, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13098, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13098, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13098, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13098, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7578, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13097, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -164127,7 +234034,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -164151,7 +234058,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLCOUNTERATTACK_Update(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLRICKSHAWMAN_Update(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -164179,13 +234086,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7586, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7587, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -164202,7 +234109,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -164214,15 +234121,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek, "CDLCOUNTERATTACK_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek, "CDLRICKSHAWMAN_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -164255,64 +234162,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7589, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13108, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7589, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13108, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7589, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13108, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13108, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13108, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13108, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13108, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7590, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7590, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7590, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7590, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13109, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13109, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13109, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13109, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7589, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13108, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -164326,7 +234233,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -164350,7 +234257,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLCOUNTERATTACK_Peek(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLRICKSHAWMAN_Peek(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -164378,13 +234285,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7597, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7598, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -164401,7 +234308,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -164413,21 +234320,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -164451,7 +234358,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value___get __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLCOUNTERATTACK_Value(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLRICKSHAWMAN_Value(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -164479,13 +234386,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value___get if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7608, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7609, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -164502,7 +234409,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value___get /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -164513,12 +234420,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value___get } -static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLCOUNTERATTACK_OutRange(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLRICKSHAWMAN_OutRange(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -164529,12 +234436,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__out_range(s } -static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLCOUNTERATTACK_Advance(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLRICKSHAWMAN_Advance(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -164546,15 +234453,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__advance(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy, "CDLCOUNTERATTACK_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy, "CDLRICKSHAWMAN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -164580,16 +234487,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self) { - TA_CDLCOUNTERATTACK_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self) { + TA_CDLRICKSHAWMAN_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -164606,18 +234513,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(struc __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7620, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream))))) __PYX_ERR(3, 7620, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream))))) __PYX_ERR(3, 13139, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -164631,7 +234538,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLCOUNTERATTACK_Clone(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLRICKSHAWMAN_Clone(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -164674,7 +234581,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(struc if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7630, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -164696,7 +234603,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(struc __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -164709,19 +234616,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(struc /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -164735,7 +234642,7 @@ static void __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream___dealloc__(stru if (__pyx_t_1) { - (void)(TA_CDLDARKCLOUDCOVER_Close(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLRISEFALL3METHODS_Close(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -164761,14 +234668,14 @@ static void __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream___dealloc__(stru /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -164779,12 +234686,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -164800,93 +234706,76 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7654, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13171, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 7654, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7654, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7654, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7654, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7654, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7654, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13171, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 7654, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13171, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 7654, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7654, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7654, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7654, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7654, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13171, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13171, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13171, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13171, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7654, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)0.5); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 7654, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13171, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { +static int __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -164895,7 +234784,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(struct npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLDARKCLOUDCOVER_Stream *__pyx_v_handle; + TA_CDLRISEFALL3METHODS_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -164911,55 +234800,55 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7655, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7656, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7657, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7658, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7659, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7659, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13176, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7659, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13176, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7659, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13176, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7659, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13176, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7660, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13177, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7661, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13178, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7662, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13179, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7667, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13184, __pyx_L1_error) /*try:*/ { @@ -164969,9 +234858,9 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(struct __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration) + 1); + __pyx_v_need = (TA_CDLRISEFALL3METHODS_Lookback() + 1); - __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -164988,7 +234877,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(struct if (__pyx_t_4) { - (void)(TA_CDLDARKCLOUDCOVER_Close(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLRISEFALL3METHODS_Close(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -165056,7 +234945,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7684, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -165068,7 +234957,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(struct goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -165090,16 +234979,16 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill, "CDLDARKCLOUDCOVER_Stream.open_and_fill(open, high, low, close, double penetration=0.5)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill, "CDLRISEFALL3METHODS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -165110,12 +234999,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -165131,93 +235019,76 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7686, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13203, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 7686, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7686, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13203, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 7686, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13203, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 7686, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7686, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7686, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7686, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7686, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13203, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13203, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13203, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13203, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7687, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)0.5); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 7686, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13203, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -165230,8 +235101,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_f PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLDARKCLOUDCOVER_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_stream = 0; + TA_CDLRISEFALL3METHODS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -165253,60 +235124,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7688, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7689, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7690, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7691, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7692, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7692, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13209, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7692, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13209, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7692, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13209, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7692, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13209, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7693, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13210, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7694, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13211, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7695, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13212, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7701, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7703, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13220, __pyx_L1_error) /*try:*/ { @@ -165316,7 +235187,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_f __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRISEFALL3METHODS_Lookback()); } /*finally:*/ { @@ -165329,7 +235200,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_f } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7707, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13224, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -165340,7 +235211,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_f __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLRISEFALL3METHODS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -165444,36 +235315,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_f if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7718, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7719, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7719, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13236, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7719, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13236, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7719, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13236, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7719, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7719, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13236, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7719, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7719, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13236, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7719, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13236, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -165491,7 +235362,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_f __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -165516,15 +235387,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_f /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update, "CDLDARKCLOUDCOVER_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update, "CDLRISEFALL3METHODS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -165557,64 +235428,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7721, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13238, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7721, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13238, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7721, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13238, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13238, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13238, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13238, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13238, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7722, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7722, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7722, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7722, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13239, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13239, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13239, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13239, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7721, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13238, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -165628,7 +235499,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -165652,7 +235523,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Update(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Update(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -165680,13 +235551,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7729, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7730, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -165703,7 +235574,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -165715,15 +235586,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek, "CDLDARKCLOUDCOVER_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek, "CDLRISEFALL3METHODS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -165756,64 +235627,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7732, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13249, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13249, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13249, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13249, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13249, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7732, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13249, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7732, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13249, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13249, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13249, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13249, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13249, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7733, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7733, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7733, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7733, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13250, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13250, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13250, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13250, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7732, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13249, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -165827,7 +235698,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -165851,7 +235722,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Peek(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Peek(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -165879,13 +235750,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7740, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7741, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -165902,7 +235773,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -165914,21 +235785,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -165952,7 +235823,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value___ge __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Value(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Value(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -165980,13 +235851,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value___ge if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7751, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7752, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -166003,7 +235874,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value___ge /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -166014,12 +235885,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value___ge } -static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLDARKCLOUDCOVER_OutRange(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLRISEFALL3METHODS_OutRange(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -166030,12 +235901,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__out_range( } -static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLDARKCLOUDCOVER_Advance(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLRISEFALL3METHODS_Advance(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -166047,15 +235918,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__advance(st /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy, "CDLDARKCLOUDCOVER_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy, "CDLRISEFALL3METHODS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -166081,16 +235952,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self) { - TA_CDLDARKCLOUDCOVER_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self) { + TA_CDLRISEFALL3METHODS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -166107,18 +235978,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(stru __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7763, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream))))) __PYX_ERR(3, 7763, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream))))) __PYX_ERR(3, 13280, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -166132,7 +236003,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Clone(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Clone(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -166175,7 +236046,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(stru if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7773, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -166197,7 +236068,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(stru __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -166210,19 +236081,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(stru /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -166236,7 +236107,7 @@ static void __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream___dealloc__(struct __pyx_o if (__pyx_t_1) { - (void)(TA_CDLDOJI_Close(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLSEPARATINGLINES_Close(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -166262,14 +236133,14 @@ static void __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream___dealloc__(struct __pyx_o /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -166302,44 +236173,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7795, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13312, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7795, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13312, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7795, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13312, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7795, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13312, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7795, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13312, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7795, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13312, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7795, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13312, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7795, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13312, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7795, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13312, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7795, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13312, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7795, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13312, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -166348,18 +236219,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7795, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13312, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -166369,7 +236240,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -166378,7 +236249,7 @@ static int __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(struct __pyx_obj_ npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLDOJI_Stream *__pyx_v_handle; + TA_CDLSEPARATINGLINES_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -166394,55 +236265,55 @@ static int __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7796, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7797, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7798, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7799, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7800, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7800, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13317, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7800, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13317, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7800, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13317, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7800, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13317, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7801, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13318, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7802, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13319, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7803, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13320, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7808, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13325, __pyx_L1_error) /*try:*/ { @@ -166452,9 +236323,9 @@ static int __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(struct __pyx_obj_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLDOJI_Lookback() + 1); + __pyx_v_need = (TA_CDLSEPARATINGLINES_Lookback() + 1); - __pyx_v_retCode = TA_CDLDOJI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSEPARATINGLINES_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -166471,7 +236342,7 @@ static int __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - (void)(TA_CDLDOJI_Close(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLSEPARATINGLINES_Close(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -166539,7 +236410,7 @@ static int __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7825, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -166551,7 +236422,7 @@ static int __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(struct __pyx_obj_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -166573,16 +236444,16 @@ static int __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill, "CDLDOJI_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill, "CDLSEPARATINGLINES_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -166615,44 +236486,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7827, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13344, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13344, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13344, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13344, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13344, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7827, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13344, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7827, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13344, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13344, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13344, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13344, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13344, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -166661,18 +236532,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7827, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13344, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -166682,7 +236553,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -166695,8 +236566,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObje PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLDOJI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_stream = 0; + TA_CDLSEPARATINGLINES_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -166718,60 +236589,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7829, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7830, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7831, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7832, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7833, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7833, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13350, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7833, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13350, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7833, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13350, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7833, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13350, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7834, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13351, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7835, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13352, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7836, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13353, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7842, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7844, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13361, __pyx_L1_error) /*try:*/ { @@ -166781,7 +236652,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSEPARATINGLINES_Lookback()); } /*finally:*/ { @@ -166794,7 +236665,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7848, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13365, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -166805,7 +236676,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLDOJI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSEPARATINGLINES_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -166909,36 +236780,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7859, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7860, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7860, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13377, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7860, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13377, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7860, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13377, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7860, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 7860, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13377, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7860, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7860, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13377, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 7860, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13377, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -166956,7 +236827,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObje __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -166981,15 +236852,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_6update, "CDLDOJI_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update, "CDLSEPARATINGLINES_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -167022,64 +236893,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7862, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13379, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13379, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13379, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13379, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13379, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7862, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13379, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7862, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13379, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13379, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13379, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13379, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13379, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7863, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7863, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7863, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7863, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13380, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13380, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13380, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13380, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7862, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13379, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -167093,7 +236964,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -167117,7 +236988,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_6update(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLDOJI_Update(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSEPARATINGLINES_Update(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -167145,13 +237016,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_6update(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7870, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7871, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -167168,7 +237039,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_6update(struct __pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -167180,15 +237051,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_6update(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_8peek, "CDLDOJI_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek, "CDLSEPARATINGLINES_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -167221,64 +237092,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7873, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13390, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7873, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13390, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7873, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13390, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13390, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13390, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13390, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13390, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7874, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7874, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7874, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7874, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13391, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13391, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13391, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13391, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7873, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13390, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -167292,7 +237163,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -167316,7 +237187,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_8peek(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLDOJI_Peek(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSEPARATINGLINES_Peek(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -167344,13 +237215,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_8peek(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7881, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7882, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -167367,7 +237238,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_8peek(struct __pyx_ob /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -167379,21 +237250,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_8peek(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -167417,7 +237288,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLDOJI_Value(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSEPARATINGLINES_Value(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -167445,13 +237316,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7892, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7893, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -167468,7 +237339,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_5value___get__(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -167479,12 +237350,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_5value___get__(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLDOJI_OutRange(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLSEPARATINGLINES_OutRange(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -167495,12 +237366,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__out_range(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLDOJI_Advance(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLSEPARATINGLINES_Advance(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -167512,15 +237383,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__advance(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_10copy, "CDLDOJI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy, "CDLSEPARATINGLINES_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -167546,16 +237417,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self) { - TA_CDLDOJI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self) { + TA_CDLSEPARATINGLINES_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -167572,18 +237443,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(struct __pyx_o __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7904, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream))))) __PYX_ERR(3, 7904, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream))))) __PYX_ERR(3, 13421, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -167597,7 +237468,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLDOJI_Clone(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLSEPARATINGLINES_Clone(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -167640,7 +237511,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(struct __pyx_o if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7914, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -167662,7 +237533,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(struct __pyx_o __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -167675,19 +237546,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(struct __pyx_o /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -167701,7 +237572,7 @@ static void __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream___dealloc__(struct __p if (__pyx_t_1) { - (void)(TA_CDLDOJISTAR_Close(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLSHOOTINGSTAR_Close(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -167727,14 +237598,14 @@ static void __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream___dealloc__(struct __p /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -167767,44 +237638,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7936, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13453, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13453, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13453, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13453, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13453, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7936, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13453, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7936, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13453, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13453, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13453, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13453, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13453, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -167813,18 +237684,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7936, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13453, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -167834,7 +237705,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -167843,7 +237714,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(struct __pyx_ npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLDOJISTAR_Stream *__pyx_v_handle; + TA_CDLSHOOTINGSTAR_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -167859,55 +237730,55 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7937, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7938, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7939, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7940, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7941, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7941, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13458, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7941, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13458, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7941, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13458, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7941, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13458, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7942, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13459, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7943, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13460, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7944, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13461, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7949, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13466, __pyx_L1_error) /*try:*/ { @@ -167917,9 +237788,9 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(struct __pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLDOJISTAR_Lookback() + 1); + __pyx_v_need = (TA_CDLSHOOTINGSTAR_Lookback() + 1); - __pyx_v_retCode = TA_CDLDOJISTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -167936,7 +237807,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - (void)(TA_CDLDOJISTAR_Close(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLSHOOTINGSTAR_Close(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -168004,7 +237875,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7966, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -168016,7 +237887,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(struct __pyx_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -168038,16 +237909,16 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill, "CDLDOJISTAR_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill, "CDLSHOOTINGSTAR_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -168080,44 +237951,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7968, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13485, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13485, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13485, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13485, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13485, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7968, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13485, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7968, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13485, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13485, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13485, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13485, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13485, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -168126,18 +237997,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7968, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13485, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -168147,7 +238018,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -168160,8 +238031,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(Py PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLDOJISTAR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_stream = 0; + TA_CDLSHOOTINGSTAR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -168183,60 +238054,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7970, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7971, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7972, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7973, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7974, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7974, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13491, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7974, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13491, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7974, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13491, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7974, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13491, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7975, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13492, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7976, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13493, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7977, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13494, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7983, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 7985, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13502, __pyx_L1_error) /*try:*/ { @@ -168246,7 +238117,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJISTAR_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHOOTINGSTAR_Lookback()); } /*finally:*/ { @@ -168259,7 +238130,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7989, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13506, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -168270,7 +238141,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLDOJISTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSHOOTINGSTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -168374,36 +238245,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8000, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8001, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8001, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13518, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8001, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13518, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8001, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13518, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8001, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8001, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13518, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8001, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8001, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13518, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8001, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13518, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -168421,7 +238292,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(Py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -168446,15 +238317,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update, "CDLDOJISTAR_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update, "CDLSHOOTINGSTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -168487,64 +238358,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8003, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13520, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13520, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13520, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13520, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13520, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8003, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13520, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8003, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13520, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13520, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13520, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13520, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13520, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8004, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8004, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8004, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8004, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13521, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13521, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13521, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13521, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8003, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13520, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -168558,7 +238429,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -168582,7 +238453,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLDOJISTAR_Update(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Update(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -168610,13 +238481,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8011, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8012, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -168633,7 +238504,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -168645,15 +238516,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek, "CDLDOJISTAR_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek, "CDLSHOOTINGSTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -168686,64 +238557,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8014, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13531, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8014, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13531, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8014, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13531, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13531, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13531, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13531, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8014, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13531, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8015, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8015, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8015, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8015, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13532, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13532, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13532, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13532, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8014, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13531, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -168757,7 +238628,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -168781,7 +238652,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLDOJISTAR_Peek(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Peek(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -168809,13 +238680,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8022, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8023, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -168832,7 +238703,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek(struct __py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -168844,21 +238715,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -168882,7 +238753,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value___get__(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLDOJISTAR_Value(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Value(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -168910,13 +238781,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value___get__(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8033, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8034, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -168933,7 +238804,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value___get__(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -168944,12 +238815,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value___get__(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLDOJISTAR_OutRange(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLSHOOTINGSTAR_OutRange(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -168960,12 +238831,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLDOJISTAR_Advance(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLSHOOTINGSTAR_Advance(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -168977,15 +238848,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__advance(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy, "CDLDOJISTAR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy, "CDLSHOOTINGSTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -169011,16 +238882,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self) { - TA_CDLDOJISTAR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self) { + TA_CDLSHOOTINGSTAR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -169037,18 +238908,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(struct __p __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8045, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream))))) __PYX_ERR(3, 8045, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream))))) __PYX_ERR(3, 13562, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -169062,7 +238933,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLDOJISTAR_Clone(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Clone(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -169105,7 +238976,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(struct __p if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8055, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -169127,7 +238998,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(struct __p __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -169140,19 +239011,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(struct __p /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -169166,7 +239037,7 @@ static void __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream___dealloc__(struc if (__pyx_t_1) { - (void)(TA_CDLDRAGONFLYDOJI_Close(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLSHORTLINE_Close(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -169192,14 +239063,14 @@ static void __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream___dealloc__(struc /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -169232,44 +239103,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8077, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13594, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13594, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13594, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13594, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13594, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8077, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13594, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8077, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13594, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13594, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13594, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13594, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13594, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -169278,18 +239149,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8077, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13594, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -169299,7 +239170,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -169308,7 +239179,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(struct _ npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLDRAGONFLYDOJI_Stream *__pyx_v_handle; + TA_CDLSHORTLINE_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -169324,55 +239195,55 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8078, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8079, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8080, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8081, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8082, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13599, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13599, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13599, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13599, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8083, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13600, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8084, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13601, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8085, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13602, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8090, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13607, __pyx_L1_error) /*try:*/ { @@ -169382,9 +239253,9 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(struct _ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLDRAGONFLYDOJI_Lookback() + 1); + __pyx_v_need = (TA_CDLSHORTLINE_Lookback() + 1); - __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSHORTLINE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -169401,7 +239272,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(struct _ if (__pyx_t_4) { - (void)(TA_CDLDRAGONFLYDOJI_Close(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLSHORTLINE_Close(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -169469,7 +239340,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(struct _ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8107, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13624, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -169481,7 +239352,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(struct _ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -169503,16 +239374,16 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill, "CDLDRAGONFLYDOJI_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill, "CDLSHORTLINE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -169545,44 +239416,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8109, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13626, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13626, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13626, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13626, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13626, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8109, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13626, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8109, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13626, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13626, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13626, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13626, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13626, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -169591,18 +239462,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8109, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13626, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -169612,7 +239483,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -169625,8 +239496,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fi PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLDRAGONFLYDOJI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_stream = 0; + TA_CDLSHORTLINE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -169648,60 +239519,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fi int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8111, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8112, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8113, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8114, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8115, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8115, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13632, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8115, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13632, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8115, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13632, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8115, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13632, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8116, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13633, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8117, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13634, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8118, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13635, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8124, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSHORTLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8126, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13643, __pyx_L1_error) /*try:*/ { @@ -169711,7 +239582,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fi __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDRAGONFLYDOJI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHORTLINE_Lookback()); } /*finally:*/ { @@ -169724,7 +239595,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fi } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8130, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13647, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -169735,7 +239606,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fi __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSHORTLINE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -169839,36 +239710,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fi if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8141, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8142, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8142, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13659, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8142, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13659, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8142, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13659, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8142, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8142, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13659, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8142, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8142, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13659, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8142, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13659, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -169886,7 +239757,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fi __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -169911,15 +239782,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fi /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update, "CDLDRAGONFLYDOJI_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update, "CDLSHORTLINE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -169952,64 +239823,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8144, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13661, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8144, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13661, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8144, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13661, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13661, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13661, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13661, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13661, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8145, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8145, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8145, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8145, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13662, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13662, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13662, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13662, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8144, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13661, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -170023,7 +239894,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -170047,7 +239918,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Update(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSHORTLINE_Update(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -170075,13 +239946,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8152, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8153, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -170098,7 +239969,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -170110,15 +239981,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek, "CDLDRAGONFLYDOJI_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek, "CDLSHORTLINE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -170151,64 +240022,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8155, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13672, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13672, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13672, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13672, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13672, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8155, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13672, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8155, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13672, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13672, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13672, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13672, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8155, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13672, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8156, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8156, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8156, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8156, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13673, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13673, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13673, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13673, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8155, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13672, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -170222,7 +240093,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -170246,7 +240117,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Peek(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSHORTLINE_Peek(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -170274,13 +240145,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8163, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8164, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -170297,7 +240168,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -170309,21 +240180,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -170347,7 +240218,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value___get __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Value(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSHORTLINE_Value(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -170375,13 +240246,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value___get if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8174, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8175, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -170398,7 +240269,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value___get /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -170409,12 +240280,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value___get } -static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLDRAGONFLYDOJI_OutRange(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLSHORTLINE_OutRange(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -170425,12 +240296,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__out_range(s } -static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLDRAGONFLYDOJI_Advance(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLSHORTLINE_Advance(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -170442,15 +240313,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__advance(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy, "CDLDRAGONFLYDOJI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy, "CDLSHORTLINE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -170476,16 +240347,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self) { - TA_CDLDRAGONFLYDOJI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self) { + TA_CDLSHORTLINE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -170502,18 +240373,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(struc __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8186, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream))))) __PYX_ERR(3, 8186, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream))))) __PYX_ERR(3, 13703, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -170527,7 +240398,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Clone(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLSHORTLINE_Clone(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -170570,7 +240441,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(struc if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8196, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -170592,7 +240463,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(struc __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -170605,19 +240476,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(struc /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -170631,7 +240502,7 @@ static void __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream___dealloc__(struct __ if (__pyx_t_1) { - (void)(TA_CDLENGULFING_Close(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLSPINNINGTOP_Close(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -170657,14 +240528,14 @@ static void __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream___dealloc__(struct __ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -170697,44 +240568,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8218, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13735, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13735, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13735, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13735, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13735, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8218, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13735, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8218, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13735, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13735, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13735, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13735, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13735, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -170743,18 +240614,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8218, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13735, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -170764,7 +240635,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -170773,7 +240644,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(struct __pyx npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLENGULFING_Stream *__pyx_v_handle; + TA_CDLSPINNINGTOP_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -170789,55 +240660,55 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8219, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8220, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8221, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8222, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8223, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8223, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13740, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8223, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13740, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8223, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13740, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8223, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13740, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8224, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13741, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8225, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13742, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8226, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13743, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8231, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13748, __pyx_L1_error) /*try:*/ { @@ -170847,9 +240718,9 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(struct __pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLENGULFING_Lookback() + 1); + __pyx_v_need = (TA_CDLSPINNINGTOP_Lookback() + 1); - __pyx_v_retCode = TA_CDLENGULFING_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSPINNINGTOP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -170866,7 +240737,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(struct __pyx if (__pyx_t_4) { - (void)(TA_CDLENGULFING_Close(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLSPINNINGTOP_Close(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -170934,7 +240805,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8248, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -170946,7 +240817,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(struct __pyx goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -170968,16 +240839,16 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill, "CDLENGULFING_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill, "CDLSPINNINGTOP_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -171010,44 +240881,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8250, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13767, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8250, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13767, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8250, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13767, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13767, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13767, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13767, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13767, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -171056,18 +240927,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8250, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13767, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -171077,7 +240948,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -171090,8 +240961,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(P PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLENGULFING_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_stream = 0; + TA_CDLSPINNINGTOP_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -171113,60 +240984,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8252, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8253, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8254, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8255, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8256, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8256, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13773, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8256, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13773, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8256, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13773, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8256, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13773, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8257, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13774, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8258, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13775, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8259, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13776, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLENGULFING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8265, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8267, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13784, __pyx_L1_error) /*try:*/ { @@ -171176,7 +241047,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLENGULFING_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSPINNINGTOP_Lookback()); } /*finally:*/ { @@ -171189,7 +241060,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(P } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8271, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13788, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -171200,7 +241071,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLENGULFING_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSPINNINGTOP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -171304,36 +241175,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8282, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8283, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8283, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13800, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8283, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13800, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8283, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13800, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8283, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8283, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13800, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8283, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8283, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13800, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8283, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13800, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -171351,7 +241222,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(P __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -171376,15 +241247,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_6update, "CDLENGULFING_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update, "CDLSPINNINGTOP_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -171417,64 +241288,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8285, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13802, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13802, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13802, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13802, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13802, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8285, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13802, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8285, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13802, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13802, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13802, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13802, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13802, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8286, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8286, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8286, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8286, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13803, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13803, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13803, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13803, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8285, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13802, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -171488,7 +241359,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -171512,7 +241383,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_6update(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLENGULFING_Update(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSPINNINGTOP_Update(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -171540,13 +241411,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_6update(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8293, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8294, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -171563,7 +241434,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_6update(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -171575,15 +241446,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_6update(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek, "CDLENGULFING_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek, "CDLSPINNINGTOP_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -171616,64 +241487,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8296, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13813, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8296, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13813, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8296, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13813, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13813, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13813, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13813, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13813, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8297, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8297, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8297, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8297, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13814, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13814, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13814, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13814, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8296, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13813, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -171687,7 +241558,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -171711,7 +241582,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLENGULFING_Peek(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSPINNINGTOP_Peek(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -171739,13 +241610,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8304, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8305, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -171762,7 +241633,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -171774,21 +241645,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -171812,7 +241683,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_5value___get__(s __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLENGULFING_Value(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSPINNINGTOP_Value(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -171840,13 +241711,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_5value___get__(s if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8315, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8316, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -171863,7 +241734,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_5value___get__(s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -171874,12 +241745,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_5value___get__(s } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLENGULFING_OutRange(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLSPINNINGTOP_OutRange(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -171890,12 +241761,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__out_range(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLENGULFING_Advance(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLSPINNINGTOP_Advance(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -171907,15 +241778,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__advance(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy, "CDLENGULFING_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy, "CDLSPINNINGTOP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -171941,16 +241812,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self) { - TA_CDLENGULFING_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self) { + TA_CDLSPINNINGTOP_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -171967,18 +241838,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(struct __ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8327, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream))))) __PYX_ERR(3, 8327, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream))))) __PYX_ERR(3, 13844, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -171992,7 +241863,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLENGULFING_Clone(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLSPINNINGTOP_Clone(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -172035,7 +241906,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(struct __ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8337, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -172057,7 +241928,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(struct __ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -172070,19 +241941,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(struct __ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -172096,7 +241967,7 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream___dealloc__(str if (__pyx_t_1) { - (void)(TA_CDLEVENINGDOJISTAR_Close(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLSTALLEDPATTERN_Close(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -172122,14 +241993,14 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream___dealloc__(str /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -172140,12 +242011,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -172161,93 +242031,76 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8361, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13876, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8361, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8361, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8361, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8361, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8361, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8361, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13876, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 8361, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13876, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8361, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8361, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8361, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8361, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8361, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13876, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13876, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13876, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13876, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8361, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)0.3); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8361, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13876, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { +static int __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -172256,7 +242109,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(struct npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLEVENINGDOJISTAR_Stream *__pyx_v_handle; + TA_CDLSTALLEDPATTERN_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -172272,55 +242125,55 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8362, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8363, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8364, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8365, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8366, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8366, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13881, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8366, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13881, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8366, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13881, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8366, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13881, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8367, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13882, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8368, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13883, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8369, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13884, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8374, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13889, __pyx_L1_error) /*try:*/ { @@ -172330,9 +242183,9 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(struct __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration) + 1); + __pyx_v_need = (TA_CDLSTALLEDPATTERN_Lookback() + 1); - __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -172349,7 +242202,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(struct if (__pyx_t_4) { - (void)(TA_CDLEVENINGDOJISTAR_Close(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLSTALLEDPATTERN_Close(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -172417,7 +242270,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8391, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -172429,7 +242282,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(struct goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -172451,16 +242304,16 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill, "CDLEVENINGDOJISTAR_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill, "CDLSTALLEDPATTERN_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -172471,12 +242324,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -172492,93 +242344,76 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8393, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13908, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8393, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8393, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13908, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8393, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13908, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8393, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13908, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8393, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13908, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8393, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13908, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 8393, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13908, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8393, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8393, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8393, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8393, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8393, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13908, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13908, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13908, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13908, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8394, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)0.3); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8393, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13908, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -172591,8 +242426,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_ PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLEVENINGDOJISTAR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_stream = 0; + TA_CDLSTALLEDPATTERN_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -172614,60 +242449,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8395, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8396, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8397, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8398, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8399, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8399, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13914, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8399, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13914, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8399, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13914, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8399, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13914, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8400, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13915, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8401, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13916, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8402, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13917, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8408, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8410, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13925, __pyx_L1_error) /*try:*/ { @@ -172677,7 +242512,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTALLEDPATTERN_Lookback()); } /*finally:*/ { @@ -172690,7 +242525,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8414, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13929, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -172701,7 +242536,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSTALLEDPATTERN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -172805,36 +242640,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8425, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8426, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8426, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13941, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8426, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13941, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8426, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13941, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8426, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8426, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13941, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8426, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8426, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13941, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8426, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13941, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -172852,7 +242687,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -172877,15 +242712,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update, "CDLEVENINGDOJISTAR_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update, "CDLSTALLEDPATTERN_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -172918,64 +242753,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8428, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13943, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13943, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13943, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13943, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13943, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8428, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13943, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8428, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13943, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13943, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13943, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13943, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13943, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8429, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8429, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8429, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8429, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13944, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13944, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13944, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13944, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8428, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13943, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -172989,7 +242824,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -173013,7 +242848,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Update(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Update(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -173041,13 +242876,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8436, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8437, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -173064,7 +242899,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -173076,15 +242911,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update(st /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek, "CDLEVENINGDOJISTAR_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek, "CDLSTALLEDPATTERN_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -173117,64 +242952,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8439, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13954, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13954, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13954, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13954, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13954, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8439, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13954, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8439, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13954, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13954, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13954, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13954, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8439, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13954, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8440, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8440, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8440, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8440, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13955, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13955, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13955, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13955, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8439, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13954, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -173188,7 +243023,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -173212,7 +243047,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Peek(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Peek(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -173240,13 +243075,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8447, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8448, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -173263,7 +243098,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -173275,21 +243110,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -173313,7 +243148,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value___g __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Value(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Value(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -173341,13 +243176,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value___g if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8458, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8459, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -173364,7 +243199,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value___g /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -173375,12 +243210,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value___g } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLEVENINGDOJISTAR_OutRange(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLSTALLEDPATTERN_OutRange(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -173391,12 +243226,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__out_range } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLEVENINGDOJISTAR_Advance(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLSTALLEDPATTERN_Advance(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -173408,15 +243243,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__advance(s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy, "CDLEVENINGDOJISTAR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy, "CDLSTALLEDPATTERN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -173442,16 +243277,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self) { - TA_CDLEVENINGDOJISTAR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self) { + TA_CDLSTALLEDPATTERN_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -173468,18 +243303,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(str __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8470, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream))))) __PYX_ERR(3, 8470, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream))))) __PYX_ERR(3, 13985, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -173493,7 +243328,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Clone(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Clone(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -173536,7 +243371,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(str if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8480, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -173558,7 +243393,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(str __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -173571,19 +243406,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(str /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -173597,7 +243432,7 @@ static void __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_CDLEVENINGSTAR_Close(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLSTICKSANDWICH_Close(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -173623,14 +243458,14 @@ static void __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -173641,12 +243476,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -173662,93 +243496,76 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8504, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14017, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8504, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8504, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14017, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8504, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14017, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8504, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14017, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8504, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14017, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8504, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14017, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 8504, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 14017, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8504, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8504, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8504, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8504, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8504, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14017, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14017, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14017, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14017, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8504, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)0.3); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8504, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14017, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { +static int __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -173757,7 +243574,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(struct __p npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLEVENINGSTAR_Stream *__pyx_v_handle; + TA_CDLSTICKSANDWICH_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -173773,55 +243590,55 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8505, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8506, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8507, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8508, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8509, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8509, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14022, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8509, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14022, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8509, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14022, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8509, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14022, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8510, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14023, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8511, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14024, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8512, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14025, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8517, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14030, __pyx_L1_error) /*try:*/ { @@ -173831,9 +243648,9 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(struct __p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration) + 1); + __pyx_v_need = (TA_CDLSTICKSANDWICH_Lookback() + 1); - __pyx_v_retCode = TA_CDLEVENINGSTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSTICKSANDWICH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -173850,7 +243667,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(struct __p if (__pyx_t_4) { - (void)(TA_CDLEVENINGSTAR_Close(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLSTICKSANDWICH_Close(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -173918,7 +243735,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8534, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -173930,7 +243747,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(struct __p goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -173952,16 +243769,16 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill, "CDLEVENINGSTAR_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill, "CDLSTICKSANDWICH_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -173972,12 +243789,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -173993,93 +243809,76 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8536, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14049, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8536, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8536, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8536, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8536, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8536, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8536, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14049, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 8536, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 14049, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8536, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8536, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8536, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8536, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8536, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14049, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14049, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14049, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14049, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; __pyx_v_low = values[2]; __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8537, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)0.3); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8536, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14049, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -174092,8 +243891,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLEVENINGSTAR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_stream = 0; + TA_CDLSTICKSANDWICH_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -174115,60 +243914,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8538, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8539, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8540, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8541, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8542, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8542, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14055, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8542, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14055, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8542, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14055, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8542, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14055, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8543, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14056, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8544, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14057, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8545, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14058, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8551, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8553, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14066, __pyx_L1_error) /*try:*/ { @@ -174178,7 +243977,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTICKSANDWICH_Lookback()); } /*finally:*/ { @@ -174191,7 +243990,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8557, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14070, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -174202,7 +244001,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLEVENINGSTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSTICKSANDWICH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -174306,36 +244105,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8568, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8569, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8569, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 14082, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8569, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 14082, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8569, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 14082, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8569, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8569, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 14082, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8569, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8569, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14082, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8569, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14082, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -174353,7 +244152,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -174378,15 +244177,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update, "CDLEVENINGSTAR_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update, "CDLSTICKSANDWICH_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -174419,64 +244218,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8571, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14084, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8571, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14084, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8571, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 14084, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14084, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14084, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14084, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14084, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8572, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8572, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8572, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8572, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14085, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14085, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14085, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14085, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8571, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14084, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -174490,7 +244289,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -174514,7 +244313,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLEVENINGSTAR_Update(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSTICKSANDWICH_Update(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -174542,13 +244341,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8579, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8580, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -174565,7 +244364,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -174577,15 +244376,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek, "CDLEVENINGSTAR_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek, "CDLSTICKSANDWICH_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -174618,64 +244417,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8582, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14095, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14095, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14095, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14095, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14095, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8582, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14095, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8582, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 14095, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14095, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14095, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14095, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14095, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8583, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8583, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8583, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8583, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14096, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14096, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14096, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14096, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8582, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14095, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -174689,7 +244488,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -174713,7 +244512,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLEVENINGSTAR_Peek(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSTICKSANDWICH_Peek(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -174741,13 +244540,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8590, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8591, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -174764,7 +244563,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -174776,21 +244575,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -174814,7 +244613,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value___get__ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLEVENINGSTAR_Value(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLSTICKSANDWICH_Value(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -174842,13 +244641,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value___get__ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8601, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8602, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -174865,7 +244664,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value___get__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -174876,12 +244675,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value___get__ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLEVENINGSTAR_OutRange(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLSTICKSANDWICH_OutRange(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -174892,12 +244691,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__out_range(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLEVENINGSTAR_Advance(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLSTICKSANDWICH_Advance(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -174909,15 +244708,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__advance(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy, "CDLEVENINGSTAR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy, "CDLSTICKSANDWICH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -174943,16 +244742,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self) { - TA_CDLEVENINGSTAR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self) { + TA_CDLSTICKSANDWICH_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -174969,18 +244768,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8613, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream))))) __PYX_ERR(3, 8613, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream))))) __PYX_ERR(3, 14126, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -174994,7 +244793,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLEVENINGSTAR_Clone(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLSTICKSANDWICH_Clone(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -175037,7 +244836,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8623, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -175059,7 +244858,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -175072,19 +244871,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -175098,7 +244897,7 @@ static void __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream___dealloc__(st if (__pyx_t_1) { - (void)(TA_CDLGAPSIDESIDEWHITE_Close(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLTAKURI_Close(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -175124,14 +244923,14 @@ static void __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream___dealloc__(st /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -175164,44 +244963,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8645, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14158, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14158, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14158, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14158, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14158, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8645, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14158, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8645, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 14158, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14158, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14158, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14158, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14158, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -175210,18 +245009,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8645, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14158, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -175231,7 +245030,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -175240,7 +245039,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(struc npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_handle; + TA_CDLTAKURI_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -175256,55 +245055,55 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8646, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8647, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8648, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8649, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8650, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8650, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14163, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8650, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14163, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8650, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14163, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8650, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14163, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8651, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14164, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8652, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14165, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8653, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14166, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8658, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14171, __pyx_L1_error) /*try:*/ { @@ -175314,9 +245113,9 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(struc __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLGAPSIDESIDEWHITE_Lookback() + 1); + __pyx_v_need = (TA_CDLTAKURI_Lookback() + 1); - __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTAKURI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -175333,7 +245132,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(struc if (__pyx_t_4) { - (void)(TA_CDLGAPSIDESIDEWHITE_Close(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLTAKURI_Close(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -175401,7 +245200,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(struc if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8675, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -175413,7 +245212,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(struc goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -175435,16 +245234,16 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill, "CDLGAPSIDESIDEWHITE_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill, "CDLTAKURI_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -175477,44 +245276,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8677, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14190, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8677, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14190, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8677, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 14190, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14190, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14190, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14190, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14190, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -175523,18 +245322,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8677, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14190, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -175544,7 +245343,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -175557,8 +245356,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_stream = 0; + TA_CDLTAKURI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -175580,60 +245379,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8679, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8680, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8681, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8682, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8683, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8683, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14196, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8683, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14196, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8683, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14196, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8683, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14196, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8684, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14197, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8685, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14198, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8686, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14199, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8692, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTAKURI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8694, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14207, __pyx_L1_error) /*try:*/ { @@ -175643,7 +245442,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGAPSIDESIDEWHITE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTAKURI_Lookback()); } /*finally:*/ { @@ -175656,7 +245455,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8698, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14211, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -175667,7 +245466,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLTAKURI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -175771,36 +245570,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8709, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8710, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8710, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 14223, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8710, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 14223, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8710, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 14223, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8710, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8710, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 14223, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8710, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8710, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14223, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8710, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14223, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -175818,7 +245617,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -175843,15 +245642,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update, "CDLGAPSIDESIDEWHITE_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_6update, "CDLTAKURI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -175884,64 +245683,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8712, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14225, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14225, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14225, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14225, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14225, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8712, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14225, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8712, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 14225, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14225, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14225, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14225, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14225, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8713, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8713, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8713, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8713, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14226, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14226, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14226, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14226, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8712, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14225, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -175955,7 +245754,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -175979,7 +245778,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update(s __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Update(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTAKURI_Update(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -176007,13 +245806,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update(s if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8720, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8721, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -176030,7 +245829,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update(s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -176042,15 +245841,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update(s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek, "CDLGAPSIDESIDEWHITE_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek, "CDLTAKURI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -176083,64 +245882,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8723, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14236, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14236, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14236, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14236, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14236, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8723, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14236, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8723, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 14236, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14236, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14236, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14236, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14236, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8724, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8724, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8724, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8724, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14237, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14237, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14237, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14237, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8723, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14236, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -176154,7 +245953,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -176178,7 +245977,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Peek(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTAKURI_Peek(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -176206,13 +246005,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8731, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8732, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -176229,7 +246028,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -176241,21 +246040,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -176279,7 +246078,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value___ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Value(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTAKURI_Value(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -176307,13 +246106,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value___ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8742, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8743, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -176330,7 +246129,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value___ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -176341,12 +246140,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value___ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLGAPSIDESIDEWHITE_OutRange(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLTAKURI_OutRange(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -176357,12 +246156,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__out_rang } -static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLGAPSIDESIDEWHITE_Advance(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLTAKURI_Advance(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -176374,15 +246173,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__advance( /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy, "CDLGAPSIDESIDEWHITE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy, "CDLTAKURI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -176408,16 +246207,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self) { - TA_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self) { + TA_CDLTAKURI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -176434,18 +246233,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(st __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8754, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream))))) __PYX_ERR(3, 8754, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream))))) __PYX_ERR(3, 14267, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -176459,7 +246258,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Clone(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLTAKURI_Clone(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -176502,7 +246301,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(st if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8764, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -176524,7 +246323,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(st __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -176537,19 +246336,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(st /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -176563,7 +246362,7 @@ static void __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream___dealloc__(stru if (__pyx_t_1) { - (void)(TA_CDLGRAVESTONEDOJI_Close(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLTASUKIGAP_Close(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -176589,14 +246388,14 @@ static void __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream___dealloc__(stru /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -176629,44 +246428,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8786, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14299, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8786, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8786, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8786, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8786, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8786, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14299, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8786, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 14299, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8786, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14299, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8786, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14299, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8786, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14299, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8786, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14299, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -176675,18 +246474,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8786, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14299, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -176696,7 +246495,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -176705,7 +246504,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(struct npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLGRAVESTONEDOJI_Stream *__pyx_v_handle; + TA_CDLTASUKIGAP_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -176721,55 +246520,55 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8787, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8788, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8789, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8790, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8791, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8791, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14304, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8791, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14304, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8791, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14304, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8791, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14304, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8792, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14305, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8793, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14306, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8794, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14307, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8799, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14312, __pyx_L1_error) /*try:*/ { @@ -176779,9 +246578,9 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(struct __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLGRAVESTONEDOJI_Lookback() + 1); + __pyx_v_need = (TA_CDLTASUKIGAP_Lookback() + 1); - __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTASUKIGAP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -176798,7 +246597,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(struct if (__pyx_t_4) { - (void)(TA_CDLGRAVESTONEDOJI_Close(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLTASUKIGAP_Close(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -176866,7 +246665,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8816, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -176878,7 +246677,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(struct goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -176900,16 +246699,16 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill, "CDLGRAVESTONEDOJI_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill, "CDLTASUKIGAP_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -176942,44 +246741,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8818, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14331, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14331, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14331, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14331, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14331, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8818, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14331, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8818, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 14331, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14331, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14331, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14331, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14331, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -176988,18 +246787,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8818, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14331, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -177009,7 +246808,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -177022,8 +246821,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_f PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLGRAVESTONEDOJI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_stream = 0; + TA_CDLTASUKIGAP_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -177045,60 +246844,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8820, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8821, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8822, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8823, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8824, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8824, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14337, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8824, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14337, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8824, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14337, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8824, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14337, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8825, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14338, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8826, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14339, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8827, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14340, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8833, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTASUKIGAP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8835, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14348, __pyx_L1_error) /*try:*/ { @@ -177108,7 +246907,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_f __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGRAVESTONEDOJI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTASUKIGAP_Lookback()); } /*finally:*/ { @@ -177121,7 +246920,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_f } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8839, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14352, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -177132,7 +246931,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_f __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLTASUKIGAP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -177236,36 +247035,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_f if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8850, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8851, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8851, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 14364, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8851, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 14364, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8851, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 14364, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8851, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8851, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 14364, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8851, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8851, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14364, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8851, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14364, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -177283,7 +247082,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_f __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -177308,15 +247107,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_f /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update, "CDLGRAVESTONEDOJI_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update, "CDLTASUKIGAP_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -177349,64 +247148,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8853, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14366, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14366, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14366, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14366, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14366, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8853, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14366, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8853, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 14366, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14366, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14366, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14366, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14366, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8854, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8854, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8854, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8854, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14367, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14367, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14367, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14367, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8853, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14366, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -177420,7 +247219,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -177444,7 +247243,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Update(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTASUKIGAP_Update(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -177472,13 +247271,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8861, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8862, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -177495,7 +247294,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -177507,15 +247306,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek, "CDLGRAVESTONEDOJI_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek, "CDLTASUKIGAP_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -177548,64 +247347,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8864, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14377, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8864, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14377, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8864, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14377, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8864, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14377, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8864, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14377, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8864, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14377, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8864, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 14377, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8864, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14377, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8864, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14377, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8864, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14377, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8864, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14377, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8865, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8865, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8865, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8865, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14378, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14378, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14378, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14378, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8864, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14377, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -177619,7 +247418,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -177643,7 +247442,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Peek(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTASUKIGAP_Peek(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -177671,13 +247470,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8872, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8873, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -177694,7 +247493,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -177706,21 +247505,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -177744,7 +247543,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value___ge __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Value(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTASUKIGAP_Value(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -177772,13 +247571,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value___ge if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8883, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8884, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -177795,7 +247594,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value___ge /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -177806,12 +247605,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value___ge } -static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLGRAVESTONEDOJI_OutRange(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLTASUKIGAP_OutRange(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -177822,12 +247621,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__out_range( } -static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLGRAVESTONEDOJI_Advance(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLTASUKIGAP_Advance(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -177839,15 +247638,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__advance(st /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy, "CDLGRAVESTONEDOJI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy, "CDLTASUKIGAP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -177873,16 +247672,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self) { - TA_CDLGRAVESTONEDOJI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self) { + TA_CDLTASUKIGAP_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -177899,18 +247698,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(stru __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8895, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream))))) __PYX_ERR(3, 8895, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream))))) __PYX_ERR(3, 14408, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -177924,7 +247723,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Clone(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLTASUKIGAP_Clone(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -177967,7 +247766,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(stru if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8905, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -177989,7 +247788,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(stru __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -178002,19 +247801,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(stru /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -178028,7 +247827,7 @@ static void __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream___dealloc__(struct __pyx if (__pyx_t_1) { - (void)(TA_CDLHAMMER_Close(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLTHRUSTING_Close(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -178054,14 +247853,14 @@ static void __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream___dealloc__(struct __pyx /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -178094,44 +247893,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8927, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14440, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14440, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14440, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14440, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14440, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8927, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14440, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8927, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 14440, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14440, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14440, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14440, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14440, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -178140,18 +247939,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8927, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14440, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -178161,7 +247960,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -178170,7 +247969,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(struct __pyx_ob npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLHAMMER_Stream *__pyx_v_handle; + TA_CDLTHRUSTING_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -178186,55 +247985,55 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8928, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8929, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8930, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8931, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8932, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8932, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14445, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8932, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14445, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8932, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14445, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8932, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14445, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8933, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14446, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8934, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14447, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8935, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14448, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8940, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14453, __pyx_L1_error) /*try:*/ { @@ -178244,9 +248043,9 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(struct __pyx_ob __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLHAMMER_Lookback() + 1); + __pyx_v_need = (TA_CDLTHRUSTING_Lookback() + 1); - __pyx_v_retCode = TA_CDLHAMMER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTHRUSTING_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -178263,7 +248062,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - (void)(TA_CDLHAMMER_Close(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLTHRUSTING_Close(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -178331,7 +248130,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8957, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -178343,7 +248142,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(struct __pyx_ob goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -178365,16 +248164,16 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill, "CDLHAMMER_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill, "CDLTHRUSTING_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -178407,44 +248206,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8959, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14472, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8959, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14472, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8959, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 14472, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14472, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14472, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14472, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14472, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -178453,18 +248252,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8959, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14472, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -178474,7 +248273,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -178487,8 +248286,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyOb PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLHAMMER_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_stream = 0; + TA_CDLTHRUSTING_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -178510,60 +248309,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8961, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8962, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8963, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8964, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8965, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8965, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14478, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8965, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14478, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8965, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14478, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8965, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14478, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8966, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14479, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8967, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14480, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8968, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14481, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHAMMER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8974, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTHRUSTING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 8976, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14489, __pyx_L1_error) /*try:*/ { @@ -178573,7 +248372,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHAMMER_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTHRUSTING_Lookback()); } /*finally:*/ { @@ -178586,7 +248385,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyOb } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8980, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14493, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -178597,7 +248396,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHAMMER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLTHRUSTING_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -178701,36 +248500,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8991, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8992, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8992, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 14505, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8992, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 14505, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8992, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 14505, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8992, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 8992, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 14505, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8992, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8992, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14505, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 8992, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14505, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -178748,7 +248547,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyOb __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -178773,15 +248572,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_6update, "CDLHAMMER_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update, "CDLTHRUSTING_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -178814,64 +248613,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8994, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14507, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8994, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14507, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8994, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 14507, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14507, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14507, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14507, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14507, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8995, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8995, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8995, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8995, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14508, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14508, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14508, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14508, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8994, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14507, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -178885,7 +248684,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -178909,7 +248708,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_6update(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHAMMER_Update(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTHRUSTING_Update(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -178937,13 +248736,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_6update(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9002, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9003, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -178960,7 +248759,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_6update(struct __py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -178972,15 +248771,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_6update(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek, "CDLHAMMER_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek, "CDLTHRUSTING_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -179013,64 +248812,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9005, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14518, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14518, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14518, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14518, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14518, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9005, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14518, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9005, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 14518, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14518, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14518, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14518, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14518, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9006, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9006, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9006, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9006, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14519, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14519, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14519, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14519, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9005, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14518, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -179084,7 +248883,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -179108,7 +248907,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHAMMER_Peek(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTHRUSTING_Peek(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -179136,13 +248935,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9013, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9014, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -179159,7 +248958,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek(struct __pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -179171,21 +248970,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -179209,7 +249008,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_5value___get__(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHAMMER_Value(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTHRUSTING_Value(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -179237,13 +249036,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_5value___get__(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9024, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9025, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -179260,7 +249059,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_5value___get__(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -179271,12 +249070,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_5value___get__(stru } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHAMMER_OutRange(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLTHRUSTING_OutRange(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -179287,12 +249086,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__out_range(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHAMMER_Advance(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLTHRUSTING_Advance(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -179304,15 +249103,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__advance(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy, "CDLHAMMER_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy, "CDLTHRUSTING_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -179338,16 +249137,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self) { - TA_CDLHAMMER_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self) { + TA_CDLTHRUSTING_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -179364,18 +249163,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(struct __pyx __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9036, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream))))) __PYX_ERR(3, 9036, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream))))) __PYX_ERR(3, 14549, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -179389,7 +249188,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLHAMMER_Clone(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLTHRUSTING_Clone(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -179432,7 +249231,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(struct __pyx if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9046, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -179454,7 +249253,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(struct __pyx __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -179467,19 +249266,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(struct __pyx /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -179493,7 +249292,7 @@ static void __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream___dealloc__(struct _ if (__pyx_t_1) { - (void)(TA_CDLHANGINGMAN_Close(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLTRISTAR_Close(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -179519,14 +249318,14 @@ static void __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream___dealloc__(struct _ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -179559,44 +249358,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9068, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14581, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14581, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14581, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14581, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14581, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9068, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14581, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9068, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 14581, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14581, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14581, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14581, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14581, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -179605,18 +249404,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9068, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14581, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -179626,7 +249425,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -179635,7 +249434,7 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(struct __py npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLHANGINGMAN_Stream *__pyx_v_handle; + TA_CDLTRISTAR_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -179651,55 +249450,55 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(struct __py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9069, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9070, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9071, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9072, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9073, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9073, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14586, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9073, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14586, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9073, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14586, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9073, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14586, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9074, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14587, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9075, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14588, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9076, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14589, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9081, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14594, __pyx_L1_error) /*try:*/ { @@ -179709,9 +249508,9 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(struct __py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLHANGINGMAN_Lookback() + 1); + __pyx_v_need = (TA_CDLTRISTAR_Lookback() + 1); - __pyx_v_retCode = TA_CDLHANGINGMAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTRISTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -179728,7 +249527,7 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(struct __py if (__pyx_t_4) { - (void)(TA_CDLHANGINGMAN_Close(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLTRISTAR_Close(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -179796,7 +249595,7 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(struct __py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9098, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -179808,7 +249607,7 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(struct __py goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -179830,16 +249629,16 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill, "CDLHANGINGMAN_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill, "CDLTRISTAR_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -179872,44 +249671,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9100, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14613, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9100, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14613, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9100, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 14613, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14613, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14613, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14613, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14613, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -179918,18 +249717,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9100, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14613, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -179939,7 +249738,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -179952,8 +249751,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill( PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLHANGINGMAN_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_stream = 0; + TA_CDLTRISTAR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -179975,60 +249774,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9102, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9103, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9104, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9105, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9106, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9106, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14619, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9106, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14619, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9106, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14619, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9106, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14619, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9107, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14620, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9108, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14621, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9109, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14622, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHANGINGMAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9115, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTRISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9117, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14630, __pyx_L1_error) /*try:*/ { @@ -180038,7 +249837,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill( __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHANGINGMAN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTRISTAR_Lookback()); } /*finally:*/ { @@ -180051,7 +249850,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill( } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9121, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14634, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -180062,7 +249861,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill( __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHANGINGMAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLTRISTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -180166,36 +249965,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill( if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9132, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9133, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9133, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 14646, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9133, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 14646, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9133, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 14646, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9133, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9133, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 14646, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9133, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9133, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14646, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9133, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14646, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -180213,7 +250012,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill( __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -180238,15 +250037,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill( /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update, "CDLHANGINGMAN_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update, "CDLTRISTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -180279,64 +250078,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9135, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14648, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9135, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14648, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9135, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14648, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9135, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14648, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9135, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14648, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9135, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14648, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9135, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 14648, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9135, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14648, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9135, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14648, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9135, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14648, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9135, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14648, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9136, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9136, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9136, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9136, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14649, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14649, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14649, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14649, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9135, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14648, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -180350,7 +250149,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -180374,7 +250173,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHANGINGMAN_Update(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTRISTAR_Update(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -180402,13 +250201,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9143, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9144, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -180425,7 +250224,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -180437,15 +250236,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek, "CDLHANGINGMAN_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek, "CDLTRISTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -180478,64 +250277,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9146, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14659, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9146, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9146, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9146, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9146, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9146, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14659, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9146, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 14659, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9146, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14659, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9146, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14659, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9146, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14659, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9146, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14659, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9147, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9147, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9147, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9147, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14660, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14660, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14660, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14660, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9146, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14659, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -180549,7 +250348,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -180573,7 +250372,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHANGINGMAN_Peek(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTRISTAR_Peek(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -180601,13 +250400,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9154, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9155, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -180624,7 +250423,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -180636,21 +250435,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -180674,7 +250473,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value___get__( __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHANGINGMAN_Value(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLTRISTAR_Value(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -180702,13 +250501,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value___get__( if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9165, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9166, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -180725,7 +250524,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value___get__( /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -180736,12 +250535,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value___get__( } -static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHANGINGMAN_OutRange(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLTRISTAR_OutRange(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -180752,12 +250551,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__out_range(stru } -static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHANGINGMAN_Advance(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLTRISTAR_Advance(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -180769,15 +250568,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__advance(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy, "CDLHANGINGMAN_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy, "CDLTRISTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -180803,16 +250602,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self) { - TA_CDLHANGINGMAN_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self) { + TA_CDLTRISTAR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -180829,18 +250628,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(struct _ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9177, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream))))) __PYX_ERR(3, 9177, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream))))) __PYX_ERR(3, 14690, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -180854,7 +250653,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLHANGINGMAN_Clone(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLTRISTAR_Clone(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -180897,7 +250696,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(struct _ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9187, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -180919,7 +250718,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(struct _ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -180932,19 +250731,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(struct _ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -180958,7 +250757,7 @@ static void __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream___dealloc__(struct __pyx if (__pyx_t_1) { - (void)(TA_CDLHARAMI_Close(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLUNIQUE3RIVER_Close(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -180984,14 +250783,14 @@ static void __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream___dealloc__(struct __pyx /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -181024,44 +250823,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9209, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14722, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14722, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14722, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14722, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14722, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9209, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14722, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9209, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 14722, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14722, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14722, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14722, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14722, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -181070,18 +250869,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9209, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14722, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -181091,7 +250890,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -181100,7 +250899,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(struct __pyx_ob npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLHARAMI_Stream *__pyx_v_handle; + TA_CDLUNIQUE3RIVER_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -181116,55 +250915,55 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9210, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9211, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9212, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9213, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9214, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9214, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14727, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9214, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14727, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9214, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14727, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9214, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14727, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9215, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14728, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9216, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14729, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9217, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14730, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9222, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14735, __pyx_L1_error) /*try:*/ { @@ -181174,9 +250973,9 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(struct __pyx_ob __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLHARAMI_Lookback() + 1); + __pyx_v_need = (TA_CDLUNIQUE3RIVER_Lookback() + 1); - __pyx_v_retCode = TA_CDLHARAMI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -181193,7 +250992,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - (void)(TA_CDLHARAMI_Close(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLUNIQUE3RIVER_Close(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -181261,7 +251060,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9239, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -181273,7 +251072,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(struct __pyx_ob goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -181295,16 +251094,16 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill, "CDLHARAMI_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill, "CDLUNIQUE3RIVER_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -181337,44 +251136,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9241, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14754, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14754, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14754, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14754, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14754, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9241, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14754, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9241, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 14754, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14754, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14754, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14754, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14754, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -181383,18 +251182,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9241, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14754, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -181404,7 +251203,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -181417,8 +251216,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyOb PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLHARAMI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_stream = 0; + TA_CDLUNIQUE3RIVER_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -181440,60 +251239,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9243, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9244, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9245, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9246, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9247, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9247, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14760, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9247, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14760, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9247, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14760, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9247, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14760, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9248, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14761, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9249, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14762, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9250, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14763, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHARAMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9256, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9258, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14771, __pyx_L1_error) /*try:*/ { @@ -181503,7 +251302,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUNIQUE3RIVER_Lookback()); } /*finally:*/ { @@ -181516,7 +251315,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyOb } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9262, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14775, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -181527,7 +251326,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHARAMI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLUNIQUE3RIVER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -181631,36 +251430,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9273, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9274, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9274, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 14787, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9274, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 14787, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9274, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 14787, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9274, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9274, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 14787, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9274, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9274, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14787, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9274, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14787, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -181678,7 +251477,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyOb __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -181703,15 +251502,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_6update, "CDLHARAMI_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update, "CDLUNIQUE3RIVER_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -181744,64 +251543,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9276, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14789, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14789, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14789, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14789, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14789, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9276, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14789, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9276, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 14789, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14789, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14789, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14789, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14789, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9277, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9277, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9277, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9277, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14790, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14790, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14790, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14790, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9276, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14789, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -181815,7 +251614,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -181839,7 +251638,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_6update(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHARAMI_Update(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Update(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -181867,13 +251666,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_6update(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9284, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9285, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -181890,7 +251689,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_6update(struct __py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -181902,15 +251701,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_6update(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek, "CDLHARAMI_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek, "CDLUNIQUE3RIVER_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -181943,64 +251742,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9287, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14800, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14800, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14800, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14800, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14800, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9287, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14800, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9287, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 14800, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14800, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14800, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14800, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14800, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9288, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9288, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9288, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9288, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14801, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14801, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14801, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14801, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9287, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14800, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -182014,7 +251813,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -182038,7 +251837,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHARAMI_Peek(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Peek(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -182066,13 +251865,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9295, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9296, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -182089,7 +251888,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek(struct __pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -182101,21 +251900,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -182139,7 +251938,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_5value___get__(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHARAMI_Value(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Value(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -182167,13 +251966,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_5value___get__(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9306, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9307, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -182190,7 +251989,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_5value___get__(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -182201,12 +252000,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_5value___get__(stru } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHARAMI_OutRange(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLUNIQUE3RIVER_OutRange(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -182217,12 +252016,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__out_range(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHARAMI_Advance(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLUNIQUE3RIVER_Advance(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -182234,15 +252033,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__advance(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy, "CDLHARAMI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy, "CDLUNIQUE3RIVER_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -182268,16 +252067,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self) { - TA_CDLHARAMI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self) { + TA_CDLUNIQUE3RIVER_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -182294,18 +252093,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(struct __pyx __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9318, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream))))) __PYX_ERR(3, 9318, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream))))) __PYX_ERR(3, 14831, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -182319,7 +252118,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLHARAMI_Clone(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Clone(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -182362,7 +252161,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(struct __pyx if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9328, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -182384,7 +252183,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(struct __pyx __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -182397,19 +252196,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(struct __pyx /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -182423,7 +252222,7 @@ static void __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_CDLHARAMICROSS_Close(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLUPSIDEGAP2CROWS_Close(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -182449,14 +252248,14 @@ static void __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -182489,44 +252288,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9350, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14863, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9350, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14863, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9350, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14863, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9350, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14863, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9350, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14863, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9350, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14863, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9350, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 14863, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9350, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14863, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9350, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14863, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9350, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14863, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9350, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14863, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -182535,18 +252334,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9350, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14863, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -182556,7 +252355,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -182565,7 +252364,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(struct __p npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLHARAMICROSS_Stream *__pyx_v_handle; + TA_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -182581,55 +252380,55 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9351, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9352, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9353, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9354, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9355, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9355, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14868, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9355, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14868, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9355, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14868, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9355, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14868, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9356, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14869, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9357, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14870, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9358, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14871, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9363, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14876, __pyx_L1_error) /*try:*/ { @@ -182639,9 +252438,9 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(struct __p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLHARAMICROSS_Lookback() + 1); + __pyx_v_need = (TA_CDLUPSIDEGAP2CROWS_Lookback() + 1); - __pyx_v_retCode = TA_CDLHARAMICROSS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -182658,7 +252457,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(struct __p if (__pyx_t_4) { - (void)(TA_CDLHARAMICROSS_Close(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLUPSIDEGAP2CROWS_Close(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -182726,7 +252525,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9380, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -182738,7 +252537,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(struct __p goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -182760,16 +252559,16 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill, "CDLHARAMICROSS_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill, "CDLUPSIDEGAP2CROWS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -182802,44 +252601,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9382, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14895, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14895, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14895, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14895, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14895, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9382, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14895, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9382, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 14895, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14895, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14895, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14895, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14895, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -182848,18 +252647,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9382, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14895, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -182869,7 +252668,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -182882,8 +252681,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLHARAMICROSS_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_stream = 0; + TA_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -182905,60 +252704,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9384, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9385, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9386, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9387, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9388, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9388, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14901, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9388, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14901, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9388, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14901, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9388, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14901, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9389, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14902, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9390, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14903, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9391, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14904, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHARAMICROSS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9397, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9399, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14912, __pyx_L1_error) /*try:*/ { @@ -182968,7 +252767,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMICROSS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUPSIDEGAP2CROWS_Lookback()); } /*finally:*/ { @@ -182981,7 +252780,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9403, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14916, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -182992,7 +252791,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHARAMICROSS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -183096,36 +252895,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9414, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9415, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9415, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 14928, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9415, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 14928, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9415, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 14928, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9415, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9415, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 14928, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9415, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9415, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14928, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9415, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14928, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -183143,7 +252942,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -183168,15 +252967,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update, "CDLHARAMICROSS_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update, "CDLUPSIDEGAP2CROWS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -183209,64 +253008,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9417, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14930, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14930, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14930, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14930, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14930, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9417, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14930, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9417, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 14930, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14930, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14930, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14930, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14930, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9418, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9418, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9418, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9418, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14931, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14931, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14931, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14931, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9417, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14930, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -183280,7 +253079,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -183304,7 +253103,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHARAMICROSS_Update(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Update(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -183332,13 +253131,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9425, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9426, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -183355,7 +253154,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -183367,15 +253166,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek, "CDLHARAMICROSS_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek, "CDLUPSIDEGAP2CROWS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -183408,64 +253207,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9428, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14941, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14941, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14941, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14941, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14941, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9428, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14941, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9428, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 14941, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14941, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14941, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14941, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14941, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9429, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9429, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9429, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9429, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14942, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14942, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14942, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14942, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9428, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14941, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -183479,7 +253278,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -183503,7 +253302,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHARAMICROSS_Peek(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Peek(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -183531,13 +253330,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9436, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9437, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -183554,7 +253353,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -183566,21 +253365,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -183604,7 +253403,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value___get__ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHARAMICROSS_Value(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Value(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -183632,13 +253431,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value___get__ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9447, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9448, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -183655,7 +253454,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value___get__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -183666,12 +253465,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value___get__ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHARAMICROSS_OutRange(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLUPSIDEGAP2CROWS_OutRange(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -183682,12 +253481,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__out_range(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHARAMICROSS_Advance(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLUPSIDEGAP2CROWS_Advance(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -183699,15 +253498,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__advance(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy, "CDLHARAMICROSS_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy, "CDLUPSIDEGAP2CROWS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -183733,16 +253532,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self) { - TA_CDLHARAMICROSS_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self) { + TA_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -183759,18 +253558,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9459, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream))))) __PYX_ERR(3, 9459, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream))))) __PYX_ERR(3, 14972, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -183784,7 +253583,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLHARAMICROSS_Clone(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Clone(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -183827,7 +253626,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9469, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -183849,7 +253648,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -183862,19 +253661,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -183888,7 +253687,7 @@ static void __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream___dealloc__(struct __p if (__pyx_t_1) { - (void)(TA_CDLHIGHWAVE_Close(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLXSIDEGAP3METHODS_Close(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -183914,14 +253713,14 @@ static void __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream___dealloc__(struct __p /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -183954,44 +253753,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9491, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15004, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9491, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15004, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9491, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 15004, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15004, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15004, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15004, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15004, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -184000,18 +253799,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9491, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 15004, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -184021,7 +253820,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -184030,7 +253829,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(struct __pyx_ npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLHIGHWAVE_Stream *__pyx_v_handle; + TA_CDLXSIDEGAP3METHODS_Stream *__pyx_v_handle; int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -184046,55 +253845,55 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9492, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9493, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9494, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9495, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9496, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 15009, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15009, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15009, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 15009, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9497, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15010, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9498, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15011, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9499, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15012, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9504, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15017, __pyx_L1_error) /*try:*/ { @@ -184104,9 +253903,9 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(struct __pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLHIGHWAVE_Lookback() + 1); + __pyx_v_need = (TA_CDLXSIDEGAP3METHODS_Lookback() + 1); - __pyx_v_retCode = TA_CDLHIGHWAVE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -184123,7 +253922,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - (void)(TA_CDLHIGHWAVE_Close(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CDLXSIDEGAP3METHODS_Close(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -184191,7 +253990,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9521, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -184203,7 +254002,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(struct __pyx_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -184225,16 +254024,16 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill, "CDLHIGHWAVE_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill, "CDLXSIDEGAP3METHODS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -184267,44 +254066,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9523, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15036, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15036, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15036, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15036, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15036, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9523, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15036, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9523, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 15036, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15036, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15036, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15036, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15036, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -184313,18 +254112,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9523, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 15036, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -184334,7 +254133,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_open = 0; PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; @@ -184347,8 +254146,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(Py PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLHIGHWAVE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_stream = 0; + TA_CDLXSIDEGAP3METHODS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -184370,60 +254169,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9525, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9526, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9527, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9528, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9529, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9529, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 15042, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9529, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15042, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9529, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15042, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9529, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 15042, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9530, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15043, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9531, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15044, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9532, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15045, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIGHWAVE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9538, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9540, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15053, __pyx_L1_error) /*try:*/ { @@ -184433,7 +254232,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIGHWAVE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLXSIDEGAP3METHODS_Lookback()); } /*finally:*/ { @@ -184446,7 +254245,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9544, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15057, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -184457,7 +254256,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHIGHWAVE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -184561,36 +254360,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9555, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9556, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9556, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 15069, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9556, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 15069, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9556, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 15069, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9556, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9556, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 15069, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9556, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9556, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15069, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9556, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 15069, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -184608,7 +254407,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(Py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); @@ -184633,15 +254432,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update, "CDLHIGHWAVE_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update, "CDLXSIDEGAP3METHODS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -184674,64 +254473,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9558, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15071, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9558, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9558, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9558, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9558, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9558, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15071, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9558, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 15071, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9558, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15071, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9558, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15071, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9558, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15071, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9558, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15071, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9559, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9559, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9559, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9559, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15072, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15072, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15072, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15072, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9558, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 15071, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -184745,7 +254544,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -184769,7 +254568,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHIGHWAVE_Update(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Update(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -184797,13 +254596,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9566, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9567, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -184820,7 +254619,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -184832,15 +254631,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek, "CDLHIGHWAVE_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek, "CDLXSIDEGAP3METHODS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -184873,64 +254672,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9569, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15082, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15082, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15082, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15082, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15082, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9569, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15082, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9569, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 15082, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15082, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15082, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15082, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15082, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9570, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9570, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9570, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9570, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15083, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15083, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15083, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15083, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9569, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 15082, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -184944,7 +254743,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -184968,7 +254767,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHIGHWAVE_Peek(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Peek(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -184996,13 +254795,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9577, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9578, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -185019,7 +254818,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek(struct __py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -185031,21 +254830,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self) { int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -185069,7 +254868,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value___get__(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHIGHWAVE_Value(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Value(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -185097,13 +254896,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value___get__(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9588, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9589, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -185120,7 +254919,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value___get__(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -185131,12 +254930,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value___get__(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHIGHWAVE_OutRange(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CDLXSIDEGAP3METHODS_OutRange(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -185147,12 +254946,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHIGHWAVE_Advance(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CDLXSIDEGAP3METHODS_Advance(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -185164,15 +254963,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__advance(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy, "CDLHIGHWAVE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy, "CDLXSIDEGAP3METHODS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -185198,16 +254997,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self) { - TA_CDLHIGHWAVE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self) { + TA_CDLXSIDEGAP3METHODS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -185224,18 +255023,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(struct __p __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9600, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream))))) __PYX_ERR(3, 9600, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream))))) __PYX_ERR(3, 15113, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -185249,7 +255048,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLHIGHWAVE_Clone(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Clone(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -185292,7 +255091,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(struct __p if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9610, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -185314,7 +255113,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(struct __p __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -185327,19 +255126,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(struct __p /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11CEIL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11CEIL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -185353,7 +255152,7 @@ static void __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream___dealloc__(struct __py if (__pyx_t_1) { - (void)(TA_CDLHIKKAKE_Close(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CEIL_Close(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -185379,29 +255178,26 @@ static void __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream___dealloc__(struct __py /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -185417,66 +255213,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9632, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15145, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9632, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9632, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9632, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15145, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9632, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9632, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15145, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 15145, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9632, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9632, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9632, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15145, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9632, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15145, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -185486,17 +255261,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLHIKKAKE_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_CEIL_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -185511,55 +255283,31 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9633, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9634, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9635, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9636, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9637, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9637, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9637, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9637, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9637, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15147, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9638, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15148, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9639, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15149, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9640, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15150, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9645, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15155, __pyx_L1_error) /*try:*/ { @@ -185569,9 +255317,9 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(struct __pyx_o __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLHIKKAKE_Lookback() + 1); + __pyx_v_need = (TA_CEIL_Lookback() + 1); - __pyx_v_retCode = TA_CDLHIKKAKE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CEIL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -185588,7 +255336,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - (void)(TA_CDLHIKKAKE_Close(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CEIL_Close(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -185656,7 +255404,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9662, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -185668,13 +255416,10 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(struct __pyx_o goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -185690,31 +255435,28 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill, "CDLHIKKAKE_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill, "CEIL_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -185730,66 +255472,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9664, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15174, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9664, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9664, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9664, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9664, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15174, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9664, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9664, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15174, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 15174, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9664, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9664, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9664, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9664, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15174, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9664, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15174, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -185799,21 +255520,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLHIKKAKE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_stream = 0; + TA_CEIL_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -185835,60 +255553,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9666, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9667, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9668, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9669, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9670, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9670, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9670, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9670, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9670, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15177, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9671, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15178, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9672, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15179, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9673, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15180, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9679, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CEIL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9681, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15188, __pyx_L1_error) /*try:*/ { @@ -185898,7 +255592,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CEIL_Lookback()); } /*finally:*/ { @@ -185911,9 +255605,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyO } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9685, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15192, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -185922,7 +255616,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHIKKAKE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CEIL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -186026,36 +255720,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9696, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CEIL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9697, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9697, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9697, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9697, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9697, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9697, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15204, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9697, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9697, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15204, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9697, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 15204, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -186073,19 +255758,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyO __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -186098,30 +255780,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update, "CDLHIKKAKE_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CEIL_Stream_6update, "CEIL_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -186137,81 +255816,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9699, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15206, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9699, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9699, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9699, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9699, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9699, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9699, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15206, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15206, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9699, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9699, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9699, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9699, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15206, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9700, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9700, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9700, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9700, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15207, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9699, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15206, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -186234,7 +255889,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHIKKAKE_Update(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CEIL_Update(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -186262,13 +255917,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9707, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9708, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -186285,7 +255940,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -186297,30 +255952,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek, "CDLHIKKAKE_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CEIL_Stream_8peek, "CEIL_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -186336,81 +255988,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9710, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15217, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9710, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9710, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9710, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15217, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9710, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9710, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15217, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15217, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9710, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9710, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9710, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15217, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9711, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9711, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9711, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9711, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15218, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9710, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15217, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -186433,7 +256061,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHIKKAKE_Peek(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CEIL_Peek(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -186461,13 +256089,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9718, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9719, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -186484,7 +256112,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -186496,22 +256124,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -186534,7 +256162,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value___get__(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHIKKAKE_Value(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CEIL_Value(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -186562,13 +256190,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value___get__(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9729, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9730, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -186585,7 +256213,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value___get__(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -186596,12 +256224,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value___get__(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CEIL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHIKKAKE_OutRange(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CEIL_OutRange(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -186612,12 +256240,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CEIL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHIKKAKE_Advance(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CEIL_Advance(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -186629,15 +256257,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__advance(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy, "CDLHIKKAKE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CEIL_Stream_10copy, "CEIL_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -186663,16 +256291,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self) { - TA_CDLHIKKAKE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self) { + TA_CEIL_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -186689,18 +256317,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(struct __py __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9741, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream))))) __PYX_ERR(3, 9741, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream))))) __PYX_ERR(3, 15248, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -186714,7 +256342,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLHIKKAKE_Clone(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CEIL_Clone(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -186757,7 +256385,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(struct __py if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9751, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -186779,7 +256407,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(struct __py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -186792,19 +256420,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(struct __py /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_9CG_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9CG_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_9CG_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CG_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_9CG_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -186818,7 +256446,7 @@ static void __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream___dealloc__(struct _ if (__pyx_t_1) { - (void)(TA_CDLHIKKAKEMOD_Close(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CG_Close(((TA_CG_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -186844,29 +256472,27 @@ static void __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream___dealloc__(struct _ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9CG_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9CG_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -186882,86 +256508,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9773, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15282, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9773, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9773, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9773, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15282, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9773, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15282, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9773, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9773, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15282, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 15282, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9773, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9773, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9773, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9773, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15282, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15282, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15282, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9773, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15282, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CG_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9CG_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CG_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_9CG_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLHIKKAKEMOD_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_CG_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -186976,55 +256595,31 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(struct __py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9774, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9775, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9776, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9777, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9778, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9778, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9778, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9778, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9778, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15284, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9779, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15285, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9780, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15286, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9781, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15287, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9786, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15292, __pyx_L1_error) /*try:*/ { @@ -187034,9 +256629,9 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(struct __py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLHIKKAKEMOD_Lookback() + 1); + __pyx_v_need = (TA_CG_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLHIKKAKEMOD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CG_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -187053,7 +256648,7 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(struct __py if (__pyx_t_4) { - (void)(TA_CDLHIKKAKEMOD_Close(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CG_Close(((TA_CG_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -187121,7 +256716,7 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(struct __py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9803, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CG_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -187133,13 +256728,10 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(struct __py goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CG_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -187155,31 +256747,29 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9CG_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill, "CDLHIKKAKEMOD_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9CG_Stream_4open_and_fill, "CG_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9CG_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9CG_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9CG_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9CG_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -187195,90 +256785,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9805, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15311, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9805, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9805, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15311, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15311, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9805, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9805, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15311, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 15311, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9805, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9805, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9805, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9805, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15311, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15311, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15312, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9805, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15311, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CG_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9CG_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9CG_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLHIKKAKEMOD_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_stream = 0; + TA_CG_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -187300,60 +256883,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9807, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9808, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9809, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9810, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9811, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9811, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9811, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9811, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9811, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15314, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9812, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15315, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9813, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15316, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9814, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15317, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9820, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CG_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CG_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CG_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9822, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15325, __pyx_L1_error) /*try:*/ { @@ -187363,7 +256922,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill( __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKEMOD_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CG_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -187376,9 +256935,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill( } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9826, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15329, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -187387,7 +256946,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill( __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHIKKAKEMOD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CG_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -187491,36 +257050,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill( if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9837, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CG_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9838, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9838, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9838, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9838, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9838, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9838, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15341, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9838, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9838, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15341, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9838, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 15341, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -187538,19 +257088,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill( __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CG_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -187563,30 +257110,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill( /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9CG_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update, "CDLHIKKAKEMOD_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9CG_Stream_6update, "CG_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9CG_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -187602,81 +257146,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9840, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15343, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9840, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9840, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9840, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9840, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15343, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9840, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9840, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15343, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15343, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9840, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9840, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9840, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9840, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15343, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9841, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9841, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9841, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9841, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15344, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9840, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15343, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CG_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9CG_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CG_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_9CG_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -187699,7 +257219,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHIKKAKEMOD_Update(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CG_Update(((TA_CG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -187727,13 +257247,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9848, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CG_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9849, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -187750,7 +257270,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CG_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -187762,30 +257282,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9CG_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek, "CDLHIKKAKEMOD_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9CG_Stream_8peek, "CG_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9CG_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -187801,81 +257318,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9851, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15354, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9851, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9851, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9851, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9851, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9851, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9851, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15354, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15354, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9851, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9851, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9851, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9851, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15354, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9852, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9852, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9852, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9852, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15355, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9851, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15354, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CG_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9CG_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CG_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_9CG_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -187898,7 +257391,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHIKKAKEMOD_Peek(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CG_Peek(((TA_CG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -187926,13 +257419,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9859, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CG_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9860, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -187949,7 +257442,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CG_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -187961,22 +257454,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_9CG_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9CG_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9CG_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CG_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_9CG_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -187999,7 +257492,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value___get__( __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHIKKAKEMOD_Value(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CG_Value(((TA_CG_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -188027,13 +257520,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value___get__( if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9870, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CG_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9871, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -188050,7 +257543,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value___get__( /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CG_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -188061,12 +257554,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value___get__( } -static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9CG_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHIKKAKEMOD_OutRange(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CG_OutRange(((TA_CG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -188077,12 +257570,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__out_range(stru } -static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9CG_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHIKKAKEMOD_Advance(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CG_Advance(((TA_CG_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -188094,15 +257587,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__advance(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9CG_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy, "CDLHIKKAKEMOD_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9CG_Stream_10copy, "CG_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9CG_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -188128,16 +257621,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9CG_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CG_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self) { - TA_CDLHIKKAKEMOD_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9CG_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_self) { + TA_CG_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CG_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -188154,18 +257647,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(struct _ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CG_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9882, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream))))) __PYX_ERR(3, 9882, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CG_Stream))))) __PYX_ERR(3, 15385, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CG_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -188179,7 +257672,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLHIKKAKEMOD_Clone(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CG_Clone(((TA_CG_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -188222,7 +257715,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(struct _ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9892, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CG_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -188244,7 +257737,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(struct _ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CG_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -188257,19 +257750,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(struct _ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11CHOP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11CHOP_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11CHOP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11CHOP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -188283,7 +257776,7 @@ static void __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_CDLHOMINGPIGEON_Close(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CHOP_Close(((TA_CHOP_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -188309,24 +257802,24 @@ static void __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11CHOP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11CHOP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -188347,77 +257840,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9914, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15419, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9914, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15419, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9914, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15419, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9914, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15419, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9914, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15419, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9914, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9914, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15419, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 15419, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9914, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9914, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9914, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9914, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15419, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15419, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15419, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15419, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9914, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 15419, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CHOP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static int __pyx_pf_5talib_7_ta_lib_11CHOP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -188425,8 +257927,8 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(struct __ npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLHOMINGPIGEON_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_CHOP_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -188441,55 +257943,47 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9916, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9917, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9918, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9919, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9919, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9919, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15423, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9919, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15423, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9919, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 15423, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9920, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15424, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9921, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15425, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9922, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15426, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9927, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15431, __pyx_L1_error) /*try:*/ { @@ -188499,9 +257993,9 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(struct __ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLHOMINGPIGEON_Lookback() + 1); + __pyx_v_need = (TA_CHOP_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLHOMINGPIGEON_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CHOP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -188518,7 +258012,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(struct __ if (__pyx_t_4) { - (void)(TA_CDLHOMINGPIGEON_Close(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CHOP_Close(((TA_CHOP_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -188586,7 +258080,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9944, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CHOP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -188598,10 +258092,9 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(struct __ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -188620,26 +258113,26 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill, "CDLHOMINGPIGEON_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CHOP_Stream_4open_and_fill, "CHOP_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11CHOP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CHOP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -188660,77 +258153,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9946, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15450, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15450, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15450, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15450, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15450, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9946, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9946, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15450, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 15450, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9946, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9946, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9946, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9946, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15450, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15450, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15450, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15450, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15451, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9946, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 15450, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CHOP_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CHOP_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -188739,11 +258241,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fil int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLHOMINGPIGEON_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_stream = 0; + TA_CHOP_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -188765,60 +258267,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9949, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9950, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9951, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9952, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9952, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9952, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15455, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9952, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15455, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9952, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 15455, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9953, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15456, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9954, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15457, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9955, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15458, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9961, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CHOP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 9963, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15466, __pyx_L1_error) /*try:*/ { @@ -188828,7 +258322,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHOMINGPIGEON_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CHOP_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -188841,9 +258335,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fil } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9967, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15470, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -188852,7 +258346,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLHOMINGPIGEON_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CHOP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -188956,36 +258450,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9978, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CHOP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9979, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9979, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9979, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15482, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9979, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15482, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9979, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 9979, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 15482, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9979, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9979, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15482, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 9979, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 15482, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -189003,10 +258494,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fil __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -189015,7 +258505,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fil - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -189028,22 +258518,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fil /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update, "CDLHOMINGPIGEON_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CHOP_Stream_6update, "CHOP_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -189051,7 +258540,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -189067,66 +258556,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9981, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15484, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9981, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9981, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9981, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9981, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9981, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9981, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15484, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 15484, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9981, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15484, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9981, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15484, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9981, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9981, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15484, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9982, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9982, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9982, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9982, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15485, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15485, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15485, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9981, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15484, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CHOP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -189135,13 +258617,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CHOP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -189164,7 +258645,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHOMINGPIGEON_Update(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CHOP_Update(((TA_CHOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -189192,13 +258673,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9989, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CHOP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9990, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -189215,7 +258696,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -189227,22 +258708,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek, "CDLHOMINGPIGEON_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CHOP_Stream_8peek, "CHOP_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -189250,7 +258730,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -189266,66 +258746,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9992, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15495, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9992, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15495, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15495, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15495, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9992, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9992, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15495, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 15495, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15495, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15495, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9992, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15495, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9993, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9993, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9993, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9993, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15496, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15496, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15496, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9992, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15495, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CHOP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -189334,13 +258807,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CHOP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -189363,7 +258835,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHOMINGPIGEON_Peek(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CHOP_Peek(((TA_CHOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -189391,13 +258863,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10000, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CHOP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10001, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -189414,7 +258886,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -189426,22 +258898,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CHOP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CHOP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -189464,7 +258936,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value___get_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLHOMINGPIGEON_Value(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CHOP_Value(((TA_CHOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -189492,13 +258964,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value___get_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10011, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CHOP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10012, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -189515,7 +258987,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value___get_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -189526,12 +258998,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value___get_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CHOP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHOMINGPIGEON_OutRange(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CHOP_OutRange(((TA_CHOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -189542,12 +259014,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__out_range(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CHOP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLHOMINGPIGEON_Advance(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CHOP_Advance(((TA_CHOP_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -189559,15 +259031,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__advance(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy, "CDLHOMINGPIGEON_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CHOP_Stream_10copy, "CHOP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -189593,16 +259065,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CHOP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self) { - TA_CDLHOMINGPIGEON_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CHOP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_self) { + TA_CHOP_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -189619,18 +259091,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10023, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream))))) __PYX_ERR(3, 10023, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream))))) __PYX_ERR(3, 15526, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -189644,7 +259116,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLHOMINGPIGEON_Clone(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CHOP_Clone(((TA_CHOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -189687,7 +259159,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10033, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CHOP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -189709,7 +259181,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -189722,19 +259194,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -189748,7 +259220,7 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream___dealloc__(str if (__pyx_t_1) { - (void)(TA_CDLIDENTICAL3CROWS_Close(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CHOPTR_Close(((TA_CHOPTR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -189774,24 +259246,24 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream___dealloc__(str /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -189812,77 +259284,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10055, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15560, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10055, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15560, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10055, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15560, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10055, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15560, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10055, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15560, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10055, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10055, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15560, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 15560, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10055, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10055, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10055, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10055, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15560, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15560, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15560, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15560, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15560, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10055, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 15560, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOPTR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static int __pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -189890,8 +259371,8 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(struct npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLIDENTICAL3CROWS_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_CHOPTR_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -189906,55 +259387,47 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10056, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10057, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10058, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10059, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10060, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10060, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10060, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15564, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10060, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15564, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10060, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 15564, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10061, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15565, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10062, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15566, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10063, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15567, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10068, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15572, __pyx_L1_error) /*try:*/ { @@ -189964,9 +259437,9 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(struct __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLIDENTICAL3CROWS_Lookback() + 1); + __pyx_v_need = (TA_CHOPTR_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CHOPTR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -189983,7 +259456,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(struct if (__pyx_t_4) { - (void)(TA_CDLIDENTICAL3CROWS_Close(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CHOPTR_Close(((TA_CHOPTR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -190051,7 +259524,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10085, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CHOPTR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -190063,10 +259536,9 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(struct goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOPTR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -190085,26 +259557,26 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill, "CDLIDENTICAL3CROWS_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CHOPTR_Stream_4open_and_fill, "CHOPTR_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13CHOPTR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CHOPTR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -190125,77 +259597,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10087, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15591, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15591, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15591, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15591, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15591, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10087, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10087, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15591, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 15591, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10087, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10087, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10087, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10087, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15591, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15591, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15591, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15592, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10087, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 15591, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOPTR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -190204,11 +259685,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_ int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLIDENTICAL3CROWS_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_stream = 0; + TA_CHOPTR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -190230,60 +259711,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10089, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10090, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10091, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10092, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10093, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10093, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10093, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15596, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10093, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15596, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10093, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 15596, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10094, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15597, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10095, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15598, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10096, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15599, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10102, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CHOPTR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10104, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15607, __pyx_L1_error) /*try:*/ { @@ -190293,7 +259766,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLIDENTICAL3CROWS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CHOPTR_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -190306,9 +259779,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10108, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15611, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -190317,7 +259790,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CHOPTR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -190421,36 +259894,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10119, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CHOPTR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10120, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10120, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10120, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15623, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10120, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15623, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10120, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10120, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 15623, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10120, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10120, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15623, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10120, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 15623, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -190468,10 +259938,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOPTR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -190480,7 +259949,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -190493,22 +259962,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update, "CDLIDENTICAL3CROWS_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CHOPTR_Stream_6update, "CHOPTR_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -190516,7 +259984,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -190532,66 +260000,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10122, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15625, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10122, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15625, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15625, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15625, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10122, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10122, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15625, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 15625, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15625, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15625, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10122, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15625, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10123, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10123, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10123, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10123, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15626, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15626, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15626, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10122, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15625, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOPTR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -190600,13 +260061,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -190629,7 +260089,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Update(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CHOPTR_Update(((TA_CHOPTR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -190657,13 +260117,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10130, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CHOPTR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10131, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -190680,7 +260140,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOPTR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -190692,22 +260152,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update(st /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek, "CDLIDENTICAL3CROWS_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CHOPTR_Stream_8peek, "CHOPTR_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -190715,7 +260174,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -190731,66 +260190,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10133, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15636, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10133, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15636, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15636, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15636, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10133, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10133, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15636, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 15636, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15636, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15636, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10133, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15636, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10134, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10134, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10134, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10134, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15637, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15637, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15637, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10133, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15636, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOPTR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -190799,13 +260251,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -190828,7 +260279,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Peek(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CHOPTR_Peek(((TA_CHOPTR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -190856,13 +260307,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10141, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CHOPTR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10142, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -190879,7 +260330,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOPTR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -190891,22 +260342,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -190929,7 +260380,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value___g __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Value(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CHOPTR_Value(((TA_CHOPTR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -190957,13 +260408,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value___g if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10152, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CHOPTR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10153, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -190980,7 +260431,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value___g /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOPTR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -190991,12 +260442,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value___g } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CHOPTR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLIDENTICAL3CROWS_OutRange(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CHOPTR_OutRange(((TA_CHOPTR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -191007,12 +260458,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__out_range } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CHOPTR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLIDENTICAL3CROWS_Advance(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CHOPTR_Advance(((TA_CHOPTR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -191024,15 +260475,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__advance(s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy, "CDLIDENTICAL3CROWS_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CHOPTR_Stream_10copy, "CHOPTR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -191058,16 +260509,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self) { - TA_CDLIDENTICAL3CROWS_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CHOPTR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_self) { + TA_CHOPTR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -191084,18 +260535,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(str __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10164, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream))))) __PYX_ERR(3, 10164, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream))))) __PYX_ERR(3, 15667, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -191109,7 +260560,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Clone(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CHOPTR_Clone(((TA_CHOPTR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -191152,7 +260603,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(str if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10174, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CHOPTR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -191174,7 +260625,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(str __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CHOPTR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -191187,19 +260638,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(str /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11CKSP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11CKSP_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11CKSP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11CKSP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -191213,7 +260664,7 @@ static void __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream___dealloc__(struct __pyx if (__pyx_t_1) { - (void)(TA_CDLINNECK_Close(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CKSP_Close(((TA_CKSP_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -191239,29 +260690,31 @@ static void __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream___dealloc__(struct __pyx /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11CKSP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11CKSP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + double __pyx_v_multiplier; + int __pyx_v_stopperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -191277,77 +260730,114 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,&__pyx_mstate_global->__pyx_n_u_stopperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10196, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15704, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15704, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15704, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15704, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15704, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15704, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15704, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10196, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10196, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15704, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 15704, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10196, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10196, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10196, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10196, __pyx_L3_error) + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15704, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15704, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15704, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15704, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15704, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15704, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15704, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15704, __pyx_L3_error) + } else { + __pyx_v_multiplier = ((double)1.0); + } + if (values[5]) { + __pyx_v_stopperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_stopperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15704, __pyx_L3_error) + } else { + __pyx_v_stopperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10196, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 15704, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CKSP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CKSP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier, __pyx_v_stopperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static int __pyx_pf_5talib_7_ta_lib_11CKSP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier, int __pyx_v_stopperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -191355,8 +260845,9 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(struct __pyx_ob npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLINNECK_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_CKSP_Stream *__pyx_v_handle; + double __pyx_v_outhighstop; + double __pyx_v_outlowstop; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -191371,55 +260862,47 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10198, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10199, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10200, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10201, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10201, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10201, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15708, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10201, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15708, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10201, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 15708, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10202, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15709, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10203, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15710, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10204, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15711, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10209, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15717, __pyx_L1_error) /*try:*/ { @@ -191429,9 +260912,9 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(struct __pyx_ob __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLINNECK_Lookback() + 1); + __pyx_v_need = (TA_CKSP_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier, __pyx_v_stopperiod) + 1); - __pyx_v_retCode = TA_CDLINNECK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CKSP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_multiplier, __pyx_v_stopperiod, (&__pyx_v_outhighstop), (&__pyx_v_outlowstop)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -191448,7 +260931,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - (void)(TA_CDLINNECK_Close(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CKSP_Close(((TA_CKSP_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -191516,7 +260999,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10226, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CKSP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -191528,10 +261011,9 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(struct __pyx_ob goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CKSP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -191544,37 +261026,40 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(struct __pyx_ob + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill, "CDLINNECK_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CKSP_Stream_4open_and_fill, "CKSP_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000, double multiplier=1.0, int stopperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11CKSP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CKSP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + double __pyx_v_multiplier; + int __pyx_v_stopperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -191590,77 +261075,114 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,&__pyx_mstate_global->__pyx_n_u_stopperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10228, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15736, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15736, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15736, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10228, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15736, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10228, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15736, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10228, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15736, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10228, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15736, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10228, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10228, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15736, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 15736, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10228, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10228, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10228, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10228, __pyx_L3_error) + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15736, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15736, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15736, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15736, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15736, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15736, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15737, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15737, __pyx_L3_error) + } else { + __pyx_v_multiplier = ((double)1.0); + } + if (values[5]) { + __pyx_v_stopperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_stopperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15737, __pyx_L3_error) + } else { + __pyx_v_stopperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10228, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 15736, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CKSP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CKSP_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier, __pyx_v_stopperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CKSP_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier, int __pyx_v_stopperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -191669,11 +261191,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyOb int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outhighstop = 0; + PyArrayObject *__pyx_v_outlowstop = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLINNECK_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_stream = 0; + TA_CKSP_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -191690,65 +261213,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyOb PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10231, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10232, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10233, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10234, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10234, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10234, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15741, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10234, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15741, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10234, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 15741, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10235, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15742, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10236, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15743, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10237, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15744, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLINNECK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10243, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CKSP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10245, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15753, __pyx_L1_error) /*try:*/ { @@ -191758,7 +261274,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINNECK_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CKSP_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier, __pyx_v_stopperiod)); } /*finally:*/ { @@ -191771,9 +261287,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyOb } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10249, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15757, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outhighstop = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15758, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outlowstop = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -191782,7 +261303,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLINNECK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CKSP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_multiplier, __pyx_v_stopperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhighstop)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowstop)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -191886,46 +261407,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10260, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CKSP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10261, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10261, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10261, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15770, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10261, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15770, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10261, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10261, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 15770, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outhighstop)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10261, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15770, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15770, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 15770, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outlowstop)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 15770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10261, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10261, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 15770, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 15770, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 15770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15770, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 15770, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -191933,10 +261473,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyOb __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.CKSP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -191945,7 +261485,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyOb - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outhighstop); + __Pyx_XDECREF((PyObject *)__pyx_v_outlowstop); @@ -191958,22 +261499,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_6update, "CDLINNECK_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CKSP_Stream_6update, "CKSP_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -191981,7 +261521,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -191997,66 +261537,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10263, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15772, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10263, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15772, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15772, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15772, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10263, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10263, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15772, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 15772, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15772, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15772, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10263, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15772, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10264, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10264, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10264, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10264, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15773, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15773, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15773, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10263, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15772, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CKSP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CKSP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -192065,19 +261598,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CKSP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outhighstop; + double __pyx_v_outlowstop; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -192094,7 +261629,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_6update(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLINNECK_Update(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CKSP_Update(((TA_CKSP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outhighstop), (&__pyx_v_outlowstop)); } /*finally:*/ { @@ -192122,34 +261657,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_6update(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10271, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CKSP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10272, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhighstop); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowstop); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 15782, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 15782, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CKSP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -192157,22 +261705,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_6update(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_8peek, "CDLINNECK_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CKSP_Stream_8peek, "CKSP_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -192180,7 +261727,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -192196,66 +261743,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10274, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15784, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10274, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10274, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10274, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10274, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10274, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10274, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15784, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 15784, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10274, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15784, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10274, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15784, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10274, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10274, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15784, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10275, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10275, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10275, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10275, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15785, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15785, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15785, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10274, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15784, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CKSP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CKSP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -192264,19 +261804,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CKSP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outhighstop; + double __pyx_v_outlowstop; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -192293,7 +261835,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_8peek(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLINNECK_Peek(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CKSP_Peek(((TA_CKSP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outhighstop), (&__pyx_v_outlowstop)); } /*finally:*/ { @@ -192321,34 +261863,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_8peek(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10282, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CKSP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10283, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhighstop); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowstop); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 15794, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 15794, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CKSP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -192356,28 +261911,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_8peek(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CKSP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CKSP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self) { + double __pyx_v_outhighstop; + double __pyx_v_outlowstop; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -192394,7 +261952,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_5value___get__(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLINNECK_Value(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CKSP_Value(((TA_CKSP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outhighstop), (&__pyx_v_outlowstop)); } /*finally:*/ { @@ -192422,46 +261980,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_5value___get__(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10293, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CKSP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10294, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhighstop); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowstop); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 15806, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 15806, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CKSP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CKSP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLINNECK_OutRange(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CKSP_OutRange(((TA_CKSP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -192472,12 +262043,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__out_range(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CKSP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLINNECK_Advance(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CKSP_Advance(((TA_CKSP_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -192489,15 +262060,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__advance(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_10copy, "CDLINNECK_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CKSP_Stream_10copy, "CKSP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -192523,16 +262094,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CKSP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self) { - TA_CDLINNECK_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CKSP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_self) { + TA_CKSP_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -192549,18 +262120,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(struct __pyx __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10305, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream))))) __PYX_ERR(3, 10305, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream))))) __PYX_ERR(3, 15817, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -192574,7 +262145,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLINNECK_Clone(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CKSP_Clone(((TA_CKSP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -192617,7 +262188,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(struct __pyx if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10315, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CKSP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -192639,7 +262210,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(struct __pyx __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CKSP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -192652,19 +262223,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(struct __pyx /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10CMF_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10CMF_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10CMF_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10CMF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -192678,7 +262249,7 @@ static void __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream___dealloc__(stru if (__pyx_t_1) { - (void)(TA_CDLINVERTEDHAMMER_Close(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CMF_Close(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -192704,29 +262275,30 @@ static void __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream___dealloc__(stru /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10CMF_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10CMF_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -192742,86 +262314,103 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10337, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15851, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15851, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15851, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15851, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15851, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15851, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10337, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15851, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10337, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 15851, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10337, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10337, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10337, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10337, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15851, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15851, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15851, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15851, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15851, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15851, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10337, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 15851, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static int __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLINVERTEDHAMMER_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_CMF_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -192836,55 +262425,55 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10338, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10339, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10340, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10341, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10342, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10342, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10342, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15856, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10342, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15856, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10342, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 15856, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 15856, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10343, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15857, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10344, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15858, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10345, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15859, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10350, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15864, __pyx_L1_error) /*try:*/ { @@ -192894,9 +262483,9 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(struct __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLINVERTEDHAMMER_Lookback() + 1); + __pyx_v_need = (TA_CMF_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CMF_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -192913,7 +262502,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(struct if (__pyx_t_4) { - (void)(TA_CDLINVERTEDHAMMER_Close(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CMF_Close(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -192981,7 +262570,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10367, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMF_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -192993,13 +262582,13 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(struct goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -193015,31 +262604,32 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill, "CDLINVERTEDHAMMER_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMF_Stream_4open_and_fill, "CMF_Stream.open_and_fill(high, low, close, volume, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10CMF_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMF_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -193055,90 +262645,107 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10369, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15883, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15883, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15883, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15883, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15883, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15883, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10369, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15883, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10369, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 15883, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10369, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10369, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10369, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10369, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15883, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15883, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15883, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15883, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15883, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15884, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10369, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 15883, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLINVERTEDHAMMER_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_stream = 0; + TA_CMF_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -193160,60 +262767,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10371, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10372, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10373, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10374, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10375, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10375, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10375, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15889, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10375, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15889, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10375, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 15889, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 15889, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10376, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15890, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10377, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15891, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10378, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15892, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10384, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10386, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15900, __pyx_L1_error) /*try:*/ { @@ -193223,7 +262830,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_f __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINVERTEDHAMMER_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CMF_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -193236,9 +262843,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_f } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10390, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15904, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -193247,7 +262854,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_f __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLINVERTEDHAMMER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CMF_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -193351,36 +262958,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_f if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10401, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10402, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15916, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15916, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10402, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 15916, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 15916, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10402, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15916, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 15916, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -193398,19 +263005,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_f __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -193423,25 +263030,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_f /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update, "CDLINVERTEDHAMMER_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMF_Stream_6update, "CMF_Stream.update(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -193462,66 +263069,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10404, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15918, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10404, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15918, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10404, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15918, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10404, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15918, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10404, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15918, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10404, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15918, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10404, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 15918, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10404, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15918, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10404, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15918, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10404, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15918, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10404, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15918, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10405, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10405, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10405, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10405, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15919, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15919, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15919, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15919, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10404, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 15918, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -193535,8 +263142,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -193559,7 +263166,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Update(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CMF_Update(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -193587,13 +263194,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10412, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10413, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -193610,7 +263217,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -193622,25 +263229,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek, "CDLINVERTEDHAMMER_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMF_Stream_8peek, "CMF_Stream.peek(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -193661,66 +263268,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10415, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15929, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10415, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15929, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10415, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 15929, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15929, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15929, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15929, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15929, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10416, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10416, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10416, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10416, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15930, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15930, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15930, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15930, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10415, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 15929, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -193734,8 +263341,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -193758,7 +263365,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Peek(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CMF_Peek(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -193786,13 +263393,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10423, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10424, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -193809,7 +263416,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -193821,22 +263428,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -193859,7 +263466,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value___ge __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Value(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CMF_Value(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -193887,13 +263494,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value___ge if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10434, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10435, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -193910,7 +263517,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value___ge /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -193921,12 +263528,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value___ge } -static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLINVERTEDHAMMER_OutRange(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CMF_OutRange(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -193937,12 +263544,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__out_range( } -static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLINVERTEDHAMMER_Advance(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CMF_Advance(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -193954,15 +263561,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__advance(st /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy, "CDLINVERTEDHAMMER_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMF_Stream_10copy, "CMF_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -193988,16 +263595,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self) { - TA_CDLINVERTEDHAMMER_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self) { + TA_CMF_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -194014,18 +263621,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(stru __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10446, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream))))) __PYX_ERR(3, 10446, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream))))) __PYX_ERR(3, 15960, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -194039,7 +263646,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Clone(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CMF_Clone(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -194082,7 +263689,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(stru if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10456, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -194104,7 +263711,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(stru __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -194117,19 +263724,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(stru /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10CMO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10CMO_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10CMO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10CMO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -194143,7 +263750,7 @@ static void __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream___dealloc__(struct __py if (__pyx_t_1) { - (void)(TA_CDLKICKING_Close(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CMO_Close(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -194169,29 +263776,27 @@ static void __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream___dealloc__(struct __py /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10CMO_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10CMO_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -194207,86 +263812,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10478, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15994, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10478, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10478, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10478, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10478, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15994, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 15994, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10478, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10478, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10478, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10478, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15994, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15994, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15994, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10478, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15994, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLKICKING_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_CMO_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -194301,55 +263899,31 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10479, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10480, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10481, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10482, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10483, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10483, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10483, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10483, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10483, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15996, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10484, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15997, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10485, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15998, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10486, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15999, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10491, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16004, __pyx_L1_error) /*try:*/ { @@ -194359,9 +263933,9 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(struct __pyx_o __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLKICKING_Lookback() + 1); + __pyx_v_need = (TA_CMO_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLKICKING_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CMO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -194378,7 +263952,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - (void)(TA_CDLKICKING_Close(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CMO_Close(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -194446,7 +264020,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10508, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -194458,13 +264032,10 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(struct __pyx_o goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -194480,31 +264051,29 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill, "CDLKICKING_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMO_Stream_4open_and_fill, "CMO_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10CMO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -194520,90 +264089,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10510, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16023, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10510, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10510, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10510, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16023, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10510, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16023, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10510, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10510, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16023, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16023, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10510, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10510, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10510, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10510, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16023, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16023, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16024, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10510, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16023, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLKICKING_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_stream = 0; + TA_CMO_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -194625,60 +264187,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10512, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10513, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10514, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10515, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10516, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10516, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10516, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10516, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10516, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16026, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10517, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16027, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10518, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16028, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10519, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16029, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLKICKING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10525, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10527, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16037, __pyx_L1_error) /*try:*/ { @@ -194688,7 +264226,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKING_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CMO_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -194701,9 +264239,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyO } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10531, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16041, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -194712,7 +264250,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLKICKING_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CMO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -194816,36 +264354,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10542, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10543, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10543, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10543, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10543, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10543, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10543, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16053, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10543, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10543, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16053, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10543, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 16053, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -194863,19 +264392,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyO __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -194888,30 +264414,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_6update, "CDLKICKING_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMO_Stream_6update, "CMO_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -194927,81 +264450,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10545, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16055, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10545, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10545, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10545, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16055, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10545, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10545, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16055, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16055, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10545, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10545, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10545, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16055, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10546, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10546, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10546, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10546, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16056, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10545, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16055, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -195024,7 +264523,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_6update(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLKICKING_Update(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CMO_Update(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -195052,13 +264551,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_6update(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10553, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10554, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -195075,7 +264574,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_6update(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -195087,30 +264586,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_6update(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_8peek, "CDLKICKING_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMO_Stream_8peek, "CMO_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -195126,81 +264622,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10556, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16066, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10556, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10556, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10556, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10556, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16066, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10556, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10556, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16066, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16066, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10556, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10556, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10556, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10556, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16066, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10557, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10557, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10557, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10557, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16067, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10556, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16066, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -195223,7 +264695,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_8peek(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLKICKING_Peek(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CMO_Peek(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -195251,13 +264723,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_8peek(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10564, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10565, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -195274,7 +264746,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_8peek(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -195286,22 +264758,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_8peek(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -195324,7 +264796,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_5value___get__(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLKICKING_Value(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CMO_Value(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -195352,13 +264824,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_5value___get__(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10575, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10576, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -195375,7 +264847,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_5value___get__(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -195386,12 +264858,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_5value___get__(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLKICKING_OutRange(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CMO_OutRange(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -195402,12 +264874,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLKICKING_Advance(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CMO_Advance(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -195419,15 +264891,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__advance(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_10copy, "CDLKICKING_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMO_Stream_10copy, "CMO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -195453,16 +264925,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self) { - TA_CDLKICKING_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self) { + TA_CMO_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -195479,18 +264951,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(struct __py __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10587, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream))))) __PYX_ERR(3, 10587, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream))))) __PYX_ERR(3, 16097, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -195504,7 +264976,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLKICKING_Clone(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CMO_Clone(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -195547,7 +265019,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(struct __py if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10597, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -195569,7 +265041,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(struct __py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -195582,19 +265054,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(struct __py /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11CMOU_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11CMOU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -195608,7 +265080,7 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream___dealloc__(str if (__pyx_t_1) { - (void)(TA_CDLKICKINGBYLENGTH_Close(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CMOU_Close(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -195634,29 +265106,27 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream___dealloc__(str /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -195672,86 +265142,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10619, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16131, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10619, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10619, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10619, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10619, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16131, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16131, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10619, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10619, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10619, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10619, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16131, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16131, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16131, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10619, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16131, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLKICKINGBYLENGTH_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_CMOU_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -195766,55 +265229,31 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10620, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10621, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10622, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10623, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10624, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10624, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10624, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10624, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10624, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16133, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10625, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16134, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10626, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16135, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10627, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16136, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10632, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16141, __pyx_L1_error) /*try:*/ { @@ -195824,9 +265263,9 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(struct __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLKICKINGBYLENGTH_Lookback() + 1); + __pyx_v_need = (TA_CMOU_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CMOU_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -195843,7 +265282,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(struct if (__pyx_t_4) { - (void)(TA_CDLKICKINGBYLENGTH_Close(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CMOU_Close(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -195911,7 +265350,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10649, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -195923,13 +265362,10 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(struct goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -195945,31 +265381,29 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill, "CDLKICKINGBYLENGTH_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill, "CMOU_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -195985,90 +265419,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10651, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16160, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10651, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10651, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10651, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16160, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10651, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16160, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10651, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10651, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16160, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16160, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10651, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10651, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10651, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10651, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16160, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16160, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16161, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10651, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16160, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLKICKINGBYLENGTH_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_stream = 0; + TA_CMOU_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -196090,60 +265517,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10653, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10654, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10655, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10656, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10657, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10657, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10657, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10657, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10657, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16163, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10658, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16164, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10659, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16165, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10660, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16166, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10666, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMOU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10668, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16174, __pyx_L1_error) /*try:*/ { @@ -196153,7 +265556,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKINGBYLENGTH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CMOU_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -196166,9 +265569,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10672, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16178, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -196177,7 +265580,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CMOU_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -196281,36 +265684,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10683, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMOU_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10684, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10684, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10684, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10684, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10684, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10684, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16190, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10684, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10684, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16190, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10684, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 16190, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -196328,19 +265722,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -196353,30 +265744,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update, "CDLKICKINGBYLENGTH_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CMOU_Stream_6update, "CMOU_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -196392,81 +265780,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10686, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16192, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10686, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10686, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10686, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16192, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10686, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10686, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16192, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16192, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10686, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10686, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10686, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16192, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10687, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10687, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10687, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10687, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16193, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10686, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16192, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -196489,7 +265853,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Update(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CMOU_Update(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -196517,13 +265881,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10694, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10695, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -196540,7 +265904,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -196552,30 +265916,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update(st /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek, "CDLKICKINGBYLENGTH_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CMOU_Stream_8peek, "CMOU_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -196591,81 +265952,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10697, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16203, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10697, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10697, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10697, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10697, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10697, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10697, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16203, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16203, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10697, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10697, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10697, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10697, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16203, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10698, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10698, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10698, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10698, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16204, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10697, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16203, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -196688,7 +266025,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Peek(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CMOU_Peek(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -196716,13 +266053,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10705, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10706, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -196739,7 +266076,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -196751,22 +266088,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -196789,7 +266126,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value___g __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Value(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CMOU_Value(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -196817,13 +266154,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value___g if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10716, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10717, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -196840,7 +266177,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value___g /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -196851,12 +266188,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value___g } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CMOU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLKICKINGBYLENGTH_OutRange(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CMOU_OutRange(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -196867,12 +266204,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__out_range } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CMOU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLKICKINGBYLENGTH_Advance(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CMOU_Advance(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -196884,15 +266221,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__advance(s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy, "CDLKICKINGBYLENGTH_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CMOU_Stream_10copy, "CMOU_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -196918,16 +266255,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self) { - TA_CDLKICKINGBYLENGTH_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self) { + TA_CMOU_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -196944,18 +266281,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(str __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10728, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream))))) __PYX_ERR(3, 10728, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream))))) __PYX_ERR(3, 16234, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -196969,7 +266306,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Clone(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CMOU_Clone(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -197012,7 +266349,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(str if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10738, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -197034,7 +266371,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(str __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -197047,19 +266384,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(str /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -197073,7 +266410,7 @@ static void __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_CDLLADDERBOTTOM_Close(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_COPPOCK_Close(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -197099,24 +266436,24 @@ static void __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_wmaperiod; + int __pyx_v_roc1period; + int __pyx_v_roc2period; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -197137,86 +266474,107 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10760, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16270, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10760, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16270, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10760, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16270, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10760, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16270, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10760, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16270, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10760, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10760, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16270, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 16270, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10760, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10760, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10760, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10760, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16270, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16270, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16270, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16270, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16270, __pyx_L3_error) + } else { + __pyx_v_wmaperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16270, __pyx_L3_error) + } else { + __pyx_v_roc1period = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16270, __pyx_L3_error) + } else { + __pyx_v_roc2period = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10760, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 16270, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLLADDERBOTTOM_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_COPPOCK_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -197231,55 +266589,31 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10762, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10763, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10765, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10765, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10765, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10765, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10765, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16272, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10766, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16273, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10767, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16274, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10768, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16275, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10773, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16280, __pyx_L1_error) /*try:*/ { @@ -197289,9 +266623,9 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(struct __ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLLADDERBOTTOM_Lookback() + 1); + __pyx_v_need = (TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period) + 1); - __pyx_v_retCode = TA_CDLLADDERBOTTOM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_COPPOCK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -197308,7 +266642,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(struct __ if (__pyx_t_4) { - (void)(TA_CDLLADDERBOTTOM_Close(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_COPPOCK_Close(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -197376,7 +266710,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10790, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -197388,13 +266722,10 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(struct __ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -197410,26 +266741,26 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill, "CDLLADDERBOTTOM_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill, "COPPOCK_Stream.open_and_fill(real, int wmaperiod=-0x80000000, int roc1period=-0x80000000, int roc2period=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_wmaperiod; + int __pyx_v_roc1period; + int __pyx_v_roc2period; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -197450,90 +266781,111 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10792, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16299, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10792, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10792, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10792, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10792, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10792, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10792, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16299, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 16299, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10792, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10792, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10792, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10792, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16299, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16299, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16299, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16299, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16300, __pyx_L3_error) + } else { + __pyx_v_wmaperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16300, __pyx_L3_error) + } else { + __pyx_v_roc1period = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16300, __pyx_L3_error) + } else { + __pyx_v_roc2period = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10792, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 16299, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(__pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLLADDERBOTTOM_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_stream = 0; + TA_COPPOCK_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -197555,60 +266907,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10794, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10795, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10796, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10798, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10798, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10798, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10798, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10798, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16302, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10799, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16303, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10800, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16304, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10801, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16305, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10807, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COPPOCK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10809, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16313, __pyx_L1_error) /*try:*/ { @@ -197618,7 +266946,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLADDERBOTTOM_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period)); } /*finally:*/ { @@ -197631,9 +266959,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fil } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10813, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16317, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -197642,7 +266970,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLLADDERBOTTOM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_COPPOCK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -197746,36 +267074,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10824, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10825, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10825, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10825, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10825, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10825, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10825, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16329, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10825, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10825, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16329, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10825, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 16329, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -197793,19 +267112,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fil __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -197818,30 +267134,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fil /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update, "CDLLADDERBOTTOM_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_6update, "COPPOCK_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -197857,81 +267170,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10827, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16331, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10827, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10827, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10827, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16331, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10827, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10827, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16331, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16331, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10827, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10827, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10827, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16331, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10828, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10828, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10828, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10828, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16332, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10827, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16331, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -197954,7 +267243,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLLADDERBOTTOM_Update(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_COPPOCK_Update(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -197982,13 +267271,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10835, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10836, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -198005,7 +267294,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -198017,30 +267306,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek, "CDLLADDERBOTTOM_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_8peek, "COPPOCK_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -198056,81 +267342,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10838, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16342, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10838, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10838, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10838, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10838, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16342, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10838, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10838, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16342, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16342, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10838, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10838, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10838, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10838, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16342, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10839, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10839, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10839, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10839, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16343, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10838, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16342, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -198153,7 +267415,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLLADDERBOTTOM_Peek(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_COPPOCK_Peek(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -198181,13 +267443,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10846, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10847, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -198204,7 +267466,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -198216,22 +267478,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -198254,7 +267516,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value___get_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLLADDERBOTTOM_Value(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_COPPOCK_Value(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -198282,13 +267544,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value___get_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10857, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10858, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -198305,7 +267567,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value___get_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -198316,12 +267578,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value___get_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLLADDERBOTTOM_OutRange(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_COPPOCK_OutRange(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -198332,12 +267594,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__out_range(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLLADDERBOTTOM_Advance(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_COPPOCK_Advance(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -198349,15 +267611,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__advance(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy, "CDLLADDERBOTTOM_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_10copy, "COPPOCK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -198383,16 +267645,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self) { - TA_CDLLADDERBOTTOM_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self) { + TA_COPPOCK_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -198409,18 +267671,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10869, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream))))) __PYX_ERR(3, 10869, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream))))) __PYX_ERR(3, 16373, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -198434,7 +267696,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLLADDERBOTTOM_Clone(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_COPPOCK_Clone(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -198477,7 +267739,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10879, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -198499,7 +267761,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -198512,19 +267774,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13CORREL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13CORREL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -198538,7 +267800,7 @@ static void __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream___dealloc__(stru if (__pyx_t_1) { - (void)(TA_CDLLONGLEGGEDDOJI_Close(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CORREL_Close(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -198564,29 +267826,28 @@ static void __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream___dealloc__(stru /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -198602,86 +267863,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10901, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16408, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10901, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10901, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16408, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10901, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16408, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10901, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16408, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10901, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10901, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16408, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 16408, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10901, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10901, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10901, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10901, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16408, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16408, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16408, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16408, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10901, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16408, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLLONGLEGGEDDOJI_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_CORREL_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -198696,55 +267958,39 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10902, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10904, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10905, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10906, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10906, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10906, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10906, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10906, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 16411, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 16411, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10907, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16412, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10908, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16413, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10909, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16414, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10914, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16419, __pyx_L1_error) /*try:*/ { @@ -198754,9 +268000,9 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(struct __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLLONGLEGGEDDOJI_Lookback() + 1); + __pyx_v_need = (TA_CORREL_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CORREL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -198773,7 +268019,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(struct if (__pyx_t_4) { - (void)(TA_CDLLONGLEGGEDDOJI_Close(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CORREL_Close(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -198841,7 +268087,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10931, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -198853,13 +268099,11 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(struct goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); __Pyx_XDECREF(__pyx_v_arrays); @@ -198875,31 +268119,30 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill, "CDLLONGLEGGEDDOJI_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill, "CORREL_Stream.open_and_fill(real0, real1, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -198915,90 +268158,91 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10933, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16438, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10933, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10933, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10933, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10933, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10933, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10933, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16438, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 16438, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10933, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10933, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10933, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10933, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16438, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16438, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16438, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16439, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10933, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16438, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLLONGLEGGEDDOJI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_stream = 0; + TA_CORREL_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -199020,60 +268264,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10935, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10937, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10938, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10939, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10939, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10939, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10939, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10939, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 16442, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 16442, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10940, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16443, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10941, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16444, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10942, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16445, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10948, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CORREL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 10950, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16453, __pyx_L1_error) /*try:*/ { @@ -199083,7 +268311,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_f __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLEGGEDDOJI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CORREL_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -199096,9 +268324,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_f } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10954, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16457, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -199107,7 +268335,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_f __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CORREL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -199211,36 +268439,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_f if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10965, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CORREL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10966, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10966, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10966, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10966, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10966, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 10966, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real0); + __Pyx_GIVEREF(__pyx_v_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 16469, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_real1); + __Pyx_GIVEREF(__pyx_v_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 16469, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10966, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10966, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16469, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 10966, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 16469, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -199258,19 +268480,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_f __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -199283,30 +268503,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_f /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update, "CDLLONGLEGGEDDOJI_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CORREL_Stream_6update, "CORREL_Stream.update(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real0; + double __pyx_v_real1; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -199322,66 +268540,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10968, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16471, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10968, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10968, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10968, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10968, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16471, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 16471, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16471, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10968, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10968, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16471, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10969, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10969, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10969, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10969, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16472, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16472, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10968, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16471, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -199389,14 +268593,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -199419,7 +268621,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Update(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CORREL_Update(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); } /*finally:*/ { @@ -199447,13 +268649,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10976, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10977, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -199470,7 +268672,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -199482,30 +268684,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek, "CDLLONGLEGGEDDOJI_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CORREL_Stream_8peek, "CORREL_Stream.peek(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real0; + double __pyx_v_real1; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -199521,66 +268721,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10979, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16482, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10979, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10979, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10979, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16482, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10979, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16482, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10979, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10979, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16482, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 16482, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10979, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16482, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10979, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10979, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10979, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16482, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10980, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10980, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10980, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10980, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16483, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16483, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10979, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16482, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -199588,14 +268774,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -199618,7 +268802,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Peek(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CORREL_Peek(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); } /*finally:*/ { @@ -199646,13 +268830,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10987, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10988, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -199669,7 +268853,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -199681,22 +268865,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -199719,7 +268903,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value___ge __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Value(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CORREL_Value(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -199747,13 +268931,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value___ge if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10998, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10999, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -199770,7 +268954,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value___ge /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -199781,12 +268965,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value___ge } -static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CORREL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLLONGLEGGEDDOJI_OutRange(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CORREL_OutRange(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -199797,12 +268981,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__out_range( } -static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CORREL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLLONGLEGGEDDOJI_Advance(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CORREL_Advance(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -199814,15 +268998,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__advance(st /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy, "CDLLONGLEGGEDDOJI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CORREL_Stream_10copy, "CORREL_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -199848,16 +269032,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self) { - TA_CDLLONGLEGGEDDOJI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self) { + TA_CORREL_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -199874,18 +269058,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(stru __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11010, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream))))) __PYX_ERR(3, 11010, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream))))) __PYX_ERR(3, 16513, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -199899,7 +269083,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Clone(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CORREL_Clone(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -199942,7 +269126,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(stru if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11020, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -199964,7 +269148,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(stru __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -199977,19 +269161,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(stru /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10COS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10COS_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10COS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10COS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -200003,7 +269187,7 @@ static void __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream___dealloc__(struct __p if (__pyx_t_1) { - (void)(TA_CDLLONGLINE_Close(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_COS_Close(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -200029,29 +269213,26 @@ static void __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream___dealloc__(struct __p /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10COS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10COS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -200067,66 +269248,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11042, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16545, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11042, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11042, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11042, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11042, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16545, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11042, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 11042, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16545, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 16545, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11042, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11042, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11042, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11042, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16545, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11042, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16545, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -200136,17 +269296,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLLONGLINE_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_COS_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -200161,55 +269318,31 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11043, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11045, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11046, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11047, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11047, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11047, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11047, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11047, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16547, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11048, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16548, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11049, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16549, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11050, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16550, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11055, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16555, __pyx_L1_error) /*try:*/ { @@ -200219,9 +269352,9 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(struct __pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLLONGLINE_Lookback() + 1); + __pyx_v_need = (TA_COS_Lookback() + 1); - __pyx_v_retCode = TA_CDLLONGLINE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_COS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -200238,7 +269371,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - (void)(TA_CDLLONGLINE_Close(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_COS_Close(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -200306,7 +269439,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11072, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -200318,13 +269451,10 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(struct __pyx_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -200340,31 +269470,28 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill, "CDLLONGLINE_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10COS_Stream_4open_and_fill, "COS_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10COS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10COS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10COS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -200380,66 +269507,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11074, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16574, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11074, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11074, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11074, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16574, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11074, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 11074, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16574, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 16574, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11074, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11074, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11074, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16574, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11074, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16574, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -200449,21 +269555,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLLONGLINE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_stream = 0; + TA_COS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -200485,60 +269588,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11076, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11077, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11078, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11079, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11080, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11080, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11080, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11080, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11080, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16577, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11081, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16578, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11082, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16579, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11083, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16580, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLONGLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11089, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11091, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16588, __pyx_L1_error) /*try:*/ { @@ -200548,7 +269627,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLINE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_COS_Lookback()); } /*finally:*/ { @@ -200561,9 +269640,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11095, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16592, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -200572,7 +269651,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLLONGLINE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_COS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -200676,36 +269755,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11106, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11107, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11107, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11107, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11107, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11107, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11107, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16604, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11107, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11107, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16604, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11107, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 16604, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -200723,19 +269793,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(Py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -200748,30 +269815,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update, "CDLLONGLINE_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10COS_Stream_6update, "COS_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -200787,81 +269851,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11109, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16606, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11109, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11109, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11109, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16606, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11109, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11109, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16606, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16606, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11109, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11109, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11109, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16606, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11110, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11110, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11110, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11110, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16607, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11109, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16606, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -200884,7 +269924,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLLONGLINE_Update(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_COS_Update(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -200912,13 +269952,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11117, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11118, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -200935,7 +269975,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -200947,30 +269987,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek, "CDLLONGLINE_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10COS_Stream_8peek, "COS_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -200986,81 +270023,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11120, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16617, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11120, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11120, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11120, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16617, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11120, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11120, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16617, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16617, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11120, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11120, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11120, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16617, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11121, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11121, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11121, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11121, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16618, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11120, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16617, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -201083,7 +270096,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLLONGLINE_Peek(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_COS_Peek(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -201111,13 +270124,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11128, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11129, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -201134,7 +270147,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek(struct __py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -201146,22 +270159,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -201184,7 +270197,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value___get__(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLLONGLINE_Value(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_COS_Value(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -201212,13 +270225,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value___get__(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11139, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11140, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -201235,7 +270248,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value___get__(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -201246,12 +270259,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value___get__(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10COS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLLONGLINE_OutRange(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_COS_OutRange(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -201262,12 +270275,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10COS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLLONGLINE_Advance(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_COS_Advance(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -201279,15 +270292,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__advance(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy, "CDLLONGLINE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10COS_Stream_10copy, "COS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -201313,16 +270326,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self) { - TA_CDLLONGLINE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self) { + TA_COS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -201339,18 +270352,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(struct __p __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11151, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream))))) __PYX_ERR(3, 11151, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream))))) __PYX_ERR(3, 16648, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -201364,7 +270377,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLLONGLINE_Clone(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_COS_Clone(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -201407,7 +270420,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(struct __p if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11161, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -201429,7 +270442,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(struct __p __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -201442,19 +270455,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(struct __p /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11COSH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11COSH_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11COSH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11COSH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -201468,7 +270481,7 @@ static void __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream___dealloc__(struct __p if (__pyx_t_1) { - (void)(TA_CDLMARUBOZU_Close(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_COSH_Close(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -201494,29 +270507,26 @@ static void __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream___dealloc__(struct __p /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11COSH_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11COSH_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -201532,66 +270542,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11183, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16680, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11183, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11183, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11183, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11183, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16680, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11183, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 11183, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16680, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 16680, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11183, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11183, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11183, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11183, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16680, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11183, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16680, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -201601,17 +270590,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLMARUBOZU_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_COSH_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -201626,55 +270612,31 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11187, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11188, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11188, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11188, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11188, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11188, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16682, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11189, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16683, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11190, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16684, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11191, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16685, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11196, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16690, __pyx_L1_error) /*try:*/ { @@ -201684,9 +270646,9 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(struct __pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLMARUBOZU_Lookback() + 1); + __pyx_v_need = (TA_COSH_Lookback() + 1); - __pyx_v_retCode = TA_CDLMARUBOZU_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_COSH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -201703,7 +270665,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - (void)(TA_CDLMARUBOZU_Close(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_COSH_Close(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -201771,7 +270733,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11213, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COSH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -201783,13 +270745,10 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(struct __pyx_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -201805,31 +270764,28 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill, "CDLMARUBOZU_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11COSH_Stream_4open_and_fill, "COSH_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11COSH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11COSH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -201845,66 +270801,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11215, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16709, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11215, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11215, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11215, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11215, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16709, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11215, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 11215, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16709, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 16709, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11215, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11215, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11215, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11215, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16709, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11215, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16709, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -201914,21 +270849,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLMARUBOZU_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_stream = 0; + TA_COSH_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -201950,60 +270882,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11217, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11218, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11219, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11221, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11221, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11221, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11221, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11221, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16712, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11222, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16713, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11223, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16714, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11224, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16715, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMARUBOZU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11230, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COSH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11232, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16723, __pyx_L1_error) /*try:*/ { @@ -202013,7 +270921,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMARUBOZU_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_COSH_Lookback()); } /*finally:*/ { @@ -202026,9 +270934,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11236, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16727, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -202037,7 +270945,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLMARUBOZU_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_COSH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -202141,36 +271049,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11247, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COSH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11248, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11248, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11248, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11248, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11248, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11248, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16739, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11248, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11248, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16739, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11248, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 16739, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -202188,19 +271087,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(Py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -202213,30 +271109,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update, "CDLMARUBOZU_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11COSH_Stream_6update, "COSH_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -202252,81 +271145,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11250, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16741, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11250, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11250, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11250, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16741, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11250, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11250, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16741, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16741, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11250, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11250, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11250, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16741, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11251, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11251, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11251, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11251, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16742, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11250, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16741, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -202349,7 +271218,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMARUBOZU_Update(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_COSH_Update(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -202377,13 +271246,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11258, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11259, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -202400,7 +271269,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -202412,30 +271281,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek, "CDLMARUBOZU_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11COSH_Stream_8peek, "COSH_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -202451,81 +271317,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11261, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16752, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11261, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11261, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11261, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16752, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11261, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11261, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16752, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16752, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11261, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11261, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11261, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16752, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11262, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11262, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11262, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11262, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16753, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11261, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16752, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -202548,7 +271390,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMARUBOZU_Peek(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_COSH_Peek(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -202576,13 +271418,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11269, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11270, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -202599,7 +271441,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek(struct __py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -202611,22 +271453,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -202649,7 +271491,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value___get__(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMARUBOZU_Value(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_COSH_Value(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -202677,13 +271519,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value___get__(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11280, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11281, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -202700,7 +271542,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value___get__(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -202711,12 +271553,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value___get__(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11COSH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLMARUBOZU_OutRange(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_COSH_OutRange(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -202727,12 +271569,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11COSH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLMARUBOZU_Advance(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_COSH_Advance(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -202744,15 +271586,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__advance(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy, "CDLMARUBOZU_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11COSH_Stream_10copy, "COSH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -202778,16 +271620,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self) { - TA_CDLMARUBOZU_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self) { + TA_COSH_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -202804,18 +271646,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(struct __p __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11292, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream))))) __PYX_ERR(3, 11292, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream))))) __PYX_ERR(3, 16783, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -202829,7 +271671,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLMARUBOZU_Clone(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_COSH_Clone(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -202872,7 +271714,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(struct __p if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11302, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -202894,7 +271736,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(struct __p __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -202907,19 +271749,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(struct __p /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11CRSI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11CRSI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11CRSI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11CRSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -202933,7 +271775,7 @@ static void __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_CDLMATCHINGLOW_Close(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CRSI_Close(((TA_CRSI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -202959,24 +271801,24 @@ static void __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11CRSI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11CRSI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_streakperiod; + int __pyx_v_rankperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -202997,86 +271839,107 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_streakperiod,&__pyx_mstate_global->__pyx_n_u_rankperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11324, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16819, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16819, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16819, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16819, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16819, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11324, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 11324, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16819, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 16819, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11324, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11324, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11324, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11324, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16819, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16819, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16819, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16819, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16819, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_streakperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_streakperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16819, __pyx_L3_error) + } else { + __pyx_v_streakperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_rankperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rankperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16819, __pyx_L3_error) + } else { + __pyx_v_rankperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11324, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 16819, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CRSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CRSI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_streakperiod, __pyx_v_rankperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_11CRSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_streakperiod, int __pyx_v_rankperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLMATCHINGLOW_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_CRSI_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -203091,55 +271954,31 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11325, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11326, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11327, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11328, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11329, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11329, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11329, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11329, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11329, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16821, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11330, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16822, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11331, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16823, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11332, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16824, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11337, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16829, __pyx_L1_error) /*try:*/ { @@ -203149,9 +271988,9 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(struct __p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLMATCHINGLOW_Lookback() + 1); + __pyx_v_need = (TA_CRSI_Lookback(__pyx_v_timeperiod, __pyx_v_streakperiod, __pyx_v_rankperiod) + 1); - __pyx_v_retCode = TA_CDLMATCHINGLOW_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CRSI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_streakperiod, __pyx_v_rankperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -203168,7 +272007,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(struct __p if (__pyx_t_4) { - (void)(TA_CDLMATCHINGLOW_Close(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CRSI_Close(((TA_CRSI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -203236,7 +272075,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11354, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CRSI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -203248,13 +272087,10 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(struct __p goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CRSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -203270,26 +272106,26 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill, "CDLMATCHINGLOW_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CRSI_Stream_4open_and_fill, "CRSI_Stream.open_and_fill(real, int timeperiod=-0x80000000, int streakperiod=-0x80000000, int rankperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11CRSI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CRSI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_streakperiod; + int __pyx_v_rankperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -203310,90 +272146,111 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_streakperiod,&__pyx_mstate_global->__pyx_n_u_rankperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11356, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16848, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16848, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16848, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16848, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16848, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11356, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 11356, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16848, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 16848, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11356, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11356, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11356, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11356, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16848, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16848, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16848, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16848, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16849, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_streakperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_streakperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16849, __pyx_L3_error) + } else { + __pyx_v_streakperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_rankperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rankperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16849, __pyx_L3_error) + } else { + __pyx_v_rankperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11356, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 16848, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CRSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CRSI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_streakperiod, __pyx_v_rankperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CRSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_streakperiod, int __pyx_v_rankperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLMATCHINGLOW_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_stream = 0; + TA_CRSI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -203415,60 +272272,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11358, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11360, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11361, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11362, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11362, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11362, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11362, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11362, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16851, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11363, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16852, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11364, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16853, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11365, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16854, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11371, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CRSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11373, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16862, __pyx_L1_error) /*try:*/ { @@ -203478,7 +272311,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATCHINGLOW_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CRSI_Lookback(__pyx_v_timeperiod, __pyx_v_streakperiod, __pyx_v_rankperiod)); } /*finally:*/ { @@ -203491,9 +272324,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11377, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16866, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -203502,7 +272335,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLMATCHINGLOW_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CRSI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_streakperiod, __pyx_v_rankperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -203606,36 +272439,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11388, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CRSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11389, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11389, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11389, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11389, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11389, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11389, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16878, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11389, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11389, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16878, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11389, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 16878, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -203653,19 +272477,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CRSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -203678,30 +272499,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update, "CDLMATCHINGLOW_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CRSI_Stream_6update, "CRSI_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -203717,81 +272535,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11391, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16880, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11391, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11391, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11391, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11391, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11391, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16880, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16880, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11391, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11391, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11391, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16880, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11392, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11392, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11392, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11392, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16881, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11391, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16880, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CRSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CRSI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CRSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -203814,7 +272608,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMATCHINGLOW_Update(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CRSI_Update(((TA_CRSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -203842,13 +272636,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11399, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CRSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11400, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -203865,7 +272659,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CRSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -203877,30 +272671,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek, "CDLMATCHINGLOW_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CRSI_Stream_8peek, "CRSI_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -203916,81 +272707,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11402, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16891, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11402, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11402, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11402, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16891, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11402, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11402, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16891, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16891, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11402, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11402, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11402, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16891, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11403, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11403, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11403, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11403, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16892, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11402, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16891, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CRSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CRSI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CRSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -204013,7 +272780,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMATCHINGLOW_Peek(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CRSI_Peek(((TA_CRSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -204041,13 +272808,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11410, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CRSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11411, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -204064,7 +272831,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CRSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -204076,22 +272843,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CRSI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CRSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -204114,7 +272881,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value___get__ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMATCHINGLOW_Value(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CRSI_Value(((TA_CRSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -204142,13 +272909,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value___get__ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11421, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CRSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11422, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -204165,7 +272932,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value___get__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CRSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -204176,12 +272943,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value___get__ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CRSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLMATCHINGLOW_OutRange(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CRSI_OutRange(((TA_CRSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -204192,12 +272959,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__out_range(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CRSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLMATCHINGLOW_Advance(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CRSI_Advance(((TA_CRSI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -204209,15 +272976,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__advance(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy, "CDLMATCHINGLOW_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CRSI_Stream_10copy, "CRSI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -204243,16 +273010,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CRSI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self) { - TA_CDLMATCHINGLOW_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11CRSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_self) { + TA_CRSI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -204269,18 +273036,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11433, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream))))) __PYX_ERR(3, 11433, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream))))) __PYX_ERR(3, 16922, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -204294,7 +273061,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLMATCHINGLOW_Clone(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CRSI_Clone(((TA_CRSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -204337,7 +273104,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11443, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CRSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -204359,7 +273126,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CRSI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -204372,19 +273139,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10CTI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10CTI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10CTI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10CTI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -204398,7 +273165,7 @@ static void __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream___dealloc__(struct __py if (__pyx_t_1) { - (void)(TA_CDLMATHOLD_Close(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CTI_Close(((TA_CTI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -204424,30 +273191,27 @@ static void __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream___dealloc__(struct __py /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10CTI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10CTI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -204463,82 +273227,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11467, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16956, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 11467, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11467, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11467, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16956, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16956, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11467, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 11467, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16956, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16956, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 11467, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11467, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11467, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16956, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16956, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11467, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16956, __pyx_L3_error) } else { - __pyx_v_penetration = ((double)0.5); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 11467, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16956, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CTI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CTI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -204549,17 +273292,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10CTI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLMATHOLD_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_CTI_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -204574,55 +273314,31 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11468, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11469, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11472, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11472, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11472, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11472, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11472, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16958, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11473, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16959, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11474, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16960, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11475, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16961, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11480, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16966, __pyx_L1_error) /*try:*/ { @@ -204632,9 +273348,9 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(struct __pyx_o __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLMATHOLD_Lookback(__pyx_v_penetration) + 1); + __pyx_v_need = (TA_CTI_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLMATHOLD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CTI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -204651,7 +273367,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - (void)(TA_CDLMATHOLD_Close(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CTI_Close(((TA_CTI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -204719,7 +273435,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11497, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CTI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -204731,13 +273447,10 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(struct __pyx_o goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CTI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -204753,32 +273466,29 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CTI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill, "CDLMATHOLD_Stream.open_and_fill(open, high, low, close, double penetration=0.5)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CTI_Stream_4open_and_fill, "CTI_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10CTI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CTI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CTI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10CTI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -204794,82 +273504,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11499, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16985, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 11499, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11499, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11499, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11499, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16985, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11499, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16985, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11499, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 11499, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16985, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16985, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 11499, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11499, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11499, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11499, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16985, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11499, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16985, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11500, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16986, __pyx_L3_error) } else { - __pyx_v_penetration = ((double)0.5); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 11499, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16985, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CTI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CTI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -204880,21 +273569,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CTI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLMATHOLD_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_stream = 0; + TA_CTI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -204916,60 +273602,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11501, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11502, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11503, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11504, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11505, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11505, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11505, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11505, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11505, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16988, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11506, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16989, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11507, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16990, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11508, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16991, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMATHOLD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11514, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CTI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CTI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11516, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16999, __pyx_L1_error) /*try:*/ { @@ -204979,7 +273641,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATHOLD_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CTI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -204992,9 +273654,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyO } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11520, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17003, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -205003,7 +273665,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLMATHOLD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CTI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -205107,36 +273769,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11531, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CTI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11532, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11532, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11532, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11532, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11532, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11532, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17015, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11532, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11532, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17015, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11532, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 17015, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -205154,19 +273807,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyO __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CTI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -205179,30 +273829,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CTI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update, "CDLMATHOLD_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CTI_Stream_6update, "CTI_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CTI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -205218,81 +273865,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11534, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17017, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11534, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11534, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11534, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11534, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17017, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11534, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11534, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17017, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17017, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11534, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11534, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11534, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11534, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17017, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11535, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11535, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11535, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11535, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17018, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11534, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17017, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CTI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CTI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CTI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -205315,7 +273938,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMATHOLD_Update(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CTI_Update(((TA_CTI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -205343,13 +273966,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11542, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CTI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11543, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -205366,7 +273989,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CTI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -205378,30 +274001,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CTI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek, "CDLMATHOLD_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CTI_Stream_8peek, "CTI_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CTI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -205417,81 +274037,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11545, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17028, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11545, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11545, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11545, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11545, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11545, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17028, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17028, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11545, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11545, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11545, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17028, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11546, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11546, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11546, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11546, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17029, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11545, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17028, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CTI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CTI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CTI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -205514,7 +274110,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMATHOLD_Peek(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CTI_Peek(((TA_CTI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -205542,13 +274138,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11553, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CTI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11554, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -205565,7 +274161,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CTI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -205577,22 +274173,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10CTI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CTI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CTI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CTI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -205615,7 +274211,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value___get__(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMATHOLD_Value(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CTI_Value(((TA_CTI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -205643,13 +274239,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value___get__(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11564, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CTI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11565, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -205666,7 +274262,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value___get__(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CTI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -205677,12 +274273,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value___get__(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CTI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLMATHOLD_OutRange(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CTI_OutRange(((TA_CTI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -205693,12 +274289,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CTI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLMATHOLD_Advance(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CTI_Advance(((TA_CTI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -205710,15 +274306,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__advance(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CTI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy, "CDLMATHOLD_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CTI_Stream_10copy, "CTI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CTI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -205744,16 +274340,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CTI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self) { - TA_CDLMATHOLD_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CTI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_self) { + TA_CTI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -205770,18 +274366,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(struct __py __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CTI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11576, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream))))) __PYX_ERR(3, 11576, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CTI_Stream))))) __PYX_ERR(3, 17059, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -205795,7 +274391,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLMATHOLD_Clone(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CTI_Clone(((TA_CTI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -205838,7 +274434,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(struct __py if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11586, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CTI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -205860,7 +274456,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(struct __py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CTI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -205873,19 +274469,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(struct __py /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -205899,7 +274495,7 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream___dealloc__(str if (__pyx_t_1) { - (void)(TA_CDLMORNINGDOJISTAR_Close(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CUMSUM_Close(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -205925,30 +274521,26 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream___dealloc__(str /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -205964,103 +274556,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11610, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17091, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 11610, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11610, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11610, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11610, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17091, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11610, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 11610, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 11610, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11610, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11610, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11610, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11610, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17091, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 17091, __pyx_L3_error) } } - } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11610, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_penetration = ((double)0.3); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17091, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 11610, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17091, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLMORNINGDOJISTAR_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_CUMSUM_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -206075,55 +274626,31 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11611, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11612, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11613, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11614, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11615, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11615, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11615, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11615, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11615, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17093, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11616, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17094, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11617, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17095, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11618, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17096, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11623, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17101, __pyx_L1_error) /*try:*/ { @@ -206133,9 +274660,9 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(struct __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration) + 1); + __pyx_v_need = (TA_CUMSUM_Lookback() + 1); - __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CUMSUM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -206152,7 +274679,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(struct if (__pyx_t_4) { - (void)(TA_CDLMORNINGDOJISTAR_Close(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CUMSUM_Close(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -206220,7 +274747,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11640, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -206232,13 +274759,10 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(struct goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -206254,32 +274778,28 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill, "CDLMORNINGDOJISTAR_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill, "CUMSUM_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -206295,107 +274815,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11642, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17120, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 11642, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11642, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11642, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11642, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17120, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11642, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 11642, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 11642, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11642, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11642, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11642, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11642, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17120, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 17120, __pyx_L3_error) } } - } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11643, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_penetration = ((double)0.3); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17120, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 11642, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17120, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLMORNINGDOJISTAR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_stream = 0; + TA_CUMSUM_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -206417,60 +274896,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11644, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11645, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11648, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11648, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11648, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11648, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11648, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17123, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11649, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17124, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11650, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17125, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11651, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17126, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11657, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CUMSUM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11659, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17134, __pyx_L1_error) /*try:*/ { @@ -206480,7 +274935,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CUMSUM_Lookback()); } /*finally:*/ { @@ -206493,9 +274948,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11663, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17138, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -206504,7 +274959,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CUMSUM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -206608,36 +275063,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11674, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11675, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11675, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11675, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11675, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11675, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11675, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17150, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11675, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11675, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17150, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11675, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 17150, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -206655,19 +275101,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -206680,30 +275123,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update, "CDLMORNINGDOJISTAR_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_6update, "CUMSUM_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -206719,81 +275159,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11677, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17152, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11677, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11677, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11677, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17152, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11677, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11677, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17152, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17152, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11677, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11677, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11677, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17152, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11678, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11678, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11678, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11678, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17153, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11677, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17152, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -206816,7 +275232,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Update(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CUMSUM_Update(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -206844,13 +275260,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11685, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11686, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -206867,7 +275283,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -206879,30 +275295,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update(st /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek, "CDLMORNINGDOJISTAR_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_8peek, "CUMSUM_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -206918,81 +275331,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11688, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17163, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11688, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11688, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11688, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17163, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11688, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11688, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17163, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17163, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11688, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11688, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11688, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17163, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11689, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11689, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11689, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11689, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17164, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11688, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17163, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -207015,7 +275404,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Peek(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CUMSUM_Peek(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -207043,13 +275432,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11696, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11697, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -207066,7 +275455,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -207078,22 +275467,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -207116,7 +275505,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value___g __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Value(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CUMSUM_Value(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -207144,13 +275533,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value___g if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11707, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11708, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -207167,7 +275556,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value___g /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -207178,12 +275567,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value___g } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLMORNINGDOJISTAR_OutRange(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CUMSUM_OutRange(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -207194,12 +275583,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__out_range } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLMORNINGDOJISTAR_Advance(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CUMSUM_Advance(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -207211,15 +275600,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__advance(s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy, "CDLMORNINGDOJISTAR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_10copy, "CUMSUM_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -207245,16 +275634,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self) { - TA_CDLMORNINGDOJISTAR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self) { + TA_CUMSUM_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -207271,18 +275660,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(str __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11719, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream))))) __PYX_ERR(3, 11719, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream))))) __PYX_ERR(3, 17194, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -207296,7 +275685,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Clone(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CUMSUM_Clone(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -207339,7 +275728,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(str if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11729, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -207361,7 +275750,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(str __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -207374,19 +275763,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(str /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10CVI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10CVI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10CVI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10CVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -207400,7 +275789,7 @@ static void __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_CDLMORNINGSTAR_Close(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CVI_Close(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -207426,30 +275815,29 @@ static void __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10CVI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10CVI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; + int __pyx_v_timeperiod; + int __pyx_v_rocperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -207465,103 +275853,101 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11753, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17229, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 11753, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17229, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17229, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17229, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17229, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11753, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 11753, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17229, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 17229, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 11753, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17229, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17229, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17229, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17229, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11753, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17229, __pyx_L3_error) } else { - __pyx_v_penetration = ((double)0.3); + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17229, __pyx_L3_error) + } else { + __pyx_v_rocperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 11753, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 17229, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { - PyArrayObject *__pyx_v_a_open = 0; +static int __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLMORNINGSTAR_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_CVI_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -207576,55 +275962,39 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11755, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11756, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11758, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11758, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11758, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17232, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11758, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11758, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17232, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11759, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17233, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11760, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17234, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11761, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17235, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11766, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17240, __pyx_L1_error) /*try:*/ { @@ -207634,9 +276004,9 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(struct __p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration) + 1); + __pyx_v_need = (TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod) + 1); - __pyx_v_retCode = TA_CDLMORNINGSTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CVI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -207653,7 +276023,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(struct __p if (__pyx_t_4) { - (void)(TA_CDLMORNINGSTAR_Close(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_CVI_Close(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -207721,7 +276091,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11783, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CVI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -207733,13 +276103,11 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(struct __p goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -207755,32 +276123,31 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill, "CDLMORNINGSTAR_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CVI_Stream_4open_and_fill, "CVI_Stream.open_and_fill(high, low, int timeperiod=-0x80000000, int rocperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10CVI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CVI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - double __pyx_v_penetration; + int __pyx_v_timeperiod; + int __pyx_v_rocperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -207796,107 +276163,105 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11785, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17259, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 11785, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17259, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17259, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17259, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17259, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11785, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 11785, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17259, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 17259, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 11785, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17259, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17259, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17259, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17259, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11786, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17260, __pyx_L3_error) } else { - __pyx_v_penetration = ((double)0.3); + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17260, __pyx_L3_error) + } else { + __pyx_v_rocperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 11785, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 17259, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { - PyArrayObject *__pyx_v_a_open = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLMORNINGSTAR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_stream = 0; + TA_CVI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -207918,60 +276283,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11787, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11788, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11789, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11791, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11791, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11791, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17263, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11791, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11791, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17263, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11792, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17264, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11793, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17265, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11794, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17266, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11800, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11802, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17274, __pyx_L1_error) /*try:*/ { @@ -207981,7 +276330,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod)); } /*finally:*/ { @@ -207994,9 +276343,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11806, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17278, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -208005,7 +276354,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLMORNINGSTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CVI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -208109,36 +276458,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11817, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11818, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11818, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11818, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17290, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11818, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11818, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11818, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17290, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11818, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11818, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17290, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11818, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 17290, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -208156,19 +276499,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -208181,30 +276522,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update, "CDLMORNINGSTAR_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CVI_Stream_6update, "CVI_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; - double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -208220,66 +276559,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11820, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17292, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11820, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11820, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11820, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17292, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11820, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17292, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11820, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11820, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17292, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17292, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11820, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17292, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11820, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11820, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11820, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17292, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11821, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11821, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11821, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11821, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17293, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17293, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11820, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17292, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -208287,14 +276612,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -208317,7 +276640,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMORNINGSTAR_Update(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CVI_Update(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -208345,13 +276668,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11828, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11829, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -208368,7 +276691,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -208380,30 +276703,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek, "CDLMORNINGSTAR_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CVI_Stream_8peek, "CVI_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; - double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -208419,66 +276740,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11831, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17303, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11831, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11831, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11831, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17303, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11831, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17303, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11831, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11831, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17303, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17303, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11831, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17303, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11831, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11831, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11831, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17303, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11832, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11832, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11832, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11832, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17304, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17304, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11831, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17303, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -208486,14 +276793,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -208516,7 +276821,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMORNINGSTAR_Peek(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CVI_Peek(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -208544,13 +276849,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11839, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11840, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -208567,7 +276872,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -208579,22 +276884,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -208617,7 +276922,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value___get__ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLMORNINGSTAR_Value(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_CVI_Value(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -208645,13 +276950,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value___get__ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11850, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11851, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -208668,7 +276973,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value___get__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -208679,12 +276984,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value___get__ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLMORNINGSTAR_OutRange(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_CVI_OutRange(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -208695,12 +277000,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__out_range(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLMORNINGSTAR_Advance(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_CVI_Advance(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -208712,15 +277017,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__advance(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy, "CDLMORNINGSTAR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CVI_Stream_10copy, "CVI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -208746,16 +277051,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self) { - TA_CDLMORNINGSTAR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self) { + TA_CVI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -208772,18 +277077,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11862, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream))))) __PYX_ERR(3, 11862, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream))))) __PYX_ERR(3, 17334, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -208797,7 +277102,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLMORNINGSTAR_Clone(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_CVI_Clone(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -208840,7 +277145,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11872, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -208862,7 +277167,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -208875,19 +277180,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11DEMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11DEMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -208901,7 +277206,7 @@ static void __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream___dealloc__(struct __pyx if (__pyx_t_1) { - (void)(TA_CDLONNECK_Close(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_DEMA_Close(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -208927,29 +277232,27 @@ static void __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream___dealloc__(struct __pyx /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -208965,86 +277268,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11894, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17368, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11894, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11894, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17368, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17368, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11894, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 11894, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17368, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 17368, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11894, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11894, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11894, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11894, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17368, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17368, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17368, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11894, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17368, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLONNECK_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_DEMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -209059,55 +277355,31 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11895, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11896, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11897, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11898, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11899, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11899, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11899, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11899, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11899, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17370, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11900, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17371, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11901, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17372, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11902, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17373, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11907, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17378, __pyx_L1_error) /*try:*/ { @@ -209117,9 +277389,9 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(struct __pyx_ob __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLONNECK_Lookback() + 1); + __pyx_v_need = (TA_DEMA_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLONNECK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DEMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -209136,7 +277408,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - (void)(TA_CDLONNECK_Close(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_DEMA_Close(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -209204,7 +277476,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11924, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -209216,13 +277488,10 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(struct __pyx_ob goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -209238,31 +277507,29 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill, "CDLONNECK_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill, "DEMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -209278,90 +277545,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11926, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17397, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11926, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11926, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17397, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17397, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11926, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 11926, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17397, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 17397, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11926, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11926, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11926, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11926, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17397, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17397, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17398, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11926, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17397, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLONNECK_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_stream = 0; + TA_DEMA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -209383,60 +277643,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11928, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11929, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11930, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11931, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11932, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 11932, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11932, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11932, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 11932, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17400, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11933, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17401, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11934, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17402, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11935, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17403, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLONNECK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11941, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 11943, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17411, __pyx_L1_error) /*try:*/ { @@ -209446,7 +277682,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLONNECK_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_DEMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -209459,9 +277695,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyOb } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11947, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17415, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -209470,7 +277706,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLONNECK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DEMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -209574,36 +277810,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11958, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11959, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 11959, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 11959, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 11959, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 11959, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 11959, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17427, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11959, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11959, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17427, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 11959, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 17427, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -209621,19 +277848,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyOb __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -209646,30 +277870,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_6update, "CDLONNECK_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DEMA_Stream_6update, "DEMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -209685,81 +277906,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11961, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17429, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11961, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11961, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11961, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17429, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11961, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11961, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17429, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17429, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11961, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11961, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11961, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17429, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11962, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11962, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11962, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11962, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17430, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11961, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17429, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -209782,7 +277979,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_6update(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLONNECK_Update(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DEMA_Update(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -209810,13 +278007,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_6update(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11969, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11970, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -209833,7 +278030,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_6update(struct __py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -209845,30 +278042,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_6update(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_8peek, "CDLONNECK_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DEMA_Stream_8peek, "DEMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -209884,81 +278078,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11972, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17440, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11972, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11972, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11972, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11972, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17440, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11972, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11972, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17440, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17440, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11972, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11972, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11972, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11972, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17440, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11973, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11973, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11973, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11973, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17441, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11972, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17440, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -209981,7 +278151,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_8peek(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLONNECK_Peek(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DEMA_Peek(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -210009,13 +278179,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_8peek(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11980, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11981, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -210032,7 +278202,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_8peek(struct __pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -210044,22 +278214,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_8peek(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -210082,7 +278252,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_5value___get__(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLONNECK_Value(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DEMA_Value(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -210110,13 +278280,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_5value___get__(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11991, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11992, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -210133,7 +278303,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_5value___get__(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -210144,12 +278314,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_5value___get__(stru } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11DEMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLONNECK_OutRange(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_DEMA_OutRange(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -210160,12 +278330,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__out_range(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11DEMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLONNECK_Advance(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_DEMA_Advance(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -210177,15 +278347,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__advance(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_10copy, "CDLONNECK_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DEMA_Stream_10copy, "DEMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -210211,16 +278381,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self) { - TA_CDLONNECK_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self) { + TA_DEMA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -210237,18 +278407,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(struct __pyx __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12003, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream))))) __PYX_ERR(3, 12003, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream))))) __PYX_ERR(3, 17471, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -210262,7 +278432,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLONNECK_Clone(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_DEMA_Clone(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -210305,7 +278475,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(struct __pyx if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12013, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -210327,7 +278497,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(struct __pyx __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -210340,19 +278510,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(struct __pyx /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10DIV_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10DIV_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10DIV_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10DIV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -210366,7 +278536,7 @@ static void __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream___dealloc__(struct __p if (__pyx_t_1) { - (void)(TA_CDLPIERCING_Close(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_DIV_Close(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -210392,29 +278562,27 @@ static void __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream___dealloc__(struct __p /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10DIV_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10DIV_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -210430,66 +278598,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12035, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17504, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12035, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12035, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12035, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17504, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12035, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17504, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12035, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 12035, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17504, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 17504, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12035, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17504, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12035, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12035, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12035, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17504, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12035, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17504, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -210499,17 +278653,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLPIERCING_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_DIV_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -210524,55 +278676,39 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12036, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12037, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12038, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12039, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12040, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12040, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12040, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12040, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12040, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 17507, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 17507, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12041, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17508, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12042, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17509, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12043, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17510, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12048, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17515, __pyx_L1_error) /*try:*/ { @@ -210582,9 +278718,9 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(struct __pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLPIERCING_Lookback() + 1); + __pyx_v_need = (TA_DIV_Lookback() + 1); - __pyx_v_retCode = TA_CDLPIERCING_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DIV_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -210601,7 +278737,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - (void)(TA_CDLPIERCING_Close(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_DIV_Close(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -210669,7 +278805,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12065, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DIV_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -210681,13 +278817,11 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(struct __pyx_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); __Pyx_XDECREF(__pyx_v_arrays); @@ -210703,31 +278837,29 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill, "CDLPIERCING_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DIV_Stream_4open_and_fill, "DIV_Stream.open_and_fill(real0, real1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10DIV_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DIV_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -210743,66 +278875,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12067, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17534, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12067, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12067, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12067, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17534, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12067, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17534, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12067, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 12067, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17534, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 17534, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12067, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17534, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12067, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12067, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12067, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17534, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12067, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17534, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -210812,21 +278930,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLPIERCING_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_stream = 0; + TA_DIV_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -210848,60 +278964,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12069, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12070, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12071, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12072, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12073, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12073, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12073, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12073, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12073, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 17538, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 17538, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12074, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17539, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12075, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17540, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12076, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17541, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLPIERCING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12082, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DIV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12084, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17549, __pyx_L1_error) /*try:*/ { @@ -210911,7 +279011,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLPIERCING_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_DIV_Lookback()); } /*finally:*/ { @@ -210924,9 +279024,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12088, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17553, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -210935,7 +279035,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLPIERCING_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DIV_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -211039,36 +279139,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12099, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DIV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12100, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12100, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12100, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12100, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12100, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12100, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real0); + __Pyx_GIVEREF(__pyx_v_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_real1); + __Pyx_GIVEREF(__pyx_v_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12100, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12100, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12100, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -211086,19 +279180,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(Py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -211111,30 +279203,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_6update, "CDLPIERCING_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DIV_Stream_6update, "DIV_Stream.update(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real0; + double __pyx_v_real1; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -211150,66 +279240,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12102, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17567, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12102, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12102, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17567, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17567, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12102, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12102, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17567, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17567, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17567, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12102, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12102, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17567, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12103, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12103, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12103, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12103, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17568, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17568, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12102, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17567, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -211217,14 +279293,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -211247,7 +279321,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_6update(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLPIERCING_Update(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DIV_Update(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); } /*finally:*/ { @@ -211275,13 +279349,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_6update(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12110, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12111, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -211298,7 +279372,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_6update(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -211310,30 +279384,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_6update(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek, "CDLPIERCING_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DIV_Stream_8peek, "DIV_Stream.peek(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real0; + double __pyx_v_real1; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -211349,66 +279421,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12113, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17578, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12113, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12113, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17578, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17578, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12113, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12113, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17578, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17578, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17578, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12113, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12113, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17578, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12114, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12114, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12114, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12114, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17579, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17579, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12113, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17578, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -211416,14 +279474,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -211446,7 +279502,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLPIERCING_Peek(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DIV_Peek(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); } /*finally:*/ { @@ -211474,13 +279530,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12121, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12122, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -211497,7 +279553,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek(struct __py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -211509,22 +279565,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -211547,7 +279603,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_5value___get__(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLPIERCING_Value(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DIV_Value(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -211575,13 +279631,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_5value___get__(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12132, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12133, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -211598,7 +279654,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_5value___get__(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -211609,12 +279665,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_5value___get__(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10DIV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLPIERCING_OutRange(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_DIV_OutRange(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -211625,12 +279681,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10DIV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLPIERCING_Advance(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_DIV_Advance(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -211642,15 +279698,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__advance(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy, "CDLPIERCING_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DIV_Stream_10copy, "DIV_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -211676,16 +279732,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self) { - TA_CDLPIERCING_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self) { + TA_DIV_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -211702,18 +279758,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(struct __p __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12144, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream))))) __PYX_ERR(3, 12144, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream))))) __PYX_ERR(3, 17609, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -211727,7 +279783,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLPIERCING_Clone(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_DIV_Clone(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -211770,7 +279826,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(struct __p if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12154, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -211792,7 +279848,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(struct __p __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -211805,19 +279861,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(struct __p /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -211831,7 +279887,7 @@ static void __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_CDLRICKSHAWMAN_Close(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_DONCHIAN_Close(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -211857,29 +279913,28 @@ static void __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -211895,86 +279950,89 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12176, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17645, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12176, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17645, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17645, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17645, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12176, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 12176, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17645, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 17645, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12176, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12176, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12176, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12176, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17645, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17645, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17645, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17645, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12176, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 17645, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static int __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLRICKSHAWMAN_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_DONCHIAN_Stream *__pyx_v_handle; + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -211989,55 +280047,39 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12178, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12179, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12180, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12181, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12181, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12181, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17648, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12181, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12181, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17648, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12182, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17649, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12183, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17650, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12184, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17651, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12189, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17658, __pyx_L1_error) /*try:*/ { @@ -212047,9 +280089,9 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(struct __p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLRICKSHAWMAN_Lookback() + 1); + __pyx_v_need = (TA_DONCHIAN_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLRICKSHAWMAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DONCHIAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -212066,7 +280108,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(struct __p if (__pyx_t_4) { - (void)(TA_CDLRICKSHAWMAN_Close(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_DONCHIAN_Close(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -212134,7 +280176,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12206, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -212146,13 +280188,11 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(struct __p goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -212162,37 +280202,38 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(struct __p + + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill, "CDLRICKSHAWMAN_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill, "DONCHIAN_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -212208,90 +280249,93 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12208, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17677, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12208, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12208, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17677, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12208, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17677, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12208, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17677, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12208, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 12208, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17677, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 17677, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12208, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12208, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12208, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12208, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17677, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17677, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17677, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17678, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12208, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 17677, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outupperband = 0; + PyArrayObject *__pyx_v_outmiddleband = 0; + PyArrayObject *__pyx_v_outlowerband = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLRICKSHAWMAN_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_stream = 0; + TA_DONCHIAN_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -212308,65 +280352,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12211, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12212, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12213, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12214, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12214, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12214, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17681, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12214, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12214, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17681, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12215, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17682, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12216, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17683, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12217, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17684, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12223, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DONCHIAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12225, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17694, __pyx_L1_error) /*try:*/ { @@ -212376,7 +280406,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRICKSHAWMAN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_DONCHIAN_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -212389,9 +280419,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12229, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17698, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17699, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17700, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -212400,7 +280440,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLRICKSHAWMAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DONCHIAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowerband)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -212504,46 +280544,73 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12240, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12241, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12241, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12241, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17712, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12241, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12241, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12241, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17712, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12241, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17712, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17712, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 17712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17712, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17712, __pyx_L1_error); + __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 17712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12241, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12241, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 17712, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 17712, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 17712, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_15 = 0; + __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 17712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17712, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 17712, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_15; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_15 = 0; goto __pyx_L0; @@ -212551,19 +280618,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outlowerband); @@ -212576,30 +280645,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update, "CDLRICKSHAWMAN_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_6update, "DONCHIAN_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; - double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -212615,66 +280682,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12243, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17714, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12243, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12243, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17714, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17714, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12243, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12243, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17714, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17714, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17714, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12243, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12243, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17714, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12244, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12244, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12244, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12244, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17715, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17715, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12243, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17714, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -212682,20 +280735,23 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -212712,7 +280768,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLRICKSHAWMAN_Update(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DONCHIAN_Update(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); } /*finally:*/ { @@ -212740,34 +280796,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12251, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12252, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 17725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 17725, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 17725, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 17725, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -212775,30 +280851,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek, "CDLRICKSHAWMAN_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_8peek, "DONCHIAN_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; - double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -212814,66 +280888,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12254, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17727, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12254, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12254, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12254, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17727, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12254, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17727, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12254, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12254, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17727, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17727, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12254, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17727, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12254, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12254, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12254, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17727, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12255, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12255, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12255, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12255, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17728, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17728, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12254, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17727, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -212881,20 +280941,23 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -212911,7 +280974,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLRICKSHAWMAN_Peek(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DONCHIAN_Peek(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); } /*finally:*/ { @@ -212939,34 +281002,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12262, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12263, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 17738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 17738, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 17738, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 17738, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -212974,28 +281057,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -213012,7 +281100,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value___get__ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLRICKSHAWMAN_Value(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DONCHIAN_Value(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); } /*finally:*/ { @@ -213040,46 +281128,66 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value___get__ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12273, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12274, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 17751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 17751, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 17751, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 17751, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLRICKSHAWMAN_OutRange(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_DONCHIAN_OutRange(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -213090,12 +281198,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__out_range(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLRICKSHAWMAN_Advance(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_DONCHIAN_Advance(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -213107,15 +281215,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__advance(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy, "CDLRICKSHAWMAN_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_10copy, "DONCHIAN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -213141,16 +281249,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self) { - TA_CDLRICKSHAWMAN_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self) { + TA_DONCHIAN_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -213167,18 +281275,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12285, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream))))) __PYX_ERR(3, 12285, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream))))) __PYX_ERR(3, 17762, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -213192,7 +281300,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLRICKSHAWMAN_Clone(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_DONCHIAN_Clone(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -213235,7 +281343,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12295, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -213257,7 +281365,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -213270,19 +281378,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11DOSC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11DOSC_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11DOSC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11DOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -213296,7 +281404,7 @@ static void __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream___dealloc__(st if (__pyx_t_1) { - (void)(TA_CDLRISEFALL3METHODS_Close(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_DOSC_Close(((TA_DOSC_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -213322,29 +281430,30 @@ static void __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream___dealloc__(st /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11DOSC_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11DOSC_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_firstperiod; + int __pyx_v_secondperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -213360,86 +281469,121 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12317, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17799, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 17799, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12317, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 12317, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17799, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, i); __PYX_ERR(3, 17799, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12317, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12317, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12317, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12317, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 17799, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17799, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17799, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17799, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17799, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17799, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17799, __pyx_L3_error) + } else { + __pyx_v_firstperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17799, __pyx_L3_error) + } else { + __pyx_v_secondperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17799, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12317, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 17799, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DOSC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_firstperiod, __pyx_v_secondperiod, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_11DOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_firstperiod, int __pyx_v_secondperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLRISEFALL3METHODS_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_DOSC_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -213454,55 +281598,31 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12318, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12319, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12320, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12321, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12322, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12322, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12322, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12322, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12322, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17801, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12323, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17802, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12324, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17803, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12325, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17804, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12330, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17809, __pyx_L1_error) /*try:*/ { @@ -213512,9 +281632,9 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(struc __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLRISEFALL3METHODS_Lookback() + 1); + __pyx_v_need = (TA_DOSC_Lookback(__pyx_v_timeperiod, __pyx_v_firstperiod, __pyx_v_secondperiod, __pyx_v_signalperiod) + 1); - __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DOSC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_firstperiod, __pyx_v_secondperiod, __pyx_v_signalperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -213531,7 +281651,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(struc if (__pyx_t_4) { - (void)(TA_CDLRISEFALL3METHODS_Close(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_DOSC_Close(((TA_DOSC_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -213599,7 +281719,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(struc if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12347, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DOSC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -213611,13 +281731,10 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(struc goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -213633,31 +281750,32 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill, "CDLRISEFALL3METHODS_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DOSC_Stream_4open_and_fill, "DOSC_Stream.open_and_fill(real, int timeperiod=-0x80000000, int firstperiod=-0x80000000, int secondperiod=-0x80000000, int signalperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11DOSC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11DOSC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_firstperiod; + int __pyx_v_secondperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -213673,90 +281791,125 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12349, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17828, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 17828, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17828, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17828, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17828, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17828, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12349, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 12349, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17828, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, i); __PYX_ERR(3, 17828, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12349, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12349, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12349, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12349, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 17828, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17828, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17828, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17828, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17828, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17829, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17829, __pyx_L3_error) + } else { + __pyx_v_firstperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17829, __pyx_L3_error) + } else { + __pyx_v_secondperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17829, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12349, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 17828, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DOSC_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_firstperiod, __pyx_v_secondperiod, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11DOSC_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_firstperiod, int __pyx_v_secondperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLRISEFALL3METHODS_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_stream = 0; + TA_DOSC_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -213778,60 +281931,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12351, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12352, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12354, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12355, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12355, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12355, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12355, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12355, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17831, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12356, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17832, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12357, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17833, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12358, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17834, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12364, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12366, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17842, __pyx_L1_error) /*try:*/ { @@ -213841,7 +281970,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRISEFALL3METHODS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_DOSC_Lookback(__pyx_v_timeperiod, __pyx_v_firstperiod, __pyx_v_secondperiod, __pyx_v_signalperiod)); } /*finally:*/ { @@ -213854,9 +281983,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12370, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17846, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -213865,7 +281994,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLRISEFALL3METHODS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DOSC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_firstperiod, __pyx_v_secondperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -213969,36 +282098,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12381, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12382, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12382, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17858, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12382, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17858, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 17858, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -214016,19 +282136,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -214041,30 +282158,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update, "CDLRISEFALL3METHODS_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DOSC_Stream_6update, "DOSC_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -214080,81 +282194,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12384, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17860, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12384, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12384, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12384, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12384, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17860, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12384, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12384, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17860, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17860, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12384, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12384, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12384, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12384, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17860, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12385, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12385, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12385, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12385, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17861, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12384, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17860, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DOSC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11DOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -214177,7 +282267,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update(s __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Update(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DOSC_Update(((TA_DOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -214205,13 +282295,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update(s if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12392, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12393, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -214228,7 +282318,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update(s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -214240,30 +282330,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update(s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek, "CDLRISEFALL3METHODS_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DOSC_Stream_8peek, "DOSC_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -214279,81 +282366,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12395, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17871, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12395, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12395, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12395, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12395, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12395, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12395, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17871, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17871, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12395, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12395, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12395, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12395, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17871, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12396, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12396, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12396, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12396, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17872, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12395, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17871, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DOSC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11DOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -214376,7 +282439,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Peek(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DOSC_Peek(((TA_DOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -214404,13 +282467,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12403, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12404, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -214427,7 +282490,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -214439,22 +282502,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DOSC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11DOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -214477,7 +282540,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value___ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Value(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DOSC_Value(((TA_DOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -214505,13 +282568,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value___ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12414, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12415, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -214528,7 +282591,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value___ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DOSC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -214539,12 +282602,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value___ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11DOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLRISEFALL3METHODS_OutRange(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_DOSC_OutRange(((TA_DOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -214555,12 +282618,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__out_rang } -static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11DOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLRISEFALL3METHODS_Advance(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_DOSC_Advance(((TA_DOSC_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -214572,15 +282635,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__advance( /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy, "CDLRISEFALL3METHODS_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DOSC_Stream_10copy, "DOSC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -214606,16 +282669,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DOSC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self) { - TA_CDLRISEFALL3METHODS_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11DOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_self) { + TA_DOSC_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -214632,18 +282695,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(st __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12426, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream))))) __PYX_ERR(3, 12426, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream))))) __PYX_ERR(3, 17902, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -214657,7 +282720,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Clone(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_DOSC_Clone(((TA_DOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -214700,7 +282763,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(st if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12436, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -214722,7 +282785,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(st __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DOSC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -214735,19 +282798,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(st /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10DPO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10DPO_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10DPO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10DPO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -214761,7 +282824,7 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream___dealloc__(str if (__pyx_t_1) { - (void)(TA_CDLSEPARATINGLINES_Close(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_DPO_Close(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -214787,29 +282850,27 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream___dealloc__(str /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10DPO_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10DPO_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -214825,86 +282886,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12458, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17936, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12458, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12458, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12458, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17936, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12458, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17936, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12458, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 12458, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17936, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 17936, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12458, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12458, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12458, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12458, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17936, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17936, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17936, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12458, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17936, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLSEPARATINGLINES_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_DPO_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -214919,55 +282973,31 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12459, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12462, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12463, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12463, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12463, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12463, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12463, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17938, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12464, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17939, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12465, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17940, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12466, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17941, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12471, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17946, __pyx_L1_error) /*try:*/ { @@ -214977,9 +283007,9 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(struct __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLSEPARATINGLINES_Lookback() + 1); + __pyx_v_need = (TA_DPO_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLSEPARATINGLINES_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DPO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -214996,7 +283026,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(struct if (__pyx_t_4) { - (void)(TA_CDLSEPARATINGLINES_Close(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_DPO_Close(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -215064,7 +283094,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12488, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DPO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -215076,13 +283106,10 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(struct goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -215098,31 +283125,29 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill, "CDLSEPARATINGLINES_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DPO_Stream_4open_and_fill, "DPO_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10DPO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DPO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -215138,90 +283163,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12490, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17965, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12490, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12490, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12490, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 12490, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17965, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 17965, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12490, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12490, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12490, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12490, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17965, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17966, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12490, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17965, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLSEPARATINGLINES_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_stream = 0; + TA_DPO_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -215243,60 +283261,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12492, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12493, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12494, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12495, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12496, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12496, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12496, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12496, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12496, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17968, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12497, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17969, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12498, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17970, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12499, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17971, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12505, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DPO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12507, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17979, __pyx_L1_error) /*try:*/ { @@ -215306,7 +283300,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSEPARATINGLINES_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_DPO_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -215319,9 +283313,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12511, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17983, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -215330,7 +283324,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLSEPARATINGLINES_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DPO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -215434,36 +283428,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12522, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DPO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12523, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12523, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12523, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12523, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12523, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12523, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17995, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12523, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12523, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17995, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12523, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 17995, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -215481,19 +283466,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -215506,30 +283488,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update, "CDLSEPARATINGLINES_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DPO_Stream_6update, "DPO_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -215545,81 +283524,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12525, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17997, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12525, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12525, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12525, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12525, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17997, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12525, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12525, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17997, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17997, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12525, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12525, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12525, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12525, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17997, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12526, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12526, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12526, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12526, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17998, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12525, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17997, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -215642,7 +283597,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSEPARATINGLINES_Update(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DPO_Update(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -215670,13 +283625,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12533, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12534, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -215693,7 +283648,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -215705,30 +283660,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update(st /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek, "CDLSEPARATINGLINES_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DPO_Stream_8peek, "DPO_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -215744,81 +283696,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12536, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18008, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12536, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12536, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12536, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12536, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18008, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12536, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12536, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18008, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18008, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12536, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12536, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12536, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12536, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18008, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12537, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12537, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12537, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12537, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18009, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12536, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18008, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -215841,7 +283769,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSEPARATINGLINES_Peek(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DPO_Peek(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -215869,13 +283797,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12544, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12545, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -215892,7 +283820,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -215904,22 +283832,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -215942,7 +283870,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value___g __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSEPARATINGLINES_Value(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DPO_Value(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -215970,13 +283898,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value___g if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12555, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12556, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -215993,7 +283921,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value___g /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -216004,12 +283932,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value___g } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10DPO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLSEPARATINGLINES_OutRange(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_DPO_OutRange(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -216020,12 +283948,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__out_range } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10DPO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLSEPARATINGLINES_Advance(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_DPO_Advance(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -216037,15 +283965,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__advance(s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy, "CDLSEPARATINGLINES_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DPO_Stream_10copy, "DPO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -216071,16 +283999,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self) { - TA_CDLSEPARATINGLINES_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self) { + TA_DPO_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -216097,18 +284025,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(str __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12567, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream))))) __PYX_ERR(3, 12567, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream))))) __PYX_ERR(3, 18039, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -216122,7 +284050,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLSEPARATINGLINES_Clone(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_DPO_Clone(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -216165,7 +284093,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(str if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12577, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -216187,7 +284115,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(str __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -216200,19 +284128,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(str /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_9DX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9DX_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_9DX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_9DX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -216226,7 +284154,7 @@ static void __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_CDLSHOOTINGSTAR_Close(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_DX_Close(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -216252,24 +284180,24 @@ static void __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9DX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9DX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -216290,77 +284218,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12599, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18073, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12599, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12599, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12599, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12599, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12599, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 12599, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18073, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 18073, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12599, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12599, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12599, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12599, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18073, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18073, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18073, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18073, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18073, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12599, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 18073, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static int __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -216368,8 +284305,8 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(struct __ npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLSHOOTINGSTAR_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_DX_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -216384,55 +284321,47 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12601, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12602, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12603, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12604, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12604, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12604, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 18077, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12604, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 18077, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12604, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18077, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12605, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18078, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12606, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18079, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12607, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18080, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12612, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18085, __pyx_L1_error) /*try:*/ { @@ -216442,9 +284371,9 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(struct __ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLSHOOTINGSTAR_Lookback() + 1); + __pyx_v_need = (TA_DX_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -216461,7 +284390,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(struct __ if (__pyx_t_4) { - (void)(TA_CDLSHOOTINGSTAR_Close(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_DX_Close(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -216529,7 +284458,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12629, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -216541,10 +284470,9 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(struct __ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -216563,26 +284491,26 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill, "CDLSHOOTINGSTAR_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_4open_and_fill, "DX_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9DX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9DX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9DX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -216603,77 +284531,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12631, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18104, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12631, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18104, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12631, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18104, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12631, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18104, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12631, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18104, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12631, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 12631, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18104, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 18104, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12631, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12631, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12631, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12631, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18104, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18104, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18104, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18104, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18105, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12631, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 18104, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -216682,11 +284619,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fil int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLSHOOTINGSTAR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_stream = 0; + TA_DX_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -216708,60 +284645,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12633, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12634, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12635, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12636, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12637, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12637, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12637, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 18109, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12637, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 18109, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12637, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18109, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12638, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18110, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12639, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18111, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12640, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18112, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12646, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12648, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18120, __pyx_L1_error) /*try:*/ { @@ -216771,7 +284700,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHOOTINGSTAR_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_DX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -216784,9 +284713,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fil } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12652, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18124, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -216795,7 +284724,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLSHOOTINGSTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -216899,36 +284828,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12663, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12664, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12664, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12664, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 18136, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12664, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 18136, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12664, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12664, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 18136, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12664, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12664, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18136, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12664, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 18136, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -216946,10 +284872,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fil __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -216958,7 +284883,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fil - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -216971,22 +284896,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fil /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update, "CDLSHOOTINGSTAR_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_6update, "DX_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -216994,7 +284918,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -217010,66 +284934,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12666, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18138, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12666, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18138, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18138, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18138, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12666, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12666, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18138, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 18138, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18138, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18138, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12666, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18138, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12667, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12667, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12667, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12667, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18139, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18139, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18139, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12666, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 18138, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -217078,13 +284995,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -217107,7 +285023,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Update(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DX_Update(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -217135,13 +285051,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12674, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12675, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -217158,7 +285074,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -217170,22 +285086,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek, "CDLSHOOTINGSTAR_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_8peek, "DX_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -217193,7 +285108,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -217209,66 +285124,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12677, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18149, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12677, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18149, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18149, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18149, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12677, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12677, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18149, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 18149, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18149, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18149, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12677, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18149, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12678, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12678, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12678, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12678, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18150, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18150, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18150, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12677, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 18149, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -217277,13 +285185,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -217306,7 +285213,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Peek(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DX_Peek(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -217334,13 +285241,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12685, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12686, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -217357,7 +285264,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -217369,22 +285276,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -217407,7 +285314,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value___get_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Value(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_DX_Value(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -217435,13 +285342,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value___get_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12696, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12697, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -217458,7 +285365,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value___get_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -217469,12 +285376,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value___get_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9DX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLSHOOTINGSTAR_OutRange(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_DX_OutRange(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -217485,12 +285392,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__out_range(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9DX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLSHOOTINGSTAR_Advance(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_DX_Advance(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -217502,15 +285409,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__advance(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy, "CDLSHOOTINGSTAR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_10copy, "DX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -217536,16 +285443,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self) { - TA_CDLSHOOTINGSTAR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self) { + TA_DX_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -217562,18 +285469,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12708, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream))))) __PYX_ERR(3, 12708, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream))))) __PYX_ERR(3, 18180, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -217587,7 +285494,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Clone(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_DX_Clone(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -217630,7 +285537,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12718, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -217652,7 +285559,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -217665,19 +285572,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10EFI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10EFI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10EFI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10EFI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -217691,7 +285598,7 @@ static void __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream___dealloc__(struct __ if (__pyx_t_1) { - (void)(TA_CDLSHORTLINE_Close(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_EFI_Close(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -217717,29 +285624,28 @@ static void __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream___dealloc__(struct __ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10EFI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10EFI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -217755,86 +285661,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12740, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18214, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12740, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12740, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18214, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12740, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18214, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12740, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18214, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12740, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 12740, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18214, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 18214, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12740, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12740, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12740, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12740, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18214, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18214, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18214, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18214, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12740, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 18214, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; +static int __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLSHORTLINE_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_EFI_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -217849,55 +285756,39 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12741, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12742, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12743, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12744, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12745, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12745, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12745, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12745, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12745, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18217, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18217, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12746, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18218, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12747, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18219, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12748, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18220, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12753, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18225, __pyx_L1_error) /*try:*/ { @@ -217907,9 +285798,9 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(struct __pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLSHORTLINE_Lookback() + 1); + __pyx_v_need = (TA_EFI_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLSHORTLINE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EFI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -217926,7 +285817,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(struct __pyx if (__pyx_t_4) { - (void)(TA_CDLSHORTLINE_Close(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_EFI_Close(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -217994,7 +285885,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12770, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EFI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -218006,13 +285897,11 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(struct __pyx goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -218028,31 +285917,30 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill, "CDLSHORTLINE_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EFI_Stream_4open_and_fill, "EFI_Stream.open_and_fill(close, volume, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10EFI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EFI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -218068,90 +285956,91 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12772, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18244, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12772, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12772, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18244, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12772, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18244, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12772, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18244, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12772, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 12772, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18244, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 18244, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12772, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12772, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12772, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12772, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18244, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18244, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18244, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18245, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12772, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 18244, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(__pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLSHORTLINE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_stream = 0; + TA_EFI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -218173,60 +286062,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12774, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12775, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12776, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12777, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12778, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12778, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12778, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12778, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12778, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18248, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18248, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12779, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18249, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12780, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18250, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12781, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18251, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSHORTLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12787, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12789, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18259, __pyx_L1_error) /*try:*/ { @@ -218236,7 +286109,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHORTLINE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_EFI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -218249,9 +286122,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(P } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12793, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18263, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -218260,7 +286133,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLSHORTLINE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_EFI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -218364,36 +286237,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12804, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12805, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12805, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12805, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12805, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12805, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12805, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 18275, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 18275, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12805, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12805, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18275, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12805, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 18275, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -218411,19 +286278,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(P __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -218436,30 +286301,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update, "CDLSHORTLINE_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EFI_Stream_6update, "EFI_Stream.update(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -218475,66 +286338,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12807, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18277, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12807, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12807, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18277, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18277, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12807, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12807, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18277, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 18277, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18277, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12807, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12807, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18277, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12808, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12808, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12808, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12808, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18278, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18278, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12807, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18277, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -218542,14 +286391,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -218572,7 +286419,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSHORTLINE_Update(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EFI_Update(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -218600,13 +286447,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12815, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12816, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -218623,7 +286470,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -218635,30 +286482,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek, "CDLSHORTLINE_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EFI_Stream_8peek, "EFI_Stream.peek(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -218674,66 +286519,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12818, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18288, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12818, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12818, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18288, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18288, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12818, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12818, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18288, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 18288, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18288, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12818, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12818, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18288, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12819, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12819, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12819, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12819, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18289, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18289, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12818, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18288, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -218741,14 +286572,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -218771,7 +286600,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSHORTLINE_Peek(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EFI_Peek(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -218799,13 +286628,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12826, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12827, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -218822,7 +286651,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -218834,22 +286663,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -218872,7 +286701,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value___get__(s __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSHORTLINE_Value(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EFI_Value(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -218900,13 +286729,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value___get__(s if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12837, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12838, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -218923,7 +286752,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value___get__(s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -218934,12 +286763,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value___get__(s } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EFI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLSHORTLINE_OutRange(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_EFI_OutRange(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -218950,12 +286779,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__out_range(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EFI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLSHORTLINE_Advance(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_EFI_Advance(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -218967,15 +286796,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__advance(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy, "CDLSHORTLINE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EFI_Stream_10copy, "EFI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -219001,16 +286830,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self) { - TA_CDLSHORTLINE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self) { + TA_EFI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -219027,18 +286856,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(struct __ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12849, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream))))) __PYX_ERR(3, 12849, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream))))) __PYX_ERR(3, 18319, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -219052,7 +286881,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLSHORTLINE_Clone(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_EFI_Clone(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -219095,7 +286924,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(struct __ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12859, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -219117,7 +286946,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(struct __ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -219130,19 +286959,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(struct __ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10EMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10EMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10EMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10EMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -219156,7 +286985,7 @@ static void __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_CDLSPINNINGTOP_Close(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_EMA_Close(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -219182,29 +287011,27 @@ static void __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10EMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10EMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -219220,86 +287047,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12881, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18353, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12881, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12881, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12881, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12881, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12881, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 12881, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18353, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18353, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12881, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12881, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12881, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12881, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18353, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18353, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18353, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12881, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18353, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLSPINNINGTOP_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_EMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -219314,55 +287134,31 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12882, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12883, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12885, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12886, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12886, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12886, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12886, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12886, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18355, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12887, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18356, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12888, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18357, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12889, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18358, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12894, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18363, __pyx_L1_error) /*try:*/ { @@ -219372,9 +287168,9 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(struct __p __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLSPINNINGTOP_Lookback() + 1); + __pyx_v_need = (TA_EMA_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLSPINNINGTOP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -219391,7 +287187,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(struct __p if (__pyx_t_4) { - (void)(TA_CDLSPINNINGTOP_Close(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_EMA_Close(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -219459,7 +287255,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12911, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -219471,13 +287267,10 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(struct __p goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -219493,31 +287286,29 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill, "CDLSPINNINGTOP_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMA_Stream_4open_and_fill, "EMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10EMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -219533,90 +287324,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12913, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18382, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12913, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12913, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18382, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18382, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12913, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 12913, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18382, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18382, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12913, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12913, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12913, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12913, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18382, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18382, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18383, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12913, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18382, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLSPINNINGTOP_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_stream = 0; + TA_EMA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -219638,60 +287422,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12915, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12916, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12917, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12918, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12919, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 12919, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12919, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12919, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12919, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18385, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12920, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18386, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12921, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18387, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12922, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18388, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12928, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 12930, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18396, __pyx_L1_error) /*try:*/ { @@ -219701,7 +287461,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSPINNINGTOP_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_EMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -219714,9 +287474,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12934, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18400, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -219725,7 +287485,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLSPINNINGTOP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_EMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -219829,36 +287589,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12945, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12946, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 12946, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 12946, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 12946, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 12946, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 12946, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18412, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12946, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12946, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18412, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 12946, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 18412, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -219876,19 +287627,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -219901,30 +287649,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update, "CDLSPINNINGTOP_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMA_Stream_6update, "EMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -219940,81 +287685,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12948, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18414, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12948, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12948, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12948, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18414, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12948, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 12948, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18414, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18414, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12948, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12948, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12948, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18414, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12949, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12949, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12949, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12949, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18415, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12948, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18414, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -220037,7 +287758,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSPINNINGTOP_Update(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EMA_Update(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -220065,13 +287786,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12956, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12957, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -220088,7 +287809,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -220100,30 +287821,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek, "CDLSPINNINGTOP_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMA_Stream_8peek, "EMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -220139,81 +287857,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12959, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18425, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12959, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12959, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12959, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18425, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12959, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 12959, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18425, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18425, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12959, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12959, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12959, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12959, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18425, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12960, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12960, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12960, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12960, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18426, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 12959, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18425, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -220236,7 +287930,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSPINNINGTOP_Peek(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EMA_Peek(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -220264,13 +287958,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12967, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12968, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -220287,7 +287981,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -220299,22 +287993,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -220337,7 +288031,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value___get__ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSPINNINGTOP_Value(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EMA_Value(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -220365,13 +288059,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value___get__ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12978, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12979, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -220388,7 +288082,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value___get__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -220399,12 +288093,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value___get__ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLSPINNINGTOP_OutRange(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_EMA_OutRange(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -220415,12 +288109,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__out_range(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLSPINNINGTOP_Advance(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_EMA_Advance(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -220432,15 +288126,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__advance(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy, "CDLSPINNINGTOP_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMA_Stream_10copy, "EMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -220466,16 +288160,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self) { - TA_CDLSPINNINGTOP_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self) { + TA_EMA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -220492,18 +288186,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12990, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream))))) __PYX_ERR(3, 12990, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream))))) __PYX_ERR(3, 18456, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -220517,7 +288211,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLSPINNINGTOP_Clone(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_EMA_Clone(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -220560,7 +288254,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13000, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -220582,7 +288276,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -220595,19 +288289,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10EMV_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10EMV_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10EMV_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10EMV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -220621,7 +288315,7 @@ static void __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream___dealloc__(stru if (__pyx_t_1) { - (void)(TA_CDLSTALLEDPATTERN_Close(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_EMV_Close(((TA_EMV_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -220647,29 +288341,30 @@ static void __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream___dealloc__(stru /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10EMV_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10EMV_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + double __pyx_v_volumedivisor; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -220685,86 +288380,109 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_volumedivisor,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13022, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18491, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 18491, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13022, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13022, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18491, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, i); __PYX_ERR(3, 18491, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13022, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13022, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13022, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13022, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 18491, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18491, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18491, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18491, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18491, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_volume = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18491, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_volumedivisor = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_volumedivisor == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18491, __pyx_L3_error) + } else { + __pyx_v_volumedivisor = ((double)-4e37); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13022, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 18491, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMV_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_volume, __pyx_v_timeperiod, __pyx_v_volumedivisor); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static int __pyx_pf_5talib_7_ta_lib_10EMV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_volume, int __pyx_v_timeperiod, double __pyx_v_volumedivisor) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLSTALLEDPATTERN_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_EMV_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -220779,55 +288497,47 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13023, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13024, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13025, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13026, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13027, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13027, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13027, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 18495, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13027, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13027, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 18495, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18495, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13028, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18496, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13029, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18497, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13030, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18498, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13035, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18503, __pyx_L1_error) /*try:*/ { @@ -220837,9 +288547,9 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(struct __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLSTALLEDPATTERN_Lookback() + 1); + __pyx_v_need = (TA_EMV_Lookback(__pyx_v_timeperiod, __pyx_v_volumedivisor) + 1); - __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EMV_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_volumedivisor, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -220856,7 +288566,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(struct if (__pyx_t_4) { - (void)(TA_CDLSTALLEDPATTERN_Close(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_EMV_Close(((TA_EMV_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -220924,7 +288634,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13052, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EMV_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -220936,13 +288646,12 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(struct goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -220958,31 +288667,32 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill, "CDLSTALLEDPATTERN_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMV_Stream_4open_and_fill, "EMV_Stream.open_and_fill(high, low, volume, int timeperiod=-0x80000000, double volumedivisor=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10EMV_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EMV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EMV_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + double __pyx_v_volumedivisor; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -220998,90 +288708,113 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_volumedivisor,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13054, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18522, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 18522, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18522, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18522, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18522, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18522, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13054, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13054, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18522, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, i); __PYX_ERR(3, 18522, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13054, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13054, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13054, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13054, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 18522, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18522, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18522, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18522, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18522, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_volume = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18523, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_volumedivisor = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_volumedivisor == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18523, __pyx_L3_error) + } else { + __pyx_v_volumedivisor = ((double)-4e37); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13054, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 18522, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMV_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_volume, __pyx_v_timeperiod, __pyx_v_volumedivisor); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMV_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_volume, int __pyx_v_timeperiod, double __pyx_v_volumedivisor) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLSTALLEDPATTERN_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_stream = 0; + TA_EMV_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -221103,60 +288836,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13056, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13057, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13058, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13059, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13060, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13060, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13060, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 18527, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13060, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13060, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 18527, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18527, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13061, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18528, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13062, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18529, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13063, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18530, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13069, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EMV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13071, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18538, __pyx_L1_error) /*try:*/ { @@ -221166,7 +288891,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_f __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTALLEDPATTERN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_EMV_Lookback(__pyx_v_timeperiod, __pyx_v_volumedivisor)); } /*finally:*/ { @@ -221179,9 +288904,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_f } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13075, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18542, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -221190,7 +288915,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_f __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLSTALLEDPATTERN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_EMV_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_volumedivisor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -221294,36 +289019,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_f if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13086, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EMV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13087, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13087, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13087, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 18554, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13087, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13087, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13087, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 18554, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_volume) != (0)) __PYX_ERR(3, 18554, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13087, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13087, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18554, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13087, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 18554, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -221341,19 +289063,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_f __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -221366,30 +289087,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_f /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMV_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update, "CDLSTALLEDPATTERN_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMV_Stream_6update, "EMV_Stream.update(self, double high, double low, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMV_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -221405,66 +289125,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13089, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18556, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13089, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13089, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13089, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18556, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 18556, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18556, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18556, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13089, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18556, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13090, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13090, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13090, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13090, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18557, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18557, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18557, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13089, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 18556, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMV_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -221473,13 +289186,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -221502,7 +289214,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Update(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EMV_Update(((TA_EMV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -221530,13 +289242,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13097, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13098, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -221553,7 +289265,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -221565,30 +289277,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMV_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek, "CDLSTALLEDPATTERN_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMV_Stream_8peek, "EMV_Stream.peek(self, double high, double low, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMV_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -221604,66 +289315,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13100, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18567, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13100, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18567, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18567, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18567, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13100, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13100, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18567, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 18567, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18567, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18567, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13100, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18567, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13101, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13101, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13101, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13101, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18568, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18568, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18568, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13100, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 18567, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMV_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -221672,13 +289376,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -221701,7 +289404,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Peek(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EMV_Peek(((TA_EMV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -221729,13 +289432,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13108, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13109, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -221752,7 +289455,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -221764,22 +289467,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMV_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMV_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMV_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -221802,7 +289505,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value___ge __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Value(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EMV_Value(((TA_EMV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -221830,13 +289533,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value___ge if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13119, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13120, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -221853,7 +289556,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value___ge /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMV_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -221864,12 +289567,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value___ge } -static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLSTALLEDPATTERN_OutRange(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_EMV_OutRange(((TA_EMV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -221880,12 +289583,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__out_range( } -static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLSTALLEDPATTERN_Advance(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_EMV_Advance(((TA_EMV_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -221897,15 +289600,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__advance(st /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMV_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy, "CDLSTALLEDPATTERN_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMV_Stream_10copy, "EMV_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMV_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -221931,16 +289634,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMV_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self) { - TA_CDLSTALLEDPATTERN_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_self) { + TA_EMV_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -221957,18 +289660,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(stru __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMV_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13131, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream))))) __PYX_ERR(3, 13131, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMV_Stream))))) __PYX_ERR(3, 18598, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -221982,7 +289685,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Clone(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_EMV_Clone(((TA_EMV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -222025,7 +289728,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(stru if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13141, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -222047,7 +289750,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(stru __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMV_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -222060,19 +289763,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(stru /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_9ER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9ER_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_9ER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_9ER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -222086,7 +289789,7 @@ static void __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream___dealloc__(struc if (__pyx_t_1) { - (void)(TA_CDLSTICKSANDWICH_Close(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ER_Close(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -222112,29 +289815,27 @@ static void __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream___dealloc__(struc /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9ER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9ER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -222150,86 +289851,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13163, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18632, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13163, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13163, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18632, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18632, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13163, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13163, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18632, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18632, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13163, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13163, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13163, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13163, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18632, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18632, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18632, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13163, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18632, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLSTICKSANDWICH_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_ER_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -222244,55 +289938,31 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13164, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13165, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13168, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13168, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13168, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13168, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13168, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18634, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13169, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18635, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13170, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18636, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13171, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18637, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13176, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18642, __pyx_L1_error) /*try:*/ { @@ -222302,9 +289972,9 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(struct _ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLSTICKSANDWICH_Lookback() + 1); + __pyx_v_need = (TA_ER_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLSTICKSANDWICH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_ER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -222321,7 +289991,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(struct _ if (__pyx_t_4) { - (void)(TA_CDLSTICKSANDWICH_Close(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ER_Close(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -222389,7 +290059,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(struct _ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13193, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ER_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -222401,13 +290071,10 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(struct _ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -222423,31 +290090,29 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill, "CDLSTICKSANDWICH_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9ER_Stream_4open_and_fill, "ER_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9ER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9ER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9ER_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -222463,90 +290128,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13195, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18661, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13195, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13195, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13195, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13195, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13195, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13195, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18661, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18661, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13195, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13195, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13195, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13195, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18661, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18661, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18662, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13195, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18661, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLSTICKSANDWICH_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_stream = 0; + TA_ER_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -222568,60 +290226,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fi int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13199, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13201, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13201, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13201, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13201, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13201, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18664, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13202, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18665, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13203, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18666, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13204, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18667, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13210, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13212, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18675, __pyx_L1_error) /*try:*/ { @@ -222631,7 +290265,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fi __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTICKSANDWICH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_ER_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -222644,9 +290278,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fi } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13216, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18679, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -222655,7 +290289,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fi __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLSTICKSANDWICH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -222759,36 +290393,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fi if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13227, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13228, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13228, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13228, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13228, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13228, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13228, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18691, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13228, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13228, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18691, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13228, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 18691, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -222806,19 +290431,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fi __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -222831,30 +290453,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fi /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update, "CDLSTICKSANDWICH_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9ER_Stream_6update, "ER_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -222870,81 +290489,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13230, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18693, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13230, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13230, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18693, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13230, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13230, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18693, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18693, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13230, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13230, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13230, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13230, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18693, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13231, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13231, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13231, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13231, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18694, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13230, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18693, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -222967,7 +290562,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSTICKSANDWICH_Update(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_ER_Update(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -222995,13 +290590,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13238, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13239, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -223018,7 +290613,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -223030,30 +290625,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek, "CDLSTICKSANDWICH_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9ER_Stream_8peek, "ER_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -223069,81 +290661,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13241, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18704, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13241, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13241, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13241, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18704, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13241, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13241, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18704, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18704, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13241, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13241, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13241, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18704, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13242, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13242, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13242, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13242, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18705, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13241, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18704, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -223166,7 +290734,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSTICKSANDWICH_Peek(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_ER_Peek(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -223194,13 +290762,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13249, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13250, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -223217,7 +290785,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -223229,22 +290797,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -223267,7 +290835,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value___get __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLSTICKSANDWICH_Value(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_ER_Value(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -223295,13 +290863,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value___get if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13260, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13261, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -223318,7 +290886,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value___get /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -223329,12 +290897,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value___get } -static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9ER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLSTICKSANDWICH_OutRange(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_ER_OutRange(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -223345,12 +290913,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__out_range(s } -static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9ER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLSTICKSANDWICH_Advance(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_ER_Advance(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -223362,15 +290930,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__advance(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy, "CDLSTICKSANDWICH_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9ER_Stream_10copy, "ER_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -223396,16 +290964,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self) { - TA_CDLSTICKSANDWICH_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self) { + TA_ER_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -223422,18 +290990,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(struc __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13272, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream))))) __PYX_ERR(3, 13272, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream))))) __PYX_ERR(3, 18735, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -223447,7 +291015,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLSTICKSANDWICH_Clone(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_ER_Clone(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -223490,7 +291058,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(struc if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13282, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -223512,7 +291080,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(struc __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -223525,19 +291093,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(struc /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10ERI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10ERI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10ERI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10ERI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -223551,7 +291119,7 @@ static void __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream___dealloc__(struct __pyx if (__pyx_t_1) { - (void)(TA_CDLTAKURI_Close(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ERI_Close(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -223577,24 +291145,24 @@ static void __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream___dealloc__(struct __pyx /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10ERI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10ERI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -223615,77 +291183,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13304, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18770, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13304, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18770, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13304, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18770, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13304, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18770, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13304, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18770, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13304, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13304, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18770, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 18770, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13304, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13304, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13304, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13304, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18770, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18770, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18770, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18770, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18770, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13304, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 18770, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static int __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -223693,8 +291270,9 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(struct __pyx_ob npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLTAKURI_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_ERI_Stream *__pyx_v_handle; + double __pyx_v_outbullpower; + double __pyx_v_outbearpower; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -223709,55 +291287,47 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13306, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13307, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13308, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13309, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13309, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13309, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 18774, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13309, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 18774, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13309, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18774, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13310, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18775, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13311, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18776, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13312, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18777, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13317, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18783, __pyx_L1_error) /*try:*/ { @@ -223767,9 +291337,9 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(struct __pyx_ob __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLTAKURI_Lookback() + 1); + __pyx_v_need = (TA_ERI_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLTAKURI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_ERI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbullpower), (&__pyx_v_outbearpower)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -223786,7 +291356,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - (void)(TA_CDLTAKURI_Close(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ERI_Close(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -223854,7 +291424,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13334, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ERI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -223866,10 +291436,9 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(struct __pyx_ob goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -223882,32 +291451,33 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(struct __pyx_ob + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill, "CDLTAKURI_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ERI_Stream_4open_and_fill, "ERI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ERI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ERI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -223928,77 +291498,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13336, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18802, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13336, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18802, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13336, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18802, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13336, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18802, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13336, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18802, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13336, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13336, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18802, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 18802, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13336, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13336, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13336, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13336, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18802, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18802, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18802, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18802, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18803, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13336, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 18802, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -224007,11 +291586,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyOb int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outbullpower = 0; + PyArrayObject *__pyx_v_outbearpower = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLTAKURI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_stream = 0; + TA_ERI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -224028,65 +291608,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyOb PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13338, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13339, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13340, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13341, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13342, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13342, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13342, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 18807, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13342, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 18807, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13342, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18807, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13343, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18808, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13344, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18809, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13345, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18810, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTAKURI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13351, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ERI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13353, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18819, __pyx_L1_error) /*try:*/ { @@ -224096,7 +291669,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTAKURI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_ERI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -224109,9 +291682,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyOb } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13357, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18823, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outbullpower = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18824, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outbearpower = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -224120,7 +291698,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLTAKURI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ERI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbullpower)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbearpower)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -224224,46 +291802,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13368, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ERI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13369, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13369, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13369, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 18836, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13369, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 18836, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13369, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13369, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 18836, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outbullpower)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13369, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 18836, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 18836, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 18836, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outbearpower)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 18836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13369, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13369, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 18836, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 18836, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 18836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18836, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 18836, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -224271,10 +291868,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyOb __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); @@ -224283,7 +291880,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyOb - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outbullpower); + __Pyx_XDECREF((PyObject *)__pyx_v_outbearpower); @@ -224296,22 +291894,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_6update, "CDLTAKURI_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ERI_Stream_6update, "ERI_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -224319,7 +291916,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -224335,66 +291932,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13371, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18838, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13371, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18838, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18838, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18838, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13371, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13371, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18838, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 18838, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18838, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18838, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13371, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18838, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13372, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13372, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13372, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13372, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18839, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18839, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18839, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13371, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 18838, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -224403,19 +291993,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outbullpower; + double __pyx_v_outbearpower; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -224432,7 +292024,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_6update(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLTAKURI_Update(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_ERI_Update(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outbullpower), (&__pyx_v_outbearpower)); } /*finally:*/ { @@ -224460,34 +292052,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_6update(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13379, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13380, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 18848, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 18848, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -224495,22 +292100,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_6update(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek, "CDLTAKURI_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ERI_Stream_8peek, "ERI_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; @@ -224518,7 +292122,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -224534,66 +292138,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13382, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18850, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13382, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13382, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13382, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18850, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 18850, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18850, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18850, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13382, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18850, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13383, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13383, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13383, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13383, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18851, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18851, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18851, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13382, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 18850, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -224602,19 +292199,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outbullpower; + double __pyx_v_outbearpower; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -224631,7 +292230,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLTAKURI_Peek(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_ERI_Peek(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outbullpower), (&__pyx_v_outbearpower)); } /*finally:*/ { @@ -224659,34 +292258,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13390, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13391, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 18860, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 18860, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -224694,28 +292306,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self) { + double __pyx_v_outbullpower; + double __pyx_v_outbearpower; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -224732,7 +292347,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_5value___get__(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLTAKURI_Value(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_ERI_Value(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outbullpower), (&__pyx_v_outbearpower)); } /*finally:*/ { @@ -224760,46 +292375,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_5value___get__(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13401, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13402, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18872, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18872, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 18872, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 18872, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ERI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLTAKURI_OutRange(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_ERI_OutRange(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -224810,12 +292438,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__out_range(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ERI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLTAKURI_Advance(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_ERI_Advance(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -224827,15 +292455,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__advance(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy, "CDLTAKURI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ERI_Stream_10copy, "ERI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -224861,16 +292489,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self) { - TA_CDLTAKURI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self) { + TA_ERI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -224887,18 +292515,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(struct __pyx __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13413, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream))))) __PYX_ERR(3, 13413, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream))))) __PYX_ERR(3, 18883, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -224912,7 +292540,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLTAKURI_Clone(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_ERI_Clone(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -224955,7 +292583,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(struct __pyx if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13423, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -224977,7 +292605,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(struct __pyx __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -224990,19 +292618,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(struct __pyx /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10EXP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10EXP_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10EXP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10EXP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -225016,7 +292644,7 @@ static void __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream___dealloc__(struct __ if (__pyx_t_1) { - (void)(TA_CDLTASUKIGAP_Close(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_EXP_Close(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -225042,29 +292670,26 @@ static void __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream___dealloc__(struct __ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10EXP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10EXP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -225080,66 +292705,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13445, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18915, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13445, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13445, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13445, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18915, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13445, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13445, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18915, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 18915, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13445, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13445, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13445, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18915, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13445, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18915, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -225149,17 +292753,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLTASUKIGAP_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_EXP_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -225174,55 +292775,31 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13446, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13448, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13449, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13450, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13450, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13450, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13450, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13450, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18917, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13451, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18918, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13452, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18919, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13453, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18920, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13458, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18925, __pyx_L1_error) /*try:*/ { @@ -225232,9 +292809,9 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(struct __pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLTASUKIGAP_Lookback() + 1); + __pyx_v_need = (TA_EXP_Lookback() + 1); - __pyx_v_retCode = TA_CDLTASUKIGAP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EXP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -225251,7 +292828,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(struct __pyx if (__pyx_t_4) { - (void)(TA_CDLTASUKIGAP_Close(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_EXP_Close(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -225319,7 +292896,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13475, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EXP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -225331,13 +292908,10 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(struct __pyx goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -225353,31 +292927,28 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill, "CDLTASUKIGAP_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EXP_Stream_4open_and_fill, "EXP_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10EXP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EXP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -225393,66 +292964,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13477, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18944, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13477, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13477, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13477, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18944, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13477, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13477, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18944, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 18944, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13477, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13477, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13477, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18944, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13477, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18944, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -225462,21 +293012,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLTASUKIGAP_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_stream = 0; + TA_EXP_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -225498,60 +293045,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13479, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13481, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13482, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13483, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13483, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13483, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13483, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13483, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18947, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13484, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18948, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13485, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18949, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13486, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18950, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTASUKIGAP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13492, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EXP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13494, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18958, __pyx_L1_error) /*try:*/ { @@ -225561,7 +293084,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTASUKIGAP_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_EXP_Lookback()); } /*finally:*/ { @@ -225574,9 +293097,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(P } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13498, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18962, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -225585,7 +293108,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLTASUKIGAP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_EXP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -225689,36 +293212,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13509, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EXP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13510, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13510, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13510, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13510, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13510, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13510, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18974, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13510, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13510, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18974, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13510, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 18974, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -225736,19 +293250,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(P __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -225761,30 +293272,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update, "CDLTASUKIGAP_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EXP_Stream_6update, "EXP_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -225800,81 +293308,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13512, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18976, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13512, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13512, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13512, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13512, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18976, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13512, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13512, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18976, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18976, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13512, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13512, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13512, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13512, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18976, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13513, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13513, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13513, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13513, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18977, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13512, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18976, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -225897,7 +293381,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLTASUKIGAP_Update(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EXP_Update(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -225925,13 +293409,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13520, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13521, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -225948,7 +293432,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -225960,30 +293444,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek, "CDLTASUKIGAP_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EXP_Stream_8peek, "EXP_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -225999,81 +293480,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13523, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18987, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13523, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13523, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13523, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18987, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13523, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13523, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18987, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18987, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13523, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13523, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13523, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18987, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13524, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13524, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13524, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13524, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18988, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13523, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18987, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -226096,7 +293553,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLTASUKIGAP_Peek(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EXP_Peek(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -226124,13 +293581,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13531, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13532, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -226147,7 +293604,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -226159,22 +293616,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -226197,7 +293654,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value___get__(s __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLTASUKIGAP_Value(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_EXP_Value(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -226225,13 +293682,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value___get__(s if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13542, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13543, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -226248,7 +293705,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value___get__(s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -226259,12 +293716,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value___get__(s } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EXP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLTASUKIGAP_OutRange(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_EXP_OutRange(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -226275,12 +293732,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__out_range(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EXP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLTASUKIGAP_Advance(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_EXP_Advance(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -226292,15 +293749,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__advance(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy, "CDLTASUKIGAP_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EXP_Stream_10copy, "EXP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -226326,16 +293783,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self) { - TA_CDLTASUKIGAP_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self) { + TA_EXP_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -226352,18 +293809,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(struct __ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13554, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream))))) __PYX_ERR(3, 13554, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream))))) __PYX_ERR(3, 19018, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -226377,7 +293834,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLTASUKIGAP_Clone(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_EXP_Clone(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -226420,7 +293877,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(struct __ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13564, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -226442,7 +293899,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(struct __ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -226455,19 +293912,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(struct __ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13FISHER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13FISHER_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13FISHER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13FISHER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -226481,7 +293938,7 @@ static void __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream___dealloc__(struct __ if (__pyx_t_1) { - (void)(TA_CDLTHRUSTING_Close(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_FISHER_Close(((TA_FISHER_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -226507,29 +293964,28 @@ static void __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream___dealloc__(struct __ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13FISHER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13FISHER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -226545,86 +294001,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13586, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19053, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13586, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13586, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13586, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19053, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 19053, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13586, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13586, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13586, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13586, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19053, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19053, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19053, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19053, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13586, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 19053, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FISHER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13FISHER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static int __pyx_pf_5talib_7_ta_lib_13FISHER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLTHRUSTING_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_FISHER_Stream *__pyx_v_handle; + double __pyx_v_outfisher; + double __pyx_v_outtrigger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -226639,55 +294097,39 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13587, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13588, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13589, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13590, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13591, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13591, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13591, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19056, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13591, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13591, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19056, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13592, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19057, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13593, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19058, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13594, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19059, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13599, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19065, __pyx_L1_error) /*try:*/ { @@ -226697,9 +294139,9 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(struct __pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLTHRUSTING_Lookback() + 1); + __pyx_v_need = (TA_FISHER_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLTHRUSTING_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FISHER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outfisher), (&__pyx_v_outtrigger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -226716,7 +294158,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(struct __pyx if (__pyx_t_4) { - (void)(TA_CDLTHRUSTING_Close(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_FISHER_Close(((TA_FISHER_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -226784,7 +294226,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13616, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FISHER_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -226796,13 +294238,11 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(struct __pyx goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FISHER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -226812,37 +294252,37 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(struct __pyx + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill, "CDLTHRUSTING_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13FISHER_Stream_4open_and_fill, "FISHER_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13FISHER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13FISHER_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -226858,90 +294298,92 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13618, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19084, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13618, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13618, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13618, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19084, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 19084, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13618, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13618, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13618, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13618, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19084, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19084, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19084, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19085, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13618, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 19084, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FISHER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13FISHER_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13FISHER_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outfisher = 0; + PyArrayObject *__pyx_v_outtrigger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLTHRUSTING_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_stream = 0; + TA_FISHER_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -226958,65 +294400,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(P PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13620, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13621, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13622, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13623, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13624, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13624, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13624, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19088, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13624, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13624, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19088, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13625, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19089, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13626, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19090, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13627, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19091, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTHRUSTING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13633, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FISHER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13635, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19100, __pyx_L1_error) /*try:*/ { @@ -227026,7 +294453,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTHRUSTING_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_FISHER_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -227039,9 +294466,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(P } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13639, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19104, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outfisher = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19105, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outtrigger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -227050,7 +294482,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLTHRUSTING_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_FISHER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfisher)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outtrigger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -227154,46 +294586,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13650, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FISHER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13651, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13651, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13651, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19117, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13651, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13651, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13651, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19117, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfisher)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13651, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19117, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19117, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outtrigger)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 19117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13651, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13651, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 19117, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 19117, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 19117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19117, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 19117, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -227201,19 +294646,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(P __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.FISHER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outfisher); + __Pyx_XDECREF((PyObject *)__pyx_v_outtrigger); @@ -227226,30 +294671,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update, "CDLTHRUSTING_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13FISHER_Stream_6update, "FISHER_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; - double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -227265,66 +294708,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13653, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19119, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13653, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13653, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13653, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19119, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13653, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19119, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13653, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13653, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19119, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 19119, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13653, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19119, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13653, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13653, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13653, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19119, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13654, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13654, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13654, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13654, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19120, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19120, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13653, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19119, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FISHER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13FISHER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -227332,20 +294761,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_13FISHER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outfisher; + double __pyx_v_outtrigger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -227362,7 +294792,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLTHRUSTING_Update(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FISHER_Update(((TA_FISHER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outfisher), (&__pyx_v_outtrigger)); } /*finally:*/ { @@ -227390,34 +294820,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13661, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FISHER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13662, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfisher); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outtrigger); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 19129, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 19129, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.FISHER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -227425,30 +294868,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek, "CDLTHRUSTING_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13FISHER_Stream_8peek, "FISHER_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; - double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -227464,66 +294905,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13664, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19131, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13664, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13664, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13664, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13664, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13664, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13664, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19131, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 19131, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13664, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19131, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13664, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13664, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13664, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19131, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13665, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13665, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13665, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13665, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19132, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19132, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13664, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19131, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FISHER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13FISHER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -227531,20 +294958,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_13FISHER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outfisher; + double __pyx_v_outtrigger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -227561,7 +294989,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLTHRUSTING_Peek(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FISHER_Peek(((TA_FISHER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outfisher), (&__pyx_v_outtrigger)); } /*finally:*/ { @@ -227589,34 +295017,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13672, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FISHER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13673, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfisher); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outtrigger); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 19141, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 19141, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.FISHER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -227624,28 +295065,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13FISHER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_13FISHER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self) { + double __pyx_v_outfisher; + double __pyx_v_outtrigger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -227662,7 +295106,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value___get__(s __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLTHRUSTING_Value(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FISHER_Value(((TA_FISHER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outfisher), (&__pyx_v_outtrigger)); } /*finally:*/ { @@ -227690,46 +295134,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value___get__(s if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13683, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FISHER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13684, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfisher); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outtrigger); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 19153, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 19153, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.FISHER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13FISHER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLTHRUSTING_OutRange(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_FISHER_OutRange(((TA_FISHER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -227740,12 +295197,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__out_range(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13FISHER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLTHRUSTING_Advance(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_FISHER_Advance(((TA_FISHER_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -227757,15 +295214,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__advance(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy, "CDLTHRUSTING_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13FISHER_Stream_10copy, "FISHER_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -227791,16 +295248,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13FISHER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self) { - TA_CDLTHRUSTING_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13FISHER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_self) { + TA_FISHER_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -227817,18 +295274,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(struct __ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13695, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream))))) __PYX_ERR(3, 13695, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream))))) __PYX_ERR(3, 19164, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -227842,7 +295299,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLTHRUSTING_Clone(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_FISHER_Clone(((TA_FISHER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -227885,7 +295342,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(struct __ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13705, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FISHER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -227907,7 +295364,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(struct __ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FISHER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -227920,19 +295377,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(struct __ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -227946,7 +295403,7 @@ static void __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream___dealloc__(struct __py if (__pyx_t_1) { - (void)(TA_CDLTRISTAR_Close(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_FLOOR_Close(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -227972,29 +295429,26 @@ static void __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream___dealloc__(struct __py /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -228010,66 +295464,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13727, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19196, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13727, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13727, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13727, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19196, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13727, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13727, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19196, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 19196, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13727, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13727, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13727, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19196, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13727, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19196, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -228079,17 +295512,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLTRISTAR_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_FLOOR_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -228104,55 +295534,31 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13728, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13729, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13730, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13731, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13732, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13732, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13732, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13732, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13732, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19198, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13733, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19199, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13734, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19200, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13735, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19201, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13740, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19206, __pyx_L1_error) /*try:*/ { @@ -228162,9 +295568,9 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(struct __pyx_o __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLTRISTAR_Lookback() + 1); + __pyx_v_need = (TA_FLOOR_Lookback() + 1); - __pyx_v_retCode = TA_CDLTRISTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FLOOR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -228181,7 +295587,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - (void)(TA_CDLTRISTAR_Close(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_FLOOR_Close(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -228249,7 +295655,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13757, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -228261,13 +295667,10 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(struct __pyx_o goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -228283,31 +295686,28 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill, "CDLTRISTAR_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill, "FLOOR_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -228323,66 +295723,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13759, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19225, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13759, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13759, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13759, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13759, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19225, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13759, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13759, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19225, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 19225, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13759, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13759, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13759, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13759, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19225, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13759, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19225, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -228392,21 +295771,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLTRISTAR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_stream = 0; + TA_FLOOR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -228428,60 +295804,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13761, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13762, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13763, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13765, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13765, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13765, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13765, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13765, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19228, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13766, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19229, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13767, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19230, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13768, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19231, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTRISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13774, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FLOOR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13776, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19239, __pyx_L1_error) /*try:*/ { @@ -228491,7 +295843,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTRISTAR_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_FLOOR_Lookback()); } /*finally:*/ { @@ -228504,9 +295856,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyO } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13780, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19243, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -228515,7 +295867,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLTRISTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_FLOOR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -228619,36 +295971,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13791, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13792, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13792, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13792, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13792, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13792, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13792, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19255, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13792, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13792, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19255, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13792, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 19255, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -228666,19 +296009,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyO __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -228691,30 +296031,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update, "CDLTRISTAR_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_6update, "FLOOR_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -228730,81 +296067,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13794, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19257, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13794, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13794, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13794, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13794, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13794, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13794, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19257, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19257, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13794, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13794, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13794, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13794, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19257, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13795, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13795, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13795, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13795, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19258, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13794, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19257, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -228827,7 +296140,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLTRISTAR_Update(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FLOOR_Update(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -228855,13 +296168,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13802, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13803, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -228878,7 +296191,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -228890,30 +296203,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek, "CDLTRISTAR_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_8peek, "FLOOR_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -228929,81 +296239,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13805, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19268, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13805, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13805, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13805, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19268, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13805, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13805, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19268, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19268, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13805, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13805, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13805, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19268, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13806, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13806, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13806, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13806, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19269, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13805, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19268, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -229026,7 +296312,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLTRISTAR_Peek(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FLOOR_Peek(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -229054,13 +296340,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13813, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13814, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -229077,7 +296363,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -229089,22 +296375,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -229127,7 +296413,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value___get__(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLTRISTAR_Value(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FLOOR_Value(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -229155,13 +296441,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value___get__(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13824, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13825, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -229178,7 +296464,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value___get__(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -229189,12 +296475,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value___get__(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12FLOOR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLTRISTAR_OutRange(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_FLOOR_OutRange(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -229205,12 +296491,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12FLOOR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLTRISTAR_Advance(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_FLOOR_Advance(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -229222,15 +296508,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__advance(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy, "CDLTRISTAR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_10copy, "FLOOR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -229256,16 +296542,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self) { - TA_CDLTRISTAR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self) { + TA_FLOOR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -229282,18 +296568,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(struct __py __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13836, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream))))) __PYX_ERR(3, 13836, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream))))) __PYX_ERR(3, 19299, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -229307,7 +296593,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLTRISTAR_Clone(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_FLOOR_Clone(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -229350,7 +296636,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(struct __py if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13846, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -229372,7 +296658,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(struct __py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -229385,19 +296671,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(struct __py /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11FOSC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11FOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -229411,7 +296697,7 @@ static void __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_CDLUNIQUE3RIVER_Close(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_FOSC_Close(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -229437,29 +296723,27 @@ static void __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -229475,86 +296759,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13868, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19333, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13868, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13868, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19333, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19333, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13868, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13868, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19333, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 19333, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13868, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13868, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13868, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13868, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19333, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19333, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19333, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13868, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19333, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLUNIQUE3RIVER_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_FOSC_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -229569,55 +296846,31 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13870, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13871, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13872, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13873, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13873, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13873, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13873, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13873, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19335, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13874, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19336, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13875, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19337, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13876, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19338, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13881, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19343, __pyx_L1_error) /*try:*/ { @@ -229627,9 +296880,9 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(struct __ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLUNIQUE3RIVER_Lookback() + 1); + __pyx_v_need = (TA_FOSC_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FOSC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -229646,7 +296899,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(struct __ if (__pyx_t_4) { - (void)(TA_CDLUNIQUE3RIVER_Close(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_FOSC_Close(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -229714,7 +296967,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13898, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -229726,13 +296979,10 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(struct __ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -229748,31 +296998,29 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill, "CDLUNIQUE3RIVER_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill, "FOSC_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -229788,90 +297036,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13900, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19362, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13900, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13900, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13900, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13900, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13900, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13900, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19362, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 19362, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13900, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13900, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13900, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13900, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19362, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19362, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19363, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13900, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19362, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLUNIQUE3RIVER_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_stream = 0; + TA_FOSC_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -229893,60 +297134,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13902, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13903, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13904, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13905, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13906, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13906, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13906, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13906, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13906, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19365, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13907, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19366, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13908, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19367, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13909, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19368, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13915, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 13917, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19376, __pyx_L1_error) /*try:*/ { @@ -229956,7 +297173,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUNIQUE3RIVER_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_FOSC_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -229969,9 +297186,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fil } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13921, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19380, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -229980,7 +297197,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLUNIQUE3RIVER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_FOSC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -230084,36 +297301,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13932, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13933, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13933, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13933, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13933, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13933, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 13933, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19392, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13933, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13933, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19392, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 13933, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 19392, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -230131,19 +297339,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fil __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -230156,30 +297361,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fil /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update, "CDLUNIQUE3RIVER_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11FOSC_Stream_6update, "FOSC_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -230195,81 +297397,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13935, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19394, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13935, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13935, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13935, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19394, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13935, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13935, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19394, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19394, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13935, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13935, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13935, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19394, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13936, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13936, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13936, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13936, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19395, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13935, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19394, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -230292,7 +297470,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Update(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FOSC_Update(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -230320,13 +297498,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13943, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13944, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -230343,7 +297521,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -230355,30 +297533,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek, "CDLUNIQUE3RIVER_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11FOSC_Stream_8peek, "FOSC_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -230394,81 +297569,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13946, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19405, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13946, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13946, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13946, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19405, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13946, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13946, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19405, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19405, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13946, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13946, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13946, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19405, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13947, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13947, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13947, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13947, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19406, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13946, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19405, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -230491,7 +297642,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Peek(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FOSC_Peek(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -230519,13 +297670,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13954, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13955, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -230542,7 +297693,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -230554,22 +297705,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -230592,7 +297743,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value___get_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Value(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FOSC_Value(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -230620,13 +297771,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value___get_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13965, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13966, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -230643,7 +297794,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value___get_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -230654,12 +297805,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value___get_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11FOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLUNIQUE3RIVER_OutRange(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_FOSC_OutRange(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -230670,12 +297821,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__out_range(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11FOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLUNIQUE3RIVER_Advance(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_FOSC_Advance(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -230687,15 +297838,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__advance(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy, "CDLUNIQUE3RIVER_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11FOSC_Stream_10copy, "FOSC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -230721,16 +297872,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self) { - TA_CDLUNIQUE3RIVER_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self) { + TA_FOSC_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -230747,18 +297898,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13977, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream))))) __PYX_ERR(3, 13977, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream))))) __PYX_ERR(3, 19436, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -230772,7 +297923,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Clone(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_FOSC_Clone(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -230815,7 +297966,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13987, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -230837,7 +297988,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -230850,19 +298001,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -230876,7 +298027,7 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream___dealloc__(str if (__pyx_t_1) { - (void)(TA_CDLUPSIDEGAP2CROWS_Close(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_FRACTAL_Close(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -230902,24 +298053,24 @@ static void __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream___dealloc__(str /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + int __pyx_v_leftbars; + int __pyx_v_rightbars; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -230940,86 +298091,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14009, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19472, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14009, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14009, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14009, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14009, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14009, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 14009, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19472, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 19472, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14009, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14009, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14009, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14009, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19472, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19472, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19472, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19472, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19472, __pyx_L3_error) + } else { + __pyx_v_leftbars = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19472, __pyx_L3_error) + } else { + __pyx_v_rightbars = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14009, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 19472, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static int __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_FRACTAL_Stream *__pyx_v_handle; + int __pyx_v_outswinghigh; + int __pyx_v_outswinglow; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -231034,55 +298201,39 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14010, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14011, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14012, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14013, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14014, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14014, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14014, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19475, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14014, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14014, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19475, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14015, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19476, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14016, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19477, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14017, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19478, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14022, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19484, __pyx_L1_error) /*try:*/ { @@ -231092,9 +298243,9 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(struct __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLUPSIDEGAP2CROWS_Lookback() + 1); + __pyx_v_need = (TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars) + 1); - __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FRACTAL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -231111,7 +298262,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(struct if (__pyx_t_4) { - (void)(TA_CDLUPSIDEGAP2CROWS_Close(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_FRACTAL_Close(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -231179,7 +298330,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14039, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -231191,13 +298342,11 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(struct goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -231207,32 +298356,33 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(struct + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill, "CDLUPSIDEGAP2CROWS_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill, "FRACTAL_Stream.open_and_fill(high, low, int leftbars=-0x80000000, int rightbars=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + int __pyx_v_leftbars; + int __pyx_v_rightbars; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -231253,90 +298403,106 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14041, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19503, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19503, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19503, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19503, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19503, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14041, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 14041, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19503, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 19503, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14041, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14041, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14041, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14041, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19503, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19503, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19503, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19503, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19504, __pyx_L3_error) + } else { + __pyx_v_leftbars = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19504, __pyx_L3_error) + } else { + __pyx_v_rightbars = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14041, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 19503, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outswinghigh = 0; + PyArrayObject *__pyx_v_outswinglow = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_stream = 0; + TA_FRACTAL_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -231353,65 +298519,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_ PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14043, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14044, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14045, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14046, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14047, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14047, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14047, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19507, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14047, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14047, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19507, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14048, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19508, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14049, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19509, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14050, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19510, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14056, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FRACTAL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14058, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19519, __pyx_L1_error) /*try:*/ { @@ -231421,7 +298572,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUPSIDEGAP2CROWS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars)); } /*finally:*/ { @@ -231434,9 +298585,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14062, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19523, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outswinghigh = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19524, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outswinglow = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -231445,7 +298601,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_FRACTAL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinghigh)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinglow)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -231549,46 +298705,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14073, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14074, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 14074, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 14074, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19536, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 14074, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 14074, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14074, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19536, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outswinghigh)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14074, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19536, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19536, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outswinglow)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 19536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14074, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14074, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 19536, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 19536, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 19536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19536, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 19536, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -231596,19 +298765,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outswinghigh); + __Pyx_XDECREF((PyObject *)__pyx_v_outswinglow); @@ -231621,30 +298790,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update, "CDLUPSIDEGAP2CROWS_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_6update, "FRACTAL_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; - double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -231660,66 +298827,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14076, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19538, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14076, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14076, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14076, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19538, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14076, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19538, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14076, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 14076, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19538, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 19538, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14076, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19538, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14076, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14076, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14076, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19538, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14077, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14077, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14077, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14077, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19539, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19539, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14076, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19538, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -231727,20 +298880,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + int __pyx_v_outswinghigh; + int __pyx_v_outswinglow; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -231757,7 +298911,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Update(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FRACTAL_Update(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); } /*finally:*/ { @@ -231785,34 +298939,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14084, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14085, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 19548, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 19548, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -231820,30 +298987,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update(st /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek, "CDLUPSIDEGAP2CROWS_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_8peek, "FRACTAL_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; - double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -231859,66 +299024,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14087, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19550, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14087, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14087, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19550, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19550, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14087, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 14087, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19550, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 19550, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19550, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14087, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14087, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19550, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14088, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14088, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14088, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14088, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19551, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19551, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14087, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19550, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -231926,20 +299077,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + int __pyx_v_outswinghigh; + int __pyx_v_outswinglow; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -231956,7 +299108,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Peek(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FRACTAL_Peek(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); } /*finally:*/ { @@ -231984,34 +299136,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14095, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14096, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 19560, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 19560, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -232019,28 +299184,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self) { + int __pyx_v_outswinghigh; + int __pyx_v_outswinglow; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -232057,7 +299225,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value___g __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Value(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FRACTAL_Value(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); } /*finally:*/ { @@ -232085,46 +299253,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value___g if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14106, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14107, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 19572, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 19572, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLUPSIDEGAP2CROWS_OutRange(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_FRACTAL_OutRange(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -232135,12 +299316,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__out_range } -static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLUPSIDEGAP2CROWS_Advance(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_FRACTAL_Advance(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -232152,15 +299333,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__advance(s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy, "CDLUPSIDEGAP2CROWS_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_10copy, "FRACTAL_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -232186,16 +299367,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self) { - TA_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self) { + TA_FRACTAL_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -232212,18 +299393,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(str __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14118, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream))))) __PYX_ERR(3, 14118, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream))))) __PYX_ERR(3, 19583, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -232237,7 +299418,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Clone(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_FRACTAL_Clone(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -232280,7 +299461,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(str if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14128, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -232302,7 +299483,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(str __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -232315,19 +299496,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(str /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_12FRAMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_12FRAMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -232341,7 +299522,7 @@ static void __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream___dealloc__(st if (__pyx_t_1) { - (void)(TA_CDLXSIDEGAP3METHODS_Close(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_FRAMA_Close(((TA_FRAMA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -232367,29 +299548,28 @@ static void __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream___dealloc__(st /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -232405,86 +299585,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14150, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19617, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14150, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14150, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19617, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14150, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19617, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14150, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19617, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14150, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 14150, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19617, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 19617, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14150, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14150, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14150, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14150, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19617, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19617, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19617, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19617, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14150, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 19617, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static int __pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CDLXSIDEGAP3METHODS_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_FRAMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -232499,55 +299680,39 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14152, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14153, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14154, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14155, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14155, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19620, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14155, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14155, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19620, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14156, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19621, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14157, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19622, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14158, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19623, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14163, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19628, __pyx_L1_error) /*try:*/ { @@ -232557,9 +299722,9 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(struc __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CDLXSIDEGAP3METHODS_Lookback() + 1); + __pyx_v_need = (TA_FRAMA_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FRAMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -232576,7 +299741,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(struc if (__pyx_t_4) { - (void)(TA_CDLXSIDEGAP3METHODS_Close(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_FRAMA_Close(((TA_FRAMA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -232644,7 +299809,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(struc if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14180, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FRAMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -232656,13 +299821,11 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(struc goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -232678,31 +299841,30 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill, "CDLXSIDEGAP3METHODS_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FRAMA_Stream_4open_and_fill, "FRAMA_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12FRAMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12FRAMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -232718,90 +299880,91 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14182, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19647, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14182, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14182, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19647, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14182, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19647, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14182, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19647, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14182, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 14182, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19647, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 19647, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14182, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14182, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14182, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14182, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19647, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19647, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19647, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19648, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14182, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 19647, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CDLXSIDEGAP3METHODS_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_stream = 0; + TA_FRAMA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -232823,60 +299986,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14185, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14186, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14188, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 14188, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14188, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19651, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14188, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14188, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19651, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14189, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19652, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14190, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19653, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14191, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19654, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14197, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FRAMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14199, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19662, __pyx_L1_error) /*try:*/ { @@ -232886,7 +300033,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLXSIDEGAP3METHODS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_FRAMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -232899,9 +300046,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14203, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19666, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -232910,7 +300057,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_FRAMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -233014,36 +300161,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14214, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FRAMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14215, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 14215, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 14215, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19678, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 14215, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 14215, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14215, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19678, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14215, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14215, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19678, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14215, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 19678, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -233061,19 +300202,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -233086,30 +300225,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update, "CDLXSIDEGAP3METHODS_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FRAMA_Stream_6update, "FRAMA_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; - double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -233125,66 +300262,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14217, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19680, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14217, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14217, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14217, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19680, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14217, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19680, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14217, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 14217, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19680, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 19680, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14217, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19680, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14217, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14217, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14217, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19680, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14218, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14218, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14218, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14218, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19681, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19681, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14217, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19680, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -233192,14 +300315,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -233222,7 +300343,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update(s __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Update(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FRAMA_Update(((TA_FRAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -233250,13 +300371,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update(s if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14225, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRAMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14226, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -233273,7 +300394,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update(s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -233285,30 +300406,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update(s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek, "CDLXSIDEGAP3METHODS_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FRAMA_Stream_8peek, "FRAMA_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; double __pyx_v_high; double __pyx_v_low; - double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -233324,66 +300443,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14228, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19691, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14228, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14228, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14228, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19691, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14228, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19691, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14228, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 14228, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19691, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 19691, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14228, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19691, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14228, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14228, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14228, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19691, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14229, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14229, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14229, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14229, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19692, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19692, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14228, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19691, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -233391,14 +300496,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -233421,7 +300524,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Peek(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FRAMA_Peek(((TA_FRAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -233449,13 +300552,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14236, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRAMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14237, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -233472,7 +300575,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -233484,22 +300587,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -233522,7 +300625,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value___ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Value(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_FRAMA_Value(((TA_FRAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -233550,13 +300653,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value___ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14247, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRAMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14248, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -233573,7 +300676,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value___ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRAMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -233584,12 +300687,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value___ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12FRAMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLXSIDEGAP3METHODS_OutRange(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_FRAMA_OutRange(((TA_FRAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -233600,12 +300703,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__out_rang } -static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12FRAMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CDLXSIDEGAP3METHODS_Advance(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_FRAMA_Advance(((TA_FRAMA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -233617,15 +300720,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__advance( /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy, "CDLXSIDEGAP3METHODS_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FRAMA_Stream_10copy, "FRAMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -233651,16 +300754,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self) { - TA_CDLXSIDEGAP3METHODS_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12FRAMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_self) { + TA_FRAMA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -233677,18 +300780,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(st __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14259, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream))))) __PYX_ERR(3, 14259, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream))))) __PYX_ERR(3, 19722, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -233702,7 +300805,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Clone(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_FRAMA_Clone(((TA_FRAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -233745,7 +300848,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(st if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14269, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRAMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -233767,7 +300870,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(st __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRAMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -233780,19 +300883,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(st /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_9HA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9HA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11CEIL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_9HA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11CEIL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_9HA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -233806,7 +300909,7 @@ static void __pyx_pf_5talib_7_ta_lib_11CEIL_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_CEIL_Close(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HA_Close(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -233832,26 +300935,29 @@ static void __pyx_pf_5talib_7_ta_lib_11CEIL_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9HA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9HA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -233867,45 +300973,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14291, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19757, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19757, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19757, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19757, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14291, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19757, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14291, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 14291, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19757, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 19757, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14291, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19757, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19757, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19757, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19757, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14291, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 19757, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -233915,14 +301042,20 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CEIL_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_HA_Stream *__pyx_v_handle; + double __pyx_v_outhaopen; + double __pyx_v_outhahigh; + double __pyx_v_outhalow; + double __pyx_v_outhaclose; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -233937,31 +301070,55 @@ static int __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14292, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14293, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14293, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19762, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 19762, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19762, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19762, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19762, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14294, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19763, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14295, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19764, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14296, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19765, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14301, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19773, __pyx_L1_error) /*try:*/ { @@ -233971,9 +301128,9 @@ static int __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CEIL_Lookback() + 1); + __pyx_v_need = (TA_HA_Lookback() + 1); - __pyx_v_retCode = TA_CEIL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -233990,7 +301147,7 @@ static int __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_CEIL_Close(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HA_Close(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -234058,7 +301215,7 @@ static int __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14318, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -234070,10 +301227,13 @@ static int __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -234083,34 +301243,40 @@ static int __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(struct __pyx_obj_5ta + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill, "CEIL_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9HA_Stream_4open_and_fill, "HA_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9HA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9HA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9HA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -234126,45 +301292,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14320, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19792, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19792, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19792, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19792, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14320, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19792, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14320, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 14320, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19792, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 19792, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14320, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19792, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19792, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19792, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19792, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14320, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 19792, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -234174,18 +301361,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outhaopen = 0; + PyArrayObject *__pyx_v_outhahigh = 0; + PyArrayObject *__pyx_v_outhalow = 0; + PyArrayObject *__pyx_v_outhaclose = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CEIL_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_stream = 0; + TA_HA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -234202,41 +301395,68 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14322, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14323, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14323, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 19798, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19798, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19798, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19798, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14324, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19799, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14325, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19800, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14326, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19801, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CEIL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14332, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14334, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19812, __pyx_L1_error) /*try:*/ { @@ -234246,7 +301466,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CEIL_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_HA_Lookback()); } /*finally:*/ { @@ -234259,9 +301479,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14338, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19816, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outhaopen = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19817, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhahigh = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19818, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhalow = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19819, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhaclose = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -234270,7 +301505,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CEIL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaopen)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhahigh)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhalow)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaclose)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -234374,37 +301609,111 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CEIL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14349, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14350, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14350, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14350, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outhaopen)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14350, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outhahigh)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 19831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outhalow)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 19831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __pyx_t_16 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outhaclose)); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 19831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14350, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14350, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_16); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_16) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_15 = 0; + __pyx_t_16 = 0; + __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 19831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 19831, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_16; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_16 = 0; goto __pyx_L0; @@ -234412,16 +301721,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outhaopen); + __Pyx_XDECREF((PyObject *)__pyx_v_outhahigh); + __Pyx_XDECREF((PyObject *)__pyx_v_outhalow); + __Pyx_XDECREF((PyObject *)__pyx_v_outhaclose); @@ -234434,27 +301752,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CEIL_Stream_6update, "CEIL_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9HA_Stream_6update, "HA_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -234470,63 +301791,94 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14352, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19833, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19833, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19833, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19833, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14352, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14352, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19833, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 19833, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19833, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19833, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19833, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19833, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14353, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19834, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19834, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19834, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19834, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14352, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 19833, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outhaopen; + double __pyx_v_outhahigh; + double __pyx_v_outhalow; + double __pyx_v_outhaclose; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -234543,7 +301895,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CEIL_Update(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HA_Update(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); } /*finally:*/ { @@ -234571,34 +301923,61 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14360, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14361, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 19845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 19845, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 19845, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 19845, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6) != (0)) __PYX_ERR(3, 19845, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_7 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -234606,27 +301985,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CEIL_Stream_8peek, "CEIL_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9HA_Stream_8peek, "HA_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -234642,63 +302024,94 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14363, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19847, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19847, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19847, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19847, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19847, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14363, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14363, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19847, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 19847, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19847, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19847, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19847, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19847, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14364, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19848, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19848, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19848, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19848, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14363, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 19847, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outhaopen; + double __pyx_v_outhahigh; + double __pyx_v_outhalow; + double __pyx_v_outhaclose; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -234715,7 +302128,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CEIL_Peek(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HA_Peek(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); } /*finally:*/ { @@ -234743,34 +302156,61 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14371, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14372, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 19859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 19859, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 19859, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 19859, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6) != (0)) __PYX_ERR(3, 19859, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_7 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -234778,28 +302218,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self) { + double __pyx_v_outhaopen; + double __pyx_v_outhahigh; + double __pyx_v_outhalow; + double __pyx_v_outhaclose; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -234816,7 +302263,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CEIL_Value(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HA_Value(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); } /*finally:*/ { @@ -234844,46 +302291,73 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14382, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14383, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 19873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 19873, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 19873, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 19873, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6) != (0)) __PYX_ERR(3, 19873, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_7 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11CEIL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9HA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CEIL_OutRange(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_HA_OutRange(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -234894,12 +302368,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11CEIL_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11CEIL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9HA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CEIL_Advance(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_HA_Advance(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -234911,15 +302385,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11CEIL_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CEIL_Stream_10copy, "CEIL_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9HA_Stream_10copy, "HA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -234945,16 +302419,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self) { - TA_CEIL_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self) { + TA_HA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -234971,18 +302445,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14394, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream))))) __PYX_ERR(3, 14394, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream))))) __PYX_ERR(3, 19884, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -234996,7 +302470,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CEIL_Clone(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_HA_Clone(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -235039,7 +302513,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14404, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -235061,7 +302535,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -235074,19 +302548,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10CMF_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10CMF_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10HMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10HMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10CMF_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10HMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10CMF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10HMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -235100,7 +302574,7 @@ static void __pyx_pf_5talib_7_ta_lib_10CMF_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_CMF_Close(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HMA_Close(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -235126,30 +302600,27 @@ static void __pyx_pf_5talib_7_ta_lib_10CMF_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10CMF_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10HMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10CMF_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10HMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -235165,82 +302636,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14428, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19918, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14428, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14428, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14428, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19918, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19918, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14428, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 14428, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19918, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 19918, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14428, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14428, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14428, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19918, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19918, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - __pyx_v_volume = values[3]; - if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14428, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19918, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 14428, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19918, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -235251,16 +302701,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static int __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CMF_Stream *__pyx_v_handle; + TA_HMA_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -235276,55 +302723,31 @@ static int __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14429, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14430, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14431, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14433, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14433, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14433, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14433, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 14433, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19920, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14434, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19921, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14435, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19922, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14436, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19923, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14441, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19928, __pyx_L1_error) /*try:*/ { @@ -235334,9 +302757,9 @@ static int __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CMF_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_HMA_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_CMF_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -235353,7 +302776,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_CMF_Close(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HMA_Close(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -235421,7 +302844,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMF_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14458, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -235433,13 +302856,10 @@ static int __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -235455,32 +302875,29 @@ static int __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMF_Stream_4open_and_fill, "CMF_Stream.open_and_fill(high, low, close, volume, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10CMF_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMF_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10HMA_Stream_4open_and_fill, "HMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10HMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10HMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -235496,82 +302913,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14460, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19947, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14460, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14460, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14460, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14460, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19947, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14460, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19947, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14460, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 14460, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19947, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 19947, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14460, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14460, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14460, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14460, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19947, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14460, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19947, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - __pyx_v_volume = values[3]; - if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14461, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19948, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 14460, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19947, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -235582,11 +302978,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -235595,8 +302988,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CMF_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_stream = 0; + TA_HMA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -235618,60 +303011,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14463, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14464, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14466, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14466, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14466, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14466, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 14466, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19950, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14467, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19951, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14468, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19952, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14469, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19953, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14475, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14477, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19961, __pyx_L1_error) /*try:*/ { @@ -235681,7 +303050,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CMF_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_HMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -235694,7 +303063,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14481, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19965, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -235705,7 +303074,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CMF_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -235809,36 +303178,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14492, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14493, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14493, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14493, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14493, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_volume); - __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 14493, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14493, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19977, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14493, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14493, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19977, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14493, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 19977, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -235856,13 +303216,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -235881,30 +303238,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMF_Stream_6update, "CMF_Stream.update(self, double high, double low, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10HMA_Stream_6update, "HMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; - double __pyx_v_volume; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -235920,80 +303274,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14495, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19979, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14495, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14495, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14495, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19979, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14495, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 14495, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19979, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19979, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14495, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14495, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14495, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19979, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14496, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14496, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14496, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14496, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19980, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14495, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19979, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -236017,7 +303347,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CMF_Update(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HMA_Update(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -236045,13 +303375,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14503, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14504, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -236068,7 +303398,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -236080,30 +303410,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMF_Stream_8peek, "CMF_Stream.peek(self, double high, double low, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10HMA_Stream_8peek, "HMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; - double __pyx_v_volume; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -236119,80 +303446,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14506, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19990, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14506, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14506, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14506, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14506, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19990, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14506, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 14506, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19990, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19990, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14506, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14506, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14506, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14506, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19990, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14507, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14507, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14507, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14507, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19991, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 14506, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19990, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -236216,7 +303519,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CMF_Peek(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HMA_Peek(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -236244,13 +303547,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14514, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14515, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -236267,7 +303570,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -236279,21 +303582,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -236317,7 +303620,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CMF_Value(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HMA_Value(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -236345,13 +303648,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14525, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14526, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -236368,7 +303671,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -236379,12 +303682,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10HMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CMF_OutRange(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_HMA_OutRange(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -236395,12 +303698,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMF_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10HMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CMF_Advance(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_HMA_Advance(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -236412,15 +303715,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMF_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMF_Stream_10copy, "CMF_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10HMA_Stream_10copy, "HMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -236446,16 +303749,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self) { - TA_CMF_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self) { + TA_HMA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -236472,18 +303775,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14537, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream))))) __PYX_ERR(3, 14537, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream))))) __PYX_ERR(3, 20021, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -236497,7 +303800,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CMF_Clone(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_HMA_Clone(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -236540,7 +303843,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14547, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -236562,7 +303865,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -236575,19 +303878,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10CMO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10CMO_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10CMO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10CMO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -236601,7 +303904,7 @@ static void __pyx_pf_5talib_7_ta_lib_10CMO_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_CMO_Close(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HT_DCPERIOD_Close(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -236627,14 +303930,14 @@ static void __pyx_pf_5talib_7_ta_lib_10CMO_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10CMO_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10CMO_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -236642,12 +303945,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -236663,78 +303965,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14571, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20053, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14571, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14571, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20053, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14571, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 20053, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14571, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14571, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20053, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14571, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14571, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20053, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CMO_Stream *__pyx_v_handle; + TA_HT_DCPERIOD_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -236750,31 +304035,31 @@ static int __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14572, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14573, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14573, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20055, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14574, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20056, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14575, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20057, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14576, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20058, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14581, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20063, __pyx_L1_error) /*try:*/ { @@ -236784,9 +304069,9 @@ static int __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CMO_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_HT_DCPERIOD_Lookback() + 1); - __pyx_v_retCode = TA_CMO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_DCPERIOD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -236803,7 +304088,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_CMO_Close(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HT_DCPERIOD_Close(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -236871,7 +304156,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14598, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -236883,7 +304168,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -236902,16 +304187,16 @@ static int __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMO_Stream_4open_and_fill, "CMO_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10CMO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMO_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill, "HT_DCPERIOD_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -236919,12 +304204,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -236940,72 +304224,55 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14600, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20082, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14600, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20082, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14600, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20082, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14600, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 20082, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14600, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14600, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20082, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14601, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14600, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20082, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -237015,8 +304282,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CMO_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_stream = 0; + TA_HT_DCPERIOD_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -237038,36 +304305,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14602, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14603, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14603, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20085, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14604, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20086, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14605, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20087, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14606, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20088, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14612, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_DCPERIOD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14614, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20096, __pyx_L1_error) /*try:*/ { @@ -237077,7 +304344,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CMO_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPERIOD_Lookback()); } /*finally:*/ { @@ -237090,7 +304357,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14618, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20100, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -237101,7 +304368,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CMO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_DCPERIOD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -237205,27 +304472,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14629, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14630, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14630, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14630, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20112, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14630, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14630, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20112, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14630, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 20112, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -237243,7 +304510,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -237265,15 +304532,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMO_Stream_6update, "CMO_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update, "HT_DCPERIOD_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -237303,43 +304570,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14632, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20114, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20114, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14632, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20114, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14632, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20114, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20114, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14633, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20115, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14632, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20114, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -237350,7 +304617,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -237374,7 +304641,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CMO_Update(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_DCPERIOD_Update(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -237402,13 +304669,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14640, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14641, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -237425,7 +304692,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -237437,15 +304704,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMO_Stream_8peek, "CMO_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek, "HT_DCPERIOD_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -237475,43 +304742,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14643, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20125, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20125, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14643, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20125, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14643, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20125, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20125, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14644, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20126, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14643, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20125, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -237522,7 +304789,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -237546,7 +304813,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CMO_Peek(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_DCPERIOD_Peek(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -237574,13 +304841,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14651, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14652, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -237597,7 +304864,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -237609,21 +304876,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -237647,7 +304914,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CMO_Value(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_DCPERIOD_Value(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -237675,13 +304942,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14662, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14663, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -237698,7 +304965,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -237709,12 +304976,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CMO_OutRange(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_HT_DCPERIOD_OutRange(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -237725,12 +304992,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMO_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CMO_Advance(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_HT_DCPERIOD_Advance(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -237742,15 +305009,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMO_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMO_Stream_10copy, "CMO_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy, "HT_DCPERIOD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -237776,16 +305043,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self) { - TA_CMO_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self) { + TA_HT_DCPERIOD_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -237802,18 +305069,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14674, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream))))) __PYX_ERR(3, 14674, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream))))) __PYX_ERR(3, 20156, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -237827,7 +305094,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CMO_Clone(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_HT_DCPERIOD_Clone(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -237870,7 +305137,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14684, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -237892,7 +305159,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -237905,19 +305172,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11CMOU_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11CMOU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -237931,7 +305198,7 @@ static void __pyx_pf_5talib_7_ta_lib_11CMOU_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_CMOU_Close(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HT_DCPHASE_Close(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -237957,14 +305224,14 @@ static void __pyx_pf_5talib_7_ta_lib_11CMOU_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -237972,12 +305239,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -237993,78 +305259,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14708, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20188, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14708, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20188, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14708, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20188, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14708, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 20188, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14708, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14708, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20188, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14708, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14708, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20188, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CMOU_Stream *__pyx_v_handle; + TA_HT_DCPHASE_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -238080,31 +305329,31 @@ static int __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14709, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14710, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14710, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20190, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14711, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20191, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14712, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20192, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14713, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20193, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14718, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20198, __pyx_L1_error) /*try:*/ { @@ -238114,9 +305363,9 @@ static int __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CMOU_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_HT_DCPHASE_Lookback() + 1); - __pyx_v_retCode = TA_CMOU_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_DCPHASE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -238133,7 +305382,7 @@ static int __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_CMOU_Close(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HT_DCPHASE_Close(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -238201,7 +305450,7 @@ static int __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14735, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -238213,7 +305462,7 @@ static int __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -238232,16 +305481,16 @@ static int __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill, "CMOU_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill, "HT_DCPHASE_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -238249,12 +305498,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -238270,72 +305518,55 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14737, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20217, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14737, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14737, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20217, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14737, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20217, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14737, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 20217, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14737, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14737, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20217, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14738, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14737, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20217, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -238345,8 +305576,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CMOU_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_stream = 0; + TA_HT_DCPHASE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -238368,36 +305599,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14739, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14740, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14740, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20220, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14741, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20221, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14742, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20222, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14743, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20223, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMOU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14749, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_DCPHASE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14751, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20231, __pyx_L1_error) /*try:*/ { @@ -238407,7 +305638,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CMOU_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPHASE_Lookback()); } /*finally:*/ { @@ -238420,7 +305651,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14755, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20235, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -238431,7 +305662,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CMOU_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_DCPHASE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -238535,27 +305766,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMOU_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14766, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14767, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14767, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14767, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20247, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14767, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14767, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20247, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14767, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 20247, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -238573,7 +305804,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -238595,15 +305826,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CMOU_Stream_6update, "CMOU_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update, "HT_DCPHASE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -238633,43 +305864,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14769, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20249, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14769, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20249, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14769, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20249, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14769, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20249, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14769, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20249, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14770, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20250, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14769, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20249, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -238680,7 +305911,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -238704,7 +305935,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CMOU_Update(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_DCPHASE_Update(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -238732,13 +305963,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14777, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14778, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -238755,7 +305986,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -238767,15 +305998,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CMOU_Stream_8peek, "CMOU_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek, "HT_DCPHASE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -238805,43 +306036,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14780, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20260, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14780, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20260, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14780, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20260, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14780, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20260, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14780, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20260, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14781, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20261, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14780, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20260, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -238852,7 +306083,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -238876,7 +306107,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CMOU_Peek(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_DCPHASE_Peek(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -238904,13 +306135,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14788, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14789, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -238927,7 +306158,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -238939,21 +306170,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -238977,7 +306208,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CMOU_Value(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_DCPHASE_Value(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -239005,13 +306236,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14799, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14800, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -239028,7 +306259,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -239039,12 +306270,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11CMOU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CMOU_OutRange(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_HT_DCPHASE_OutRange(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -239055,12 +306286,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11CMOU_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11CMOU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CMOU_Advance(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_HT_DCPHASE_Advance(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -239072,15 +306303,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11CMOU_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CMOU_Stream_10copy, "CMOU_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy, "HT_DCPHASE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -239106,16 +306337,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self) { - TA_CMOU_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self) { + TA_HT_DCPHASE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -239132,18 +306363,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14811, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream))))) __PYX_ERR(3, 14811, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream))))) __PYX_ERR(3, 20291, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -239157,7 +306388,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CMOU_Clone(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_HT_DCPHASE_Clone(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -239200,7 +306431,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14821, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -239222,7 +306453,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -239235,19 +306466,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -239261,7 +306492,7 @@ static void __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream___dealloc__(struct __pyx_o if (__pyx_t_1) { - (void)(TA_COPPOCK_Close(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HT_PHASOR_Close(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -239287,14 +306518,14 @@ static void __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream___dealloc__(struct __pyx_o /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -239302,14 +306533,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_wmaperiod; - int __pyx_v_roc1period; - int __pyx_v_roc2period; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -239325,107 +306553,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14847, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20324, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14847, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14847, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14847, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14847, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20324, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14847, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20324, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 14847, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 20324, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14847, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14847, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14847, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14847, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20324, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14847, __pyx_L3_error) - } else { - __pyx_v_wmaperiod = ((int)-2147483648); - } - if (values[2]) { - __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14847, __pyx_L3_error) - } else { - __pyx_v_roc1period = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14847, __pyx_L3_error) - } else { - __pyx_v_roc2period = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 14847, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20324, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period) { +static int __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_COPPOCK_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_HT_PHASOR_Stream *__pyx_v_handle; + double __pyx_v_outinphase; + double __pyx_v_outquadrature; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -239440,31 +306624,31 @@ static int __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14848, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14849, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14849, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20326, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14850, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20327, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14851, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20328, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14852, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20329, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14857, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20335, __pyx_L1_error) /*try:*/ { @@ -239474,9 +306658,9 @@ static int __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(struct __pyx_obj_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period) + 1); + __pyx_v_need = (TA_HT_PHASOR_Lookback() + 1); - __pyx_v_retCode = TA_COPPOCK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_PHASOR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -239493,7 +306677,7 @@ static int __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - (void)(TA_COPPOCK_Close(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HT_PHASOR_Close(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -239561,7 +306745,7 @@ static int __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14874, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -239573,7 +306757,7 @@ static int __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(struct __pyx_obj_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -239586,22 +306770,23 @@ static int __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(struct __pyx_obj_ + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill, "COPPOCK_Stream.open_and_fill(real, int wmaperiod=-0x80000000, int roc1period=-0x80000000, int roc2period=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill, "HT_PHASOR_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -239609,14 +306794,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_wmaperiod; - int __pyx_v_roc1period; - int __pyx_v_roc2period; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -239632,111 +306814,67 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14876, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20354, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14876, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14876, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14876, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14876, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14876, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20354, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 14876, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 20354, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14876, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14876, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14876, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14876, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20354, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14877, __pyx_L3_error) - } else { - __pyx_v_wmaperiod = ((int)-2147483648); - } - if (values[2]) { - __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14877, __pyx_L3_error) - } else { - __pyx_v_roc1period = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14877, __pyx_L3_error) - } else { - __pyx_v_roc2period = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 14876, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20354, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(__pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinphase = 0; + PyArrayObject *__pyx_v_outquadrature = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_COPPOCK_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_stream = 0; + TA_HT_PHASOR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -239753,41 +306891,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObje PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14878, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14879, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14879, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20357, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14880, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20358, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14881, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20359, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14882, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20360, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COPPOCK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14888, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_PHASOR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14890, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20369, __pyx_L1_error) /*try:*/ { @@ -239797,7 +306936,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period)); + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_PHASOR_Lookback()); } /*finally:*/ { @@ -239810,9 +306949,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14894, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20373, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20374, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -239821,7 +306965,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_COPPOCK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_PHASOR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinphase)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outquadrature)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -239925,37 +307069,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14905, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14906, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14906, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 14906, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinphase)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14906, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outquadrature)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 20386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14906, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 14906, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 20386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -239963,7 +307123,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObje __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -239972,7 +307133,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObje - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinphase); + __Pyx_XDECREF((PyObject *)__pyx_v_outquadrature); @@ -239985,15 +307147,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_6update, "COPPOCK_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_6update, "HT_PHASOR_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -240023,43 +307185,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14908, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20388, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14908, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14908, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20388, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14908, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20388, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14908, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20388, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14909, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20389, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14908, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20388, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -240070,14 +307232,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outinphase; + double __pyx_v_outquadrature; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -240094,7 +307259,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_6update(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_COPPOCK_Update(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_PHASOR_Update(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); } /*finally:*/ { @@ -240122,34 +307287,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_6update(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14916, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14917, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20398, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20398, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -240157,15 +307335,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_6update(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_8peek, "COPPOCK_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek, "HT_PHASOR_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -240195,43 +307373,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14919, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20400, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20400, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14919, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20400, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14919, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20400, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20400, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14920, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20401, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14919, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20400, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -240242,14 +307420,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outinphase; + double __pyx_v_outquadrature; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -240266,7 +307447,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_8peek(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_COPPOCK_Peek(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_PHASOR_Peek(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); } /*finally:*/ { @@ -240294,34 +307475,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_8peek(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14927, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14928, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20410, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20410, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -240329,28 +307523,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_8peek(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self) { + double __pyx_v_outinphase; + double __pyx_v_outquadrature; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -240367,7 +307564,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_COPPOCK_Value(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_PHASOR_Value(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); } /*finally:*/ { @@ -240395,46 +307592,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14938, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14939, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20422, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20422, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_COPPOCK_OutRange(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_HT_PHASOR_OutRange(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -240445,12 +307655,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__out_range(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_COPPOCK_Advance(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_HT_PHASOR_Advance(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -240462,15 +307672,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__advance(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_10copy, "COPPOCK_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy, "HT_PHASOR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -240496,16 +307706,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self) { - TA_COPPOCK_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self) { + TA_HT_PHASOR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -240522,18 +307732,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(struct __pyx_o __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14950, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream))))) __PYX_ERR(3, 14950, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream))))) __PYX_ERR(3, 20433, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -240547,7 +307757,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_COPPOCK_Clone(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_HT_PHASOR_Clone(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -240590,7 +307800,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(struct __pyx_o if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14960, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -240612,7 +307822,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(struct __pyx_o __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -240625,19 +307835,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(struct __pyx_o /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_13CORREL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_13CORREL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -240651,7 +307861,7 @@ static void __pyx_pf_5talib_7_ta_lib_13CORREL_Stream___dealloc__(struct __pyx_ob if (__pyx_t_1) { - (void)(TA_CORREL_Close(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HT_SINE_Close(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -240677,28 +307887,26 @@ static void __pyx_pf_5talib_7_ta_lib_13CORREL_Stream___dealloc__(struct __pyx_ob /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real0 = 0; - PyObject *__pyx_v_real1 = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -240714,87 +307922,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14985, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20466, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14985, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14985, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14985, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20466, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14985, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 14985, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14985, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14985, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14985, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20466, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 20466, __pyx_L3_error) } } - } - __pyx_v_real0 = values[0]; - __pyx_v_real1 = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14985, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20466, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 14985, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20466, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real0 = 0; - PyArrayObject *__pyx_v_a_real1 = 0; +static int __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CORREL_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_HT_SINE_Stream *__pyx_v_handle; + double __pyx_v_outsine; + double __pyx_v_outleadsine; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -240809,39 +307993,31 @@ static int __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14986, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14987, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14988, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real0); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 14988, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_real1); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 14988, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20468, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14989, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20469, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14990, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20470, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14991, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20471, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 14996, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20477, __pyx_L1_error) /*try:*/ { @@ -240851,9 +308027,9 @@ static int __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(struct __pyx_obj_5 __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CORREL_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_HT_SINE_Lookback() + 1); - __pyx_v_retCode = TA_CORREL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_SINE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outsine), (&__pyx_v_outleadsine)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -240870,7 +308046,7 @@ static int __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - (void)(TA_CORREL_Close(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HT_SINE_Close(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -240938,7 +308114,7 @@ static int __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15013, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -240950,11 +308126,10 @@ static int __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(struct __pyx_obj_5 goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -240964,36 +308139,35 @@ static int __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(struct __pyx_obj_5 + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill, "CORREL_Stream.open_and_fill(real0, real1, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill, "HT_SINE_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real0 = 0; - PyObject *__pyx_v_real1 = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -241009,91 +308183,67 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15015, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20496, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15015, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15015, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20496, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15015, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 15015, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15015, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15015, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15015, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20496, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 20496, __pyx_L3_error) } } - } - __pyx_v_real0 = values[0]; - __pyx_v_real1 = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15016, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20496, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 15015, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20496, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real0 = 0; - PyArrayObject *__pyx_v_a_real1 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outsine = 0; + PyArrayObject *__pyx_v_outleadsine = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CORREL_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_stream = 0; + TA_HT_SINE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -241110,49 +308260,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObjec PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15017, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15018, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15019, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real0); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 15019, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_real1); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 15019, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20499, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15020, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20500, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15021, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20501, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15022, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20502, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CORREL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15028, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_SINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15030, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20511, __pyx_L1_error) /*try:*/ { @@ -241162,7 +308305,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CORREL_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_SINE_Lookback()); } /*finally:*/ { @@ -241175,9 +308318,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15034, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20515, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outsine = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20516, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -241186,7 +308334,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CORREL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_SINE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsine)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outleadsine)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -241290,40 +308438,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CORREL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15045, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15046, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real0); - __Pyx_GIVEREF(__pyx_v_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 15046, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_real1); - __Pyx_GIVEREF(__pyx_v_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 15046, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15046, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20528, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsine)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15046, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20528, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20528, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outleadsine)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 20528, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15046, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 15046, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 20528, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 20528, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 20528, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20528, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20528, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -241331,17 +308492,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObjec __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outsine); + __Pyx_XDECREF((PyObject *)__pyx_v_outleadsine); @@ -241354,28 +308516,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CORREL_Stream_6update, "CORREL_Stream.update(self, double real0, double real1)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_6update, "HT_SINE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real0; - double __pyx_v_real1; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -241391,71 +308552,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15048, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20530, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15048, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15048, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20530, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15048, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 15048, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20530, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20530, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15048, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15048, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20530, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15049, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15049, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20531, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15048, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20530, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outsine; + double __pyx_v_outleadsine; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -241472,7 +308628,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_6update(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CORREL_Update(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_SINE_Update(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outsine), (&__pyx_v_outleadsine)); } /*finally:*/ { @@ -241500,34 +308656,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_6update(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15056, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15057, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20540, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20540, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -241535,28 +308704,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_6update(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CORREL_Stream_8peek, "CORREL_Stream.peek(self, double real0, double real1)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_8peek, "HT_SINE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real0; - double __pyx_v_real1; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -241572,71 +308740,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15059, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20542, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15059, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20542, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15059, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 15059, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20542, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20542, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15059, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20542, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15060, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15060, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20543, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15059, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20542, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outsine; + double __pyx_v_outleadsine; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -241653,7 +308816,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_8peek(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CORREL_Peek(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_SINE_Peek(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outsine), (&__pyx_v_outleadsine)); } /*finally:*/ { @@ -241681,34 +308844,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_8peek(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15067, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15068, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20552, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20552, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20552, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -241716,28 +308892,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_8peek(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self) { + double __pyx_v_outsine; + double __pyx_v_outleadsine; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -241754,7 +308933,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CORREL_Value(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_SINE_Value(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outsine), (&__pyx_v_outleadsine)); } /*finally:*/ { @@ -241782,46 +308961,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15078, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15079, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20564, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20564, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13CORREL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CORREL_OutRange(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_HT_SINE_OutRange(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -241832,12 +309024,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13CORREL_Stream__out_range(struct __py } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13CORREL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CORREL_Advance(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_HT_SINE_Advance(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -241849,15 +309041,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13CORREL_Stream__advance(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CORREL_Stream_10copy, "CORREL_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_10copy, "HT_SINE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -241883,16 +309075,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self) { - TA_CORREL_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self) { + TA_HT_SINE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -241909,18 +309101,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(struct __pyx_ob __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15090, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream))))) __PYX_ERR(3, 15090, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream))))) __PYX_ERR(3, 20575, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -241934,7 +309126,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CORREL_Clone(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_HT_SINE_Clone(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -241977,7 +309169,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(struct __pyx_ob if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15100, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -241999,7 +309191,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(struct __pyx_ob __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -242012,19 +309204,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(struct __pyx_ob /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10COS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10COS_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10COS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10COS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -242038,7 +309230,7 @@ static void __pyx_pf_5talib_7_ta_lib_10COS_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_COS_Close(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HT_TRENDLINE_Close(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -242064,14 +309256,14 @@ static void __pyx_pf_5talib_7_ta_lib_10COS_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10COS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10COS_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -242101,43 +309293,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15122, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20607, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15122, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20607, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 15122, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 20607, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20607, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15122, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20607, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -242147,13 +309339,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, PyObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_COS_Stream *__pyx_v_handle; + TA_HT_TRENDLINE_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -242169,31 +309361,31 @@ static int __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15123, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15124, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15124, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20609, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15125, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20610, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15126, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20611, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15127, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20612, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15132, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20617, __pyx_L1_error) /*try:*/ { @@ -242203,9 +309395,9 @@ static int __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_COS_Lookback() + 1); + __pyx_v_need = (TA_HT_TRENDLINE_Lookback() + 1); - __pyx_v_retCode = TA_COS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_TRENDLINE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -242222,7 +309414,7 @@ static int __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_COS_Close(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HT_TRENDLINE_Close(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -242290,7 +309482,7 @@ static int __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15149, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -242302,7 +309494,7 @@ static int __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.COS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -242321,16 +309513,16 @@ static int __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10COS_Stream_4open_and_fill, "COS_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10COS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10COS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10COS_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill, "HT_TRENDLINE_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -242360,43 +309552,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15151, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20636, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20636, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15151, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20636, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 15151, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 20636, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20636, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15151, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20636, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -242406,7 +309598,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -242416,8 +309608,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_COS_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_stream = 0; + TA_HT_TRENDLINE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -242439,36 +309631,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15153, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15154, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15154, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20639, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15155, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20640, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15156, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20641, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15157, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20642, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15163, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_TRENDLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15165, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20650, __pyx_L1_error) /*try:*/ { @@ -242478,7 +309670,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_COS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDLINE_Lookback()); } /*finally:*/ { @@ -242491,7 +309683,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15169, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20654, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -242502,7 +309694,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_COS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_TRENDLINE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -242606,27 +309798,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15180, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15181, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15181, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15181, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20666, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15181, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15181, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20666, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 15181, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 20666, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -242644,7 +309836,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.COS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -242666,15 +309858,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10COS_Stream_6update, "COS_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update, "HT_TRENDLINE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -242704,43 +309896,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15183, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20668, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15183, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20668, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15183, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20668, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15183, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20668, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15183, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20668, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15184, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20669, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15183, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20668, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -242751,7 +309943,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -242775,7 +309967,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_COS_Update(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_TRENDLINE_Update(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -242803,13 +309995,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15191, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15192, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -242826,7 +310018,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.COS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -242838,15 +310030,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10COS_Stream_8peek, "COS_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek, "HT_TRENDLINE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -242876,43 +310068,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15194, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20679, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15194, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20679, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15194, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20679, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15194, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20679, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15194, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20679, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15195, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20680, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15194, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20679, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -242923,7 +310115,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -242947,7 +310139,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_COS_Peek(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_TRENDLINE_Peek(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -242975,13 +310167,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15202, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15203, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -242998,7 +310190,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.COS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -243010,21 +310202,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -243048,7 +310240,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_COS_Value(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_TRENDLINE_Value(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -243076,13 +310268,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15213, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15214, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -243099,7 +310291,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.COS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -243110,12 +310302,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10COS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_COS_OutRange(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_HT_TRENDLINE_OutRange(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -243126,12 +310318,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10COS_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10COS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_COS_Advance(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_HT_TRENDLINE_Advance(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -243143,15 +310335,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10COS_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10COS_Stream_10copy, "COS_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy, "HT_TRENDLINE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -243177,16 +310369,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self) { - TA_COS_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self) { + TA_HT_TRENDLINE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -243203,18 +310395,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15225, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream))))) __PYX_ERR(3, 15225, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream))))) __PYX_ERR(3, 20710, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -243228,7 +310420,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_COS_Clone(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_HT_TRENDLINE_Clone(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -243271,7 +310463,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15235, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -243293,7 +310485,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.COS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -243306,19 +310498,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11COSH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11COSH_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11COSH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11COSH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -243332,7 +310524,7 @@ static void __pyx_pf_5talib_7_ta_lib_11COSH_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_COSH_Close(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HT_TRENDMODE_Close(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -243358,14 +310550,14 @@ static void __pyx_pf_5talib_7_ta_lib_11COSH_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11COSH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11COSH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -243395,43 +310587,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15257, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20742, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15257, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20742, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15257, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20742, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 15257, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 20742, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15257, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20742, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15257, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20742, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -243441,14 +310633,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, PyObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_COSH_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_HT_TRENDMODE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -243463,31 +310655,31 @@ static int __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15258, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15259, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15259, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20744, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15260, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20745, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15261, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20746, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15262, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20747, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15267, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20752, __pyx_L1_error) /*try:*/ { @@ -243497,9 +310689,9 @@ static int __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_COSH_Lookback() + 1); + __pyx_v_need = (TA_HT_TRENDMODE_Lookback() + 1); - __pyx_v_retCode = TA_COSH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_TRENDMODE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -243516,7 +310708,7 @@ static int __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_COSH_Close(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_HT_TRENDMODE_Close(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -243584,7 +310776,7 @@ static int __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COSH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15284, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -243596,7 +310788,7 @@ static int __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -243615,16 +310807,16 @@ static int __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11COSH_Stream_4open_and_fill, "COSH_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11COSH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11COSH_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill, "HT_TRENDMODE_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -243654,43 +310846,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15286, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20771, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15286, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20771, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 15286, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 20771, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20771, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15286, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20771, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -243700,18 +310892,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_COSH_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_stream = 0; + TA_HT_TRENDMODE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -243733,36 +310925,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15288, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15289, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15289, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20774, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15290, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20775, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15291, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20776, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15292, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20777, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COSH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15298, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_TRENDMODE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15300, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20785, __pyx_L1_error) /*try:*/ { @@ -243772,7 +310964,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_COSH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDMODE_Lookback()); } /*finally:*/ { @@ -243785,9 +310977,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15304, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20789, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -243796,7 +310988,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_COSH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_TRENDMODE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -243900,27 +311092,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COSH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15315, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15316, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15316, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15316, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20801, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15316, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15316, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20801, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 15316, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 20801, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -243938,7 +311130,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -243947,7 +311139,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -243960,15 +311152,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11COSH_Stream_6update, "COSH_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update, "HT_TRENDMODE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -243998,43 +311190,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15318, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20803, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20803, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15318, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20803, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15318, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20803, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20803, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15319, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20804, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15318, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20803, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -244045,8 +311237,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -244069,7 +311261,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_COSH_Update(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_TRENDMODE_Update(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -244097,13 +311289,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15326, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15327, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -244120,7 +311312,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -244132,15 +311324,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11COSH_Stream_8peek, "COSH_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek, "HT_TRENDMODE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -244170,43 +311362,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15329, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20814, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15329, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20814, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15329, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20814, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15329, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20814, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15329, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20814, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15330, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20815, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15329, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20814, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -244217,8 +311409,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -244241,7 +311433,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_COSH_Peek(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_TRENDMODE_Peek(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); } /*finally:*/ { @@ -244269,13 +311461,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15337, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15338, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -244292,7 +311484,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -244304,22 +311496,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -244342,7 +311534,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_COSH_Value(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_HT_TRENDMODE_Value(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); } /*finally:*/ { @@ -244370,13 +311562,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15348, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15349, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -244393,7 +311585,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -244404,12 +311596,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11COSH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_COSH_OutRange(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_HT_TRENDMODE_OutRange(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -244420,12 +311612,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11COSH_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11COSH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_COSH_Advance(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_HT_TRENDMODE_Advance(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -244437,15 +311629,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11COSH_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11COSH_Stream_10copy, "COSH_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy, "HT_TRENDMODE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -244471,16 +311663,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self) { - TA_COSH_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self) { + TA_HT_TRENDMODE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -244497,18 +311689,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15360, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream))))) __PYX_ERR(3, 15360, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream))))) __PYX_ERR(3, 20845, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -244522,7 +311714,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_COSH_Clone(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_HT_TRENDMODE_Clone(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -244565,7 +311757,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15370, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -244587,7 +311779,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -244600,19 +311792,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10IBS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10IBS_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10IBS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10IBS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -244626,7 +311818,7 @@ static void __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream___dealloc__(struct __pyx_ob if (__pyx_t_1) { - (void)(TA_CUMSUM_Close(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_IBS_Close(((TA_IBS_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -244652,26 +311844,28 @@ static void __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream___dealloc__(struct __pyx_ob /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10IBS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10IBS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -244687,45 +311881,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15392, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20877, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20877, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20877, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15392, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20877, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15392, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 15392, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20877, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 20877, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15392, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20877, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20877, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20877, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15392, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20877, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IBS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IBS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -244735,13 +311943,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_10IBS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CUMSUM_Stream *__pyx_v_handle; + TA_IBS_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -244757,31 +311967,47 @@ static int __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15393, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15394, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15394, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20881, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20881, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20881, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15395, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20882, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15396, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20883, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15397, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20884, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15402, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20889, __pyx_L1_error) /*try:*/ { @@ -244791,9 +312017,9 @@ static int __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(struct __pyx_obj_5 __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CUMSUM_Lookback() + 1); + __pyx_v_need = (TA_IBS_Lookback() + 1); - __pyx_v_retCode = TA_CUMSUM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_IBS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -244810,7 +312036,7 @@ static int __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - (void)(TA_CUMSUM_Close(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_IBS_Close(((TA_IBS_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -244878,7 +312104,7 @@ static int __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15419, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_IBS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -244890,10 +312116,12 @@ static int __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(struct __pyx_obj_5 goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IBS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -244909,28 +312137,30 @@ static int __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10IBS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill, "CUMSUM_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IBS_Stream_4open_and_fill, "IBS_Stream.open_and_fill(high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10IBS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10IBS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10IBS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10IBS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -244946,45 +312176,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15421, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20908, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20908, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20908, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20908, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15421, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 15421, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20908, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 20908, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20908, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20908, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20908, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15421, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20908, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IBS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IBS_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -244994,8 +312238,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10IBS_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -245004,8 +312250,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObjec PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CUMSUM_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_stream = 0; + TA_IBS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -245027,36 +312273,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15423, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15424, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15424, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20913, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20913, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20913, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15425, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20914, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15426, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20915, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15427, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20916, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CUMSUM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15433, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_IBS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IBS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15435, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20924, __pyx_L1_error) /*try:*/ { @@ -245066,7 +312328,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CUMSUM_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_IBS_Lookback()); } /*finally:*/ { @@ -245079,7 +312341,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15439, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20928, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -245090,7 +312352,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CUMSUM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_IBS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -245194,27 +312456,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15450, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_IBS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15451, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15451, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15451, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20940, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20940, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20940, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15451, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15451, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20940, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 15451, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 20940, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -245232,10 +312500,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObjec __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IBS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -245254,27 +312524,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10IBS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_6update, "CUMSUM_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IBS_Stream_6update, "IBS_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10IBS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -245290,56 +312562,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15453, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20942, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20942, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20942, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15453, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20942, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15453, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15453, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20942, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 20942, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15453, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20942, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20942, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20942, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15454, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20943, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20943, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20943, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15453, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20942, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IBS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IBS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10IBS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -245363,7 +312651,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_6update(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CUMSUM_Update(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_IBS_Update(((TA_IBS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -245391,13 +312679,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_6update(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15461, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IBS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15462, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -245414,7 +312702,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_6update(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IBS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -245426,27 +312714,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_6update(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10IBS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_8peek, "CUMSUM_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IBS_Stream_8peek, "IBS_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10IBS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -245462,56 +312752,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15464, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20953, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20953, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20953, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15464, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20953, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15464, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15464, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20953, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 20953, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15464, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20953, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20953, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20953, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15465, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20954, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20954, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20954, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15464, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20953, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IBS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IBS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10IBS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -245535,7 +312841,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_8peek(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CUMSUM_Peek(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_IBS_Peek(((TA_IBS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -245563,13 +312869,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_8peek(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15472, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IBS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15473, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -245586,7 +312892,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_8peek(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IBS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -245598,21 +312904,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_8peek(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10IBS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10IBS_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IBS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10IBS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -245636,7 +312942,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CUMSUM_Value(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_IBS_Value(((TA_IBS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -245664,13 +312970,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15483, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IBS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15484, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -245687,7 +312993,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_5value___get__(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IBS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -245698,12 +313004,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_5value___get__(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10IBS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CUMSUM_OutRange(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_IBS_OutRange(((TA_IBS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -245714,12 +313020,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__out_range(struct __py } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10IBS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CUMSUM_Advance(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_IBS_Advance(((TA_IBS_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -245731,15 +313037,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__advance(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10IBS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_10copy, "CUMSUM_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IBS_Stream_10copy, "IBS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10IBS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -245765,16 +313071,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IBS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self) { - TA_CUMSUM_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10IBS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_self) { + TA_IBS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -245791,18 +313097,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(struct __pyx_ob __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IBS_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15495, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream))))) __PYX_ERR(3, 15495, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IBS_Stream))))) __PYX_ERR(3, 20984, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -245816,7 +313122,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CUMSUM_Clone(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_IBS_Clone(((TA_IBS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -245859,7 +313165,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(struct __pyx_ob if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15505, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IBS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -245881,7 +313187,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(struct __pyx_ob __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IBS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -245894,19 +313200,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(struct __pyx_ob /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10CVI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10CVI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10CVI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10CVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -245920,7 +313226,7 @@ static void __pyx_pf_5talib_7_ta_lib_10CVI_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_CVI_Close(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ICHIMOKU_Close(((TA_ICHIMOKU_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -245946,14 +313252,14 @@ static void __pyx_pf_5talib_7_ta_lib_10CVI_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10CVI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10CVI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -245962,13 +313268,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; - int __pyx_v_rocperiod; + int __pyx_v_tenkanperiod; + int __pyx_v_kijunperiod; + int __pyx_v_senkoubperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -245984,50 +313291,58 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_tenkanperiod,&__pyx_mstate_global->__pyx_n_u_kijunperiod,&__pyx_mstate_global->__pyx_n_u_senkoubperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15530, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21023, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21023, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21023, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21023, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21023, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21023, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15530, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21023, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 15530, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, i); __PYX_ERR(3, 21023, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21023, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21023, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21023, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21023, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21023, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -246035,30 +313350,35 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15530, __pyx_L3_error) + __pyx_v_tenkanperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_tenkanperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21023, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_tenkanperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15530, __pyx_L3_error) + __pyx_v_kijunperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_kijunperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21023, __pyx_L3_error) } else { - __pyx_v_rocperiod = ((int)-2147483648); + __pyx_v_kijunperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_senkoubperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_senkoubperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21023, __pyx_L3_error) + } else { + __pyx_v_senkoubperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 15530, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 21023, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ICHIMOKU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_tenkanperiod, __pyx_v_kijunperiod, __pyx_v_senkoubperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -246066,19 +313386,23 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod) { +static int __pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_tenkanperiod, int __pyx_v_kijunperiod, int __pyx_v_senkoubperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_CVI_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_ICHIMOKU_Stream *__pyx_v_handle; + double __pyx_v_outtenkansen; + double __pyx_v_outkijunsen; + double __pyx_v_outsenkouspana; + double __pyx_v_outsenkouspanb; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -246093,39 +313417,39 @@ static int __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15531, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15532, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15533, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15533, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21026, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15533, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21026, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15534, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21027, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15535, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21028, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15536, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21029, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15541, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21037, __pyx_L1_error) /*try:*/ { @@ -246135,9 +313459,9 @@ static int __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod) + 1); + __pyx_v_need = (TA_ICHIMOKU_Lookback(__pyx_v_tenkanperiod, __pyx_v_kijunperiod, __pyx_v_senkoubperiod) + 1); - __pyx_v_retCode = TA_CVI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ICHIMOKU_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_tenkanperiod, __pyx_v_kijunperiod, __pyx_v_senkoubperiod, (&__pyx_v_outtenkansen), (&__pyx_v_outkijunsen), (&__pyx_v_outsenkouspana), (&__pyx_v_outsenkouspanb)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -246154,7 +313478,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_CVI_Close(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ICHIMOKU_Close(((TA_ICHIMOKU_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -246222,7 +313546,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CVI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15558, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ICHIMOKU_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -246234,7 +313558,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ICHIMOKU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); @@ -246248,22 +313572,25 @@ static int __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(struct __pyx_obj_5tal + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CVI_Stream_4open_and_fill, "CVI_Stream.open_and_fill(high, low, int timeperiod=-0x80000000, int rocperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10CVI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CVI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ICHIMOKU_Stream_4open_and_fill, "ICHIMOKU_Stream.open_and_fill(high, low, int tenkanperiod=-0x80000000, int kijunperiod=-0x80000000, int senkoubperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15ICHIMOKU_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15ICHIMOKU_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -246272,13 +313599,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; - int __pyx_v_rocperiod; + int __pyx_v_tenkanperiod; + int __pyx_v_kijunperiod; + int __pyx_v_senkoubperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -246294,50 +313622,58 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_tenkanperiod,&__pyx_mstate_global->__pyx_n_u_kijunperiod,&__pyx_mstate_global->__pyx_n_u_senkoubperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15560, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21056, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21056, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15560, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21056, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15560, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21056, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15560, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21056, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15560, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21056, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15560, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21056, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 15560, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, i); __PYX_ERR(3, 21056, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21056, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15560, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21056, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15560, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21056, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15560, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21056, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15560, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21056, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -246345,30 +313681,35 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15561, __pyx_L3_error) + __pyx_v_tenkanperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_tenkanperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21057, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_tenkanperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15561, __pyx_L3_error) + __pyx_v_kijunperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_kijunperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21057, __pyx_L3_error) } else { - __pyx_v_rocperiod = ((int)-2147483648); + __pyx_v_kijunperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_senkoubperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_senkoubperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21057, __pyx_L3_error) + } else { + __pyx_v_senkoubperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 15560, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 21056, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ICHIMOKU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_tenkanperiod, __pyx_v_kijunperiod, __pyx_v_senkoubperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -246376,11 +313717,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_tenkanperiod, int __pyx_v_kijunperiod, int __pyx_v_senkoubperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; @@ -246388,11 +313730,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject * int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outtenkansen = 0; + PyArrayObject *__pyx_v_outkijunsen = 0; + PyArrayObject *__pyx_v_outsenkouspana = 0; + PyArrayObject *__pyx_v_outsenkouspanb = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_CVI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_stream = 0; + TA_ICHIMOKU_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -246409,49 +313754,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject * PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15562, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15563, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15564, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15564, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21060, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15564, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21060, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15565, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21061, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15566, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21062, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15567, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21063, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15573, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ICHIMOKU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15575, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21074, __pyx_L1_error) /*try:*/ { @@ -246461,7 +313809,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ICHIMOKU_Lookback(__pyx_v_tenkanperiod, __pyx_v_kijunperiod, __pyx_v_senkoubperiod)); } /*finally:*/ { @@ -246474,9 +313822,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15579, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21078, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outtenkansen = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21079, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outkijunsen = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21080, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outsenkouspana = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21081, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outsenkouspanb = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -246485,7 +313848,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_CVI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ICHIMOKU_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_tenkanperiod, __pyx_v_kijunperiod, __pyx_v_senkoubperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outtenkansen)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkijunsen)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsenkouspana)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsenkouspanb)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -246589,40 +313952,87 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15590, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ICHIMOKU_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15591, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15591, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15591, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15591, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outtenkansen)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 21093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15591, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outkijunsen)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 21093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); + __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsenkouspana)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 21093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); + __pyx_t_16 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsenkouspanb)); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 21093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15591, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 15591, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_16); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_16) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_15 = 0; + __pyx_t_16 = 0; + __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 21093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 21093, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_16; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_16 = 0; goto __pyx_L0; @@ -246630,7 +314040,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_AddTraceback("talib._ta_lib.ICHIMOKU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); @@ -246640,7 +314053,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject * - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outtenkansen); + __Pyx_XDECREF((PyObject *)__pyx_v_outkijunsen); + __Pyx_XDECREF((PyObject *)__pyx_v_outsenkouspana); + __Pyx_XDECREF((PyObject *)__pyx_v_outsenkouspanb); @@ -246653,15 +314069,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CVI_Stream_6update, "CVI_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ICHIMOKU_Stream_6update, "ICHIMOKU_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -246692,50 +314108,50 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15593, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21095, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21095, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21095, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15593, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21095, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 15593, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 21095, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21095, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21095, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15594, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15594, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21096, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21096, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15593, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21095, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ICHIMOKU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -246747,14 +314163,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outtenkansen; + double __pyx_v_outkijunsen; + double __pyx_v_outsenkouspana; + double __pyx_v_outsenkouspanb; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -246771,7 +314194,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CVI_Update(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ICHIMOKU_Update(((TA_ICHIMOKU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outtenkansen), (&__pyx_v_outkijunsen), (&__pyx_v_outsenkouspana), (&__pyx_v_outsenkouspanb)); } /*finally:*/ { @@ -246799,34 +314222,61 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15601, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ICHIMOKU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15602, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outtenkansen); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outkijunsen); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsenkouspana); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outsenkouspanb); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 21107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 21107, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 21107, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 21107, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6) != (0)) __PYX_ERR(3, 21107, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_7 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.ICHIMOKU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -246834,15 +314284,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CVI_Stream_8peek, "CVI_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ICHIMOKU_Stream_8peek, "ICHIMOKU_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -246873,50 +314323,50 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15604, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21109, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21109, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21109, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15604, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21109, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 15604, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 21109, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21109, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21109, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15605, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15605, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21110, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21110, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15604, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21109, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ICHIMOKU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -246928,14 +314378,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outtenkansen; + double __pyx_v_outkijunsen; + double __pyx_v_outsenkouspana; + double __pyx_v_outsenkouspanb; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -246952,7 +314409,142 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_CVI_Peek(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ICHIMOKU_Peek(((TA_ICHIMOKU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outtenkansen), (&__pyx_v_outkijunsen), (&__pyx_v_outsenkouspana), (&__pyx_v_outsenkouspanb)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ICHIMOKU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outtenkansen); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outkijunsen); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsenkouspana); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outsenkouspanb); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 21121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 21121, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 21121, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 21121, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6) != (0)) __PYX_ERR(3, 21121, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_7; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_7 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.ICHIMOKU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self) { + double __pyx_v_outtenkansen; + double __pyx_v_outkijunsen; + double __pyx_v_outsenkouspana; + double __pyx_v_outsenkouspanb; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ICHIMOKU_Value(((TA_ICHIMOKU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outtenkansen), (&__pyx_v_outkijunsen), (&__pyx_v_outsenkouspana), (&__pyx_v_outsenkouspanb)); } /*finally:*/ { @@ -246980,133 +314572,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15612, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ICHIMOKU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15613, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outtenkansen); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outkijunsen); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsenkouspana); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outsenkouspanb); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 21135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 21135, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 21135, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 21135, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6) != (0)) __PYX_ERR(3, 21135, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_7 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.ICHIMOKU_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5value_1__get__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self) { - double __pyx_v_outreal; - TA_RetCode __pyx_v_retCode; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_Locks_PyMutex *__pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - { - __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; - __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); - /*try:*/ { - - __pyx_v_retCode = TA_CVI_Value(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); - goto __pyx_L8; - } - __pyx_L8:; - } - } - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L5; - } - __pyx_L5:; - } - } - - __pyx_t_2 = (__pyx_v_retCode != 0); - - if (__pyx_t_2) { - - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15623, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15624, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_3 = 0; - goto __pyx_L0; - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); @@ -247115,12 +314633,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10CVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15ICHIMOKU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_CVI_OutRange(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_ICHIMOKU_OutRange(((TA_ICHIMOKU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -247131,12 +314649,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10CVI_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10CVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15ICHIMOKU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_CVI_Advance(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_ICHIMOKU_Advance(((TA_ICHIMOKU_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -247148,15 +314666,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10CVI_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CVI_Stream_10copy, "CVI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ICHIMOKU_Stream_10copy, "ICHIMOKU_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -247182,16 +314700,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self) { - TA_CVI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15ICHIMOKU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_self) { + TA_ICHIMOKU_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -247208,18 +314726,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15635, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream))))) __PYX_ERR(3, 15635, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream))))) __PYX_ERR(3, 21146, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -247233,7 +314751,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_CVI_Clone(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_ICHIMOKU_Clone(((TA_ICHIMOKU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -247276,7 +314794,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15645, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ICHIMOKU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -247298,7 +314816,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ICHIMOKU_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -247311,19 +314829,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10IMI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10IMI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11DEMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10IMI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11DEMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10IMI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -247337,7 +314855,7 @@ static void __pyx_pf_5talib_7_ta_lib_11DEMA_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_DEMA_Close(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_IMI_Close(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -247363,27 +314881,28 @@ static void __pyx_pf_5talib_7_ta_lib_11DEMA_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10IMI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10IMI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -247399,61 +314918,68 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15669, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21180, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21180, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15669, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15669, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15669, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 15669, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21180, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 21180, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21180, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15669, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21180, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15669, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21180, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15669, __pyx_L3_error) + __pyx_v_open = values[0]; + __pyx_v_close = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21180, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15669, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 21180, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -247464,13 +314990,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_DEMA_Stream *__pyx_v_handle; + TA_IMI_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -247486,31 +315013,39 @@ static int __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15670, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15671, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15671, __pyx_L1_error); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 21183, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21183, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15672, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21184, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15673, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21185, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15674, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21186, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15679, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21191, __pyx_L1_error) /*try:*/ { @@ -247520,9 +315055,9 @@ static int __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_DEMA_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_IMI_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_DEMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_IMI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -247539,7 +315074,7 @@ static int __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_DEMA_Close(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_IMI_Close(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -247607,7 +315142,7 @@ static int __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15696, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_IMI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -247619,10 +315154,11 @@ static int __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -247638,29 +315174,30 @@ static int __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill, "DEMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IMI_Stream_4open_and_fill, "IMI_Stream.open_and_fill(open, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10IMI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10IMI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -247676,61 +315213,68 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15698, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21210, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21210, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15698, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21210, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15698, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21210, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15698, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 15698, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21210, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 21210, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21210, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15698, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21210, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15698, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21210, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15699, __pyx_L3_error) + __pyx_v_open = values[0]; + __pyx_v_close = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21211, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15698, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 21210, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -247741,8 +315285,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -247751,8 +315296,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_DEMA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_stream = 0; + TA_IMI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -247774,36 +315319,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15700, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15701, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15701, __pyx_L1_error); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 21214, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21214, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15702, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21215, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15703, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21216, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15704, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21217, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15710, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_IMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15712, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21225, __pyx_L1_error) /*try:*/ { @@ -247813,7 +315366,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_DEMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_IMI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -247826,7 +315379,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15716, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21229, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -247837,7 +315390,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_DEMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_IMI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -247941,27 +315494,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15727, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_IMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15728, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15728, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15728, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 21241, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_close) != (0)) __PYX_ERR(3, 21241, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 21241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15728, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15728, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21241, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 15728, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 21241, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -247979,10 +315535,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -248001,27 +315558,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DEMA_Stream_6update, "DEMA_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IMI_Stream_6update, "IMI_Stream.update(self, double open, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -248037,56 +315595,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15730, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21243, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21243, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15730, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21243, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15730, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15730, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21243, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 21243, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15730, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21243, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21243, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15731, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21244, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21244, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15730, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21243, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -248110,7 +315676,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DEMA_Update(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_IMI_Update(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -248138,13 +315704,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15738, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15739, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -248161,7 +315727,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -248173,27 +315739,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DEMA_Stream_8peek, "DEMA_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IMI_Stream_8peek, "IMI_Stream.peek(self, double open, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -248209,56 +315776,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15741, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21254, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21254, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15741, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21254, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15741, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15741, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21254, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 21254, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15741, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21254, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21254, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15742, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21255, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21255, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15741, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21254, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -248282,7 +315857,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DEMA_Peek(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_IMI_Peek(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -248310,13 +315885,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15749, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15750, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -248333,7 +315908,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -248345,21 +315920,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -248383,7 +315958,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DEMA_Value(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_IMI_Value(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -248411,13 +315986,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15760, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15761, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -248434,7 +316009,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -248445,12 +316020,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11DEMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10IMI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_DEMA_OutRange(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_IMI_OutRange(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -248461,12 +316036,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11DEMA_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11DEMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10IMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_DEMA_Advance(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_IMI_Advance(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -248478,15 +316053,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11DEMA_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DEMA_Stream_10copy, "DEMA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IMI_Stream_10copy, "IMI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -248512,16 +316087,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self) { - TA_DEMA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self) { + TA_IMI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -248538,18 +316113,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15772, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream))))) __PYX_ERR(3, 15772, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream))))) __PYX_ERR(3, 21285, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -248563,7 +316138,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_DEMA_Clone(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_IMI_Clone(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -248606,7 +316181,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15782, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -248628,7 +316203,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -248641,19 +316216,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10DIV_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10DIV_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10DIV_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11KAMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10DIV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11KAMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -248667,7 +316242,7 @@ static void __pyx_pf_5talib_7_ta_lib_10DIV_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_DIV_Close(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KAMA_Close(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -248693,22 +316268,22 @@ static void __pyx_pf_5talib_7_ta_lib_10DIV_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10DIV_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10DIV_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real0 = 0; - PyObject *__pyx_v_real1 = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -248729,69 +316304,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15805, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21319, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15805, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 15805, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21319, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 21319, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15805, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15805, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21319, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21319, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_real0 = values[0]; - __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15805, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21319, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { - PyArrayObject *__pyx_v_a_real0 = 0; - PyArrayObject *__pyx_v_a_real1 = 0; +static int __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_DIV_Stream *__pyx_v_handle; + TA_KAMA_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -248807,39 +316391,31 @@ static int __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15806, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15808, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real0); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 15808, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_real1); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 15808, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21321, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15809, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21322, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15810, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21323, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15811, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21324, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15816, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21329, __pyx_L1_error) /*try:*/ { @@ -248849,9 +316425,9 @@ static int __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_DIV_Lookback() + 1); + __pyx_v_need = (TA_KAMA_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_DIV_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KAMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -248868,7 +316444,7 @@ static int __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_DIV_Close(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KAMA_Close(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -248936,7 +316512,7 @@ static int __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DIV_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15833, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -248948,11 +316524,10 @@ static int __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -248968,24 +316543,24 @@ static int __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DIV_Stream_4open_and_fill, "DIV_Stream.open_and_fill(real0, real1)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10DIV_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DIV_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill, "KAMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real0 = 0; - PyObject *__pyx_v_real1 = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -249006,64 +316581,73 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15835, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21348, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15835, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21348, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15835, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21348, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15835, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 15835, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21348, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21348, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15835, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15835, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21348, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21348, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21349, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_real0 = values[0]; - __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15835, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21348, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { - PyArrayObject *__pyx_v_a_real0 = 0; - PyArrayObject *__pyx_v_a_real1 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -249072,8 +316656,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_DIV_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_stream = 0; + TA_KAMA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -249095,44 +316679,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15837, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15838, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15839, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real0); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 15839, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_real1); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 15839, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21351, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15840, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21352, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15841, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21353, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15842, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21354, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DIV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15848, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KAMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15850, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21362, __pyx_L1_error) /*try:*/ { @@ -249142,7 +316718,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_DIV_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_KAMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -249155,7 +316731,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15854, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21366, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -249166,7 +316742,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_DIV_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KAMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -249270,30 +316846,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DIV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15865, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KAMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15866, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real0); - __Pyx_GIVEREF(__pyx_v_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 15866, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_real1); - __Pyx_GIVEREF(__pyx_v_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 15866, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 15866, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21378, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 21378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15866, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15866, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21378, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 15866, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 21378, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -249311,11 +316884,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -249334,28 +316906,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DIV_Stream_6update, "DIV_Stream.update(self, double real0, double real1)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11KAMA_Stream_6update, "KAMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real0; - double __pyx_v_real1; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -249371,64 +316942,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15868, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21380, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15868, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21380, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15868, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 15868, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21380, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21380, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15868, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21380, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15869, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15869, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21381, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15868, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21380, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -249452,7 +317015,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DIV_Update(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KAMA_Update(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -249480,13 +317043,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15876, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15877, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -249503,7 +317066,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -249515,28 +317078,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DIV_Stream_8peek, "DIV_Stream.peek(self, double real0, double real1)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11KAMA_Stream_8peek, "KAMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real0; - double __pyx_v_real1; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -249552,64 +317114,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15879, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21391, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15879, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21391, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15879, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 15879, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21391, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21391, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15879, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21391, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15880, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15880, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21392, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15879, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21391, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -249633,7 +317187,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DIV_Peek(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KAMA_Peek(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -249661,13 +317215,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15887, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15888, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -249684,7 +317238,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -249696,21 +317250,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -249734,7 +317288,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DIV_Value(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KAMA_Value(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -249762,13 +317316,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15898, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15899, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -249785,7 +317339,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -249796,12 +317350,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10DIV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11KAMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_DIV_OutRange(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_KAMA_OutRange(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -249812,12 +317366,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10DIV_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10DIV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11KAMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_DIV_Advance(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_KAMA_Advance(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -249829,15 +317383,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10DIV_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DIV_Stream_10copy, "DIV_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11KAMA_Stream_10copy, "KAMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -249863,16 +317417,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self) { - TA_DIV_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self) { + TA_KAMA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -249889,18 +317443,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15910, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream))))) __PYX_ERR(3, 15910, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream))))) __PYX_ERR(3, 21422, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -249914,7 +317468,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_DIV_Clone(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_KAMA_Clone(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -249957,7 +317511,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15920, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -249979,7 +317533,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -249992,19 +317546,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_9KC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9KC_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_9KC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_9KC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -250018,7 +317572,7 @@ static void __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_DONCHIAN_Close(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KC_Close(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -250044,14 +317598,14 @@ static void __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9KC_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9KC_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -250060,12 +317614,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; + int __pyx_v_atrperiod; + double __pyx_v_nbdev; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -250081,86 +317638,122 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15946, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21460, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21460, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21460, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21460, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21460, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21460, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21460, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15946, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 15946, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21460, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 21460, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21460, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21460, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21460, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15946, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21460, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21460, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21460, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = values[0]; __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15946, __pyx_L3_error) + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21460, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[4]) { + __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21460, __pyx_L3_error) + } else { + __pyx_v_atrperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21460, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)-4e37); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 15946, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 21460, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_DONCHIAN_Stream *__pyx_v_handle; + TA_KC_Stream *__pyx_v_handle; double __pyx_v_outupperband; double __pyx_v_outmiddleband; double __pyx_v_outlowerband; @@ -250178,39 +317771,47 @@ static int __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15947, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15948, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15949, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15949, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21464, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15949, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21464, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21464, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15950, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21465, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15951, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21466, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15952, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21467, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15959, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21474, __pyx_L1_error) /*try:*/ { @@ -250220,9 +317821,9 @@ static int __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_DONCHIAN_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev) + 1); - __pyx_v_retCode = TA_DONCHIAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_KC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -250239,7 +317840,7 @@ static int __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_DONCHIAN_Close(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KC_Close(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -250307,7 +317908,7 @@ static int __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15976, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -250319,11 +317920,12 @@ static int __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -250341,16 +317943,16 @@ static int __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill, "DONCHIAN_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9KC_Stream_4open_and_fill, "KC_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000, int atrperiod=-0x80000000, double nbdev=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9KC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9KC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9KC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -250359,12 +317961,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; + int __pyx_v_atrperiod; + double __pyx_v_nbdev; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -250380,81 +317985,117 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15978, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21493, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21493, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21493, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21493, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21493, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21493, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21493, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15978, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 15978, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21493, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 21493, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21493, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21493, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21493, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21493, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21493, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21493, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = values[0]; __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15979, __pyx_L3_error) + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21494, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[4]) { + __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21494, __pyx_L3_error) + } else { + __pyx_v_atrperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21494, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)-4e37); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 15978, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 21493, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -250465,8 +318106,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObj PyArrayObject *__pyx_v_outlowerband = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_DONCHIAN_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_stream = 0; + TA_KC_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -250490,44 +318131,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15980, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15981, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15982, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15982, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21498, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15982, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21498, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21498, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15983, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21499, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15984, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21500, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15985, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21501, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DONCHIAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15993, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 15995, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21511, __pyx_L1_error) /*try:*/ { @@ -250537,7 +318186,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_DONCHIAN_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev)); } /*finally:*/ { @@ -250550,17 +318199,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15999, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21515, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16000, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21516, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16001, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21517, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -250571,7 +318220,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_DONCHIAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowerband)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowerband)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -250675,63 +318324,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16012, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16013, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16013, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16013, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16013, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 21529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16013, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16013, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16013, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 16013, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 21529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16013, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16013, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16013, __pyx_L1_error); - __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 16013, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); + __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 21529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16013, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 16013, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 16013, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 16013, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; - __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 16013, __pyx_L1_error) + __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 21529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16013, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 16013, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 21529, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -250751,11 +318409,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObj __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_XDECREF(__pyx_t_15); - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -250776,15 +318435,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_6update, "DONCHIAN_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9KC_Stream_6update, "KC_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -250793,11 +318452,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -250813,52 +318473,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16015, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21531, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21531, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21531, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16015, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 16015, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21531, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 21531, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21531, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21531, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21531, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16016, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16016, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21532, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21532, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21532, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16015, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21531, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -250866,11 +318533,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outupperband; double __pyx_v_outmiddleband; double __pyx_v_outlowerband; @@ -250899,7 +318567,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DONCHIAN_Update(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_KC_Update(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); } /*finally:*/ { @@ -250927,26 +318595,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16025, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16026, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16026, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16026, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16026, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 16026, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 21542, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 16026, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 21542, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 16026, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 21542, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; @@ -250968,7 +318636,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(struct __pyx __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -250982,15 +318650,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_8peek, "DONCHIAN_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9KC_Stream_8peek, "KC_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -250999,11 +318667,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -251019,52 +318688,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16028, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21544, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21544, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16028, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21544, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16028, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21544, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16028, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 16028, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21544, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 21544, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16028, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21544, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16028, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21544, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21544, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16029, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16029, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21545, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21545, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21545, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16028, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21544, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -251072,11 +318748,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outupperband; double __pyx_v_outmiddleband; double __pyx_v_outlowerband; @@ -251105,7 +318782,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DONCHIAN_Peek(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_KC_Peek(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); } /*finally:*/ { @@ -251133,26 +318810,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16038, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16039, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16039, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16039, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16039, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 16039, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 21555, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 16039, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 21555, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 16039, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 21555, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; @@ -251174,7 +318851,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(struct __pyx_o __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -251188,21 +318865,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self) { double __pyx_v_outupperband; double __pyx_v_outmiddleband; double __pyx_v_outlowerband; @@ -251231,7 +318908,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DONCHIAN_Value(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_KC_Value(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); } /*finally:*/ { @@ -251259,26 +318936,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16051, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16052, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16052, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16052, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16052, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 16052, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 21568, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 16052, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 21568, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 16052, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 21568, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; @@ -251300,7 +318977,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(struc __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -251313,12 +318990,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9KC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_DONCHIAN_OutRange(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_KC_OutRange(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -251329,12 +319006,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9KC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_DONCHIAN_Advance(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_KC_Advance(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -251346,15 +319023,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_10copy, "DONCHIAN_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9KC_Stream_10copy, "KC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -251380,16 +319057,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self) { - TA_DONCHIAN_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self) { + TA_KC_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -251406,18 +319083,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16063, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream))))) __PYX_ERR(3, 16063, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream))))) __PYX_ERR(3, 21579, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -251431,7 +319108,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_DONCHIAN_Clone(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_KC_Clone(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -251474,7 +319151,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16073, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -251496,7 +319173,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -251509,19 +319186,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10DPO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10DPO_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10DPO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10KDJ_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10DPO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10KDJ_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -251535,7 +319212,7 @@ static void __pyx_pf_5talib_7_ta_lib_10DPO_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_DPO_Close(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KDJ_Close(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -251561,27 +319238,33 @@ static void __pyx_pf_5talib_7_ta_lib_10DPO_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10DPO_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10DPO_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -251597,79 +319280,153 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16097, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21619, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 21619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 21619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21619, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16097, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21619, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16097, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21619, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16097, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16097, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21619, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, i); __PYX_ERR(3, 21619, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16097, __pyx_L3_error) + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 21619, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 21619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21619, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21619, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16097, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21619, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16097, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21619, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_fastk_period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21619, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21619, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)13); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21619, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)-2147483648); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21619, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)13); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16097, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 21619, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_DPO_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_KDJ_Stream *__pyx_v_handle; + double __pyx_v_outk; + double __pyx_v_outd; + double __pyx_v_outj; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -251684,31 +319441,47 @@ static int __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16098, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16099, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16099, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21622, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21623, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21623, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21623, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16100, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21624, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16101, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21625, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16102, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21626, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16107, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21633, __pyx_L1_error) /*try:*/ { @@ -251718,9 +319491,9 @@ static int __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_DPO_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype) + 1); - __pyx_v_retCode = TA_DPO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KDJ_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outk), (&__pyx_v_outd), (&__pyx_v_outj)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -251737,7 +319510,7 @@ static int __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_DPO_Close(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KDJ_Close(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -251805,7 +319578,7 @@ static int __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DPO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16124, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -251817,10 +319590,12 @@ static int __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -251830,35 +319605,43 @@ static int __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(struct __pyx_obj_5tal + + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DPO_Stream_4open_and_fill, "DPO_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10DPO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DPO_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill, "KDJ_Stream.open_and_fill(high, low, close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=13, int slowd_period=-0x80000000, int slowd_matype=13)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -251874,83 +319657,157 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16126, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21652, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 21652, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 21652, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21652, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21652, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21652, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21652, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16126, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21652, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16126, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21652, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16126, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16126, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21652, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, i); __PYX_ERR(3, 21652, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16126, __pyx_L3_error) + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 21652, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 21652, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21652, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21652, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21652, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21652, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21652, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16126, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21652, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16127, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21653, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_fastk_period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21653, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21653, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)13); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21653, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)-2147483648); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21653, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)13); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16126, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 21652, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outk = 0; + PyArrayObject *__pyx_v_outd = 0; + PyArrayObject *__pyx_v_outj = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_DPO_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_stream = 0; + TA_KDJ_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -251967,41 +319824,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject * PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16128, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16129, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16129, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21657, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21657, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21657, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16130, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21658, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16131, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21659, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16132, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21660, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DPO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16138, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KDJ_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16140, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21670, __pyx_L1_error) /*try:*/ { @@ -252011,7 +319886,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_DPO_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); } /*finally:*/ { @@ -252024,9 +319899,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16144, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21674, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outk = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21675, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21676, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outj = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -252035,7 +319920,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_DPO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KDJ_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outj)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -252139,37 +320024,82 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DPO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16155, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KDJ_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16156, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16156, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16156, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outk)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 21688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16156, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outd)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 21688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); + __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outj)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 21688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16156, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 16156, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_15 = 0; + __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 21688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 21688, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_15; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_15 = 0; goto __pyx_L0; @@ -252177,16 +320107,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outk); + __Pyx_XDECREF((PyObject *)__pyx_v_outd); + __Pyx_XDECREF((PyObject *)__pyx_v_outj); @@ -252199,27 +320135,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DPO_Stream_6update, "DPO_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KDJ_Stream_6update, "KDJ_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -252235,63 +320173,84 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16158, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21690, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21690, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16158, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21690, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16158, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16158, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21690, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 21690, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16158, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21690, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21690, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21690, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16159, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21691, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21691, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21691, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16158, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21690, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outk; + double __pyx_v_outd; + double __pyx_v_outj; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -252308,7 +320267,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DPO_Update(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KDJ_Update(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outk), (&__pyx_v_outd), (&__pyx_v_outj)); } /*finally:*/ { @@ -252336,34 +320295,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16166, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16167, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 21701, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 21701, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 21701, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -252371,27 +320350,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DPO_Stream_8peek, "DPO_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KDJ_Stream_8peek, "KDJ_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -252407,63 +320388,84 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16169, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21703, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21703, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21703, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16169, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16169, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21703, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 21703, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21703, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21703, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21703, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16170, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21704, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21704, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21704, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16169, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21703, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outk; + double __pyx_v_outd; + double __pyx_v_outj; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -252480,7 +320482,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DPO_Peek(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KDJ_Peek(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outk), (&__pyx_v_outd), (&__pyx_v_outj)); } /*finally:*/ { @@ -252508,34 +320510,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16177, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16178, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 21714, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 21714, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 21714, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -252543,28 +320565,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self) { + double __pyx_v_outk; + double __pyx_v_outd; + double __pyx_v_outj; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -252581,7 +320608,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DPO_Value(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KDJ_Value(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outk), (&__pyx_v_outd), (&__pyx_v_outj)); } /*finally:*/ { @@ -252609,46 +320636,66 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16188, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16189, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 21727, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 21727, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 21727, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10DPO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KDJ_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_DPO_OutRange(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_KDJ_OutRange(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -252659,12 +320706,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10DPO_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10DPO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KDJ_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_DPO_Advance(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_KDJ_Advance(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -252676,15 +320723,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10DPO_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DPO_Stream_10copy, "DPO_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KDJ_Stream_10copy, "KDJ_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -252710,16 +320757,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self) { - TA_DPO_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self) { + TA_KDJ_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -252736,18 +320783,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16200, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream))))) __PYX_ERR(3, 16200, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream))))) __PYX_ERR(3, 21738, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -252761,7 +320808,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_DPO_Clone(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_KDJ_Clone(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -252804,7 +320851,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16210, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -252826,7 +320873,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -252839,19 +320886,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_9DX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_9DX_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10KST_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10KST_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_9DX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10KST_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_KST_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_9DX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10KST_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -252865,7 +320912,7 @@ static void __pyx_pf_5talib_7_ta_lib_9DX_Stream___dealloc__(struct __pyx_obj_5ta if (__pyx_t_1) { - (void)(TA_DX_Close(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KST_Close(((TA_KST_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -252891,29 +320938,35 @@ static void __pyx_pf_5talib_7_ta_lib_9DX_Stream___dealloc__(struct __pyx_obj_5ta /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_9DX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10KST_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_9DX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10KST_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_real = 0; + int __pyx_v_roc1period; + int __pyx_v_roc2period; + int __pyx_v_roc3period; + int __pyx_v_roc4period; + int __pyx_v_sma1period; + int __pyx_v_sma2period; + int __pyx_v_sma3period; + int __pyx_v_sma4period; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -252929,95 +320982,192 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,&__pyx_mstate_global->__pyx_n_u_roc3period,&__pyx_mstate_global->__pyx_n_u_roc4period,&__pyx_mstate_global->__pyx_n_u_sma1period,&__pyx_mstate_global->__pyx_n_u_sma2period,&__pyx_mstate_global->__pyx_n_u_sma3period,&__pyx_mstate_global->__pyx_n_u_sma4period,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16234, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21781, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16234, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21781, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16234, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21781, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16234, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21781, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16234, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21781, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16234, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 16234, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21781, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 10, i); __PYX_ERR(3, 21781, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16234, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21781, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16234, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16234, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21781, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16234, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21781, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21781, __pyx_L3_error) + } else { + __pyx_v_roc1period = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21781, __pyx_L3_error) + } else { + __pyx_v_roc2period = ((int)-2147483648); + } if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16234, __pyx_L3_error) + __pyx_v_roc3period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc3period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21781, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_roc3period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_roc4period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_roc4period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21781, __pyx_L3_error) + } else { + __pyx_v_roc4period = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_sma1period = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_sma1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21781, __pyx_L3_error) + } else { + __pyx_v_sma1period = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_sma2period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_sma2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21781, __pyx_L3_error) + } else { + __pyx_v_sma2period = ((int)-2147483648); + } + if (values[7]) { + __pyx_v_sma3period = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_sma3period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21781, __pyx_L3_error) + } else { + __pyx_v_sma3period = ((int)-2147483648); + } + if (values[8]) { + __pyx_v_sma4period = __Pyx_PyLong_As_int(values[8]); if (unlikely((__pyx_v_sma4period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21781, __pyx_L3_error) + } else { + __pyx_v_sma4period = ((int)-2147483648); + } + if (values[9]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[9]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21781, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 16234, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 10, __pyx_nargs); __PYX_ERR(3, 21781, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KST_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KST_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_KST_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_sma1period, __pyx_v_sma2period, __pyx_v_sma3period, __pyx_v_sma4period, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10KST_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_roc1period, int __pyx_v_roc2period, int __pyx_v_roc3period, int __pyx_v_roc4period, int __pyx_v_sma1period, int __pyx_v_sma2period, int __pyx_v_sma3period, int __pyx_v_sma4period, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_DX_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_KST_Stream *__pyx_v_handle; + double __pyx_v_outkst; + double __pyx_v_outkstsignal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -253032,47 +321182,31 @@ static int __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16235, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16236, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16237, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16238, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16238, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16238, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16238, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21783, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16239, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21784, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16240, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21785, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16241, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21786, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16246, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21792, __pyx_L1_error) /*try:*/ { @@ -253082,9 +321216,9 @@ static int __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(struct __pyx_obj_5talib __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_DX_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_KST_Lookback(__pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_sma1period, __pyx_v_sma2period, __pyx_v_sma3period, __pyx_v_sma4period, __pyx_v_signalperiod) + 1); - __pyx_v_retCode = TA_DX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KST_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_sma1period, __pyx_v_sma2period, __pyx_v_sma3period, __pyx_v_sma4period, __pyx_v_signalperiod, (&__pyx_v_outkst), (&__pyx_v_outkstsignal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -253101,7 +321235,7 @@ static int __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - (void)(TA_DX_Close(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KST_Close(((TA_KST_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -253169,7 +321303,7 @@ static int __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16263, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KST_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -253181,12 +321315,10 @@ static int __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(struct __pyx_obj_5talib goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KST_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -253196,37 +321328,44 @@ static int __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(struct __pyx_obj_5talib + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10KST_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_4open_and_fill, "DX_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9DX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9DX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9DX_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KST_Stream_4open_and_fill, "KST_Stream.open_and_fill(real, int roc1period=-0x80000000, int roc2period=-0x80000000, int roc3period=-0x80000000, int roc4period=-0x80000000, int sma1period=-0x80000000, int sma2period=-0x80000000, int sma3period=-0x80000000, int sma4period=-0x80000000, int signalperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10KST_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KST_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KST_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10KST_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_real = 0; + int __pyx_v_roc1period; + int __pyx_v_roc2period; + int __pyx_v_roc3period; + int __pyx_v_roc4period; + int __pyx_v_sma1period; + int __pyx_v_sma2period; + int __pyx_v_sma3period; + int __pyx_v_sma4period; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -253242,99 +321381,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,&__pyx_mstate_global->__pyx_n_u_roc3period,&__pyx_mstate_global->__pyx_n_u_roc4period,&__pyx_mstate_global->__pyx_n_u_sma1period,&__pyx_mstate_global->__pyx_n_u_sma2period,&__pyx_mstate_global->__pyx_n_u_sma3period,&__pyx_mstate_global->__pyx_n_u_sma4period,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16265, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21811, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21811, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21811, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21811, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21811, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16265, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 16265, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21811, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 10, i); __PYX_ERR(3, 21811, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21811, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21811, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21811, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21812, __pyx_L3_error) + } else { + __pyx_v_roc1period = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21812, __pyx_L3_error) + } else { + __pyx_v_roc2period = ((int)-2147483648); + } if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16266, __pyx_L3_error) + __pyx_v_roc3period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc3period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21812, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_roc3period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_roc4period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_roc4period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21812, __pyx_L3_error) + } else { + __pyx_v_roc4period = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_sma1period = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_sma1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21812, __pyx_L3_error) + } else { + __pyx_v_sma1period = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_sma2period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_sma2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21812, __pyx_L3_error) + } else { + __pyx_v_sma2period = ((int)-2147483648); + } + if (values[7]) { + __pyx_v_sma3period = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_sma3period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21812, __pyx_L3_error) + } else { + __pyx_v_sma3period = ((int)-2147483648); + } + if (values[8]) { + __pyx_v_sma4period = __Pyx_PyLong_As_int(values[8]); if (unlikely((__pyx_v_sma4period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21812, __pyx_L3_error) + } else { + __pyx_v_sma4period = ((int)-2147483648); + } + if (values[9]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[9]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21812, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 16265, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 10, __pyx_nargs); __PYX_ERR(3, 21811, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KST_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KST_Stream_4open_and_fill(__pyx_v_real, __pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_sma1period, __pyx_v_sma2period, __pyx_v_sma3period, __pyx_v_sma4period, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KST_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_roc1period, int __pyx_v_roc2period, int __pyx_v_roc3period, int __pyx_v_roc4period, int __pyx_v_sma1period, int __pyx_v_sma2period, int __pyx_v_sma3period, int __pyx_v_sma4period, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outkst = 0; + PyArrayObject *__pyx_v_outkstsignal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_DX_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_stream = 0; + TA_KST_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -253351,57 +321587,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__ PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16267, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16268, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16269, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16270, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16270, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16270, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16270, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21814, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16271, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21815, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16272, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21816, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16273, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21817, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16279, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KST_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KST_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KST_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16281, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21826, __pyx_L1_error) /*try:*/ { @@ -253411,7 +321632,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_DX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_KST_Lookback(__pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_sma1period, __pyx_v_sma2period, __pyx_v_sma3period, __pyx_v_sma4period, __pyx_v_signalperiod)); } /*finally:*/ { @@ -253424,9 +321645,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16285, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21830, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outkst = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21831, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outkstsignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -253435,7 +321661,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_DX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KST_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_sma1period, __pyx_v_sma2period, __pyx_v_sma3period, __pyx_v_sma4period, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkst)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkstsignal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -253539,43 +321765,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16296, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KST_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16297, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16297, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16297, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 16297, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16297, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21843, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outkst)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 21843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16297, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21843, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outkstsignal)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 21843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16297, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 16297, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 21843, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 21843, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 21843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21843, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 21843, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -253583,18 +321819,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.DX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.KST_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outkst); + __Pyx_XDECREF((PyObject *)__pyx_v_outkstsignal); @@ -253607,29 +321843,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10KST_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_6update, "DX_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KST_Stream_6update, "KST_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10KST_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -253645,79 +321879,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16299, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21845, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16299, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16299, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21845, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16299, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 16299, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21845, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21845, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16299, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16299, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21845, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16300, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16300, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16300, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21846, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 16299, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21845, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KST_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KST_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_KST_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KST_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outkst; + double __pyx_v_outkstsignal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -253734,7 +321955,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DX_Update(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KST_Update(((TA_KST_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outkst), (&__pyx_v_outkstsignal)); } /*finally:*/ { @@ -253762,34 +321983,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16307, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KST_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16308, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outkst); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outkstsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 21855, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 21855, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.DX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.KST_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -253797,29 +322031,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10KST_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_8peek, "DX_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KST_Stream_8peek, "KST_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10KST_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -253835,79 +322067,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16310, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21857, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16310, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16310, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16310, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21857, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16310, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 16310, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21857, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21857, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16310, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16310, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16310, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21857, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16311, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16311, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16311, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21858, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 16310, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21857, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KST_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KST_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_KST_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KST_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outkst; + double __pyx_v_outkstsignal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -253924,7 +322143,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_8peek(struct __pyx_obj_5tal __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DX_Peek(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KST_Peek(((TA_KST_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outkst), (&__pyx_v_outkstsignal)); } /*finally:*/ { @@ -253952,34 +322171,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16318, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KST_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16319, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outkst); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outkstsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 21867, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 21867, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.DX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.KST_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -253987,28 +322219,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_8peek(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10KST_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10KST_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KST_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_KST_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KST_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self) { + double __pyx_v_outkst; + double __pyx_v_outkstsignal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -254025,7 +322260,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_5value___get__(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_DX_Value(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KST_Value(((TA_KST_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outkst), (&__pyx_v_outkstsignal)); } /*finally:*/ { @@ -254053,46 +322288,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_5value___get__(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16329, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KST_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16330, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outkst); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outkstsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 21879, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 21879, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.DX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.KST_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9DX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KST_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_DX_OutRange(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_KST_OutRange(((TA_KST_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -254103,12 +322351,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9DX_Stream__out_range(struct __pyx_obj } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9DX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KST_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_DX_Advance(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_KST_Advance(((TA_KST_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -254120,15 +322368,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9DX_Stream__advance(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10KST_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_10copy, "DX_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KST_Stream_10copy, "KST_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10KST_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -254154,16 +322402,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KST_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_KST_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self) { - TA_DX_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KST_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_self) { + TA_KST_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_KST_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -254180,18 +322428,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(struct __pyx_obj_5ta __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KST_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16341, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream))))) __PYX_ERR(3, 16341, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KST_Stream))))) __PYX_ERR(3, 21890, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KST_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -254205,7 +322453,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(struct __pyx_obj_5ta __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_DX_Clone(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_KST_Clone(((TA_KST_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -254248,7 +322496,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16351, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KST_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -254270,7 +322518,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(struct __pyx_obj_5ta __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.DX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KST_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -254283,19 +322531,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(struct __pyx_obj_5ta /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10EFI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10EFI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10EFI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10EFI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -254309,7 +322557,7 @@ static void __pyx_pf_5talib_7_ta_lib_10EFI_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_EFI_Close(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KSTEXT_Close(((TA_KSTEXT_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -254335,28 +322583,37 @@ static void __pyx_pf_5talib_7_ta_lib_10EFI_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10EFI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10EFI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_real = 0; + int __pyx_v_roc1period; + int __pyx_v_roc2period; + int __pyx_v_roc3period; + int __pyx_v_roc4period; + int __pyx_v_ma1period; + int __pyx_v_ma2period; + int __pyx_v_ma3period; + int __pyx_v_ma4period; + int __pyx_v_signalperiod; + int __pyx_v_rocmatype; + int __pyx_v_signalmatype; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -254372,87 +322629,220 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,&__pyx_mstate_global->__pyx_n_u_roc3period,&__pyx_mstate_global->__pyx_n_u_roc4period,&__pyx_mstate_global->__pyx_n_u_ma1period,&__pyx_mstate_global->__pyx_n_u_ma2period,&__pyx_mstate_global->__pyx_n_u_ma3period,&__pyx_mstate_global->__pyx_n_u_ma4period,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_rocmatype,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16375, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21935, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 12: + values[11] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 11); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 11: + values[10] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 10); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 10: + values[9] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16375, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21935, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16375, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21935, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16375, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21935, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16375, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 16375, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21935, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 12, i); __PYX_ERR(3, 21935, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 12: + values[11] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 11); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 11: + values[10] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 10); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 10: + values[9] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16375, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21935, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16375, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21935, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16375, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21935, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_close = values[0]; - __pyx_v_volume = values[1]; + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21935, __pyx_L3_error) + } else { + __pyx_v_roc1period = ((int)-2147483648); + } if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16375, __pyx_L3_error) + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21935, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_roc2period = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_roc3period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc3period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21935, __pyx_L3_error) + } else { + __pyx_v_roc3period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_roc4period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_roc4period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21935, __pyx_L3_error) + } else { + __pyx_v_roc4period = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_ma1period = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_ma1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21935, __pyx_L3_error) + } else { + __pyx_v_ma1period = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_ma2period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_ma2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21935, __pyx_L3_error) + } else { + __pyx_v_ma2period = ((int)-2147483648); + } + if (values[7]) { + __pyx_v_ma3period = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_ma3period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21935, __pyx_L3_error) + } else { + __pyx_v_ma3period = ((int)-2147483648); + } + if (values[8]) { + __pyx_v_ma4period = __Pyx_PyLong_As_int(values[8]); if (unlikely((__pyx_v_ma4period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21935, __pyx_L3_error) + } else { + __pyx_v_ma4period = ((int)-2147483648); + } + if (values[9]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[9]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21935, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + if (values[10]) { + __pyx_v_rocmatype = __Pyx_PyLong_As_int(values[10]); if (unlikely((__pyx_v_rocmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21935, __pyx_L3_error) + } else { + __pyx_v_rocmatype = ((int)0); + } + if (values[11]) { + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[11]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21935, __pyx_L3_error) + } else { + __pyx_v_signalmatype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16375, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 12, __pyx_nargs); __PYX_ERR(3, 21935, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KSTEXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_ma1period, __pyx_v_ma2period, __pyx_v_ma3period, __pyx_v_ma4period, __pyx_v_signalperiod, __pyx_v_rocmatype, __pyx_v_signalmatype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static int __pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_roc1period, int __pyx_v_roc2period, int __pyx_v_roc3period, int __pyx_v_roc4period, int __pyx_v_ma1period, int __pyx_v_ma2period, int __pyx_v_ma3period, int __pyx_v_ma4period, int __pyx_v_signalperiod, int __pyx_v_rocmatype, int __pyx_v_signalmatype) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_EFI_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_KSTEXT_Stream *__pyx_v_handle; + double __pyx_v_outkst; + double __pyx_v_outkstsignal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -254467,39 +322857,31 @@ static int __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16376, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16377, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16378, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16378, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 16378, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21937, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16379, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21938, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16380, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21939, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16381, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21940, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16386, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21946, __pyx_L1_error) /*try:*/ { @@ -254509,9 +322891,9 @@ static int __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_EFI_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_KSTEXT_Lookback(__pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_ma1period, __pyx_v_ma2period, __pyx_v_ma3period, __pyx_v_ma4period, __pyx_v_signalperiod, __pyx_v_rocmatype, __pyx_v_signalmatype) + 1); - __pyx_v_retCode = TA_EFI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KSTEXT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_ma1period, __pyx_v_ma2period, __pyx_v_ma3period, __pyx_v_ma4period, __pyx_v_signalperiod, __pyx_v_rocmatype, __pyx_v_signalmatype, (&__pyx_v_outkst), (&__pyx_v_outkstsignal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -254528,7 +322910,7 @@ static int __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_EFI_Close(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KSTEXT_Close(((TA_KSTEXT_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -254596,7 +322978,7 @@ static int __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EFI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16403, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KSTEXT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -254608,11 +322990,10 @@ static int __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KSTEXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -254622,36 +323003,46 @@ static int __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(struct __pyx_obj_5tal + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EFI_Stream_4open_and_fill, "EFI_Stream.open_and_fill(close, volume, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10EFI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EFI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13KSTEXT_Stream_4open_and_fill, "KSTEXT_Stream.open_and_fill(real, int roc1period=-0x80000000, int roc2period=-0x80000000, int roc3period=-0x80000000, int roc4period=-0x80000000, int ma1period=-0x80000000, int ma2period=-0x80000000, int ma3period=-0x80000000, int ma4period=-0x80000000, int signalperiod=-0x80000000, int rocmatype=0, int signalmatype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13KSTEXT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13KSTEXT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_real = 0; + int __pyx_v_roc1period; + int __pyx_v_roc2period; + int __pyx_v_roc3period; + int __pyx_v_roc4period; + int __pyx_v_ma1period; + int __pyx_v_ma2period; + int __pyx_v_ma3period; + int __pyx_v_ma4period; + int __pyx_v_signalperiod; + int __pyx_v_rocmatype; + int __pyx_v_signalmatype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -254667,91 +323058,224 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,&__pyx_mstate_global->__pyx_n_u_roc3period,&__pyx_mstate_global->__pyx_n_u_roc4period,&__pyx_mstate_global->__pyx_n_u_ma1period,&__pyx_mstate_global->__pyx_n_u_ma2period,&__pyx_mstate_global->__pyx_n_u_ma3period,&__pyx_mstate_global->__pyx_n_u_ma4period,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_rocmatype,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16405, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21965, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 12: + values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 11: + values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16405, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 16405, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21965, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 12, i); __PYX_ERR(3, 21965, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 12: + values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 11: + values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21965, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_close = values[0]; - __pyx_v_volume = values[1]; + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21966, __pyx_L3_error) + } else { + __pyx_v_roc1period = ((int)-2147483648); + } if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16406, __pyx_L3_error) + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21966, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_roc2period = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_roc3period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc3period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21966, __pyx_L3_error) + } else { + __pyx_v_roc3period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_roc4period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_roc4period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21966, __pyx_L3_error) + } else { + __pyx_v_roc4period = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_ma1period = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_ma1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21966, __pyx_L3_error) + } else { + __pyx_v_ma1period = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_ma2period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_ma2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21966, __pyx_L3_error) + } else { + __pyx_v_ma2period = ((int)-2147483648); + } + if (values[7]) { + __pyx_v_ma3period = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_ma3period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21966, __pyx_L3_error) + } else { + __pyx_v_ma3period = ((int)-2147483648); + } + if (values[8]) { + __pyx_v_ma4period = __Pyx_PyLong_As_int(values[8]); if (unlikely((__pyx_v_ma4period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21966, __pyx_L3_error) + } else { + __pyx_v_ma4period = ((int)-2147483648); + } + if (values[9]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[9]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21966, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + if (values[10]) { + __pyx_v_rocmatype = __Pyx_PyLong_As_int(values[10]); if (unlikely((__pyx_v_rocmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21966, __pyx_L3_error) + } else { + __pyx_v_rocmatype = ((int)0); + } + if (values[11]) { + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[11]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21966, __pyx_L3_error) + } else { + __pyx_v_signalmatype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16405, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 12, __pyx_nargs); __PYX_ERR(3, 21965, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KSTEXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(__pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_4open_and_fill(__pyx_v_real, __pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_ma1period, __pyx_v_ma2period, __pyx_v_ma3period, __pyx_v_ma4period, __pyx_v_signalperiod, __pyx_v_rocmatype, __pyx_v_signalmatype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_roc1period, int __pyx_v_roc2period, int __pyx_v_roc3period, int __pyx_v_roc4period, int __pyx_v_ma1period, int __pyx_v_ma2period, int __pyx_v_ma3period, int __pyx_v_ma4period, int __pyx_v_signalperiod, int __pyx_v_rocmatype, int __pyx_v_signalmatype) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outkst = 0; + PyArrayObject *__pyx_v_outkstsignal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_EFI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_stream = 0; + TA_KSTEXT_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -254768,49 +323292,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject * PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16408, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16409, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16409, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 16409, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21968, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16410, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21969, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16411, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21970, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16412, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21971, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16418, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KSTEXT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16420, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21980, __pyx_L1_error) /*try:*/ { @@ -254820,7 +323337,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_EFI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_KSTEXT_Lookback(__pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_ma1period, __pyx_v_ma2period, __pyx_v_ma3period, __pyx_v_ma4period, __pyx_v_signalperiod, __pyx_v_rocmatype, __pyx_v_signalmatype)); } /*finally:*/ { @@ -254833,9 +323350,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16424, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21984, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outkst = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21985, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outkstsignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -254844,7 +323366,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_EFI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KSTEXT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_roc1period, __pyx_v_roc2period, __pyx_v_roc3period, __pyx_v_roc4period, __pyx_v_ma1period, __pyx_v_ma2period, __pyx_v_ma3period, __pyx_v_ma4period, __pyx_v_signalperiod, __pyx_v_rocmatype, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkst)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkstsignal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -254948,40 +323470,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16435, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KSTEXT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16436, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 16436, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_volume); - __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 16436, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16436, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21997, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outkst)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 21997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16436, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21997, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outkstsignal)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 21997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16436, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 16436, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 21997, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 21997, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 21997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21997, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 21997, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -254989,17 +323524,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.KSTEXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outkst); + __Pyx_XDECREF((PyObject *)__pyx_v_outkstsignal); @@ -255012,28 +323548,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EFI_Stream_6update, "EFI_Stream.update(self, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13KSTEXT_Stream_6update, "KSTEXT_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_close; - double __pyx_v_volume; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -255049,75 +323584,375 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16438, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21999, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16438, __pyx_L3_error) + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21999, __pyx_L3_error) CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21999, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21999, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21999, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22000, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21999, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KSTEXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outkst; + double __pyx_v_outkstsignal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_KSTEXT_Update(((TA_KSTEXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outkst), (&__pyx_v_outkstsignal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KSTEXT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outkst); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22009, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outkstsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22009, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22009, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 22009, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 22009, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.KSTEXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13KSTEXT_Stream_8peek, "KSTEXT_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22011, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16438, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22011, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16438, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 16438, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22011, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22011, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16438, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16438, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22011, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16439, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16439, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22012, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16438, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22011, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KSTEXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outkst; + double __pyx_v_outkstsignal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_KSTEXT_Peek(((TA_KSTEXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outkst), (&__pyx_v_outkstsignal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KSTEXT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outkst); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22021, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outkstsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22021, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22021, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 22021, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 22021, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.KSTEXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { - double __pyx_v_outreal; + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self) { + double __pyx_v_outkst; + double __pyx_v_outkstsignal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("update", 0); + __Pyx_RefNannySetupContext("__get__", 0); { PyThreadState * _save; @@ -255130,7 +323965,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_EFI_Update(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KSTEXT_Value(((TA_KSTEXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outkst), (&__pyx_v_outkstsignal)); } /*finally:*/ { @@ -255158,315 +323993,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16446, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KSTEXT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16447, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outkst); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; - } - __Pyx_XDECREF(__pyx_temp); - } + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outkstsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22033, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22033, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 22033, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 22033, __pyx_L1_error); __pyx_t_3 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_9peek(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EFI_Stream_8peek, "EFI_Stream.peek(self, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_9peek(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - double __pyx_v_close; - double __pyx_v_volume; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("peek (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16449, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16449, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16449, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16449, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 16449, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16449, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16449, __pyx_L3_error) - } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16450, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16450, __pyx_L3_error) - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16449, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); - - /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - - - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { - double __pyx_v_outreal; - TA_RetCode __pyx_v_retCode; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_Locks_PyMutex *__pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("peek", 0); - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - { - __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; - __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); - /*try:*/ { - - __pyx_v_retCode = TA_EFI_Peek(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); - goto __pyx_L8; - } - __pyx_L8:; - } - } - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L5; - } - __pyx_L5:; - } - } - - __pyx_t_2 = (__pyx_v_retCode != 0); - - if (__pyx_t_2) { - - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16458, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.KSTEXT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5value_1__get__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self) { - double __pyx_v_outreal; - TA_RetCode __pyx_v_retCode; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_Locks_PyMutex *__pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - { - __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; - __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); - /*try:*/ { - - __pyx_v_retCode = TA_EFI_Value(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); - goto __pyx_L8; - } - __pyx_L8:; - } - } - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L5; - } - __pyx_L5:; - } - } - - __pyx_t_2 = (__pyx_v_retCode != 0); - - if (__pyx_t_2) { - - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16468, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16469, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_3 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -255474,12 +324040,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10EFI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13KSTEXT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_EFI_OutRange(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_KSTEXT_OutRange(((TA_KSTEXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -255490,12 +324056,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10EFI_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10EFI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13KSTEXT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_EFI_Advance(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_KSTEXT_Advance(((TA_KSTEXT_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -255507,15 +324073,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10EFI_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EFI_Stream_10copy, "EFI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13KSTEXT_Stream_10copy, "KSTEXT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -255541,16 +324107,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self) { - TA_EFI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13KSTEXT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_self) { + TA_KSTEXT_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -255567,18 +324133,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16480, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream))))) __PYX_ERR(3, 16480, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream))))) __PYX_ERR(3, 22044, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -255592,7 +324158,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_EFI_Clone(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_KSTEXT_Clone(((TA_KSTEXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -255635,7 +324201,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16490, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KSTEXT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -255657,7 +324223,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KSTEXT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -255670,19 +324236,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10EMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10EMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10EMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10EMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -255696,7 +324262,7 @@ static void __pyx_pf_5talib_7_ta_lib_10EMA_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_EMA_Close(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KURTOSIS_Close(((TA_KURTOSIS_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -255722,14 +324288,14 @@ static void __pyx_pf_5talib_7_ta_lib_10EMA_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10EMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10EMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -255760,59 +324326,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16514, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22078, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16514, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22078, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16514, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22078, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16514, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22078, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16514, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22078, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16514, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22078, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16514, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22078, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16514, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22078, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16514, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22078, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KURTOSIS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -255823,13 +324389,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_EMA_Stream *__pyx_v_handle; + TA_KURTOSIS_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -255845,31 +324411,31 @@ static int __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16515, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16516, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16516, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22080, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16517, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22081, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16518, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22082, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16519, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22083, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16524, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22088, __pyx_L1_error) /*try:*/ { @@ -255879,9 +324445,9 @@ static int __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_EMA_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_KURTOSIS_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_EMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KURTOSIS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -255898,7 +324464,7 @@ static int __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_EMA_Close(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KURTOSIS_Close(((TA_KURTOSIS_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -255966,7 +324532,7 @@ static int __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16541, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KURTOSIS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -255978,7 +324544,7 @@ static int __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KURTOSIS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -255997,16 +324563,16 @@ static int __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMA_Stream_4open_and_fill, "EMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10EMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EMA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15KURTOSIS_Stream_4open_and_fill, "KURTOSIS_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15KURTOSIS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15KURTOSIS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -256037,59 +324603,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16543, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22107, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16543, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22107, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16543, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22107, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22107, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16544, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22108, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16543, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22107, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KURTOSIS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -256100,7 +324666,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -256110,8 +324676,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_EMA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_stream = 0; + TA_KURTOSIS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -256133,36 +324699,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16545, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16546, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16546, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22110, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16547, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22111, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16548, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22112, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16549, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22113, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16555, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KURTOSIS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16557, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22121, __pyx_L1_error) /*try:*/ { @@ -256172,7 +324738,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_EMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_KURTOSIS_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -256185,7 +324751,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16561, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22125, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -256196,7 +324762,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_EMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KURTOSIS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -256300,27 +324866,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16572, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KURTOSIS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16573, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16573, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16573, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22137, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 22137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16573, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16573, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22137, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 16573, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 22137, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -256338,7 +324904,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KURTOSIS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -256360,15 +324926,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMA_Stream_6update, "EMA_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15KURTOSIS_Stream_6update, "KURTOSIS_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -256398,43 +324964,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16575, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22139, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22139, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16575, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22139, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16575, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22139, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22139, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16576, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22140, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16575, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22139, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KURTOSIS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -256445,7 +325011,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -256469,7 +325035,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_EMA_Update(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KURTOSIS_Update(((TA_KURTOSIS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -256497,13 +325063,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16583, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KURTOSIS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16584, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -256520,7 +325086,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KURTOSIS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -256532,15 +325098,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMA_Stream_8peek, "EMA_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15KURTOSIS_Stream_8peek, "KURTOSIS_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -256570,43 +325136,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16586, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22150, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22150, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16586, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22150, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16586, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22150, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22150, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16587, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22151, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16586, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22150, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KURTOSIS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -256617,7 +325183,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -256641,7 +325207,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_EMA_Peek(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KURTOSIS_Peek(((TA_KURTOSIS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -256669,13 +325235,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16594, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KURTOSIS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16595, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -256692,7 +325258,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KURTOSIS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -256704,21 +325270,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -256742,7 +325308,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_EMA_Value(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KURTOSIS_Value(((TA_KURTOSIS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -256770,13 +325336,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16605, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KURTOSIS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16606, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -256793,7 +325359,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KURTOSIS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -256804,12 +325370,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15KURTOSIS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_EMA_OutRange(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_KURTOSIS_OutRange(((TA_KURTOSIS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -256820,12 +325386,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMA_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15KURTOSIS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_EMA_Advance(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_KURTOSIS_Advance(((TA_KURTOSIS_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -256837,15 +325403,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMA_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMA_Stream_10copy, "EMA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15KURTOSIS_Stream_10copy, "KURTOSIS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -256871,16 +325437,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self) { - TA_EMA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15KURTOSIS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_self) { + TA_KURTOSIS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -256897,18 +325463,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16617, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream))))) __PYX_ERR(3, 16617, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream))))) __PYX_ERR(3, 22181, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -256922,7 +325488,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_EMA_Clone(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_KURTOSIS_Clone(((TA_KURTOSIS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -256965,7 +325531,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16627, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KURTOSIS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -256987,7 +325553,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KURTOSIS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -257000,19 +325566,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_9ER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_9ER_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10KVO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10KVO_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_9ER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10KVO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_9ER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10KVO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -257026,7 +325592,7 @@ static void __pyx_pf_5talib_7_ta_lib_9ER_Stream___dealloc__(struct __pyx_obj_5ta if (__pyx_t_1) { - (void)(TA_ER_Close(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KVO_Close(((TA_KVO_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -257052,27 +325618,32 @@ static void __pyx_pf_5talib_7_ta_lib_9ER_Stream___dealloc__(struct __pyx_obj_5ta /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_9ER_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10KVO_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_9ER_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10KVO_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -257088,79 +325659,132 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16651, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22218, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 22218, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 22218, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 22218, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22218, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22218, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16651, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22218, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16651, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22218, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16651, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16651, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22218, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 7, i); __PYX_ERR(3, 22218, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16651, __pyx_L3_error) + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 22218, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 22218, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 22218, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22218, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22218, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22218, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16651, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22218, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16651, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22218, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22218, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22218, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16651, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 7, __pyx_nargs); __PYX_ERR(3, 22218, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KVO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KVO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_10KVO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ER_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_KVO_Stream *__pyx_v_handle; + double __pyx_v_outkvo; + double __pyx_v_outkvosignal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -257175,31 +325799,55 @@ static int __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16652, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16653, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16653, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22223, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22223, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22223, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 22223, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16654, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22224, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16655, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22225, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16656, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22226, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16661, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22232, __pyx_L1_error) /*try:*/ { @@ -257209,9 +325857,9 @@ static int __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(struct __pyx_obj_5talib __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ER_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_KVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1); - __pyx_v_retCode = TA_ER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KVO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outkvo), (&__pyx_v_outkvosignal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -257228,7 +325876,7 @@ static int __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - (void)(TA_ER_Close(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_KVO_Close(((TA_KVO_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -257296,7 +325944,7 @@ static int __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ER_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16678, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KVO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -257308,10 +325956,13 @@ static int __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(struct __pyx_obj_5talib goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KVO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -257321,35 +325972,41 @@ static int __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(struct __pyx_obj_5talib + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10KVO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9ER_Stream_4open_and_fill, "ER_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9ER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9ER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9ER_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KVO_Stream_4open_and_fill, "KVO_Stream.open_and_fill(high, low, close, volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10KVO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KVO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KVO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10KVO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -257365,83 +326022,136 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16680, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22251, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 22251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 22251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 22251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22251, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16680, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22251, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16680, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22251, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16680, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16680, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22251, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 7, i); __PYX_ERR(3, 22251, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16680, __pyx_L3_error) + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 22251, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 22251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 22251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22251, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22251, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22251, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16680, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22251, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16681, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22252, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22252, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22252, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16680, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 7, __pyx_nargs); __PYX_ERR(3, 22251, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KVO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KVO_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KVO_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outkvo = 0; + PyArrayObject *__pyx_v_outkvosignal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ER_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_stream = 0; + TA_KVO_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -257458,41 +326168,66 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__ PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16682, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16683, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16683, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22257, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22257, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22257, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 22257, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16684, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22258, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16685, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22259, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16686, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22260, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16692, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KVO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KVO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16694, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22269, __pyx_L1_error) /*try:*/ { @@ -257502,7 +326237,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ER_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_KVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); } /*finally:*/ { @@ -257515,9 +326250,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16698, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22273, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outkvo = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22274, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outkvosignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -257526,7 +326266,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KVO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkvo)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outkvosignal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -257630,37 +326370,71 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16709, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KVO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16710, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16710, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16710, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 22286, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 22286, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 22286, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 22286, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outkvo)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 22286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16710, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 22286, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 22286, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 22286, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 22286, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outkvosignal)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 22286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16710, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 16710, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 22286, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 22286, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 22286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22286, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 22286, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -257668,16 +326442,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.KVO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outkvo); + __Pyx_XDECREF((PyObject *)__pyx_v_outkvosignal); @@ -257690,27 +326469,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10KVO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9ER_Stream_6update, "ER_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KVO_Stream_6update, "KVO_Stream.update(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10KVO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -257726,63 +326508,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16712, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22288, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22288, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22288, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22288, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22288, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16712, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16712, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22288, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 22288, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22288, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22288, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22288, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22288, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16713, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22289, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22289, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22289, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22289, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16712, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 22288, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KVO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KVO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KVO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outkvo; + double __pyx_v_outkvosignal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -257799,7 +326608,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_6update(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ER_Update(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KVO_Update(((TA_KVO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outkvo), (&__pyx_v_outkvosignal)); } /*finally:*/ { @@ -257827,34 +326636,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_6update(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16720, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KVO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16721, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outkvo); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outkvosignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 22298, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 22298, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.KVO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -257862,27 +326684,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_6update(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10KVO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9ER_Stream_8peek, "ER_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KVO_Stream_8peek, "KVO_Stream.peek(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10KVO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -257898,63 +326723,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16723, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22300, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22300, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22300, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22300, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22300, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16723, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16723, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22300, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 22300, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22300, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22300, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22300, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22300, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16724, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22301, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22301, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22301, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22301, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16723, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 22300, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KVO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KVO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KVO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outkvo; + double __pyx_v_outkvosignal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -257971,7 +326823,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_8peek(struct __pyx_obj_5tal __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ER_Peek(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KVO_Peek(((TA_KVO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outkvo), (&__pyx_v_outkvosignal)); } /*finally:*/ { @@ -257999,34 +326851,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16731, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KVO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16732, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outkvo); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outkvosignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 22310, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 22310, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.KVO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -258034,28 +326899,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_8peek(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10KVO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10KVO_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KVO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KVO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self) { + double __pyx_v_outkvo; + double __pyx_v_outkvosignal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -258072,7 +326940,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_5value___get__(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ER_Value(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_KVO_Value(((TA_KVO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outkvo), (&__pyx_v_outkvosignal)); } /*finally:*/ { @@ -258100,46 +326968,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_5value___get__(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16742, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KVO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16743, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outkvo); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outkvosignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 22322, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 22322, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.KVO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9ER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KVO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ER_OutRange(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_KVO_OutRange(((TA_KVO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -258150,12 +327031,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9ER_Stream__out_range(struct __pyx_obj } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9ER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KVO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ER_Advance(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_KVO_Advance(((TA_KVO_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -258167,15 +327048,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9ER_Stream__advance(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10KVO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9ER_Stream_10copy, "ER_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KVO_Stream_10copy, "KVO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10KVO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -258201,16 +327082,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KVO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self) { - TA_ER_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10KVO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_self) { + TA_KVO_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -258227,18 +327108,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(struct __pyx_obj_5ta __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KVO_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16754, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream))))) __PYX_ERR(3, 16754, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KVO_Stream))))) __PYX_ERR(3, 22333, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -258252,7 +327133,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(struct __pyx_obj_5ta __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ER_Clone(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_KVO_Clone(((TA_KVO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -258295,7 +327176,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16764, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KVO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -258317,7 +327198,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(struct __pyx_obj_5ta __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KVO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -258330,19 +327211,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(struct __pyx_obj_5ta /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10ERI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10ERI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10ERI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10ERI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -258356,7 +327237,7 @@ static void __pyx_pf_5talib_7_ta_lib_10ERI_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_ERI_Close(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_LINEARREG_Close(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -258382,29 +327263,27 @@ static void __pyx_pf_5talib_7_ta_lib_10ERI_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10ERI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10ERI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -258420,75 +327299,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16789, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22367, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16789, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16789, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16789, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22367, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16789, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22367, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16789, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 16789, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22367, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22367, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16789, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16789, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16789, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22367, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16789, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22367, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16789, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22367, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 16789, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22367, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -258499,17 +327364,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ERI_Stream *__pyx_v_handle; - double __pyx_v_outbullpower; - double __pyx_v_outbearpower; + TA_LINEARREG_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -258524,47 +327386,31 @@ static int __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16791, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16792, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16793, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16793, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16793, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16793, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22369, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16794, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22370, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16795, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22371, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16796, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22372, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16802, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22377, __pyx_L1_error) /*try:*/ { @@ -258574,9 +327420,9 @@ static int __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ERI_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_LINEARREG_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_ERI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbullpower), (&__pyx_v_outbearpower)); + __pyx_v_retCode = TA_LINEARREG_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -258593,7 +327439,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_ERI_Close(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_LINEARREG_Close(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -258661,7 +327507,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ERI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16819, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -258673,12 +327519,10 @@ static int __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -258688,38 +327532,35 @@ static int __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(struct __pyx_obj_5tal - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ERI_Stream_4open_and_fill, "ERI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ERI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ERI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill, "LINEARREG_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -258735,75 +327576,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16821, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22396, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16821, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16821, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22396, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22396, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16821, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 16821, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22396, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22396, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16821, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16821, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22396, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22396, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16822, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22397, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 16821, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22396, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -258814,21 +327641,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outbullpower = 0; - PyArrayObject *__pyx_v_outbearpower = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ERI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_stream = 0; + TA_LINEARREG_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -258845,58 +327669,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject * PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16823, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16824, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16825, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16826, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16826, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16826, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16826, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22399, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16827, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22400, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16828, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22401, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16829, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22402, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ERI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16836, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16838, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22410, __pyx_L1_error) /*try:*/ { @@ -258906,7 +327713,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ERI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -258919,14 +327726,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16842, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outbullpower = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16843, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22414, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outbearpower = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -258935,7 +327737,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ERI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbullpower)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbearpower)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LINEARREG_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -259039,65 +327841,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ERI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16854, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16855, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16855, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16855, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 16855, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outbullpower)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16855, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22426, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 22426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16855, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16855, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16855, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 16855, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outbearpower)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 16855, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16855, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 16855, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 16855, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 16855, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16855, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 16855, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22426, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 22426, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_14; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_14 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -259105,20 +327879,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outbullpower); - __Pyx_XDECREF((PyObject *)__pyx_v_outbearpower); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -259131,29 +327901,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ERI_Stream_6update, "ERI_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_6update, "LINEARREG_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -259169,82 +327937,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16857, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22428, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16857, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16857, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16857, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22428, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16857, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 16857, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22428, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22428, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16857, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16857, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16857, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22428, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16858, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16858, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16858, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22429, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 16857, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22428, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outbullpower; - double __pyx_v_outbearpower; +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -259261,7 +328010,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ERI_Update(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outbullpower), (&__pyx_v_outbearpower)); + __pyx_v_retCode = TA_LINEARREG_Update(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -259289,47 +328038,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16866, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16867, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 16867, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 16867, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -259337,29 +328073,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ERI_Stream_8peek, "ERI_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_8peek, "LINEARREG_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -259375,82 +328109,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16869, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22439, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16869, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16869, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16869, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22439, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16869, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 16869, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22439, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22439, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16869, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16869, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16869, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22439, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16870, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16870, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16870, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22440, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 16869, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22439, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outbullpower; - double __pyx_v_outbearpower; +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -259467,7 +328182,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ERI_Peek(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outbullpower), (&__pyx_v_outbearpower)); + __pyx_v_retCode = TA_LINEARREG_Peek(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -259495,47 +328210,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16878, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16879, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16879, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16879, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 16879, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 16879, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -259543,31 +328245,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self) { - double __pyx_v_outbullpower; - double __pyx_v_outbearpower; +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -259584,7 +328283,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ERI_Value(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outbullpower), (&__pyx_v_outbearpower)); + __pyx_v_retCode = TA_LINEARREG_Value(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -259612,59 +328311,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16890, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16891, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16891, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16891, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 16891, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 16891, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10ERI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ERI_OutRange(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_LINEARREG_OutRange(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -259675,12 +328361,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ERI_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10ERI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ERI_Advance(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_LINEARREG_Advance(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -259692,15 +328378,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ERI_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ERI_Stream_10copy, "ERI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_10copy, "LINEARREG_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -259726,16 +328412,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self) { - TA_ERI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self) { + TA_LINEARREG_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -259752,18 +328438,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16902, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream))))) __PYX_ERR(3, 16902, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream))))) __PYX_ERR(3, 22470, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -259777,7 +328463,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ERI_Clone(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_LINEARREG_Clone(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -259820,7 +328506,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16912, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -259842,7 +328528,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -259855,19 +328541,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10EXP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10EXP_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10EXP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10EXP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -259881,7 +328567,7 @@ static void __pyx_pf_5talib_7_ta_lib_10EXP_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_EXP_Close(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_LINEARREG_ANGLE_Close(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -259907,14 +328593,14 @@ static void __pyx_pf_5talib_7_ta_lib_10EXP_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10EXP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10EXP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -259922,11 +328608,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -259942,61 +328629,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16934, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22504, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22504, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16934, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22504, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16934, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22504, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 16934, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22504, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16934, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22504, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22504, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22504, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16934, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22504, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, PyObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_EXP_Stream *__pyx_v_handle; + TA_LINEARREG_ANGLE_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -260012,31 +328716,31 @@ static int __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16935, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16936, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16936, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22506, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16937, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22507, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16938, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22508, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16939, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22509, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16944, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22514, __pyx_L1_error) /*try:*/ { @@ -260046,9 +328750,9 @@ static int __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_EXP_Lookback() + 1); + __pyx_v_need = (TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_EXP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_LINEARREG_ANGLE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -260065,7 +328769,7 @@ static int __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_EXP_Close(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_LINEARREG_ANGLE_Close(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -260133,7 +328837,7 @@ static int __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EXP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16961, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -260145,7 +328849,7 @@ static int __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -260164,16 +328868,16 @@ static int __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EXP_Stream_4open_and_fill, "EXP_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10EXP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EXP_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill, "LINEARREG_ANGLE_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -260181,11 +328885,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -260201,55 +328906,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16963, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22533, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22533, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16963, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22533, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16963, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22533, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 16963, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22533, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16963, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22533, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22533, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22534, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16963, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22533, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -260259,8 +328981,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_EXP_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_stream = 0; + TA_LINEARREG_ANGLE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -260282,36 +329004,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16965, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16966, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16966, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22536, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16967, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22537, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16968, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22538, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16969, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22539, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EXP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16975, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16977, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22547, __pyx_L1_error) /*try:*/ { @@ -260321,7 +329043,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_EXP_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -260334,7 +329056,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16981, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22551, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -260345,7 +329067,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_EXP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LINEARREG_ANGLE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -260449,27 +329171,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EXP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16992, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16993, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16993, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 16993, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22563, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 22563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16993, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16993, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22563, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 16993, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 22563, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -260487,7 +329209,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -260509,15 +329231,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EXP_Stream_6update, "EXP_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update, "LINEARREG_ANGLE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -260547,43 +329269,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16995, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22565, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16995, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22565, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16995, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22565, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22565, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16996, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22566, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16995, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22565, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -260594,7 +329316,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -260618,7 +329340,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_EXP_Update(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_LINEARREG_ANGLE_Update(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -260646,13 +329368,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17003, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17004, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -260669,7 +329391,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -260681,15 +329403,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EXP_Stream_8peek, "EXP_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek, "LINEARREG_ANGLE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -260719,43 +329441,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17006, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22576, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17006, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22576, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17006, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22576, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17006, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22576, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17006, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22576, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17007, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22577, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17006, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22576, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -260766,7 +329488,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -260790,7 +329512,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_EXP_Peek(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_LINEARREG_ANGLE_Peek(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -260818,13 +329540,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17014, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17015, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -260841,7 +329563,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -260853,21 +329575,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -260891,7 +329613,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_EXP_Value(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_LINEARREG_ANGLE_Value(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -260919,13 +329641,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17025, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17026, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -260942,7 +329664,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -260953,12 +329675,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10EXP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_EXP_OutRange(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_LINEARREG_ANGLE_OutRange(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -260969,12 +329691,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10EXP_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10EXP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_EXP_Advance(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_LINEARREG_ANGLE_Advance(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -260986,15 +329708,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10EXP_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EXP_Stream_10copy, "EXP_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy, "LINEARREG_ANGLE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -261020,16 +329742,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self) { - TA_EXP_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self) { + TA_LINEARREG_ANGLE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -261046,18 +329768,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17037, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream))))) __PYX_ERR(3, 17037, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream))))) __PYX_ERR(3, 22607, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -261071,7 +329793,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_EXP_Clone(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_LINEARREG_ANGLE_Clone(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -261114,7 +329836,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17047, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -261136,7 +329858,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -261149,19 +329871,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -261175,7 +329897,7 @@ static void __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream___dealloc__(struct __pyx_obj if (__pyx_t_1) { - (void)(TA_FLOOR_Close(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_LINEARREG_INTERCEPT_Close(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -261201,14 +329923,14 @@ static void __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream___dealloc__(struct __pyx_obj /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -261216,11 +329938,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -261236,61 +329959,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17069, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22641, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22641, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17069, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22641, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17069, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22641, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 17069, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22641, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17069, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22641, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22641, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22641, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17069, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22641, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, PyObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_FLOOR_Stream *__pyx_v_handle; + TA_LINEARREG_INTERCEPT_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -261306,31 +330046,31 @@ static int __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17070, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17071, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17071, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22643, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17072, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22644, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17073, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22645, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17074, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22646, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17079, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22651, __pyx_L1_error) /*try:*/ { @@ -261340,9 +330080,9 @@ static int __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(struct __pyx_obj_5t __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_FLOOR_Lookback() + 1); + __pyx_v_need = (TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_FLOOR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -261359,7 +330099,7 @@ static int __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - (void)(TA_FLOOR_Close(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_LINEARREG_INTERCEPT_Close(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -261427,7 +330167,7 @@ static int __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17096, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -261439,7 +330179,7 @@ static int __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(struct __pyx_obj_5t goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -261458,16 +330198,16 @@ static int __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill, "FLOOR_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill, "LINEARREG_INTERCEPT_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -261475,11 +330215,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -261495,55 +330236,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17098, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22670, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22670, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22670, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17098, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22670, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 17098, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22670, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17098, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22670, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22670, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22671, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17098, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22670, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -261553,8 +330311,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_FLOOR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_stream = 0; + TA_LINEARREG_INTERCEPT_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -261576,36 +330334,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17100, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17101, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17101, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22673, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17102, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22674, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17103, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22675, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17104, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22676, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FLOOR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17110, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17112, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22684, __pyx_L1_error) /*try:*/ { @@ -261615,7 +330373,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_FLOOR_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -261628,7 +330386,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17116, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22688, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -261639,7 +330397,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_FLOOR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LINEARREG_INTERCEPT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -261743,27 +330501,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17127, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17128, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17128, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17128, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22700, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 22700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17128, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17128, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22700, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 17128, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 22700, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -261781,7 +330539,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -261803,15 +330561,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_6update, "FLOOR_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update, "LINEARREG_INTERCEPT_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -261841,43 +330599,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17130, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22702, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17130, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22702, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17130, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22702, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17130, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22702, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17130, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22702, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17131, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22703, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17130, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22702, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -261888,7 +330646,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -261912,7 +330670,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_6update(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_FLOOR_Update(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Update(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -261940,13 +330698,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_6update(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17138, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17139, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -261963,7 +330721,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_6update(struct __pyx_ob /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -261975,15 +330733,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_6update(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_8peek, "FLOOR_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek, "LINEARREG_INTERCEPT_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -262013,43 +330771,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17141, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22713, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17141, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17141, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22713, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17141, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22713, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17141, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22713, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17142, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22714, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17141, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22713, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -262060,7 +330818,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -262084,7 +330842,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_8peek(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_FLOOR_Peek(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Peek(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -262112,13 +330870,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_8peek(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17149, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17150, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -262135,7 +330893,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_8peek(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -262147,21 +330905,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_8peek(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -262185,7 +330943,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_5value___get__(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_FLOOR_Value(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Value(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -262213,13 +330971,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_5value___get__(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17160, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17161, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -262236,7 +330994,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_5value___get__(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -262247,12 +331005,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_5value___get__(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12FLOOR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_FLOOR_OutRange(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_LINEARREG_INTERCEPT_OutRange(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -262263,12 +331021,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12FLOOR_Stream__out_range(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12FLOOR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_FLOOR_Advance(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_LINEARREG_INTERCEPT_Advance(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -262280,15 +331038,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12FLOOR_Stream__advance(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_10copy, "FLOOR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy, "LINEARREG_INTERCEPT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -262314,16 +331072,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self) { - TA_FLOOR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self) { + TA_LINEARREG_INTERCEPT_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -262340,18 +331098,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(struct __pyx_obj __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17172, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream))))) __PYX_ERR(3, 17172, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream))))) __PYX_ERR(3, 22744, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -262365,7 +331123,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_FLOOR_Clone(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Clone(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -262408,7 +331166,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(struct __pyx_obj if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17182, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -262430,7 +331188,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(struct __pyx_obj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -262443,19 +331201,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(struct __pyx_obj /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11FOSC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11FOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -262469,7 +331227,7 @@ static void __pyx_pf_5talib_7_ta_lib_11FOSC_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_FOSC_Close(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_LINEARREG_SLOPE_Close(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -262495,14 +331253,14 @@ static void __pyx_pf_5talib_7_ta_lib_11FOSC_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -262533,59 +331291,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17206, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22778, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17206, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17206, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17206, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22778, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 17206, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22778, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17206, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17206, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22778, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17206, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22778, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17206, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22778, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -262596,13 +331354,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_FOSC_Stream *__pyx_v_handle; + TA_LINEARREG_SLOPE_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -262618,31 +331376,31 @@ static int __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17207, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17208, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17208, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22780, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17209, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22781, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17210, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22782, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17211, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22783, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17216, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22788, __pyx_L1_error) /*try:*/ { @@ -262652,9 +331410,9 @@ static int __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_FOSC_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_FOSC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_LINEARREG_SLOPE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -262671,7 +331429,7 @@ static int __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_FOSC_Close(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_LINEARREG_SLOPE_Close(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -262739,7 +331497,7 @@ static int __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17233, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -262751,7 +331509,7 @@ static int __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -262770,16 +331528,16 @@ static int __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill, "FOSC_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill, "LINEARREG_SLOPE_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -262810,59 +331568,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17235, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22807, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17235, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17235, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17235, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22807, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 17235, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22807, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17235, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17235, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22807, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17236, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22808, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17235, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22807, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -262873,7 +331631,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -262883,8 +331641,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_FOSC_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_stream = 0; + TA_LINEARREG_SLOPE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -262906,36 +331664,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17237, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17238, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17238, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22810, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17239, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22811, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17240, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22812, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17241, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22813, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17247, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17249, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22821, __pyx_L1_error) /*try:*/ { @@ -262945,7 +331703,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_FOSC_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -262958,7 +331716,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17253, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22825, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -262969,7 +331727,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_FOSC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LINEARREG_SLOPE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -263073,27 +331831,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17264, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17265, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17265, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17265, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22837, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 22837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17265, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17265, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22837, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 17265, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 22837, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -263111,7 +331869,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -263133,15 +331891,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11FOSC_Stream_6update, "FOSC_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update, "LINEARREG_SLOPE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -263171,43 +331929,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17267, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22839, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22839, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17267, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22839, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17267, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22839, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22839, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17268, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22840, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17267, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22839, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -263218,7 +331976,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -263242,7 +332000,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_FOSC_Update(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_LINEARREG_SLOPE_Update(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -263270,13 +332028,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17275, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17276, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -263293,7 +332051,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -263305,15 +332063,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11FOSC_Stream_8peek, "FOSC_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek, "LINEARREG_SLOPE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -263343,43 +332101,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17278, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22850, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17278, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17278, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22850, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17278, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22850, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17278, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22850, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17279, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22851, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17278, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22850, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -263390,7 +332148,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -263414,7 +332172,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_FOSC_Peek(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_LINEARREG_SLOPE_Peek(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -263442,13 +332200,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17286, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17287, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -263465,7 +332223,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -263477,21 +332235,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -263515,7 +332273,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_FOSC_Value(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_LINEARREG_SLOPE_Value(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -263543,13 +332301,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17297, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17298, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -263566,7 +332324,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -263577,12 +332335,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11FOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_FOSC_OutRange(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_LINEARREG_SLOPE_OutRange(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -263593,12 +332351,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11FOSC_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11FOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_FOSC_Advance(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_LINEARREG_SLOPE_Advance(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -263610,15 +332368,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11FOSC_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11FOSC_Stream_10copy, "FOSC_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy, "LINEARREG_SLOPE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -263644,16 +332402,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self) { - TA_FOSC_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self) { + TA_LINEARREG_SLOPE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -263670,18 +332428,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17309, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream))))) __PYX_ERR(3, 17309, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream))))) __PYX_ERR(3, 22881, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -263695,7 +332453,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_FOSC_Clone(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_LINEARREG_SLOPE_Clone(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -263738,7 +332496,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17319, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -263760,7 +332518,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -263773,19 +332531,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_9LN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9LN_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_9LN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_9LN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -263799,7 +332557,7 @@ static void __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream___dealloc__(struct __pyx_o if (__pyx_t_1) { - (void)(TA_FRACTAL_Close(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_LN_Close(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -263825,29 +332583,26 @@ static void __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream___dealloc__(struct __pyx_o /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9LN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9LN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - int __pyx_v_leftbars; - int __pyx_v_rightbars; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -263863,102 +332618,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17345, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22913, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17345, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17345, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17345, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17345, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17345, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 17345, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17345, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17345, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17345, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17345, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22913, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 22913, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17345, __pyx_L3_error) - } else { - __pyx_v_leftbars = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17345, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_rightbars = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22913, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 17345, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22913, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; +static int __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_FRACTAL_Stream *__pyx_v_handle; - int __pyx_v_outswinghigh; - int __pyx_v_outswinglow; + TA_LN_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -263973,39 +332688,31 @@ static int __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17346, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17348, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17348, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17348, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22915, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17349, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22916, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17350, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22917, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17351, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22918, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17357, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22923, __pyx_L1_error) /*try:*/ { @@ -264015,9 +332722,9 @@ static int __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(struct __pyx_obj_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars) + 1); + __pyx_v_need = (TA_LN_Lookback() + 1); - __pyx_v_retCode = TA_FRACTAL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); + __pyx_v_retCode = TA_LN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -264034,7 +332741,7 @@ static int __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - (void)(TA_FRACTAL_Close(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_LN_Close(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -264102,7 +332809,7 @@ static int __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17374, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -264114,11 +332821,10 @@ static int __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(struct __pyx_obj_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -264128,38 +332834,34 @@ static int __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(struct __pyx_obj_ - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill, "FRACTAL_Stream.open_and_fill(high, low, int leftbars=-0x80000000, int rightbars=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9LN_Stream_4open_and_fill, "LN_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9LN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9LN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9LN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - int __pyx_v_leftbars; - int __pyx_v_rightbars; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -264175,106 +332877,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17376, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22942, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17376, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17376, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17376, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17376, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22942, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17376, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 17376, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17376, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17376, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17376, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17376, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22942, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 22942, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17377, __pyx_L3_error) - } else { - __pyx_v_leftbars = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17377, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_rightbars = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22942, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 17376, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22942, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outswinghigh = 0; - PyArrayObject *__pyx_v_outswinglow = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_FRACTAL_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_stream = 0; + TA_LN_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -264291,50 +332953,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObje PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17378, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17379, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17380, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17380, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17380, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22945, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17381, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22946, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17382, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22947, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17383, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22948, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FRACTAL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17390, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17392, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22956, __pyx_L1_error) /*try:*/ { @@ -264344,7 +332997,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars)); + __pyx_v_lookback = (__pyx_v_begidx + TA_LN_Lookback()); } /*finally:*/ { @@ -264357,14 +333010,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17396, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outswinghigh = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17397, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22960, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outswinglow = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -264373,7 +333021,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_FRACTAL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinghigh)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinglow)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -264477,59 +333125,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17408, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17409, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17409, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17409, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outswinghigh)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17409, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22972, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 22972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17409, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17409, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17409, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outswinglow)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 17409, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17409, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 17409, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 17409, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 17409, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17409, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 17409, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22972, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 22972, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_14; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_14 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -264537,19 +333163,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObje __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outswinghigh); - __Pyx_XDECREF((PyObject *)__pyx_v_outswinglow); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -264562,28 +333185,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_6update, "FRACTAL_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9LN_Stream_6update, "LN_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -264599,74 +333221,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17411, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22974, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17411, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22974, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17411, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17411, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22974, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22974, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17411, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22974, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17412, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17412, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22975, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17411, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22974, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - int __pyx_v_outswinghigh; - int __pyx_v_outswinglow; +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -264683,7 +333294,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_FRACTAL_Update(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); + __pyx_v_retCode = TA_LN_Update(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -264711,47 +333322,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17420, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17421, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 17421, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 17421, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -264759,28 +333357,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_8peek, "FRACTAL_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9LN_Stream_8peek, "LN_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -264796,74 +333393,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17423, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22985, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17423, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17423, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22985, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17423, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17423, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22985, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22985, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17423, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17423, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22985, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17424, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17424, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22986, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17423, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22985, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - int __pyx_v_outswinghigh; - int __pyx_v_outswinglow; +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -264880,7 +333466,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_FRACTAL_Peek(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); + __pyx_v_retCode = TA_LN_Peek(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -264908,47 +333494,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17432, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17433, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17433, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17433, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 17433, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 17433, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -264956,31 +333529,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self) { - int __pyx_v_outswinghigh; - int __pyx_v_outswinglow; +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -264997,7 +333567,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_FRACTAL_Value(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); + __pyx_v_retCode = TA_LN_Value(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -265025,59 +333595,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17444, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17445, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 17445, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 17445, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9LN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_FRACTAL_OutRange(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_LN_OutRange(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -265088,12 +333645,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__out_range(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9LN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_FRACTAL_Advance(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_LN_Advance(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -265105,15 +333662,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__advance(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_10copy, "FRACTAL_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9LN_Stream_10copy, "LN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -265139,16 +333696,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self) { - TA_FRACTAL_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self) { + TA_LN_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -265165,18 +333722,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(struct __pyx_o __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17456, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream))))) __PYX_ERR(3, 17456, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream))))) __PYX_ERR(3, 23016, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -265190,7 +333747,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_FRACTAL_Clone(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_LN_Clone(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -265233,7 +333790,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(struct __pyx_o if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17466, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -265255,7 +333812,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(struct __pyx_o __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -265268,19 +333825,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(struct __pyx_o /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_9HA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_9HA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_9HA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_12LOG10_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_9HA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_12LOG10_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -265294,7 +333851,7 @@ static void __pyx_pf_5talib_7_ta_lib_9HA_Stream___dealloc__(struct __pyx_obj_5ta if (__pyx_t_1) { - (void)(TA_HA_Close(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_LOG10_Close(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -265320,29 +333877,26 @@ static void __pyx_pf_5talib_7_ta_lib_9HA_Stream___dealloc__(struct __pyx_obj_5ta /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_9HA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_9HA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -265358,66 +333912,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17491, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23048, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17491, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17491, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17491, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23048, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17491, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 17491, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23048, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 23048, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17491, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17491, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17491, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23048, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 17491, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23048, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -265427,20 +333960,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_HA_Stream *__pyx_v_handle; - double __pyx_v_outhaopen; - double __pyx_v_outhahigh; - double __pyx_v_outhalow; - double __pyx_v_outhaclose; + TA_LOG10_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -265455,55 +333982,31 @@ static int __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17492, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17493, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17494, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17495, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17496, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 17496, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17496, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17496, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17496, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23050, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17497, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23051, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17498, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23052, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17499, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23053, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17507, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23058, __pyx_L1_error) /*try:*/ { @@ -265513,9 +334016,9 @@ static int __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(struct __pyx_obj_5talib __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_HA_Lookback() + 1); + __pyx_v_need = (TA_LOG10_Lookback() + 1); - __pyx_v_retCode = TA_HA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); + __pyx_v_retCode = TA_LOG10_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -265532,7 +334035,7 @@ static int __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - (void)(TA_HA_Close(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_LOG10_Close(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -265600,7 +334103,7 @@ static int __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17524, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -265612,13 +334115,10 @@ static int __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(struct __pyx_obj_5talib goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -265628,40 +334128,34 @@ static int __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(struct __pyx_obj_5talib - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9HA_Stream_4open_and_fill, "HA_Stream.open_and_fill(open, high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9HA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9HA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9HA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill, "LOG10_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -265677,66 +334171,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17526, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23077, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17526, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17526, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17526, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17526, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23077, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17526, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 17526, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23077, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 23077, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17526, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17526, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17526, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17526, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23077, __pyx_L3_error) } - __pyx_v_open = values[0]; - __pyx_v_high = values[1]; - __pyx_v_low = values[2]; - __pyx_v_close = values[3]; + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 17526, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23077, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -265746,24 +334219,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outhaopen = 0; - PyArrayObject *__pyx_v_outhahigh = 0; - PyArrayObject *__pyx_v_outhalow = 0; - PyArrayObject *__pyx_v_outhaclose = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_HA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_stream = 0; + TA_LOG10_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -265780,68 +334247,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__ PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; - PyObject *__pyx_t_16 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17528, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17529, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17530, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17532, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 17532, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17532, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17532, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17532, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23080, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17533, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23081, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17534, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23082, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17535, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23083, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17544, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LOG10_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17546, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23091, __pyx_L1_error) /*try:*/ { @@ -265851,7 +334291,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HA_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_LOG10_Lookback()); } /*finally:*/ { @@ -265864,24 +334304,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17550, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outhaopen = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17551, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23095, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outhahigh = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17552, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outhalow = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17553, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outhaclose = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -265890,7 +334315,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaopen)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhahigh)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhalow)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaclose)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LOG10_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -265994,111 +334419,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17564, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LOG10_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17565, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outhaopen)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17565, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23107, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outhahigh)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 17565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outhalow)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 17565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __pyx_t_16 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outhaclose)); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 17565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17565, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_16); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_16) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_15 = 0; - __pyx_t_16 = 0; - __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 17565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 17565, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23107, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 23107, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_16; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_16 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -266106,25 +334457,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_XDECREF(__pyx_t_16); - __Pyx_AddTraceback("talib._ta_lib.HA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outhaopen); - __Pyx_XDECREF((PyObject *)__pyx_v_outhahigh); - __Pyx_XDECREF((PyObject *)__pyx_v_outhalow); - __Pyx_XDECREF((PyObject *)__pyx_v_outhaclose); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -266137,30 +334479,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9HA_Stream_6update, "HA_Stream.update(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12LOG10_Stream_6update, "LOG10_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -266176,94 +334515,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17567, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23109, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17567, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17567, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17567, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23109, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17567, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 17567, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23109, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 23109, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17567, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17567, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17567, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23109, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17568, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17568, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17568, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17568, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23110, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 17567, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23109, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outhaopen; - double __pyx_v_outhahigh; - double __pyx_v_outhalow; - double __pyx_v_outhaclose; +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -266280,7 +334588,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_6update(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HA_Update(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); + __pyx_v_retCode = TA_LOG10_Update(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -266308,61 +334616,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_6update(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17578, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17579, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 17579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 17579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 17579, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 17579, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 17579, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6) != (0)) __PYX_ERR(3, 17579, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_t_6 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_7; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_7 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("talib._ta_lib.HA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -266370,30 +334651,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_6update(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9HA_Stream_8peek, "HA_Stream.peek(self, double open, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12LOG10_Stream_8peek, "LOG10_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -266409,94 +334687,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17581, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23120, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17581, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17581, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23120, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17581, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 17581, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 23120, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 23120, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17581, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17581, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17581, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17581, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23120, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17582, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17582, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17582, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17582, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23121, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 17581, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23120, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outhaopen; - double __pyx_v_outhahigh; - double __pyx_v_outhalow; - double __pyx_v_outhaclose; +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -266513,142 +334760,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_8peek(struct __pyx_obj_5tal __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HA_Peek(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); - goto __pyx_L8; - } - __pyx_L8:; - } - } - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L5; - } - __pyx_L5:; - } - } - - __pyx_t_2 = (__pyx_v_retCode != 0); - - if (__pyx_t_2) { - - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17592, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17593, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17593, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17593, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 17593, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 17593, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 17593, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 17593, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 17593, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6) != (0)) __PYX_ERR(3, 17593, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_t_6 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_7; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_7 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("talib._ta_lib.HA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_5value_1__get__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self) { - double __pyx_v_outhaopen; - double __pyx_v_outhahigh; - double __pyx_v_outhalow; - double __pyx_v_outhaclose; - TA_RetCode __pyx_v_retCode; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_Locks_PyMutex *__pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - { - __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; - __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); - /*try:*/ { - - __pyx_v_retCode = TA_HA_Value(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); + __pyx_v_retCode = TA_LOG10_Peek(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -266676,60 +334788,134 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_5value___get__(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17606, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17607, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 17607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 17607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 17607, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 17607, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 17607, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6) != (0)) __PYX_ERR(3, 17607, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_t_6 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_7; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_7 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("talib._ta_lib.HA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_LOG10_Value(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -266737,12 +334923,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_5value___get__(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9HA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12LOG10_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_HA_OutRange(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_LOG10_OutRange(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -266753,12 +334939,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9HA_Stream__out_range(struct __pyx_obj } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9HA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12LOG10_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_HA_Advance(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_LOG10_Advance(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -266770,15 +334956,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9HA_Stream__advance(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9HA_Stream_10copy, "HA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12LOG10_Stream_10copy, "LOG10_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -266804,16 +334990,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self) { - TA_HA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self) { + TA_LOG10_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -266830,18 +335016,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(struct __pyx_obj_5ta __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17618, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream))))) __PYX_ERR(3, 17618, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream))))) __PYX_ERR(3, 23151, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -266855,7 +335041,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(struct __pyx_obj_5ta __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_HA_Clone(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_LOG10_Clone(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -266898,7 +335084,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17628, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -266920,7 +335106,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(struct __pyx_obj_5ta __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.HA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -266933,19 +335119,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(struct __pyx_obj_5ta /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10HMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10HMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_9MA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9MA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10HMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_9MA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10HMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_9MA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -266959,7 +335145,7 @@ static void __pyx_pf_5talib_7_ta_lib_10HMA_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_HMA_Close(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MA_Close(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -266985,14 +335171,14 @@ static void __pyx_pf_5talib_7_ta_lib_10HMA_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10HMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9MA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10HMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9MA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -267001,11 +335187,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -267021,78 +335208,92 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17652, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23186, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23186, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17652, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17652, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17652, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23186, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 17652, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 23186, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23186, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17652, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17652, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23186, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17652, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23186, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[2]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23186, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17652, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 23186, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_HMA_Stream *__pyx_v_handle; + TA_MA_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -267108,31 +335309,31 @@ static int __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17653, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17654, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17654, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23188, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17655, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23189, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17656, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23190, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17657, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23191, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17662, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23196, __pyx_L1_error) /*try:*/ { @@ -267142,9 +335343,9 @@ static int __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_HMA_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype) + 1); - __pyx_v_retCode = TA_HMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -267161,7 +335362,7 @@ static int __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_HMA_Close(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MA_Close(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -267229,7 +335430,7 @@ static int __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17679, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -267241,7 +335442,7 @@ static int __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -267260,16 +335461,16 @@ static int __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10HMA_Stream_4open_and_fill, "HMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10HMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10HMA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9MA_Stream_4open_and_fill, "MA_Stream.open_and_fill(real, int timeperiod=-0x80000000, int matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9MA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9MA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9MA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -267278,11 +335479,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -267298,72 +335500,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17681, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23215, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23215, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17681, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23215, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 17681, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 23215, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23215, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23215, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17682, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23216, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[2]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23216, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17681, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 23215, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -267373,8 +335589,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_HMA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_stream = 0; + TA_MA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -267396,36 +335612,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17683, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17684, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17684, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23218, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17685, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23219, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17686, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23220, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17687, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23221, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17693, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17695, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23229, __pyx_L1_error) /*try:*/ { @@ -267435,7 +335651,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype)); } /*finally:*/ { @@ -267448,7 +335664,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17699, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23233, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -267459,7 +335675,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -267563,27 +335779,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17710, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17711, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17711, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17711, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23245, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17711, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23245, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 17711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 23245, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -267601,7 +335817,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -267623,15 +335839,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10HMA_Stream_6update, "HMA_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9MA_Stream_6update, "MA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -267661,43 +335877,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17713, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23247, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17713, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23247, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17713, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 23247, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23247, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17714, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23248, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17713, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23247, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -267708,7 +335924,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -267732,7 +335948,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HMA_Update(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MA_Update(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -267760,13 +335976,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17721, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17722, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -267783,7 +335999,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -267795,15 +336011,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10HMA_Stream_8peek, "HMA_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9MA_Stream_8peek, "MA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -267833,43 +336049,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17724, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23258, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17724, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23258, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17724, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 23258, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17724, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 23258, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17724, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23258, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17725, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23259, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17724, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23258, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -267880,7 +336096,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -267904,7 +336120,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HMA_Peek(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MA_Peek(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -267932,13 +336148,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17732, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17733, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -267955,7 +336171,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -267967,21 +336183,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -268005,7 +336221,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HMA_Value(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MA_Value(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -268033,13 +336249,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17743, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17744, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -268056,7 +336272,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -268067,12 +336283,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10HMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9MA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_HMA_OutRange(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MA_OutRange(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -268083,12 +336299,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10HMA_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10HMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9MA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_HMA_Advance(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MA_Advance(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -268100,15 +336316,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10HMA_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10HMA_Stream_10copy, "HMA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9MA_Stream_10copy, "MA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -268134,16 +336350,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self) { - TA_HMA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self) { + TA_MA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -268160,18 +336376,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17755, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream))))) __PYX_ERR(3, 17755, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream))))) __PYX_ERR(3, 23289, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -268185,7 +336401,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_HMA_Clone(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MA_Clone(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -268228,7 +336444,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17765, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -268250,7 +336466,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -268263,19 +336479,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11MACD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11MACD_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11MACD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11MACD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -268289,7 +336505,7 @@ static void __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream___dealloc__(struct __p if (__pyx_t_1) { - (void)(TA_HT_DCPERIOD_Close(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MACD_Close(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -268315,14 +336531,14 @@ static void __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream___dealloc__(struct __p /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11MACD_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11MACD_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -268330,11 +336546,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -268350,62 +336569,109 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17787, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23327, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23327, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17787, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23327, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17787, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23327, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 17787, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 23327, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17787, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23327, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23327, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23327, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23327, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17787, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 23327, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, PyObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_HT_DCPERIOD_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_MACD_Stream *__pyx_v_handle; + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -268420,31 +336686,31 @@ static int __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17788, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17789, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17789, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23329, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17790, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23330, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17791, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23331, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17792, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23332, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17797, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23339, __pyx_L1_error) /*try:*/ { @@ -268454,9 +336720,9 @@ static int __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(struct __pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_HT_DCPERIOD_Lookback() + 1); + __pyx_v_need = (TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1); - __pyx_v_retCode = TA_HT_DCPERIOD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MACD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -268473,7 +336739,7 @@ static int __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - (void)(TA_HT_DCPERIOD_Close(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MACD_Close(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -268541,7 +336807,7 @@ static int __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17814, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -268553,7 +336819,7 @@ static int __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(struct __pyx_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -268566,22 +336832,24 @@ static int __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(struct __pyx_ + + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill, "HT_DCPERIOD_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MACD_Stream_4open_and_fill, "MACD_Stream.open_and_fill(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11MACD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MACD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -268589,11 +336857,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -268609,66 +336880,113 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17816, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23358, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23358, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23358, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23358, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17816, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23358, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17816, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23358, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 17816, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 23358, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17816, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23358, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23358, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23358, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23358, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23359, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23359, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23359, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17816, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 23358, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(PyObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_HT_DCPERIOD_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_stream = 0; + TA_MACD_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -268685,41 +337003,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(Py PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17818, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17819, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17819, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23361, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17820, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23362, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17821, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23363, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17822, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23364, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_DCPERIOD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17828, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17830, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23374, __pyx_L1_error) /*try:*/ { @@ -268729,7 +337049,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPERIOD_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); } /*finally:*/ { @@ -268742,9 +337062,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17834, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23378, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23379, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23380, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -268753,7 +337083,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HT_DCPERIOD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MACD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -268857,37 +337187,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17845, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17846, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17846, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17846, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23392, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17846, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23392, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 23392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23392, __pyx_L1_error); + __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 23392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17846, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 17846, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 23392, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 23392, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 23392, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_15 = 0; + __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 23392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23392, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 23392, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_15; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_15 = 0; goto __pyx_L0; @@ -268895,7 +337252,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(Py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -268904,7 +337263,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(Py - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); @@ -268917,15 +337278,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update, "HT_DCPERIOD_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MACD_Stream_6update, "MACD_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -268955,43 +337316,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17848, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23394, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17848, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23394, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17848, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23394, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17848, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 23394, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17848, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23394, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17849, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23395, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17848, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23394, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -269002,14 +337363,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -269026,7 +337392,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_DCPERIOD_Update(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MACD_Update(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); } /*finally:*/ { @@ -269054,34 +337420,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17856, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17857, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 23405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 23405, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 23405, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 23405, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -269089,15 +337475,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek, "HT_DCPERIOD_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MACD_Stream_8peek, "MACD_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -269127,43 +337513,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17859, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23407, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17859, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23407, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17859, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 23407, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17859, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 23407, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17859, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23407, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17860, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23408, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17859, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23407, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -269174,14 +337560,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -269198,7 +337589,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_DCPERIOD_Peek(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MACD_Peek(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); } /*finally:*/ { @@ -269226,34 +337617,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17867, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17868, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 23418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 23418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 23418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 23418, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -269261,28 +337672,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -269299,7 +337715,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value___get__(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_DCPERIOD_Value(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MACD_Value(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); } /*finally:*/ { @@ -269327,46 +337743,66 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value___get__(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17878, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17879, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 23431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 23431, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 23431, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 23431, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MACD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_HT_DCPERIOD_OutRange(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MACD_OutRange(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -269377,12 +337813,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MACD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_HT_DCPERIOD_Advance(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MACD_Advance(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -269394,15 +337830,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__advance(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy, "HT_DCPERIOD_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MACD_Stream_10copy, "MACD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -269428,16 +337864,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self) { - TA_HT_DCPERIOD_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self) { + TA_MACD_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -269454,18 +337890,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(struct __p __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17890, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream))))) __PYX_ERR(3, 17890, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream))))) __PYX_ERR(3, 23442, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -269479,7 +337915,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_HT_DCPERIOD_Clone(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MACD_Clone(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -269522,7 +337958,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(struct __p if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17900, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -269544,7 +337980,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(struct __p __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -269557,19 +337993,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(struct __p /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -269583,7 +338019,7 @@ static void __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream___dealloc__(struct __py if (__pyx_t_1) { - (void)(TA_HT_DCPHASE_Close(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MACDEXT_Close(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -269609,14 +338045,14 @@ static void __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream___dealloc__(struct __py /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -269624,11 +338060,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_fastmatype; + int __pyx_v_slowperiod; + int __pyx_v_slowmatype; + int __pyx_v_signalperiod; + int __pyx_v_signalmatype; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -269644,62 +338086,151 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17922, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23483, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 23483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 23483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 23483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23483, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17922, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23483, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17922, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23483, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 17922, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 7, i); __PYX_ERR(3, 23483, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17922, __pyx_L3_error) + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 23483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 23483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 23483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23483, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23483, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23483, __pyx_L3_error) + } else { + __pyx_v_fastmatype = ((int)0); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23483, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23483, __pyx_L3_error) + } else { + __pyx_v_slowmatype = ((int)0); + } + if (values[5]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23483, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23483, __pyx_L3_error) + } else { + __pyx_v_signalmatype = ((int)0); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17922, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 7, __pyx_nargs); __PYX_ERR(3, 23483, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, PyObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_HT_DCPHASE_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_MACDEXT_Stream *__pyx_v_handle; + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -269714,31 +338245,31 @@ static int __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17923, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17924, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17924, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23485, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17925, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23486, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17926, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23487, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17927, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23488, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17932, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23495, __pyx_L1_error) /*try:*/ { @@ -269748,9 +338279,9 @@ static int __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(struct __pyx_o __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_HT_DCPHASE_Lookback() + 1); + __pyx_v_need = (TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype) + 1); - __pyx_v_retCode = TA_HT_DCPHASE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MACDEXT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -269767,7 +338298,7 @@ static int __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - (void)(TA_HT_DCPHASE_Close(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MACDEXT_Close(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -269835,7 +338366,7 @@ static int __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17949, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -269847,7 +338378,7 @@ static int __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(struct __pyx_o goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -269860,22 +338391,24 @@ static int __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(struct __pyx_o + + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill, "HT_DCPHASE_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill, "MACDEXT_Stream.open_and_fill(real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -269883,11 +338416,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_fastmatype; + int __pyx_v_slowperiod; + int __pyx_v_slowmatype; + int __pyx_v_signalperiod; + int __pyx_v_signalmatype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -269903,66 +338442,155 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17951, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23514, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 23514, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 23514, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 23514, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23514, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23514, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23514, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23514, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17951, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23514, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 17951, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 7, i); __PYX_ERR(3, 23514, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17951, __pyx_L3_error) + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 23514, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 23514, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 23514, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23514, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23514, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23514, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23514, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23515, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23515, __pyx_L3_error) + } else { + __pyx_v_fastmatype = ((int)0); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23515, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23515, __pyx_L3_error) + } else { + __pyx_v_slowmatype = ((int)0); + } + if (values[5]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23515, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23515, __pyx_L3_error) + } else { + __pyx_v_signalmatype = ((int)0); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17951, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 7, __pyx_nargs); __PYX_ERR(3, 23514, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_HT_DCPHASE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_stream = 0; + TA_MACDEXT_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -269979,41 +338607,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyO PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17953, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17954, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17954, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23517, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17955, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23518, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17956, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23519, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17957, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23520, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_DCPHASE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17963, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACDEXT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 17965, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23530, __pyx_L1_error) /*try:*/ { @@ -270023,7 +338653,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPHASE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype)); } /*finally:*/ { @@ -270036,9 +338666,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyO } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17969, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23534, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23535, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23536, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -270047,7 +338687,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HT_DCPHASE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MACDEXT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -270151,37 +338791,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17980, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17981, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17981, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 17981, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23548, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17981, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23548, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 23548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23548, __pyx_L1_error); + __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 23548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17981, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 17981, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 23548, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 23548, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 23548, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_15 = 0; + __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 23548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23548, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 23548, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_15; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_15 = 0; goto __pyx_L0; @@ -270189,7 +338856,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyO __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -270198,7 +338867,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyO - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); @@ -270211,15 +338882,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update, "HT_DCPHASE_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_6update, "MACDEXT_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -270249,43 +338920,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17983, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23550, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17983, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23550, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17983, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23550, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17983, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 23550, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17983, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23550, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17984, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23551, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17983, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23550, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -270296,14 +338967,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -270320,7 +338996,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_DCPHASE_Update(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MACDEXT_Update(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); } /*finally:*/ { @@ -270348,34 +339024,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17991, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17992, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 23561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 23561, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 23561, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 23561, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -270383,15 +339079,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek, "HT_DCPHASE_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_8peek, "MACDEXT_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -270421,43 +339117,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17994, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23563, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23563, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17994, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 23563, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17994, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 23563, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23563, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17995, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23564, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17994, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23563, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -270468,14 +339164,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -270492,7 +339193,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_DCPHASE_Peek(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MACDEXT_Peek(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); } /*finally:*/ { @@ -270520,34 +339221,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18002, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18003, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 23574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 23574, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 23574, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 23574, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -270555,28 +339276,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -270593,7 +339319,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value___get__(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_DCPHASE_Value(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MACDEXT_Value(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); } /*finally:*/ { @@ -270621,46 +339347,66 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value___get__(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18013, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18014, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 23587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 23587, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 23587, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 23587, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_HT_DCPHASE_OutRange(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MACDEXT_OutRange(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -270671,12 +339417,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_HT_DCPHASE_Advance(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MACDEXT_Advance(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -270688,15 +339434,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__advance(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy, "HT_DCPHASE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_10copy, "MACDEXT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -270722,16 +339468,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self) { - TA_HT_DCPHASE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self) { + TA_MACDEXT_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -270748,18 +339494,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(struct __py __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18025, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream))))) __PYX_ERR(3, 18025, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream))))) __PYX_ERR(3, 23598, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -270773,7 +339519,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_HT_DCPHASE_Clone(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MACDEXT_Clone(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -270816,7 +339562,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(struct __py if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18035, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -270838,7 +339584,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(struct __py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -270851,19 +339597,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(struct __py /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -270877,7 +339623,7 @@ static void __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream___dealloc__(struct __pyx if (__pyx_t_1) { - (void)(TA_HT_PHASOR_Close(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MACDFIX_Close(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -270903,14 +339649,14 @@ static void __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream___dealloc__(struct __pyx /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -270918,11 +339664,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -270938,63 +339685,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18058, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23634, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23634, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18058, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23634, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18058, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23634, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 18058, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 23634, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18058, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23634, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23634, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23634, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18058, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 23634, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, PyObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_signalperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_HT_PHASOR_Stream *__pyx_v_handle; - double __pyx_v_outinphase; - double __pyx_v_outquadrature; + TA_MACDFIX_Stream *__pyx_v_handle; + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -271009,31 +339774,31 @@ static int __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18059, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18060, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18060, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23636, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18061, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23637, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18062, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23638, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18063, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23639, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18069, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23646, __pyx_L1_error) /*try:*/ { @@ -271043,9 +339808,9 @@ static int __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(struct __pyx_ob __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_HT_PHASOR_Lookback() + 1); + __pyx_v_need = (TA_MACDFIX_Lookback(__pyx_v_signalperiod) + 1); - __pyx_v_retCode = TA_HT_PHASOR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); + __pyx_v_retCode = TA_MACDFIX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_signalperiod, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -271062,7 +339827,7 @@ static int __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - (void)(TA_HT_PHASOR_Close(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MACDFIX_Close(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -271130,7 +339895,7 @@ static int __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18086, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -271142,7 +339907,7 @@ static int __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(struct __pyx_ob goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -271156,22 +339921,23 @@ static int __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(struct __pyx_ob + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill, "HT_PHASOR_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill, "MACDFIX_Stream.open_and_fill(real, int signalperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -271179,11 +339945,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -271199,67 +339966,85 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18088, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23665, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23665, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18088, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18088, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23665, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 18088, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 23665, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18088, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23665, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23665, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23666, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18088, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 23665, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_signalperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinphase = 0; - PyArrayObject *__pyx_v_outquadrature = 0; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_HT_PHASOR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_stream = 0; + TA_MACDFIX_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -271277,41 +340062,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyOb PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18090, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18091, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18091, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23668, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18092, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23669, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18093, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23670, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18094, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23671, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_PHASOR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18101, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACDFIX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18103, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23681, __pyx_L1_error) /*try:*/ { @@ -271321,7 +340107,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_PHASOR_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MACDFIX_Lookback(__pyx_v_signalperiod)); } /*finally:*/ { @@ -271334,14 +340120,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyOb } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18107, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23685, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18108, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23686, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23687, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -271350,7 +340141,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HT_PHASOR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinphase)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outquadrature)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MACDFIX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -271454,53 +340245,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18119, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18120, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18120, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinphase)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18120, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23699, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18120, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18120, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outquadrature)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 18120, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23699, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 23699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18120, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23699, __pyx_L1_error); + __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 23699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 18120, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 23699, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 18120, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 23699, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 23699, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 18120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); + __pyx_t_15 = 0; + __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 23699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18120, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23699, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 18120, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 23699, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_14; + __pyx_r = __pyx_t_15; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_14 = 0; + __pyx_t_15 = 0; goto __pyx_L0; @@ -271509,7 +340311,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyOb __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -271518,8 +340321,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyOb - __Pyx_XDECREF((PyObject *)__pyx_v_outinphase); - __Pyx_XDECREF((PyObject *)__pyx_v_outquadrature); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); @@ -271532,15 +340336,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_6update, "HT_PHASOR_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_6update, "MACDFIX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -271570,43 +340374,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18122, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23701, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23701, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18122, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23701, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18122, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 23701, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23701, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18123, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23702, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18122, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23701, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -271617,9 +340421,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outinphase; - double __pyx_v_outquadrature; +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -271628,6 +340433,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(struct __py PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -271644,7 +340450,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_PHASOR_Update(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); + __pyx_v_retCode = TA_MACDFIX_Update(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); } /*finally:*/ { @@ -271672,33 +340478,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18131, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18132, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18132, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18132, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 23712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 18132, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 23712, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 18132, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 23712, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 23712, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_6 = 0; goto __pyx_L0; @@ -271707,12 +340518,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(struct __py __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -271720,15 +340533,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek, "HT_PHASOR_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_8peek, "MACDFIX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -271758,43 +340571,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18134, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23714, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18134, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23714, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18134, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 23714, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18134, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 23714, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18134, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23714, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18135, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23715, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18134, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23714, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -271805,9 +340618,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outinphase; - double __pyx_v_outquadrature; +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -271816,6 +340630,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(struct __pyx_ PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -271832,7 +340647,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_PHASOR_Peek(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); + __pyx_v_retCode = TA_MACDFIX_Peek(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); } /*finally:*/ { @@ -271860,33 +340675,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18143, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18144, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18144, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18144, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 23725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 18144, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 23725, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 18144, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 23725, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 23725, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_6 = 0; goto __pyx_L0; @@ -271895,12 +340715,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(struct __pyx_ __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -271908,23 +340730,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self) { - double __pyx_v_outinphase; - double __pyx_v_outquadrature; +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -271933,6 +340756,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(stru PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -271949,7 +340773,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_PHASOR_Value(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); + __pyx_v_retCode = TA_MACDFIX_Value(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); } /*finally:*/ { @@ -271977,33 +340801,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18155, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18156, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18156, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18156, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 23738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 18156, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 23738, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 18156, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 23738, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 23738, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_6 = 0; goto __pyx_L0; @@ -272012,24 +340841,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(stru __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_HT_PHASOR_OutRange(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MACDFIX_OutRange(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -272040,12 +340871,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__out_range(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_HT_PHASOR_Advance(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MACDFIX_Advance(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -272057,15 +340888,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__advance(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy, "HT_PHASOR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_10copy, "MACDFIX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -272091,16 +340922,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self) { - TA_HT_PHASOR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self) { + TA_MACDFIX_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -272117,18 +340948,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(struct __pyx __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18167, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream))))) __PYX_ERR(3, 18167, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream))))) __PYX_ERR(3, 23749, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -272142,7 +340973,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_HT_PHASOR_Clone(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MACDFIX_Clone(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -272185,7 +341016,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(struct __pyx if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18177, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -272207,7 +341038,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(struct __pyx __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -272220,19 +341051,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(struct __pyx /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11MAMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11MAMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -272246,7 +341077,7 @@ static void __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream___dealloc__(struct __pyx_o if (__pyx_t_1) { - (void)(TA_HT_SINE_Close(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MAMA_Close(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -272272,14 +341103,14 @@ static void __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream___dealloc__(struct __pyx_o /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -272287,11 +341118,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + double __pyx_v_fastlimit; + double __pyx_v_slowlimit; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -272307,63 +341140,94 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18200, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23785, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23785, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23785, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18200, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23785, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18200, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23785, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 18200, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 23785, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18200, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23785, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23785, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23785, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23785, __pyx_L3_error) + } else { + __pyx_v_fastlimit = ((double)-4e37); + } + if (values[2]) { + __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23785, __pyx_L3_error) + } else { + __pyx_v_slowlimit = ((double)-4e37); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18200, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 23785, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, PyObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_HT_SINE_Stream *__pyx_v_handle; - double __pyx_v_outsine; - double __pyx_v_outleadsine; + TA_MAMA_Stream *__pyx_v_handle; + double __pyx_v_outmama; + double __pyx_v_outfama; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -272378,31 +341242,31 @@ static int __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18201, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18202, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18202, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23787, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18203, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23788, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18204, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23789, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18205, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23790, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18211, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23796, __pyx_L1_error) /*try:*/ { @@ -272412,9 +341276,9 @@ static int __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(struct __pyx_obj_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_HT_SINE_Lookback() + 1); + __pyx_v_need = (TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit) + 1); - __pyx_v_retCode = TA_HT_SINE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outsine), (&__pyx_v_outleadsine)); + __pyx_v_retCode = TA_MAMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outmama), (&__pyx_v_outfama)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -272431,7 +341295,7 @@ static int __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - (void)(TA_HT_SINE_Close(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MAMA_Close(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -272499,7 +341363,7 @@ static int __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18228, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -272511,7 +341375,7 @@ static int __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(struct __pyx_obj_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -272531,16 +341395,16 @@ static int __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill, "HT_SINE_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill, "MAMA_Stream.open_and_fill(real, double fastlimit=-4e37, double slowlimit=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -272548,11 +341412,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + double __pyx_v_fastlimit; + double __pyx_v_slowlimit; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -272568,67 +341434,98 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18230, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23815, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23815, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23815, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18230, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18230, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23815, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 18230, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 23815, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18230, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23815, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23815, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23815, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23816, __pyx_L3_error) + } else { + __pyx_v_fastlimit = ((double)-4e37); + } + if (values[2]) { + __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23816, __pyx_L3_error) + } else { + __pyx_v_slowlimit = ((double)-4e37); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18230, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 23815, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outsine = 0; - PyArrayObject *__pyx_v_outleadsine = 0; + PyArrayObject *__pyx_v_outmama = 0; + PyArrayObject *__pyx_v_outfama = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_HT_SINE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_stream = 0; + TA_MAMA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -272651,36 +341548,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18232, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18233, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18233, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23818, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18234, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23819, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18235, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23820, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18236, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23821, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_SINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18243, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18245, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23830, __pyx_L1_error) /*try:*/ { @@ -272690,7 +341587,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_SINE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit)); } /*finally:*/ { @@ -272703,14 +341600,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18249, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23834, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outsine = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmama = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18250, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23835, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outfama = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -272719,7 +341616,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HT_SINE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsine)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outleadsine)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MAMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmama)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfama)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -272823,43 +341720,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18261, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18262, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18262, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsine)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18262, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23847, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmama)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18262, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18262, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outleadsine)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 18262, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23847, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfama)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 23847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18262, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 18262, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 23847, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 18262, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 23847, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 18262, __pyx_L1_error) + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 23847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18262, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23847, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 18262, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 23847, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -272878,7 +341775,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObje __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -272887,8 +341784,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObje - __Pyx_XDECREF((PyObject *)__pyx_v_outsine); - __Pyx_XDECREF((PyObject *)__pyx_v_outleadsine); + __Pyx_XDECREF((PyObject *)__pyx_v_outmama); + __Pyx_XDECREF((PyObject *)__pyx_v_outfama); @@ -272901,15 +341798,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_6update, "HT_SINE_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAMA_Stream_6update, "MAMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -272939,43 +341836,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18264, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23849, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23849, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18264, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23849, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18264, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 23849, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23849, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18265, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23850, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18264, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23849, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -272986,9 +341883,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outsine; - double __pyx_v_outleadsine; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmama; + double __pyx_v_outfama; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -273013,7 +341910,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_SINE_Update(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outsine), (&__pyx_v_outleadsine)); + __pyx_v_retCode = TA_MAMA_Update(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmama), (&__pyx_v_outfama)); } /*finally:*/ { @@ -273041,22 +341938,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18273, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18274, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18274, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18274, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 18274, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 23859, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 18274, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 23859, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; { @@ -273076,7 +341973,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(struct __pyx_ __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -273089,15 +341986,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_8peek, "HT_SINE_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAMA_Stream_8peek, "MAMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -273127,43 +342024,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18276, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23861, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23861, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18276, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 23861, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18276, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 23861, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23861, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18277, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23862, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18276, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23861, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -273174,9 +342071,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outsine; - double __pyx_v_outleadsine; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmama; + double __pyx_v_outfama; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -273201,7 +342098,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_SINE_Peek(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outsine), (&__pyx_v_outleadsine)); + __pyx_v_retCode = TA_MAMA_Peek(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmama), (&__pyx_v_outfama)); } /*finally:*/ { @@ -273229,22 +342126,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18285, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18286, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18286, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18286, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 18286, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 23871, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 18286, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 23871, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; { @@ -273264,7 +342161,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(struct __pyx_ob __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -273277,23 +342174,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self) { - double __pyx_v_outsine; - double __pyx_v_outleadsine; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self) { + double __pyx_v_outmama; + double __pyx_v_outfama; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -273318,7 +342215,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_SINE_Value(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outsine), (&__pyx_v_outleadsine)); + __pyx_v_retCode = TA_MAMA_Value(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmama), (&__pyx_v_outfama)); } /*finally:*/ { @@ -273346,22 +342243,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18297, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18298, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18298, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18298, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 18298, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 23883, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 18298, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 23883, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; { @@ -273381,7 +342278,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(struct __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -273393,12 +342290,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_HT_SINE_OutRange(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MAMA_OutRange(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -273409,12 +342306,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__out_range(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_HT_SINE_Advance(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MAMA_Advance(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -273426,15 +342323,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__advance(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_10copy, "HT_SINE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAMA_Stream_10copy, "MAMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -273460,16 +342357,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self) { - TA_HT_SINE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self) { + TA_MAMA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -273486,18 +342383,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(struct __pyx_o __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18309, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream))))) __PYX_ERR(3, 18309, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream))))) __PYX_ERR(3, 23894, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -273511,7 +342408,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_HT_SINE_Clone(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MAMA_Clone(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -273554,7 +342451,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(struct __pyx_o if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18319, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -273576,7 +342473,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(struct __pyx_o __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -273589,19 +342486,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(struct __pyx_o /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -273615,7 +342512,7 @@ static void __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream___dealloc__(struct __ if (__pyx_t_1) { - (void)(TA_HT_TRENDLINE_Close(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MARKETFI_Close(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -273641,26 +342538,28 @@ static void __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream___dealloc__(struct __ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -273676,45 +342575,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18341, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23926, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23926, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23926, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18341, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23926, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18341, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 18341, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23926, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 23926, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18341, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23926, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23926, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23926, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_volume = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18341, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 23926, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -273724,13 +342637,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_HT_TRENDLINE_Stream *__pyx_v_handle; + TA_MARKETFI_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -273746,31 +342661,47 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18342, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18343, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18343, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23929, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 23930, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 23930, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 23930, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18344, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23931, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18345, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23932, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18346, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23933, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18351, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23938, __pyx_L1_error) /*try:*/ { @@ -273780,9 +342711,9 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(struct __pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_HT_TRENDLINE_Lookback() + 1); + __pyx_v_need = (TA_MARKETFI_Lookback() + 1); - __pyx_v_retCode = TA_HT_TRENDLINE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MARKETFI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -273799,7 +342730,7 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(struct __pyx if (__pyx_t_4) { - (void)(TA_HT_TRENDLINE_Close(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MARKETFI_Close(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -273867,7 +342798,7 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18368, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -273879,10 +342810,12 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(struct __pyx goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -273898,28 +342831,30 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill, "HT_TRENDLINE_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill, "MARKETFI_Stream.open_and_fill(high, low, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -273935,45 +342870,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18370, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23957, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23957, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23957, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23957, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18370, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 18370, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23957, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 23957, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23957, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23957, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23957, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_volume = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18370, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 23957, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -273983,8 +342932,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -273993,8 +342944,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(P PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_HT_TRENDLINE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_stream = 0; + TA_MARKETFI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -274016,36 +342967,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18372, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18373, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18373, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 23962, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 23962, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 23962, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18374, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23963, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18375, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23964, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18376, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23965, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_TRENDLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18382, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MARKETFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18384, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23973, __pyx_L1_error) /*try:*/ { @@ -274055,7 +343022,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDLINE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MARKETFI_Lookback()); } /*finally:*/ { @@ -274068,7 +343035,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(P } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18388, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23977, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -274079,7 +343046,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HT_TRENDLINE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MARKETFI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -274183,27 +343150,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18399, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18400, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18400, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18400, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 23989, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 23989, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_volume) != (0)) __PYX_ERR(3, 23989, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18400, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18400, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23989, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 18400, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 23989, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -274221,10 +343194,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(P __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -274243,27 +343218,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update, "HT_TRENDLINE_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_6update, "MARKETFI_Stream.update(self, double high, double low, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -274279,56 +343256,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18402, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23991, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23991, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23991, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23991, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18402, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18402, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23991, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 23991, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23991, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23991, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23991, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18403, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23992, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23992, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23992, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18402, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 23991, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -274352,7 +343345,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_TRENDLINE_Update(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MARKETFI_Update(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -274380,13 +343373,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18410, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18411, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -274403,7 +343396,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -274415,27 +343408,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek, "HT_TRENDLINE_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_8peek, "MARKETFI_Stream.peek(self, double high, double low, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -274451,56 +343446,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18413, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24002, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24002, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24002, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24002, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18413, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18413, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24002, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 24002, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24002, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24002, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24002, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18414, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24003, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24003, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24003, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18413, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 24002, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -274524,7 +343535,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_TRENDLINE_Peek(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MARKETFI_Peek(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -274552,13 +343563,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18421, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18422, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -274575,7 +343586,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -274587,21 +343598,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -274625,7 +343636,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value___get__(s __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_TRENDLINE_Value(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MARKETFI_Value(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -274653,13 +343664,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value___get__(s if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18432, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18433, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -274676,7 +343687,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value___get__(s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -274687,12 +343698,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value___get__(s } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_HT_TRENDLINE_OutRange(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MARKETFI_OutRange(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -274703,12 +343714,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__out_range(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_HT_TRENDLINE_Advance(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MARKETFI_Advance(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -274720,15 +343731,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__advance(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy, "HT_TRENDLINE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_10copy, "MARKETFI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -274754,16 +343765,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self) { - TA_HT_TRENDLINE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self) { + TA_MARKETFI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -274780,18 +343791,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(struct __ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18444, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream))))) __PYX_ERR(3, 18444, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream))))) __PYX_ERR(3, 24033, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -274805,7 +343816,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_HT_TRENDLINE_Clone(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MARKETFI_Clone(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -274848,7 +343859,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(struct __ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18454, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -274870,7 +343881,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(struct __ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -274883,19 +343894,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(struct __ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_12MASSI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_12MASSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -274909,7 +343920,7 @@ static void __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream___dealloc__(struct __ if (__pyx_t_1) { - (void)(TA_HT_TRENDMODE_Close(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MASSI_Close(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -274935,26 +343946,29 @@ static void __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream___dealloc__(struct __ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -274970,62 +343984,101 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18476, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24068, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24068, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24068, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24068, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18476, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24068, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18476, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 18476, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24068, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 24068, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18476, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24068, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24068, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24068, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24068, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24068, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24068, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); } - __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18476, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 24068, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_HT_TRENDMODE_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_MASSI_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -275040,31 +344093,39 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18477, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18478, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18478, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 24071, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 24071, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18479, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24072, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18480, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24073, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18481, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24074, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18486, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24079, __pyx_L1_error) /*try:*/ { @@ -275074,9 +344135,9 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(struct __pyx __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_HT_TRENDMODE_Lookback() + 1); + __pyx_v_need = (TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1); - __pyx_v_retCode = TA_HT_TRENDMODE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_MASSI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -275093,7 +344154,7 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(struct __pyx if (__pyx_t_4) { - (void)(TA_HT_TRENDMODE_Close(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MASSI_Close(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -275161,7 +344222,7 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18503, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -275173,10 +344234,11 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(struct __pyx goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -275192,28 +344254,31 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill, "HT_TRENDMODE_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill, "MASSI_Stream.open_and_fill(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -275229,66 +344294,105 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18505, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24098, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24098, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24098, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24098, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18505, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24098, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18505, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 18505, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24098, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 24098, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18505, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24098, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24098, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24098, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24098, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24099, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24099, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); } - __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18505, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 24098, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_HT_TRENDMODE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_stream = 0; + TA_MASSI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -275310,36 +344414,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18507, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18508, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18508, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 24102, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 24102, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18509, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24103, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18510, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24104, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18511, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24105, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_TRENDMODE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18517, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MASSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18519, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24113, __pyx_L1_error) /*try:*/ { @@ -275349,7 +344461,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDMODE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); } /*finally:*/ { @@ -275362,9 +344474,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(P } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18523, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24117, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -275373,7 +344485,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(P __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_HT_TRENDMODE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MASSI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -275477,27 +344589,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18534, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MASSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18535, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18535, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18535, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 24129, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 24129, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 24129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18535, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18535, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24129, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 18535, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 24129, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -275515,16 +344630,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(P __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -275537,27 +344653,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update, "HT_TRENDMODE_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12MASSI_Stream_6update, "MASSI_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -275573,57 +344690,65 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18537, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24131, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24131, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18537, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18537, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24131, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 24131, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18537, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24131, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24131, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18538, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24132, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24132, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18537, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24131, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, double __pyx_v_real) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -275646,7 +344771,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_TRENDMODE_Update(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_MASSI_Update(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -275674,13 +344799,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18545, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18546, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -275697,7 +344822,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -275709,27 +344834,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek, "HT_TRENDMODE_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12MASSI_Stream_8peek, "MASSI_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -275745,57 +344871,65 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18548, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24142, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24142, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18548, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24142, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18548, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18548, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24142, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 24142, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18548, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24142, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24142, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18549, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24143, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24143, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18548, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24142, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, double __pyx_v_real) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -275818,7 +344952,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_TRENDMODE_Peek(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_MASSI_Peek(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -275846,13 +344980,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18556, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18557, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -275869,7 +345003,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -275881,22 +345015,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -275919,7 +345053,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value___get__(s __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_HT_TRENDMODE_Value(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_MASSI_Value(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -275947,13 +345081,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value___get__(s if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18567, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18568, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -275970,7 +345104,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value___get__(s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -275981,12 +345115,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value___get__(s } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12MASSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_HT_TRENDMODE_OutRange(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MASSI_OutRange(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -275997,12 +345131,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__out_range(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12MASSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_HT_TRENDMODE_Advance(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MASSI_Advance(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -276014,15 +345148,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__advance(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy, "HT_TRENDMODE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12MASSI_Stream_10copy, "MASSI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -276048,16 +345182,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self) { - TA_HT_TRENDMODE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self) { + TA_MASSI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -276074,18 +345208,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(struct __ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18579, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream))))) __PYX_ERR(3, 18579, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream))))) __PYX_ERR(3, 24173, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -276099,7 +345233,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_HT_TRENDMODE_Clone(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MASSI_Clone(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -276142,7 +345276,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(struct __ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18589, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -276164,7 +345298,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(struct __ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -276177,19 +345311,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(struct __ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10IMI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10IMI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10IMI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11MAVP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10IMI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11MAVP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -276203,7 +345337,7 @@ static void __pyx_pf_5talib_7_ta_lib_10IMI_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_IMI_Close(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MAVP_Close(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -276229,28 +345363,30 @@ static void __pyx_pf_5talib_7_ta_lib_10IMI_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10IMI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10IMI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_periods = 0; + int __pyx_v_minperiod; + int __pyx_v_maxperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -276266,86 +345402,114 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18613, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24210, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 24210, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24210, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24210, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24210, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24210, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18613, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24210, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 18613, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, i); __PYX_ERR(3, 24210, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 24210, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24210, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24210, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24210, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24210, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_open = values[0]; - __pyx_v_close = values[1]; + __pyx_v_real = values[0]; + __pyx_v_periods = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18613, __pyx_L3_error) + __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24210, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_minperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24210, __pyx_L3_error) + } else { + __pyx_v_maxperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24210, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 18613, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 24210, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, PyObject *__pyx_v_real, PyObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyArrayObject *__pyx_v_a_periods = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_IMI_Stream *__pyx_v_handle; + TA_MAVP_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -276361,39 +345525,39 @@ static int __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18614, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18615, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_periods = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18616, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 18616, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18616, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24213, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_periods); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_periods); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_periods)) != (0)) __PYX_ERR(3, 24213, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18617, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24214, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18618, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24215, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18619, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24216, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18624, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24221, __pyx_L1_error) /*try:*/ { @@ -276403,9 +345567,9 @@ static int __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_IMI_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype) + 1); - __pyx_v_retCode = TA_IMI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MAVP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_periods)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -276422,7 +345586,7 @@ static int __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_IMI_Close(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MAVP_Close(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -276490,7 +345654,7 @@ static int __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_IMI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18641, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -276502,11 +345666,11 @@ static int __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_periods); __Pyx_XDECREF(__pyx_v_arrays); @@ -276522,30 +345686,32 @@ static int __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IMI_Stream_4open_and_fill, "IMI_Stream.open_and_fill(open, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10IMI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10IMI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill, "MAVP_Stream.open_and_fill(real, periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_open = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_periods = 0; + int __pyx_v_minperiod; + int __pyx_v_maxperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -276561,81 +345727,109 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18643, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24240, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 24240, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24240, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24240, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24240, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24240, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18643, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24240, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 18643, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, i); __PYX_ERR(3, 24240, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 24240, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24240, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24240, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24240, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24240, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_open = values[0]; - __pyx_v_close = values[1]; + __pyx_v_real = values[0]; + __pyx_v_periods = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18644, __pyx_L3_error) + __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24241, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_minperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24241, __pyx_L3_error) + } else { + __pyx_v_maxperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24241, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 18643, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 24240, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(__pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_open = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject *__pyx_v_real, PyObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyArrayObject *__pyx_v_a_periods = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -276644,8 +345838,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_IMI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_stream = 0; + TA_MAVP_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -276667,44 +345861,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18645, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18646, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_periods = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18647, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_open); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 18647, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18647, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24244, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_periods); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_periods); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_periods)) != (0)) __PYX_ERR(3, 24244, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18648, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24245, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18649, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24246, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18650, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24247, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_IMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18656, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAVP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18658, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24255, __pyx_L1_error) /*try:*/ { @@ -276714,7 +345908,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_IMI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype)); } /*finally:*/ { @@ -276727,7 +345921,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18662, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24259, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -276738,7 +345932,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_IMI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MAVP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_periods)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -276842,30 +346036,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_IMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18673, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAVP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18674, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_open); - __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 18674, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_close) != (0)) __PYX_ERR(3, 18674, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18674, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 24271, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_periods); + __Pyx_GIVEREF(__pyx_v_periods); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_periods) != (0)) __PYX_ERR(3, 24271, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 24271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18674, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18674, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24271, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 18674, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 24271, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -276883,11 +346077,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_open); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_periods); __Pyx_XDECREF(__pyx_v_arrays); @@ -276906,23 +346100,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IMI_Stream_6update, "IMI_Stream.update(self, double open, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAVP_Stream_6update, "MAVP_Stream.update(self, double real, double periods)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_close; + double __pyx_v_real; + double __pyx_v_periods; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -276943,52 +346137,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18676, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24273, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24273, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24273, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18676, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24273, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 18676, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 24273, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24273, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24273, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18677, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18677, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24274, __pyx_L3_error) + __pyx_v_periods = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_periods == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24274, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18676, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24273, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_periods); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -277000,7 +346194,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_periods) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -277024,7 +346218,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_IMI_Update(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MAVP_Update(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_periods, (&__pyx_v_outreal)); } /*finally:*/ { @@ -277052,13 +346246,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18684, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18685, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -277075,7 +346269,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -277087,23 +346281,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IMI_Stream_8peek, "IMI_Stream.peek(self, double open, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAVP_Stream_8peek, "MAVP_Stream.peek(self, double real, double periods)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_open; - double __pyx_v_close; + double __pyx_v_real; + double __pyx_v_periods; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -277124,52 +346318,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18687, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24284, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18687, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24284, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 18687, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 24284, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24284, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24284, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18688, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18688, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24285, __pyx_L3_error) + __pyx_v_periods = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_periods == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24285, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18687, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24284, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_periods); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -277181,7 +346375,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_periods) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -277205,7 +346399,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_IMI_Peek(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MAVP_Peek(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_periods, (&__pyx_v_outreal)); } /*finally:*/ { @@ -277233,13 +346427,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18695, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18696, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -277256,7 +346450,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -277268,21 +346462,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -277306,7 +346500,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_IMI_Value(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MAVP_Value(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -277334,13 +346528,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18706, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18707, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -277357,7 +346551,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -277368,12 +346562,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10IMI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAVP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_IMI_OutRange(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MAVP_OutRange(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -277384,12 +346578,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10IMI_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10IMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAVP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_IMI_Advance(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MAVP_Advance(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -277401,15 +346595,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10IMI_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IMI_Stream_10copy, "IMI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAVP_Stream_10copy, "MAVP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -277435,16 +346629,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self) { - TA_IMI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self) { + TA_MAVP_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -277461,18 +346655,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18718, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream))))) __PYX_ERR(3, 18718, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream))))) __PYX_ERR(3, 24315, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -277486,7 +346680,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_IMI_Clone(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MAVP_Clone(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -277529,7 +346723,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18728, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -277551,7 +346745,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -277564,19 +346758,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10MAX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10MAX_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11KAMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10MAX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11KAMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10MAX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -277590,7 +346784,7 @@ static void __pyx_pf_5talib_7_ta_lib_11KAMA_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_KAMA_Close(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MAX_Close(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -277616,14 +346810,14 @@ static void __pyx_pf_5talib_7_ta_lib_11KAMA_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10MAX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10MAX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -277654,59 +346848,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18752, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24349, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18752, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24349, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18752, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24349, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18752, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24349, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18752, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 24349, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18752, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24349, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18752, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24349, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18752, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24349, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18752, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 24349, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -277717,13 +346911,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_KAMA_Stream *__pyx_v_handle; + TA_MAX_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -277739,31 +346933,31 @@ static int __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18753, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18754, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18754, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24351, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18755, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24352, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18756, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24353, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18757, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24354, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18762, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24359, __pyx_L1_error) /*try:*/ { @@ -277773,9 +346967,9 @@ static int __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_KAMA_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_MAX_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_KAMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MAX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -277792,7 +346986,7 @@ static int __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_KAMA_Close(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MAX_Close(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -277860,7 +347054,7 @@ static int __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18779, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -277872,7 +347066,7 @@ static int __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -277891,16 +347085,16 @@ static int __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill, "KAMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MAX_Stream_4open_and_fill, "MAX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10MAX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MAX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -277931,59 +347125,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18781, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24378, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18781, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24378, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18781, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24378, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18781, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24378, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18781, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 24378, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18781, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24378, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18781, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24378, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18782, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24379, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18781, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 24378, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -277994,7 +347188,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -278004,8 +347198,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_KAMA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_stream = 0; + TA_MAX_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -278027,36 +347221,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18783, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18784, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18784, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24381, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18785, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24382, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18786, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24383, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18787, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24384, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KAMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18793, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18795, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24392, __pyx_L1_error) /*try:*/ { @@ -278066,7 +347260,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_KAMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MAX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -278079,7 +347273,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18799, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24396, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -278090,7 +347284,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_KAMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MAX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -278194,27 +347388,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KAMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18810, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18811, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18811, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18811, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 24408, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 24408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18811, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24408, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 18811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 24408, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -278232,7 +347426,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -278254,15 +347448,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11KAMA_Stream_6update, "KAMA_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MAX_Stream_6update, "MAX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -278292,43 +347486,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18813, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24410, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24410, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18813, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24410, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18813, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 24410, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24410, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18814, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24411, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18813, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24410, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -278339,7 +347533,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -278363,7 +347557,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_KAMA_Update(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MAX_Update(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -278391,13 +347585,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18821, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18822, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -278414,7 +347608,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -278426,15 +347620,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11KAMA_Stream_8peek, "KAMA_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MAX_Stream_8peek, "MAX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -278464,43 +347658,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18824, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24421, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18824, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18824, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24421, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18824, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 24421, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18824, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24421, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18825, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24422, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18824, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24421, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -278511,7 +347705,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -278535,7 +347729,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_KAMA_Peek(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MAX_Peek(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -278563,13 +347757,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18832, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18833, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -278586,7 +347780,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -278598,21 +347792,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -278636,7 +347830,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_KAMA_Value(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MAX_Value(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -278664,13 +347858,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18843, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18844, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -278687,7 +347881,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -278698,12 +347892,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11KAMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MAX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_KAMA_OutRange(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MAX_OutRange(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -278714,12 +347908,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11KAMA_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11KAMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MAX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_KAMA_Advance(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MAX_Advance(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -278731,15 +347925,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11KAMA_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11KAMA_Stream_10copy, "KAMA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MAX_Stream_10copy, "MAX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -278765,16 +347959,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self) { - TA_KAMA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self) { + TA_MAX_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -278791,18 +347985,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18855, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream))))) __PYX_ERR(3, 18855, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream))))) __PYX_ERR(3, 24452, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -278816,7 +348010,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_KAMA_Clone(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MAX_Clone(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -278859,7 +348053,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18865, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -278881,7 +348075,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -278894,19 +348088,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_9KC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_9KC_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_9KC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_9KC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -278920,7 +348114,7 @@ static void __pyx_pf_5talib_7_ta_lib_9KC_Stream___dealloc__(struct __pyx_obj_5ta if (__pyx_t_1) { - (void)(TA_KC_Close(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MAXINDEX_Close(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -278946,31 +348140,27 @@ static void __pyx_pf_5talib_7_ta_lib_9KC_Stream___dealloc__(struct __pyx_obj_5ta /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_9KC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_9KC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - int __pyx_v_atrperiod; - double __pyx_v_nbdev; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -278986,125 +348176,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18893, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24486, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 18893, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 18893, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18893, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18893, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18893, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18893, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18893, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 18893, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24486, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 24486, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 18893, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 18893, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18893, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18893, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18893, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18893, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24486, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18893, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24486, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } - if (values[4]) { - __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18893, __pyx_L3_error) - } else { - __pyx_v_atrperiod = ((int)-2147483648); - } - if (values[5]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18893, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)-4e37); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 18893, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 24486, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_KC_Stream *__pyx_v_handle; - double __pyx_v_outupperband; - double __pyx_v_outmiddleband; - double __pyx_v_outlowerband; + TA_MAXINDEX_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -279119,47 +348263,31 @@ static int __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18894, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18895, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18896, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18897, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 18897, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 18897, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18897, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24488, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18898, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24489, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18899, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24490, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18900, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24491, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18907, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24496, __pyx_L1_error) /*try:*/ { @@ -279169,9 +348297,9 @@ static int __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(struct __pyx_obj_5talib __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev) + 1); + __pyx_v_need = (TA_MAXINDEX_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_KC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_MAXINDEX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -279188,7 +348316,7 @@ static int __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - (void)(TA_KC_Close(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MAXINDEX_Close(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -279256,7 +348384,7 @@ static int __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18924, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -279268,12 +348396,10 @@ static int __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(struct __pyx_obj_5talib goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.KC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -279283,41 +348409,35 @@ static int __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(struct __pyx_obj_5talib - - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9KC_Stream_4open_and_fill, "KC_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000, int atrperiod=-0x80000000, double nbdev=-4e37)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9KC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9KC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9KC_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill, "MAXINDEX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - int __pyx_v_atrperiod; - double __pyx_v_nbdev; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -279333,130 +348453,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18926, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24515, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 18926, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 18926, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18926, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18926, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18926, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 18926, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24515, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 24515, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 18926, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 18926, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18926, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18926, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24515, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24515, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18927, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24516, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } - if (values[4]) { - __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18927, __pyx_L3_error) - } else { - __pyx_v_atrperiod = ((int)-2147483648); - } - if (values[5]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18927, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)-4e37); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 18926, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 24515, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outupperband = 0; - PyArrayObject *__pyx_v_outmiddleband = 0; - PyArrayObject *__pyx_v_outlowerband = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_KC_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_stream = 0; + TA_MAXINDEX_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; + npy_intp __pyx_v_i; + int *__pyx_v_outinteger_data; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -279471,60 +348547,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__ PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; + npy_intp __pyx_t_13; + npy_intp __pyx_t_14; + npy_intp __pyx_t_15; + PyObject *__pyx_t_16 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18928, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18929, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18930, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18931, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 18931, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 18931, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18931, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24518, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18932, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24519, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18933, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24520, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18934, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24521, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18942, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAXINDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 18944, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24529, __pyx_L1_error) /*try:*/ { @@ -279534,7 +348595,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MAXINDEX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -279547,19 +348608,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18948, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18949, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18950, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24533, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -279568,7 +348619,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_KC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowerband)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MAXINDEX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -279672,110 +348723,76 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18961, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 18962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 18962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18962, __pyx_L1_error) + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); + + + __pyx_t_2 = __pyx_v_length; + __pyx_t_13 = __pyx_t_2; + + for (__pyx_t_14 = __pyx_v_lookback; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { + __pyx_v_i = __pyx_t_14; + + + __pyx_t_15 = __pyx_v_i; + (__pyx_v_outinteger_data[__pyx_t_15]) = ((__pyx_v_outinteger_data[__pyx_t_15]) + __pyx_v_begidx); + } + + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 18962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 24549, __pyx_L1_error); + __pyx_t_16 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 24549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18962, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_15 = 0; - __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 18962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 18962, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24549, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_16); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_16) != (0)) __PYX_ERR(3, 24549, __pyx_L1_error); + __pyx_t_16 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_15; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_15 = 0; + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_AddTraceback("talib._ta_lib.KC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outupperband); - __Pyx_XDECREF((PyObject *)__pyx_v_outmiddleband); - __Pyx_XDECREF((PyObject *)__pyx_v_outlowerband); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -279783,29 +348800,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9KC_Stream_6update, "KC_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_6update, "MAXINDEX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -279821,84 +348836,65 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18964, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24551, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18964, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18964, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18964, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24551, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18964, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 18964, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24551, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 24551, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18964, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18964, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18964, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24551, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18965, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18965, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18965, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24552, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 18964, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24551, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outupperband; - double __pyx_v_outmiddleband; - double __pyx_v_outlowerband; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; + int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -279915,7 +348911,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_6update(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_KC_Update(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_MAXINDEX_Update(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); + + __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_begidx = __pyx_t_2; } /*finally:*/ { @@ -279938,59 +348938,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_6update(struct __pyx_obj_5t } } - __pyx_t_2 = (__pyx_v_retCode != 0); + __pyx_t_3 = (__pyx_v_retCode != 0); - if (__pyx_t_2) { + if (__pyx_t_3) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18974, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18975, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18975, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18975, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 18975, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 18975, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 18975, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 18975, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.KC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -279998,29 +348979,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_6update(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9KC_Stream_8peek, "KC_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_8peek, "MAXINDEX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -280036,84 +349015,65 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18977, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24564, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18977, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18977, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24564, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18977, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 18977, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24564, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 24564, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18977, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18977, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24564, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18978, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18978, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18978, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24565, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 18977, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24564, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outupperband; - double __pyx_v_outmiddleband; - double __pyx_v_outlowerband; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; + int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -280130,7 +349090,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_8peek(struct __pyx_obj_5tal __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_KC_Peek(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_MAXINDEX_Peek(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); + + __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_begidx = __pyx_t_2; } /*finally:*/ { @@ -280153,59 +349117,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_8peek(struct __pyx_obj_5tal } } - __pyx_t_2 = (__pyx_v_retCode != 0); + __pyx_t_3 = (__pyx_v_retCode != 0); - if (__pyx_t_2) { + if (__pyx_t_3) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18987, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18988, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18988, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18988, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 18988, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 18988, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 18988, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 18988, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.KC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -280213,33 +349158,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_8peek(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self) { - double __pyx_v_outupperband; - double __pyx_v_outmiddleband; - double __pyx_v_outlowerband; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; + int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -280256,7 +349198,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_5value___get__(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_KC_Value(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + __pyx_v_retCode = TA_MAXINDEX_Value(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_begidx = __pyx_t_2; } /*finally:*/ { @@ -280279,71 +349225,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_5value___get__(struct __pyx } } - __pyx_t_2 = (__pyx_v_retCode != 0); + __pyx_t_3 = (__pyx_v_retCode != 0); - if (__pyx_t_2) { + if (__pyx_t_3) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19001, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19001, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19001, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19001, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 19001, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 19001, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 19001, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.KC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9KC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_KC_OutRange(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MAXINDEX_OutRange(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -280354,12 +349281,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9KC_Stream__out_range(struct __pyx_obj } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9KC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_KC_Advance(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MAXINDEX_Advance(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -280371,15 +349298,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9KC_Stream__advance(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9KC_Stream_10copy, "KC_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_10copy, "MAXINDEX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -280405,16 +349332,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self) { - TA_KC_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self) { + TA_MAXINDEX_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -280431,18 +349358,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(struct __pyx_obj_5ta __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19012, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream))))) __PYX_ERR(3, 19012, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream))))) __PYX_ERR(3, 24599, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -280456,7 +349383,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(struct __pyx_obj_5ta __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_KC_Clone(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MAXINDEX_Clone(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -280499,7 +349426,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19022, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -280521,7 +349448,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(struct __pyx_obj_5ta __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.KC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -280534,19 +349461,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(struct __pyx_obj_5ta /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11MCGD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11MCGD_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10KDJ_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11MCGD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10KDJ_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11MCGD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -280560,7 +349487,7 @@ static void __pyx_pf_5talib_7_ta_lib_10KDJ_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_KDJ_Close(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MCGD_Close(((TA_MCGD_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -280586,33 +349513,27 @@ static void __pyx_pf_5talib_7_ta_lib_10KDJ_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11MCGD_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11MCGD_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_slowk_period; - int __pyx_v_slowk_matype; - int __pyx_v_slowd_period; - int __pyx_v_slowd_matype; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[8] = {0,0,0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -280628,153 +349549,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19052, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24633, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19052, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19052, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19052, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19052, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19052, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19052, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24633, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24633, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19052, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, i); __PYX_ERR(3, 19052, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24633, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 24633, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19052, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19052, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19052, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19052, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19052, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19052, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24633, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24633, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19052, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19052, __pyx_L3_error) - } else { - __pyx_v_slowk_period = ((int)-2147483648); - } - if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19052, __pyx_L3_error) - } else { - __pyx_v_slowk_matype = ((int)13); - } - if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19052, __pyx_L3_error) - } else { - __pyx_v_slowd_period = ((int)-2147483648); - } - if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19052, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24633, __pyx_L3_error) } else { - __pyx_v_slowd_matype = ((int)13); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 19052, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 24633, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MCGD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MCGD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_11MCGD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_KDJ_Stream *__pyx_v_handle; - double __pyx_v_outk; - double __pyx_v_outd; - double __pyx_v_outj; + TA_MCGD_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -280789,47 +349636,31 @@ static int __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19053, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19054, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19055, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19056, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19056, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19056, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19056, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24635, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19057, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24636, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19058, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24637, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19059, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24638, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19066, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24643, __pyx_L1_error) /*try:*/ { @@ -280839,9 +349670,9 @@ static int __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype) + 1); + __pyx_v_need = (TA_MCGD_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_KDJ_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outk), (&__pyx_v_outd), (&__pyx_v_outj)); + __pyx_v_retCode = TA_MCGD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -280858,7 +349689,7 @@ static int __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_KDJ_Close(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MCGD_Close(((TA_MCGD_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -280926,7 +349757,7 @@ static int __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19083, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MCGD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -280938,12 +349769,10 @@ static int __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MCGD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -280953,43 +349782,35 @@ static int __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(struct __pyx_obj_5tal - - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill, "KDJ_Stream.open_and_fill(high, low, close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=13, int slowd_period=-0x80000000, int slowd_matype=13)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MCGD_Stream_4open_and_fill, "MCGD_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11MCGD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MCGD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_slowk_period; - int __pyx_v_slowk_matype; - int __pyx_v_slowd_period; - int __pyx_v_slowd_matype; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[8] = {0,0,0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -281005,157 +349826,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19085, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24662, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19085, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19085, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19085, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19085, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19085, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19085, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19085, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24662, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19085, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24662, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19085, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, i); __PYX_ERR(3, 19085, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24662, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 24662, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19085, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19085, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19085, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19085, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19085, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19085, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19085, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24662, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19085, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24662, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19086, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19086, __pyx_L3_error) - } else { - __pyx_v_slowk_period = ((int)-2147483648); - } - if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19086, __pyx_L3_error) - } else { - __pyx_v_slowk_matype = ((int)13); - } - if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19086, __pyx_L3_error) - } else { - __pyx_v_slowd_period = ((int)-2147483648); - } - if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19086, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24663, __pyx_L3_error) } else { - __pyx_v_slowd_matype = ((int)13); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 19085, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 24662, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MCGD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MCGD_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MCGD_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outk = 0; - PyArrayObject *__pyx_v_outd = 0; - PyArrayObject *__pyx_v_outj = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_KDJ_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_stream = 0; + TA_MCGD_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -281172,59 +349919,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject * PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19088, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19089, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19090, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19090, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19090, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19090, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24665, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19091, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24666, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19092, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24667, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19093, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24668, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KDJ_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19101, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MCGD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19103, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24676, __pyx_L1_error) /*try:*/ { @@ -281234,7 +349963,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MCGD_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -281247,19 +349976,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19107, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24680, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outk = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19108, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19109, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outj = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -281268,7 +349987,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_KDJ_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outj)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MCGD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -281372,82 +350091,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KDJ_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19120, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MCGD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19121, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outk)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19121, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 24692, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 24692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outd)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 19121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19121, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outj)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 19121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_15 = 0; - __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 19121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 19121, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24692, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 24692, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_15; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_15 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -281455,22 +350129,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MCGD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outk); - __Pyx_XDECREF((PyObject *)__pyx_v_outd); - __Pyx_XDECREF((PyObject *)__pyx_v_outj); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -281483,29 +350151,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KDJ_Stream_6update, "KDJ_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MCGD_Stream_6update, "MCGD_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -281521,84 +350187,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19123, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24694, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19123, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19123, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19123, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24694, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19123, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 19123, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24694, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 24694, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19123, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19123, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19123, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24694, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19124, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19124, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19124, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24695, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19123, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24694, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MCGD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MCGD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outk; - double __pyx_v_outd; - double __pyx_v_outj; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MCGD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -281615,7 +350260,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_KDJ_Update(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outk), (&__pyx_v_outd), (&__pyx_v_outj)); + __pyx_v_retCode = TA_MCGD_Update(((TA_MCGD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -281643,54 +350288,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19133, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MCGD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19134, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19134, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19134, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19134, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 19134, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 19134, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 19134, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MCGD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -281698,29 +350323,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KDJ_Stream_8peek, "KDJ_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MCGD_Stream_8peek, "MCGD_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -281736,84 +350359,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19136, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24705, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19136, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19136, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19136, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24705, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19136, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 19136, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24705, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 24705, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19136, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19136, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19136, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24705, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19137, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19137, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19137, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24706, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19136, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24705, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MCGD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MCGD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outk; - double __pyx_v_outd; - double __pyx_v_outj; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MCGD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -281830,7 +350432,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_KDJ_Peek(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outk), (&__pyx_v_outd), (&__pyx_v_outj)); + __pyx_v_retCode = TA_MCGD_Peek(((TA_MCGD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -281858,54 +350460,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19146, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MCGD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19147, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 19147, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 19147, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 19147, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MCGD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -281913,33 +350495,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MCGD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self) { - double __pyx_v_outk; - double __pyx_v_outd; - double __pyx_v_outj; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MCGD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -281956,7 +350533,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_KDJ_Value(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outk), (&__pyx_v_outd), (&__pyx_v_outj)); + __pyx_v_retCode = TA_MCGD_Value(((TA_MCGD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -281984,66 +350561,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19159, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MCGD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19160, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 19160, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 19160, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 19160, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MCGD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10KDJ_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MCGD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_KDJ_OutRange(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MCGD_OutRange(((TA_MCGD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -282054,12 +350611,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10KDJ_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10KDJ_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MCGD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_KDJ_Advance(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MCGD_Advance(((TA_MCGD_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -282071,15 +350628,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10KDJ_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KDJ_Stream_10copy, "KDJ_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MCGD_Stream_10copy, "MCGD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -282105,16 +350662,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MCGD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self) { - TA_KDJ_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MCGD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_self) { + TA_MCGD_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -282131,18 +350688,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19171, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream))))) __PYX_ERR(3, 19171, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream))))) __PYX_ERR(3, 24736, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -282156,7 +350713,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_KDJ_Clone(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MCGD_Clone(((TA_MCGD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -282199,7 +350756,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19181, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MCGD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -282221,7 +350778,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MCGD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -282234,19 +350791,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -282260,7 +350817,7 @@ static void __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream___dealloc__(struct __pyx if (__pyx_t_1) { - (void)(TA_LINEARREG_Close(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MEDIAN_Close(((TA_MEDIAN_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -282286,14 +350843,14 @@ static void __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream___dealloc__(struct __pyx /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -282324,59 +350881,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19205, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24770, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24770, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24770, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19205, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24770, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 19205, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 24770, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24770, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24770, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19205, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24770, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19205, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 24770, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDIAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -282387,13 +350944,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_LINEARREG_Stream *__pyx_v_handle; + TA_MEDIAN_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -282409,31 +350966,31 @@ static int __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19206, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19207, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19207, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24772, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19208, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24773, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19209, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24774, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19210, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24775, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19215, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24780, __pyx_L1_error) /*try:*/ { @@ -282443,9 +351000,9 @@ static int __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(struct __pyx_ob __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_LINEARREG_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_MEDIAN_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_LINEARREG_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MEDIAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -282462,7 +351019,7 @@ static int __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - (void)(TA_LINEARREG_Close(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MEDIAN_Close(((TA_MEDIAN_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -282530,7 +351087,7 @@ static int __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19232, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MEDIAN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -282542,7 +351099,7 @@ static int __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(struct __pyx_ob goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDIAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -282561,16 +351118,16 @@ static int __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill, "LINEARREG_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MEDIAN_Stream_4open_and_fill, "MEDIAN_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13MEDIAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13MEDIAN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -282601,59 +351158,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19234, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24799, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19234, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19234, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19234, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24799, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 19234, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 24799, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19234, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19234, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24799, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19235, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24800, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19234, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 24799, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDIAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -282664,7 +351221,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -282674,8 +351231,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyOb PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_LINEARREG_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_stream = 0; + TA_MEDIAN_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -282697,36 +351254,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19236, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19237, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19237, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24802, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19238, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24803, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19239, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24804, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19240, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24805, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19246, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MEDIAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19248, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24813, __pyx_L1_error) /*try:*/ { @@ -282736,7 +351293,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MEDIAN_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -282749,7 +351306,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyOb } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19252, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24817, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -282760,7 +351317,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyOb __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MEDIAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -282864,27 +351421,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19263, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MEDIAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19264, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19264, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19264, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 24829, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 24829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19264, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19264, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24829, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 19264, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 24829, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -282902,7 +351459,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyOb __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDIAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -282924,15 +351481,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_6update, "LINEARREG_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MEDIAN_Stream_6update, "MEDIAN_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -282962,43 +351519,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19266, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24831, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19266, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24831, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19266, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24831, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19266, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 24831, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19266, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24831, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19267, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24832, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19266, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24831, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDIAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -283009,7 +351566,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -283033,7 +351590,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_6update(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_Update(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MEDIAN_Update(((TA_MEDIAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -283061,13 +351618,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_6update(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19274, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDIAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19275, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -283084,7 +351641,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_6update(struct __py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDIAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -283096,15 +351653,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_6update(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_8peek, "LINEARREG_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MEDIAN_Stream_8peek, "MEDIAN_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -283134,43 +351691,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19277, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24842, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24842, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19277, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24842, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19277, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 24842, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24842, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19278, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24843, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19277, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24842, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDIAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -283181,7 +351738,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -283205,7 +351762,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_8peek(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_Peek(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MEDIAN_Peek(((TA_MEDIAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -283233,13 +351790,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_8peek(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19285, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDIAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19286, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -283256,7 +351813,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_8peek(struct __pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDIAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -283268,21 +351825,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_8peek(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -283306,7 +351863,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_5value___get__(stru __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_Value(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MEDIAN_Value(((TA_MEDIAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -283334,13 +351891,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_5value___get__(stru if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19296, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDIAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19297, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -283357,7 +351914,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_5value___get__(stru /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDIAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -283368,12 +351925,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_5value___get__(stru } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13MEDIAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_LINEARREG_OutRange(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MEDIAN_OutRange(((TA_MEDIAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -283384,12 +351941,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__out_range(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13MEDIAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_LINEARREG_Advance(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MEDIAN_Advance(((TA_MEDIAN_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -283401,15 +351958,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__advance(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_10copy, "LINEARREG_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MEDIAN_Stream_10copy, "MEDIAN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -283435,16 +351992,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self) { - TA_LINEARREG_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13MEDIAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_self) { + TA_MEDIAN_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -283461,18 +352018,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(struct __pyx __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19308, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream))))) __PYX_ERR(3, 19308, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream))))) __PYX_ERR(3, 24873, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -283486,7 +352043,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_Clone(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MEDIAN_Clone(((TA_MEDIAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -283529,7 +352086,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(struct __pyx if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19318, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDIAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -283551,7 +352108,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(struct __pyx __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDIAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -283564,19 +352121,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(struct __pyx /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -283590,7 +352147,7 @@ static void __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_LINEARREG_ANGLE_Close(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MEDPRICE_Close(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -283616,22 +352173,22 @@ static void __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -283652,78 +352209,69 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19342, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24905, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19342, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24905, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19342, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24905, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19342, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 19342, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19342, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19342, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24905, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 24905, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19342, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24905, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24905, __pyx_L3_error) } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19342, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24905, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_LINEARREG_ANGLE_Stream *__pyx_v_handle; + TA_MEDPRICE_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -283739,31 +352287,39 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19343, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19344, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19344, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 24908, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 24908, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19345, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24909, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19346, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24910, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19347, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24911, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19352, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24916, __pyx_L1_error) /*try:*/ { @@ -283773,9 +352329,9 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(struct __ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_MEDPRICE_Lookback() + 1); - __pyx_v_retCode = TA_LINEARREG_ANGLE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MEDPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -283792,7 +352348,7 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(struct __ if (__pyx_t_4) { - (void)(TA_LINEARREG_ANGLE_Close(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MEDPRICE_Close(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -283860,7 +352416,7 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19369, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -283872,10 +352428,11 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(struct __ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -283891,24 +352448,24 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill, "LINEARREG_ANGLE_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill, "MEDPRICE_Stream.open_and_fill(high, low)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -283929,73 +352486,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19371, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24935, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24935, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24935, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19371, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 19371, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19371, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19371, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24935, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 24935, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19372, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24935, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24935, __pyx_L3_error) } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19371, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24935, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -284004,8 +352552,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fil PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_LINEARREG_ANGLE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_stream = 0; + TA_MEDPRICE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -284027,36 +352575,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19373, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19374, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19374, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 24939, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 24939, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19375, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24940, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19376, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24941, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19377, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24942, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19383, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MEDPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19385, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24950, __pyx_L1_error) /*try:*/ { @@ -284066,7 +352622,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MEDPRICE_Lookback()); } /*finally:*/ { @@ -284079,7 +352635,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fil } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19389, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24954, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -284090,7 +352646,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_ANGLE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MEDPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -284194,27 +352750,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19400, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19401, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19401, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19401, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 24966, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 24966, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 24966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19401, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19401, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24966, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 19401, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 24966, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -284232,10 +352791,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fil __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -284254,27 +352814,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fil /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update, "LINEARREG_ANGLE_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_6update, "MEDPRICE_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -284290,56 +352851,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19403, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24968, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24968, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19403, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24968, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19403, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19403, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24968, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 24968, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19403, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24968, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24968, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19404, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24969, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24969, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19403, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24968, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -284363,7 +352932,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_ANGLE_Update(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MEDPRICE_Update(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -284391,13 +352960,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19411, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19412, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -284414,7 +352983,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -284426,27 +352995,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek, "LINEARREG_ANGLE_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_8peek, "MEDPRICE_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -284462,56 +353032,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19414, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24979, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24979, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19414, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24979, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19414, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19414, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24979, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 24979, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19414, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24979, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24979, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19415, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24980, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24980, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19414, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24979, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -284535,7 +353113,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_ANGLE_Peek(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MEDPRICE_Peek(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -284563,13 +353141,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19422, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19423, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -284586,7 +353164,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -284598,21 +353176,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -284636,7 +353214,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value___get_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_ANGLE_Value(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MEDPRICE_Value(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -284664,13 +353242,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value___get_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19433, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19434, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -284687,7 +353265,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value___get_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -284698,12 +353276,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value___get_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_LINEARREG_ANGLE_OutRange(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MEDPRICE_OutRange(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -284714,12 +353292,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__out_range(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_LINEARREG_ANGLE_Advance(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MEDPRICE_Advance(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -284731,15 +353309,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__advance(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy, "LINEARREG_ANGLE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_10copy, "MEDPRICE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -284765,16 +353343,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self) { - TA_LINEARREG_ANGLE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self) { + TA_MEDPRICE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -284791,18 +353369,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19445, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream))))) __PYX_ERR(3, 19445, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream))))) __PYX_ERR(3, 25010, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -284816,7 +353394,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_ANGLE_Clone(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MEDPRICE_Clone(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -284859,7 +353437,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19455, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -284881,7 +353459,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -284894,19 +353472,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10MFI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10MFI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10MFI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10MFI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -284920,7 +353498,7 @@ static void __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream___dealloc__(st if (__pyx_t_1) { - (void)(TA_LINEARREG_INTERCEPT_Close(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MFI_Close(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -284946,27 +353524,30 @@ static void __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream___dealloc__(st /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10MFI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10MFI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -284982,61 +353563,82 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19479, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25044, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 25044, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 25044, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25044, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25044, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25044, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19479, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 19479, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25044, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 25044, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19479, __pyx_L3_error) + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 25044, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 25044, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25044, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25044, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25044, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19479, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25044, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19479, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 25044, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -285047,13 +353649,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_LINEARREG_INTERCEPT_Stream *__pyx_v_handle; + TA_MFI_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -285069,31 +353674,55 @@ static int __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19480, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19481, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19481, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 25049, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 25049, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 25049, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 25049, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19482, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25050, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19483, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25051, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19484, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25052, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19489, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25057, __pyx_L1_error) /*try:*/ { @@ -285103,9 +353732,9 @@ static int __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(struc __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_MFI_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MFI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -285122,7 +353751,7 @@ static int __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(struc if (__pyx_t_4) { - (void)(TA_LINEARREG_INTERCEPT_Close(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MFI_Close(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -285190,7 +353819,7 @@ static int __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(struc if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19506, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MFI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -285202,10 +353831,13 @@ static int __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(struc goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -285221,29 +353853,32 @@ static int __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill, "LINEARREG_INTERCEPT_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MFI_Stream_4open_and_fill, "MFI_Stream.open_and_fill(high, low, close, volume, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10MFI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MFI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -285259,61 +353894,82 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19508, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25076, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 25076, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 25076, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25076, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25076, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25076, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19508, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 19508, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25076, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 25076, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19508, __pyx_L3_error) + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 25076, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 25076, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25076, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25076, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25076, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19509, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25077, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19508, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 25076, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -285324,8 +353980,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -285334,8 +353993,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_LINEARREG_INTERCEPT_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_stream = 0; + TA_MFI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -285357,36 +354016,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19510, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19511, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19511, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 25082, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 25082, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 25082, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 25082, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19512, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25083, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19513, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25084, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19514, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25085, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19520, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19522, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25093, __pyx_L1_error) /*try:*/ { @@ -285396,7 +354079,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MFI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -285409,7 +354092,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19526, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25097, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -285420,7 +354103,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_INTERCEPT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MFI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -285524,27 +354207,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19537, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19538, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19538, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19538, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 25109, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 25109, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 25109, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 25109, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 25109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19538, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19538, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25109, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 19538, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 25109, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -285562,10 +354254,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -285584,27 +354279,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update, "LINEARREG_INTERCEPT_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MFI_Stream_6update, "MFI_Stream.update(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -285620,56 +354318,80 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19540, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25111, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 25111, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25111, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25111, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19540, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19540, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25111, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 25111, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25111, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25111, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25111, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 25111, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19541, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25112, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25112, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25112, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25112, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19540, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 25111, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -285693,7 +354415,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update(s __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Update(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MFI_Update(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -285721,13 +354443,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update(s if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19548, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19549, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -285744,7 +354466,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update(s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -285756,27 +354478,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update(s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek, "LINEARREG_INTERCEPT_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MFI_Stream_8peek, "MFI_Stream.peek(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -285792,56 +354517,80 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19551, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25122, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 25122, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25122, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25122, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19551, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19551, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25122, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 25122, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25122, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25122, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25122, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 25122, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19552, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25123, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25123, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25123, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25123, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19551, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 25122, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -285865,7 +354614,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Peek(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MFI_Peek(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -285893,13 +354642,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19559, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19560, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -285916,7 +354665,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -285928,21 +354677,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek(str /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -285966,7 +354715,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value___ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Value(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MFI_Value(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -285994,13 +354743,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value___ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19570, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19571, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -286017,7 +354766,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value___ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -286028,12 +354777,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value___ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MFI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_LINEARREG_INTERCEPT_OutRange(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MFI_OutRange(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -286044,12 +354793,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__out_rang } -static TA_RetCode __pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MFI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_LINEARREG_INTERCEPT_Advance(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MFI_Advance(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -286061,15 +354810,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__advance( /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy, "LINEARREG_INTERCEPT_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MFI_Stream_10copy, "MFI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -286095,16 +354844,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self) { - TA_LINEARREG_INTERCEPT_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self) { + TA_MFI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -286121,18 +354870,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(st __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19582, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream))))) __PYX_ERR(3, 19582, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream))))) __PYX_ERR(3, 25153, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -286146,7 +354895,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Clone(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MFI_Clone(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -286189,7 +354938,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(st if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19592, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -286211,7 +354960,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(st __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -286224,19 +354973,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(st /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -286250,7 +354999,7 @@ static void __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream___dealloc__(struct if (__pyx_t_1) { - (void)(TA_LINEARREG_SLOPE_Close(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MIDPOINT_Close(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -286276,14 +355025,14 @@ static void __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream___dealloc__(struct /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -286314,59 +355063,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19616, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25187, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19616, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25187, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19616, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25187, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19616, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25187, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 19616, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 25187, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19616, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25187, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19616, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25187, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19616, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25187, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19616, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25187, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -286377,13 +355126,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_LINEARREG_SLOPE_Stream *__pyx_v_handle; + TA_MIDPOINT_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -286399,31 +355148,31 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19617, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19618, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19618, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25189, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19619, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25190, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19620, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25191, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19621, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25192, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19626, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25197, __pyx_L1_error) /*try:*/ { @@ -286433,9 +355182,9 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(struct __ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_MIDPOINT_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_LINEARREG_SLOPE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MIDPOINT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -286452,7 +355201,7 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(struct __ if (__pyx_t_4) { - (void)(TA_LINEARREG_SLOPE_Close(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MIDPOINT_Close(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -286520,7 +355269,7 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19643, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -286532,7 +355281,7 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(struct __ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -286551,16 +355300,16 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill, "LINEARREG_SLOPE_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill, "MIDPOINT_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -286591,59 +355340,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19645, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25216, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25216, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25216, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19645, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25216, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 19645, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 25216, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25216, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25216, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19646, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25217, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19645, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25216, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -286654,7 +355403,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -286664,8 +355413,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fil PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_LINEARREG_SLOPE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_stream = 0; + TA_MIDPOINT_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -286687,36 +355436,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19647, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19648, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19648, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25219, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19649, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25220, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19650, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25221, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19651, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25222, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19657, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIDPOINT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19659, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25230, __pyx_L1_error) /*try:*/ { @@ -286726,7 +355475,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPOINT_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -286739,7 +355488,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fil } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19663, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25234, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -286750,7 +355499,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fil __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_SLOPE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MIDPOINT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -286854,27 +355603,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19674, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19675, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19675, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19675, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 25246, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 25246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19675, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19675, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25246, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 19675, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 25246, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -286892,7 +355641,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fil __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -286914,15 +355663,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fil /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update, "LINEARREG_SLOPE_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_6update, "MIDPOINT_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -286952,43 +355701,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19677, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25248, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25248, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19677, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25248, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19677, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 25248, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25248, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19678, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25249, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19677, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25248, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -286999,7 +355748,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -287023,7 +355772,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_SLOPE_Update(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MIDPOINT_Update(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -287051,13 +355800,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19685, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19686, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -287074,7 +355823,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -287086,15 +355835,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update(struc /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek, "LINEARREG_SLOPE_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_8peek, "MIDPOINT_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -287124,43 +355873,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19688, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25259, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25259, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19688, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25259, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19688, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 25259, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25259, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19689, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25260, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19688, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25259, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -287171,7 +355920,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -287195,7 +355944,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_SLOPE_Peek(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MIDPOINT_Peek(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -287223,13 +355972,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19696, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19697, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -287246,7 +355995,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -287258,21 +356007,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek(struct /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -287296,7 +356045,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value___get_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_SLOPE_Value(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MIDPOINT_Value(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -287324,13 +356073,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value___get_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19707, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19708, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -287347,7 +356096,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value___get_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -287358,12 +356107,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value___get_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_LINEARREG_SLOPE_OutRange(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MIDPOINT_OutRange(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -287374,12 +356123,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__out_range(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_LINEARREG_SLOPE_Advance(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MIDPOINT_Advance(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -287391,15 +356140,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__advance(stru /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy, "LINEARREG_SLOPE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_10copy, "MIDPOINT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -287425,16 +356174,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self) { - TA_LINEARREG_SLOPE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self) { + TA_MIDPOINT_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -287451,18 +356200,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(struct __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19719, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream))))) __PYX_ERR(3, 19719, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream))))) __PYX_ERR(3, 25290, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -287476,7 +356225,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_LINEARREG_SLOPE_Clone(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MIDPOINT_Clone(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -287519,7 +356268,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(struct if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19729, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -287541,7 +356290,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(struct __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -287554,19 +356303,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(struct /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_9LN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_9LN_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_9LN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_9LN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -287580,7 +356329,7 @@ static void __pyx_pf_5talib_7_ta_lib_9LN_Stream___dealloc__(struct __pyx_obj_5ta if (__pyx_t_1) { - (void)(TA_LN_Close(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MIDPRICE_Close(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -287606,26 +356355,28 @@ static void __pyx_pf_5talib_7_ta_lib_9LN_Stream___dealloc__(struct __pyx_obj_5ta /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_9LN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_9LN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -287641,61 +356392,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19751, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25324, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25324, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25324, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19751, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25324, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19751, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 19751, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25324, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 25324, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19751, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25324, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25324, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25324, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25324, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19751, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 25324, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_LN_Stream *__pyx_v_handle; + TA_MIDPRICE_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -287711,31 +356487,39 @@ static int __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19752, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19753, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19753, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 25327, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 25327, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19754, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25328, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19755, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25329, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19756, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25330, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19761, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25335, __pyx_L1_error) /*try:*/ { @@ -287745,9 +356529,9 @@ static int __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(struct __pyx_obj_5talib __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_LN_Lookback() + 1); + __pyx_v_need = (TA_MIDPRICE_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_LN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MIDPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -287764,7 +356548,7 @@ static int __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - (void)(TA_LN_Close(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MIDPRICE_Close(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -287832,7 +356616,7 @@ static int __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19778, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -287844,10 +356628,11 @@ static int __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(struct __pyx_obj_5talib goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -287863,28 +356648,30 @@ static int __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(struct __pyx_obj_5talib /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9LN_Stream_4open_and_fill, "LN_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9LN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9LN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9LN_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill, "MIDPRICE_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -287900,56 +356687,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19780, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25354, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25354, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25354, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19780, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19780, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 19780, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25354, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 25354, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19780, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25354, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25354, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25354, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25355, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19780, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 25354, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -287958,8 +356770,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__ PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_LN_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_stream = 0; + TA_MIDPRICE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -287981,36 +356793,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19782, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19783, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19783, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 25358, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 25358, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19784, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25359, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19785, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25360, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19786, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25361, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19792, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIDPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19794, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25369, __pyx_L1_error) /*try:*/ { @@ -288020,7 +356840,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_LN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPRICE_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -288033,7 +356853,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19798, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25373, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -288044,7 +356864,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_LN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MIDPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -288148,27 +356968,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19809, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19810, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19810, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19810, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 25385, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 25385, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 25385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19810, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19810, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25385, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 19810, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 25385, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -288186,10 +357009,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.LN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -288208,27 +357032,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9LN_Stream_6update, "LN_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_6update, "MIDPRICE_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -288244,56 +357069,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19812, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25387, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25387, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19812, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25387, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19812, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19812, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25387, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 25387, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19812, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25387, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25387, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19813, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25388, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25388, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19812, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 25387, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -288317,7 +357150,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_6update(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LN_Update(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MIDPRICE_Update(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -288345,13 +357178,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_6update(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19820, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19821, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -288368,7 +357201,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_6update(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -288380,27 +357213,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_6update(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9LN_Stream_8peek, "LN_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_8peek, "MIDPRICE_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -288416,56 +357250,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19823, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25398, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25398, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19823, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25398, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19823, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19823, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25398, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 25398, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19823, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25398, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25398, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19824, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25399, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25399, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19823, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 25398, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -288489,7 +357331,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_8peek(struct __pyx_obj_5tal __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LN_Peek(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MIDPRICE_Peek(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -288517,13 +357359,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19831, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19832, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -288540,7 +357382,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_8peek(struct __pyx_obj_5tal /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -288552,21 +357394,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_8peek(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -288590,7 +357432,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_5value___get__(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LN_Value(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MIDPRICE_Value(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -288618,13 +357460,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_5value___get__(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19842, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19843, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -288641,7 +357483,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_5value___get__(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -288652,12 +357494,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_5value___get__(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9LN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_LN_OutRange(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MIDPRICE_OutRange(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -288668,12 +357510,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9LN_Stream__out_range(struct __pyx_obj } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9LN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_LN_Advance(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MIDPRICE_Advance(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -288685,15 +357527,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9LN_Stream__advance(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9LN_Stream_10copy, "LN_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_10copy, "MIDPRICE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -288719,16 +357561,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self) { - TA_LN_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self) { + TA_MIDPRICE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -288745,18 +357587,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(struct __pyx_obj_5ta __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19854, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream))))) __PYX_ERR(3, 19854, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream))))) __PYX_ERR(3, 25429, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -288770,7 +357612,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(struct __pyx_obj_5ta __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_LN_Clone(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MIDPRICE_Clone(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -288813,7 +357655,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19864, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -288835,7 +357677,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(struct __pyx_obj_5ta __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.LN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -288848,19 +357690,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(struct __pyx_obj_5ta /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10MIN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10MIN_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_12LOG10_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10MIN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_12LOG10_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10MIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -288874,7 +357716,7 @@ static void __pyx_pf_5talib_7_ta_lib_12LOG10_Stream___dealloc__(struct __pyx_obj if (__pyx_t_1) { - (void)(TA_LOG10_Close(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MIN_Close(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -288900,14 +357742,14 @@ static void __pyx_pf_5talib_7_ta_lib_12LOG10_Stream___dealloc__(struct __pyx_obj /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10MIN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10MIN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -288915,11 +357757,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -288935,61 +357778,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19886, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25463, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25463, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19886, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25463, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19886, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25463, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 19886, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 25463, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19886, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25463, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25463, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25463, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19886, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25463, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, PyObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_LOG10_Stream *__pyx_v_handle; + TA_MIN_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -289005,31 +357865,31 @@ static int __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19887, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19888, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19888, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25465, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19889, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25466, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19890, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25467, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19891, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25468, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19896, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25473, __pyx_L1_error) /*try:*/ { @@ -289039,9 +357899,9 @@ static int __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(struct __pyx_obj_5t __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_LOG10_Lookback() + 1); + __pyx_v_need = (TA_MIN_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_LOG10_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MIN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -289058,7 +357918,7 @@ static int __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - (void)(TA_LOG10_Close(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MIN_Close(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -289126,7 +357986,7 @@ static int __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19913, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -289138,7 +357998,7 @@ static int __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(struct __pyx_obj_5t goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -289157,16 +358017,16 @@ static int __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill, "LOG10_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MIN_Stream_4open_and_fill, "MIN_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10MIN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MIN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -289174,11 +358034,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -289194,55 +358055,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19915, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25492, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25492, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25492, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19915, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25492, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 19915, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 25492, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19915, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25492, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25492, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25493, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19915, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25492, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -289252,8 +358130,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_LOG10_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_stream = 0; + TA_MIN_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -289275,36 +358153,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19917, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19918, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19918, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25495, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19919, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25496, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19920, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25497, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19921, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25498, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LOG10_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19927, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 19929, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25506, __pyx_L1_error) /*try:*/ { @@ -289314,7 +358192,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_LOG10_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MIN_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -289327,7 +358205,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19933, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25510, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -289338,7 +358216,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_LOG10_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MIN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -289442,27 +358320,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LOG10_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19944, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19945, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19945, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 19945, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 25522, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 25522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19945, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19945, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25522, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 19945, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 25522, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -289480,7 +358358,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -289502,15 +358380,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12LOG10_Stream_6update, "LOG10_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MIN_Stream_6update, "MIN_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -289540,43 +358418,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19947, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25524, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19947, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25524, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19947, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25524, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19947, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 25524, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19947, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25524, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19948, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25525, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19947, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25524, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -289587,7 +358465,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -289611,7 +358489,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_6update(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LOG10_Update(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MIN_Update(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -289639,13 +358517,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_6update(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19955, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19956, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -289662,7 +358540,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_6update(struct __pyx_ob /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -289674,15 +358552,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_6update(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12LOG10_Stream_8peek, "LOG10_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MIN_Stream_8peek, "MIN_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -289712,43 +358590,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19958, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25535, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25535, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19958, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25535, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19958, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 25535, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25535, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19959, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25536, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19958, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25535, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -289759,7 +358637,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -289783,7 +358661,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_8peek(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LOG10_Peek(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MIN_Peek(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -289811,13 +358689,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_8peek(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19966, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19967, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -289834,7 +358712,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_8peek(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -289846,21 +358724,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_8peek(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -289884,7 +358762,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_5value___get__(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_LOG10_Value(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MIN_Value(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -289912,13 +358790,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_5value___get__(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19977, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19978, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -289935,7 +358813,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_5value___get__(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -289946,12 +358824,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_5value___get__(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12LOG10_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_LOG10_OutRange(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MIN_OutRange(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -289962,12 +358840,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12LOG10_Stream__out_range(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12LOG10_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_LOG10_Advance(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MIN_Advance(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -289979,15 +358857,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12LOG10_Stream__advance(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12LOG10_Stream_10copy, "LOG10_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MIN_Stream_10copy, "MIN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -290013,16 +358891,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self) { - TA_LOG10_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self) { + TA_MIN_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -290039,18 +358917,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(struct __pyx_obj __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19989, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream))))) __PYX_ERR(3, 19989, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream))))) __PYX_ERR(3, 25566, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -290064,7 +358942,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_LOG10_Clone(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MIN_Clone(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -290107,7 +358985,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(struct __pyx_obj if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19999, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -290129,7 +359007,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(struct __pyx_obj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -290142,19 +359020,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(struct __pyx_obj /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_9MA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_9MA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_9MA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_9MA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -290168,7 +359046,7 @@ static void __pyx_pf_5talib_7_ta_lib_9MA_Stream___dealloc__(struct __pyx_obj_5ta if (__pyx_t_1) { - (void)(TA_MA_Close(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MININDEX_Close(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -290194,14 +359072,14 @@ static void __pyx_pf_5talib_7_ta_lib_9MA_Stream___dealloc__(struct __pyx_obj_5ta /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_9MA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_9MA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -290210,12 +359088,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - int __pyx_v_matype; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -290231,93 +359108,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20024, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25600, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20024, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20024, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25600, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20024, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25600, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20024, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25600, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 20024, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 25600, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20024, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20024, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25600, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20024, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25600, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20024, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25600, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } - if (values[2]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20024, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)0); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 20024, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25600, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { +static int __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MA_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_MININDEX_Stream *__pyx_v_handle; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -290332,31 +359195,31 @@ static int __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20025, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20026, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20026, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25602, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20027, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25603, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20028, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25604, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20029, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25605, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20034, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25610, __pyx_L1_error) /*try:*/ { @@ -290366,9 +359229,9 @@ static int __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(struct __pyx_obj_5talib __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype) + 1); + __pyx_v_need = (TA_MININDEX_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_MA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MININDEX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outinteger)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -290385,7 +359248,7 @@ static int __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - (void)(TA_MA_Close(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MININDEX_Close(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -290453,7 +359316,7 @@ static int __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20051, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -290465,7 +359328,7 @@ static int __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(struct __pyx_obj_5talib goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -290484,16 +359347,16 @@ static int __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(struct __pyx_obj_5talib /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9MA_Stream_4open_and_fill, "MA_Stream.open_and_fill(real, int timeperiod=-0x80000000, int matype=0)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9MA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9MA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9MA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill, "MININDEX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -290502,12 +359365,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -290523,98 +359385,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20053, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25629, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20053, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20053, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25629, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20053, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25629, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20053, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25629, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 20053, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 25629, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20053, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20053, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25629, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20053, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25629, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20054, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25630, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } - if (values[2]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20054, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)0); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 20053, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25629, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_stream = 0; + TA_MININDEX_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; + npy_intp __pyx_v_i; + int *__pyx_v_outinteger_data; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -290629,42 +359479,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__ PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; + npy_intp __pyx_t_13; + npy_intp __pyx_t_14; + npy_intp __pyx_t_15; + PyObject *__pyx_t_16 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20055, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20056, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20056, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25632, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20057, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25633, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20058, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25634, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20059, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25635, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20065, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MININDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20067, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25643, __pyx_L1_error) /*try:*/ { @@ -290674,7 +359527,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MININDEX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -290687,9 +359540,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20071, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25647, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -290698,7 +359551,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MININDEX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -290802,28 +359655,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20082, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20083, __pyx_L1_error) + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); + + + __pyx_t_2 = __pyx_v_length; + __pyx_t_13 = __pyx_t_2; + + for (__pyx_t_14 = __pyx_v_lookback; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { + __pyx_v_i = __pyx_t_14; + + + __pyx_t_15 = __pyx_v_i; + (__pyx_v_outinteger_data[__pyx_t_15]) = ((__pyx_v_outinteger_data[__pyx_t_15]) + __pyx_v_begidx); + } + + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20083, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20083, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 25663, __pyx_L1_error); + __pyx_t_16 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 25663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20083, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20083, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 20083, __pyx_L1_error); - __pyx_t_13 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25663, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_16); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_16) != (0)) __PYX_ERR(3, 25663, __pyx_L1_error); + __pyx_t_16 = 0; { PyObject *__pyx_temp; { @@ -290839,8 +359707,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -290849,12 +359717,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -290862,15 +359732,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9MA_Stream_6update, "MA_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_6update, "MININDEX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -290900,43 +359770,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20085, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25665, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20085, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20085, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25665, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20085, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 25665, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20085, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25665, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20086, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25666, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20085, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25665, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -290947,14 +359817,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; + int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -290971,7 +359843,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_6update(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MA_Update(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MININDEX_Update(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); + + __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_begidx = __pyx_t_2; } /*finally:*/ { @@ -290994,39 +359870,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_6update(struct __pyx_obj_5t } } - __pyx_t_2 = (__pyx_v_retCode != 0); + __pyx_t_3 = (__pyx_v_retCode != 0); - if (__pyx_t_2) { + if (__pyx_t_3) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20093, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -291034,15 +359911,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_6update(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9MA_Stream_8peek, "MA_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_8peek, "MININDEX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -291072,43 +359949,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20096, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25678, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25678, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20096, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25678, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20096, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 25678, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25678, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20097, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25679, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20096, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25678, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -291119,14 +359996,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; + int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -291143,7 +360022,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_8peek(struct __pyx_obj_5tal __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MA_Peek(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MININDEX_Peek(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); + + __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_begidx = __pyx_t_2; } /*finally:*/ { @@ -291166,39 +360049,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_8peek(struct __pyx_obj_5tal } } - __pyx_t_2 = (__pyx_v_retCode != 0); + __pyx_t_3 = (__pyx_v_retCode != 0); - if (__pyx_t_2) { + if (__pyx_t_3) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20104, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20105, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -291206,28 +360090,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_8peek(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self) { + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; + int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -291244,7 +360130,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_5value___get__(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MA_Value(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MININDEX_Value(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_begidx = __pyx_t_2; } /*finally:*/ { @@ -291267,51 +360157,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_5value___get__(struct __pyx } } - __pyx_t_2 = (__pyx_v_retCode != 0); + __pyx_t_3 = (__pyx_v_retCode != 0); - if (__pyx_t_2) { + if (__pyx_t_3) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20116, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9MA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MININDEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MA_OutRange(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MININDEX_OutRange(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -291322,12 +360213,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9MA_Stream__out_range(struct __pyx_obj } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9MA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MININDEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MA_Advance(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MININDEX_Advance(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -291339,15 +360230,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9MA_Stream__advance(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9MA_Stream_10copy, "MA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_10copy, "MININDEX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -291373,16 +360264,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self) { - TA_MA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self) { + TA_MININDEX_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -291399,18 +360290,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(struct __pyx_obj_5ta __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20127, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream))))) __PYX_ERR(3, 20127, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream))))) __PYX_ERR(3, 25713, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -291424,7 +360315,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(struct __pyx_obj_5ta __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MA_Clone(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MININDEX_Clone(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -291467,7 +360358,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20137, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -291489,7 +360380,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(struct __pyx_obj_5ta __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -291502,19 +360393,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(struct __pyx_obj_5ta /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11MACD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11MACD_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11MACD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11MACD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -291528,7 +360419,7 @@ static void __pyx_pf_5talib_7_ta_lib_11MACD_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_MACD_Close(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MINMAX_Close(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -291554,14 +360445,14 @@ static void __pyx_pf_5talib_7_ta_lib_11MACD_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11MACD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11MACD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -291569,14 +360460,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -291592,109 +360481,80 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20165, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25748, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20165, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20165, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20165, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20165, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20165, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25748, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 20165, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 25748, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20165, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20165, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20165, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20165, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25748, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20165, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20165, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20165, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25748, __pyx_L3_error) } else { - __pyx_v_signalperiod = ((int)-2147483648); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 20165, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25748, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static int __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MACD_Stream *__pyx_v_handle; - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; + TA_MINMAX_Stream *__pyx_v_handle; + double __pyx_v_outmin; + double __pyx_v_outmax; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -291709,31 +360569,31 @@ static int __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20166, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20167, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20167, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25750, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20168, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25751, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20169, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25752, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20170, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25753, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20177, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25759, __pyx_L1_error) /*try:*/ { @@ -291743,9 +360603,9 @@ static int __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1); + __pyx_v_need = (TA_MINMAX_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_MACD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + __pyx_v_retCode = TA_MINMAX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outmin), (&__pyx_v_outmax)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -291762,7 +360622,7 @@ static int __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_MACD_Close(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MINMAX_Close(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -291830,7 +360690,7 @@ static int __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20194, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -291842,7 +360702,7 @@ static int __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -291856,23 +360716,22 @@ static int __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(struct __pyx_obj_5ta - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MACD_Stream_4open_and_fill, "MACD_Stream.open_and_fill(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11MACD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MACD_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill, "MINMAX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -291880,14 +360739,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -291903,113 +360760,84 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20196, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25778, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20196, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20196, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20196, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25778, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 20196, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 25778, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20196, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20196, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25778, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20197, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20197, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25779, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20197, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)-2147483648); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 20196, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25778, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outmacd = 0; - PyArrayObject *__pyx_v_outmacdsignal = 0; - PyArrayObject *__pyx_v_outmacdhist = 0; + PyArrayObject *__pyx_v_outmin = 0; + PyArrayObject *__pyx_v_outmax = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MACD_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_stream = 0; + TA_MINMAX_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -292027,42 +360855,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20198, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20199, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20199, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25781, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20200, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25782, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20201, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25783, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20202, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25784, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20210, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINMAX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20212, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25793, __pyx_L1_error) /*try:*/ { @@ -292072,7 +360899,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -292085,19 +360912,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20216, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20217, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25797, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmin = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20218, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25798, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmax = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -292106,7 +360928,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MACD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MINMAX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmin)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmax)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -292210,64 +361032,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20229, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20230, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20230, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20230, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 25810, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmin)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 25810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20230, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20230, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 20230, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 25810, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmax)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 25810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20230, __pyx_L1_error); - __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 20230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20230, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 20230, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 25810, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 20230, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 20230, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 25810, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_t_15 = 0; - __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 20230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 25810, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20230, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25810, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20230, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 25810, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_15; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_15 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -292276,8 +361087,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -292286,9 +361096,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject - __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_XDECREF((PyObject *)__pyx_v_outmin); + __Pyx_XDECREF((PyObject *)__pyx_v_outmax); @@ -292301,15 +361110,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MACD_Stream_6update, "MACD_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_6update, "MINMAX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -292339,43 +361148,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20232, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25812, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25812, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20232, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25812, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20232, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 25812, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25812, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20233, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25813, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20232, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25812, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -292386,10 +361195,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmin; + double __pyx_v_outmax; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -292398,7 +361206,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(struct __pyx_obj PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -292415,7 +361222,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MACD_Update(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + __pyx_v_retCode = TA_MINMAX_Update(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmin), (&__pyx_v_outmax)); } /*finally:*/ { @@ -292443,38 +361250,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20242, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20243, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20243, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20243, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 25822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20243, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20243, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 25822, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20243, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 20243, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 25822, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -292483,14 +361285,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(struct __pyx_obj __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -292498,15 +361298,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MACD_Stream_8peek, "MACD_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_8peek, "MINMAX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -292536,43 +361336,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20245, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25824, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20245, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25824, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20245, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25824, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20245, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 25824, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20245, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25824, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20246, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25825, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20245, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25824, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -292583,10 +361383,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmin; + double __pyx_v_outmax; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -292595,7 +361394,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(struct __pyx_obj_5 PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -292612,7 +361410,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MACD_Peek(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + __pyx_v_retCode = TA_MINMAX_Peek(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmin), (&__pyx_v_outmax)); } /*finally:*/ { @@ -292640,38 +361438,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20255, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20256, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20256, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20256, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 25834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20256, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20256, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 25834, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20256, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 20256, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 25834, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -292680,14 +361473,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(struct __pyx_obj_5 __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -292695,24 +361486,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self) { - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self) { + double __pyx_v_outmin; + double __pyx_v_outmax; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -292721,7 +361511,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(struct __ PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -292738,7 +361527,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MACD_Value(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + __pyx_v_retCode = TA_MINMAX_Value(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmin), (&__pyx_v_outmax)); } /*finally:*/ { @@ -292766,38 +361555,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20268, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20269, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20269, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20269, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 25846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20269, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 25846, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20269, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 20269, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 25846, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -292806,26 +361590,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(struct __ __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11MACD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13MINMAX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MACD_OutRange(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MINMAX_OutRange(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -292836,12 +361618,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11MACD_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11MACD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13MINMAX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MACD_Advance(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MINMAX_Advance(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -292853,15 +361635,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11MACD_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MACD_Stream_10copy, "MACD_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_10copy, "MINMAX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -292887,16 +361669,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self) { - TA_MACD_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self) { + TA_MINMAX_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -292913,18 +361695,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20280, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream))))) __PYX_ERR(3, 20280, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream))))) __PYX_ERR(3, 25857, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -292938,7 +361720,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MACD_Clone(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MINMAX_Clone(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -292981,7 +361763,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20290, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -293003,7 +361785,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -293016,19 +361798,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -293042,7 +361824,7 @@ static void __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream___dealloc__(struct __pyx_o if (__pyx_t_1) { - (void)(TA_MACDEXT_Close(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MINMAXINDEX_Close(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -293068,14 +361850,14 @@ static void __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream___dealloc__(struct __pyx_o /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -293083,17 +361865,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_fastmatype; - int __pyx_v_slowperiod; - int __pyx_v_slowmatype; - int __pyx_v_signalperiod; - int __pyx_v_signalmatype; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[7] = {0,0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -293109,151 +361886,80 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20321, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25892, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 20321, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 20321, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20321, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20321, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20321, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25892, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25892, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20321, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25892, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 7, i); __PYX_ERR(3, 20321, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 25892, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 20321, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 20321, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20321, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20321, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20321, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25892, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25892, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20321, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[2]) { - __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20321, __pyx_L3_error) - } else { - __pyx_v_fastmatype = ((int)0); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20321, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20321, __pyx_L3_error) - } else { - __pyx_v_slowmatype = ((int)0); - } - if (values[5]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20321, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)-2147483648); - } - if (values[6]) { - __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20321, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25892, __pyx_L3_error) } else { - __pyx_v_signalmatype = ((int)0); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 7, __pyx_nargs); __PYX_ERR(3, 20321, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25892, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) { +static int __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MACDEXT_Stream *__pyx_v_handle; - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; + TA_MINMAXINDEX_Stream *__pyx_v_handle; + int __pyx_v_outminidx; + int __pyx_v_outmaxidx; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -293268,31 +361974,31 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20322, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20323, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20323, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25894, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20324, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25895, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20325, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25896, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20326, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25897, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20333, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25903, __pyx_L1_error) /*try:*/ { @@ -293302,9 +362008,9 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(struct __pyx_obj_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype) + 1); + __pyx_v_need = (TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_MACDEXT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + __pyx_v_retCode = TA_MINMAXINDEX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -293321,7 +362027,7 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - (void)(TA_MACDEXT_Close(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MINMAXINDEX_Close(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -293389,7 +362095,7 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20350, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -293401,7 +362107,7 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(struct __pyx_obj_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -293415,23 +362121,22 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(struct __pyx_obj_ - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill, "MACDEXT_Stream.open_and_fill(real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill, "MINMAXINDEX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -293439,17 +362144,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_fastmatype; - int __pyx_v_slowperiod; - int __pyx_v_slowmatype; - int __pyx_v_signalperiod; - int __pyx_v_signalmatype; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[7] = {0,0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -293465,156 +362165,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20352, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25922, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 20352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 20352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20352, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25922, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25922, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20352, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25922, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 7, i); __PYX_ERR(3, 20352, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 25922, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 20352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 20352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20352, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25922, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20352, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25922, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20353, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25923, __pyx_L3_error) } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[2]) { - __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20353, __pyx_L3_error) - } else { - __pyx_v_fastmatype = ((int)0); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20353, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20353, __pyx_L3_error) - } else { - __pyx_v_slowmatype = ((int)0); - } - if (values[5]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20353, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)-2147483648); - } - if (values[6]) { - __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20353, __pyx_L3_error) - } else { - __pyx_v_signalmatype = ((int)0); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 7, __pyx_nargs); __PYX_ERR(3, 20352, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25922, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outmacd = 0; - PyArrayObject *__pyx_v_outmacdsignal = 0; - PyArrayObject *__pyx_v_outmacdhist = 0; + PyArrayObject *__pyx_v_outminidx = 0; + PyArrayObject *__pyx_v_outmaxidx = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MACDEXT_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_stream = 0; + TA_MINMAXINDEX_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; + npy_intp __pyx_v_i; + int *__pyx_v_outminidx_data; + int *__pyx_v_outmaxidx_data; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -293629,44 +362261,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObje PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; + npy_intp __pyx_t_13; + npy_intp __pyx_t_14; + npy_intp __pyx_t_15; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20354, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20355, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20355, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25925, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20356, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25926, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20357, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25927, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20358, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25928, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACDEXT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20366, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINMAXINDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20368, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25937, __pyx_L1_error) /*try:*/ { @@ -293676,7 +362310,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -293689,19 +362323,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20372, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25941, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20373, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20374, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25942, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -293710,7 +362339,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MACDEXT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MINMAXINDEX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -293814,74 +362443,92 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20385, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20386, __pyx_L1_error) + __pyx_v_outminidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)); + + + __pyx_t_2 = __pyx_v_length; + __pyx_t_13 = __pyx_t_2; + + for (__pyx_t_14 = __pyx_v_lookback; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { + __pyx_v_i = __pyx_t_14; + + + __pyx_t_15 = __pyx_v_i; + (__pyx_v_outminidx_data[__pyx_t_15]) = ((__pyx_v_outminidx_data[__pyx_t_15]) + __pyx_v_begidx); + } + + + __pyx_v_outmaxidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)); + + + __pyx_t_2 = __pyx_v_length; + __pyx_t_13 = __pyx_t_2; + + for (__pyx_t_14 = __pyx_v_lookback; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { + __pyx_v_i = __pyx_t_14; + + + __pyx_t_15 = __pyx_v_i; + (__pyx_v_outmaxidx_data[__pyx_t_15]) = ((__pyx_v_outmaxidx_data[__pyx_t_15]) + __pyx_v_begidx); + } + + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 20386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 25961, __pyx_L1_error); + __pyx_t_16 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outminidx)); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 25961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20386, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); - __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 20386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 25961, __pyx_L1_error); + __pyx_t_17 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmaxidx)); if (unlikely(!__pyx_t_17)) __PYX_ERR(3, 25961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20386, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_15 = 0; - __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 20386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_16); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16) != (0)) __PYX_ERR(3, 25961, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_17); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_17) != (0)) __PYX_ERR(3, 25961, __pyx_L1_error); + __pyx_t_16 = 0; + __pyx_t_17 = 0; + __pyx_t_17 = PyTuple_New(2); if (unlikely(!__pyx_t_17)) __PYX_ERR(3, 25961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_17, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25961, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20386, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_17, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 25961, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_15; + __pyx_r = __pyx_t_17; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_15 = 0; + __pyx_t_17 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -293890,14 +362537,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObje - __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_XDECREF((PyObject *)__pyx_v_outminidx); + __Pyx_XDECREF((PyObject *)__pyx_v_outmaxidx); __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -293905,15 +362554,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_6update, "MACDEXT_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update, "MINMAXINDEX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -293943,43 +362592,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20388, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25963, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20388, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20388, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25963, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20388, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 25963, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20388, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25963, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20389, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25964, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20388, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25963, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -293990,16 +362639,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outminidx; + int __pyx_v_outmaxidx; TA_RetCode __pyx_v_retCode; + int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; @@ -294019,7 +362668,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MACDEXT_Update(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + __pyx_v_retCode = TA_MINMAXINDEX_Update(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); + + __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_begidx = __pyx_t_2; } /*finally:*/ { @@ -294042,32 +362695,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(struct __pyx_ } } - __pyx_t_2 = (__pyx_v_retCode != 0); + __pyx_t_3 = (__pyx_v_retCode != 0); - if (__pyx_t_2) { + if (__pyx_t_3) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20399, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20399, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 25975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20399, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 25975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20399, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20399, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4) != (0)) __PYX_ERR(3, 25975, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 20399, __pyx_L1_error); - __pyx_t_3 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 25975, __pyx_L1_error); __pyx_t_4 = 0; __pyx_t_5 = 0; { @@ -294084,11 +362732,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(struct __pyx_ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -294102,15 +362749,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_8peek, "MACDEXT_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek, "MINMAXINDEX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -294140,43 +362787,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20401, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25977, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20401, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25977, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20401, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25977, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20401, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 25977, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20401, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25977, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20402, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25978, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20401, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25977, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -294187,16 +362834,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outminidx; + int __pyx_v_outmaxidx; TA_RetCode __pyx_v_retCode; + int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; @@ -294216,7 +362863,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MACDEXT_Peek(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + __pyx_v_retCode = TA_MINMAXINDEX_Peek(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); + + __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_begidx = __pyx_t_2; } /*finally:*/ { @@ -294239,32 +362890,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(struct __pyx_ob } } - __pyx_t_2 = (__pyx_v_retCode != 0); + __pyx_t_3 = (__pyx_v_retCode != 0); - if (__pyx_t_2) { + if (__pyx_t_3) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20412, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20412, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20412, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 25989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20412, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 25989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20412, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20412, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4) != (0)) __PYX_ERR(3, 25989, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 20412, __pyx_L1_error); - __pyx_t_3 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 25989, __pyx_L1_error); __pyx_t_4 = 0; __pyx_t_5 = 0; { @@ -294281,11 +362927,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(struct __pyx_ob /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -294299,30 +362944,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self) { - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self) { + int __pyx_v_outminidx; + int __pyx_v_outmaxidx; TA_RetCode __pyx_v_retCode; + int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; @@ -294342,7 +362987,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MACDEXT_Value(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + __pyx_v_retCode = TA_MINMAXINDEX_Value(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); + + __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_begidx = __pyx_t_2; } /*finally:*/ { @@ -294365,32 +363014,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(struct } } - __pyx_t_2 = (__pyx_v_retCode != 0); + __pyx_t_3 = (__pyx_v_retCode != 0); - if (__pyx_t_2) { + if (__pyx_t_3) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20425, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20425, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 26003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20425, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 26003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20425, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20425, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4) != (0)) __PYX_ERR(3, 26003, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 20425, __pyx_L1_error); - __pyx_t_3 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 26003, __pyx_L1_error); __pyx_t_4 = 0; __pyx_t_5 = 0; { @@ -294407,11 +363051,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(struct /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -294424,12 +363067,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MACDEXT_OutRange(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MINMAXINDEX_OutRange(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -294440,12 +363083,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__out_range(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MACDEXT_Advance(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MINMAXINDEX_Advance(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -294457,15 +363100,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__advance(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_10copy, "MACDEXT_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy, "MINMAXINDEX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -294491,16 +363134,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self) { - TA_MACDEXT_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self) { + TA_MINMAXINDEX_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -294517,18 +363160,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(struct __pyx_o __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20436, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream))))) __PYX_ERR(3, 20436, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream))))) __PYX_ERR(3, 26014, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -294542,7 +363185,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MACDEXT_Clone(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MINMAXINDEX_Clone(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -294585,7 +363228,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(struct __pyx_o if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20446, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -294607,7 +363250,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(struct __pyx_o __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -294620,19 +363263,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(struct __pyx_o /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -294646,7 +363289,7 @@ static void __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream___dealloc__(struct __pyx_o if (__pyx_t_1) { - (void)(TA_MACDFIX_Close(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MINUS_DI_Close(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -294672,27 +363315,29 @@ static void __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream___dealloc__(struct __pyx_o /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_signalperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -294708,61 +363353,75 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20472, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26048, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26048, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26048, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20472, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26048, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20472, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26048, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20472, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 20472, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26048, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 26048, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20472, __pyx_L3_error) + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26048, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26048, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26048, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20472, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26048, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20472, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26048, __pyx_L3_error) } else { - __pyx_v_signalperiod = ((int)-2147483648); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20472, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 26048, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_signalperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -294773,16 +363432,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_signalperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MACDFIX_Stream *__pyx_v_handle; - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; + TA_MINUS_DI_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -294797,31 +363456,47 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20473, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20474, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20474, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 26052, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 26052, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 26052, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20475, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26053, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20476, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26054, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20477, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26055, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20484, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26060, __pyx_L1_error) /*try:*/ { @@ -294831,9 +363506,9 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(struct __pyx_obj_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MACDFIX_Lookback(__pyx_v_signalperiod) + 1); + __pyx_v_need = (TA_MINUS_DI_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_MACDFIX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_signalperiod, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + __pyx_v_retCode = TA_MINUS_DI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -294850,7 +363525,7 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - (void)(TA_MACDFIX_Close(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MINUS_DI_Close(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -294918,7 +363593,7 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20501, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -294930,10 +363605,12 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(struct __pyx_obj_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -294943,37 +363620,37 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(struct __pyx_obj_ - - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill, "MACDFIX_Stream.open_and_fill(real, int signalperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill, "MINUS_DI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_signalperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -294989,61 +363666,75 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20503, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26079, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26079, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26079, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20503, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26079, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20503, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26079, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20503, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 20503, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26079, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 26079, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20503, __pyx_L3_error) + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26079, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26079, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26079, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20503, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26079, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20504, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26080, __pyx_L3_error) } else { - __pyx_v_signalperiod = ((int)-2147483648); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20503, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 26079, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_signalperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -295054,20 +363745,20 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_signalperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outmacd = 0; - PyArrayObject *__pyx_v_outmacdsignal = 0; - PyArrayObject *__pyx_v_outmacdhist = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MACDFIX_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_stream = 0; + TA_MINUS_DI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -295084,43 +363775,57 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObje PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20505, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20506, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20506, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26083, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 26084, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 26084, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 26084, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20507, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26085, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20508, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26086, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20509, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26087, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACDFIX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20517, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINUS_DI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20519, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26095, __pyx_L1_error) /*try:*/ { @@ -295130,7 +363835,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MACDFIX_Lookback(__pyx_v_signalperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -295143,19 +363848,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20523, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20524, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26099, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20525, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -295164,7 +363859,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MACDFIX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MINUS_DI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -295268,64 +363963,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20536, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20537, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20537, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20537, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 26111, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 26111, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 26111, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20537, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 20537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20537, __pyx_L1_error); - __pyx_t_15 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 20537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20537, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 20537, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 20537, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_15) != (0)) __PYX_ERR(3, 20537, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_15 = 0; - __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 20537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20537, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20537, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26111, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 26111, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_15; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_15 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -295333,20 +364007,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObje __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -295359,27 +364031,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_6update, "MACDFIX_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_6update, "MINUS_DI_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -295395,68 +364069,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20539, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26113, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26113, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20539, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20539, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20539, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26113, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 26113, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20539, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26113, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26113, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26113, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20540, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26114, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26114, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26114, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20539, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 26113, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -295473,7 +364158,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_6update(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MACDFIX_Update(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + __pyx_v_retCode = TA_MINUS_DI_Update(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -295501,54 +364186,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_6update(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20549, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20550, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20550, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20550, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 20550, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -295556,27 +364221,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_6update(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_8peek, "MACDFIX_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_8peek, "MINUS_DI_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -295592,68 +364259,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20552, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26124, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26124, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26124, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20552, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20552, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20552, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26124, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 26124, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20552, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26124, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26124, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26124, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20553, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26125, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26125, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26125, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20552, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 26124, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -295670,7 +364348,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_8peek(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MACDFIX_Peek(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + __pyx_v_retCode = TA_MINUS_DI_Peek(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -295698,54 +364376,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_8peek(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20562, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20563, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20563, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20563, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20563, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20563, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20563, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 20563, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -295753,33 +364411,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_8peek(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self) { - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -295796,7 +364449,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MACDFIX_Value(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + __pyx_v_retCode = TA_MINUS_DI_Value(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -295824,66 +364477,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20575, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20576, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20576, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20576, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20576, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20576, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20576, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(3, 20576, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MACDFIX_OutRange(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MINUS_DI_OutRange(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -295894,12 +364527,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__out_range(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MACDFIX_Advance(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MINUS_DI_Advance(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -295911,15 +364544,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__advance(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_10copy, "MACDFIX_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_10copy, "MINUS_DI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -295945,16 +364578,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self) { - TA_MACDFIX_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self) { + TA_MINUS_DI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -295971,18 +364604,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(struct __pyx_o __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20587, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream))))) __PYX_ERR(3, 20587, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream))))) __PYX_ERR(3, 26155, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -295996,7 +364629,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MACDFIX_Clone(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MINUS_DI_Clone(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -296039,7 +364672,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(struct __pyx_o if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20597, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -296061,7 +364694,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(struct __pyx_o __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -296074,19 +364707,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(struct __pyx_o /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11MAMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11MAMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -296100,7 +364733,7 @@ static void __pyx_pf_5talib_7_ta_lib_11MAMA_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_MAMA_Close(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MINUS_DM_Close(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -296126,23 +364759,23 @@ static void __pyx_pf_5talib_7_ta_lib_11MAMA_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - double __pyx_v_fastlimit; - double __pyx_v_slowlimit; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -296163,94 +364796,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20623, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26189, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26189, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26189, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26189, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20623, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 20623, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26189, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 26189, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26189, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20623, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26189, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26189, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20623, __pyx_L3_error) - } else { - __pyx_v_fastlimit = ((double)-4e37); - } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20623, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26189, __pyx_L3_error) } else { - __pyx_v_slowlimit = ((double)-4e37); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 20623, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 26189, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MAMA_Stream *__pyx_v_handle; - double __pyx_v_outmama; - double __pyx_v_outfama; + TA_MINUS_DM_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -296265,31 +364891,39 @@ static int __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20624, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20625, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20625, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 26192, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 26192, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20626, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26193, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20627, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26194, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20628, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26195, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20634, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26200, __pyx_L1_error) /*try:*/ { @@ -296299,9 +364933,9 @@ static int __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit) + 1); + __pyx_v_need = (TA_MINUS_DM_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_MAMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outmama), (&__pyx_v_outfama)); + __pyx_v_retCode = TA_MINUS_DM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -296318,7 +364952,7 @@ static int __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_MAMA_Close(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MINUS_DM_Close(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -296386,7 +365020,7 @@ static int __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20651, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -296398,10 +365032,11 @@ static int __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -296411,32 +365046,31 @@ static int __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(struct __pyx_obj_5ta - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill, "MAMA_Stream.open_and_fill(real, double fastlimit=-4e37, double slowlimit=-4e37)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill, "MINUS_DM_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - double __pyx_v_fastlimit; - double __pyx_v_slowlimit; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -296457,98 +365091,91 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20653, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26219, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20653, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20653, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20653, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20653, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 20653, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26219, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 26219, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20653, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20653, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26219, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20653, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26219, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20654, __pyx_L3_error) - } else { - __pyx_v_fastlimit = ((double)-4e37); - } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20654, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26220, __pyx_L3_error) } else { - __pyx_v_slowlimit = ((double)-4e37); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 20653, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 26219, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outmama = 0; - PyArrayObject *__pyx_v_outfama = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MAMA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_stream = 0; + TA_MINUS_DM_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -296565,42 +365192,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20655, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20656, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20656, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 26223, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 26223, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20657, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26224, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20658, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26225, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20659, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26226, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20666, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINUS_DM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20668, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26234, __pyx_L1_error) /*try:*/ { @@ -296610,7 +365244,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DM_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -296623,14 +365257,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20672, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmama = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20673, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26238, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfama = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -296639,7 +365268,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MAMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmama)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfama)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MINUS_DM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -296743,53 +365372,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20684, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20685, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20685, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmama)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20685, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 26250, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 26250, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20685, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfama)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 20685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20685, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 20685, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 20685, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 20685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20685, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20685, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26250, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 26250, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_14; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_14 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -296797,18 +365413,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outmama); - __Pyx_XDECREF((PyObject *)__pyx_v_outfama); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -296821,27 +365436,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAMA_Stream_6update, "MAMA_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_6update, "MINUS_DM_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -296857,66 +365473,71 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20687, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26252, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26252, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26252, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20687, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20687, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26252, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 26252, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26252, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26252, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20688, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26253, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26253, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20687, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26252, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outmama; - double __pyx_v_outfama; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -296933,7 +365554,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MAMA_Update(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmama), (&__pyx_v_outfama)); + __pyx_v_retCode = TA_MINUS_DM_Update(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -296961,47 +365582,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20696, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20697, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20697, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20697, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -297009,27 +365617,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAMA_Stream_8peek, "MAMA_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_8peek, "MINUS_DM_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -297045,66 +365654,71 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20699, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26263, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26263, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20699, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26263, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20699, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20699, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26263, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 26263, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20699, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26263, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26263, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20700, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26264, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26264, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20699, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26263, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outmama; - double __pyx_v_outfama; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -297121,7 +365735,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MAMA_Peek(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmama), (&__pyx_v_outfama)); + __pyx_v_retCode = TA_MINUS_DM_Peek(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -297149,47 +365763,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20708, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20709, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20709, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20709, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20709, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20709, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -297197,31 +365798,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self) { - double __pyx_v_outmama; - double __pyx_v_outfama; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -297238,7 +365836,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MAMA_Value(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmama), (&__pyx_v_outfama)); + __pyx_v_retCode = TA_MINUS_DM_Value(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -297266,59 +365864,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20720, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20721, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20721, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20721, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 20721, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 20721, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MAMA_OutRange(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MINUS_DM_OutRange(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -297329,12 +365914,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAMA_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MAMA_Advance(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MINUS_DM_Advance(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -297346,15 +365931,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAMA_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAMA_Stream_10copy, "MAMA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_10copy, "MINUS_DM_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -297380,16 +365965,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self) { - TA_MAMA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self) { + TA_MINUS_DM_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -297406,18 +365991,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20732, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream))))) __PYX_ERR(3, 20732, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream))))) __PYX_ERR(3, 26294, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -297431,7 +366016,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MAMA_Clone(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MINUS_DM_Clone(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -297474,7 +366059,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20742, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -297496,7 +366081,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -297509,19 +366094,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10MOM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10MOM_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10MOM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10MOM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -297535,7 +366120,7 @@ static void __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_MARKETFI_Close(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MOM_Close(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -297561,28 +366146,27 @@ static void __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10MOM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10MOM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_volume = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -297598,77 +366182,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20764, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26328, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20764, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26328, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26328, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20764, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 20764, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26328, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 26328, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20764, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20764, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20764, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26328, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26328, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26328, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_volume = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20764, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 26328, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_volume) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static int __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MARKETFI_Stream *__pyx_v_handle; + TA_MOM_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -297684,47 +366269,31 @@ static int __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20765, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20766, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20767, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20768, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20768, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20768, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 20768, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26330, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20769, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26331, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20770, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26332, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20771, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26333, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20776, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26338, __pyx_L1_error) /*try:*/ { @@ -297734,9 +366303,9 @@ static int __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MARKETFI_Lookback() + 1); + __pyx_v_need = (TA_MOM_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_MARKETFI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MOM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -297753,7 +366322,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_MARKETFI_Close(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MOM_Close(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -297821,7 +366390,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20793, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MOM_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -297833,12 +366402,10 @@ static int __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -297854,30 +366421,29 @@ static int __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill, "MARKETFI_Stream.open_and_fill(high, low, volume)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MOM_Stream_4open_and_fill, "MOM_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10MOM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MOM_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_volume = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -297893,72 +366459,73 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20795, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26357, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20795, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20795, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26357, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20795, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26357, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20795, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 20795, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26357, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 26357, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20795, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20795, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20795, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26357, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26357, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26358, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_volume = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20795, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 26357, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_volume) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -297967,8 +366534,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObj PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MARKETFI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_stream = 0; + TA_MOM_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -297990,52 +366557,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20797, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20798, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20799, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20800, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20800, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20800, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 20800, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26360, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20801, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26361, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20802, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26362, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20803, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26363, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MARKETFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20809, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MOM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20811, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26371, __pyx_L1_error) /*try:*/ { @@ -298045,7 +366596,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MARKETFI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_MOM_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -298058,7 +366609,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20815, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26375, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -298069,7 +366620,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MARKETFI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MOM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -298173,33 +366724,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20826, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MOM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20827, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20827, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20827, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_volume); - __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_volume) != (0)) __PYX_ERR(3, 20827, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20827, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 26387, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20827, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20827, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26387, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 20827, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 26387, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -298217,12 +366762,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -298241,29 +366784,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_6update, "MARKETFI_Stream.update(self, double high, double low, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MOM_Stream_6update, "MOM_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_volume; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -298279,72 +366820,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20829, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26389, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20829, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20829, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20829, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26389, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20829, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 20829, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26389, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 26389, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20829, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20829, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20829, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26389, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20830, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20830, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20830, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26390, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20829, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26389, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -298368,7 +366893,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MARKETFI_Update(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MOM_Update(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -298396,13 +366921,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_6update(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20837, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20838, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -298419,7 +366944,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_6update(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -298431,29 +366956,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_8peek, "MARKETFI_Stream.peek(self, double high, double low, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MOM_Stream_8peek, "MOM_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_volume; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -298469,72 +366992,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20840, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26400, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20840, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20840, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20840, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26400, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20840, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 20840, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26400, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 26400, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20840, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20840, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20840, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26400, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20841, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20841, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20841, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26401, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20840, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26400, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -298558,7 +367065,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MARKETFI_Peek(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MOM_Peek(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -298586,13 +367093,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_8peek(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20848, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20849, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -298609,7 +367116,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_8peek(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -298621,21 +367128,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -298659,7 +367166,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MARKETFI_Value(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MOM_Value(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -298687,13 +367194,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_5value___get__(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20859, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20860, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -298710,7 +367217,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_5value___get__(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -298721,12 +367228,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_5value___get__(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MOM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MARKETFI_OutRange(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MOM_OutRange(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -298737,12 +367244,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MOM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MARKETFI_Advance(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MOM_Advance(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -298754,15 +367261,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_10copy, "MARKETFI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MOM_Stream_10copy, "MOM_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -298788,16 +367295,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self) { - TA_MARKETFI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self) { + TA_MOM_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -298814,18 +367321,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20871, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream))))) __PYX_ERR(3, 20871, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream))))) __PYX_ERR(3, 26431, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -298839,7 +367346,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MARKETFI_Clone(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MOM_Clone(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -298882,7 +367389,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20881, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -298904,7 +367411,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -298917,19 +367424,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11MULT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11MULT_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_12MASSI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11MULT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_12MASSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11MULT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -298943,7 +367450,7 @@ static void __pyx_pf_5talib_7_ta_lib_12MASSI_Stream___dealloc__(struct __pyx_obj if (__pyx_t_1) { - (void)(TA_MASSI_Close(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MULT_Close(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -298969,29 +367476,27 @@ static void __pyx_pf_5talib_7_ta_lib_12MASSI_Stream___dealloc__(struct __pyx_obj /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11MULT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11MULT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -299007,100 +367512,69 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20906, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26464, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20906, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20906, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20906, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26464, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20906, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26464, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20906, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26464, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 20906, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20906, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20906, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20906, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20906, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 26464, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20906, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20906, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_slowperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26464, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26464, __pyx_L3_error) } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 20906, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26464, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; +static int __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MASSI_Stream *__pyx_v_handle; + TA_MULT_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -299116,39 +367590,39 @@ static int __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20907, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20908, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20909, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20909, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20909, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 26467, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 26467, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20910, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26468, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20911, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26469, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20912, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26470, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20917, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26475, __pyx_L1_error) /*try:*/ { @@ -299158,9 +367632,9 @@ static int __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(struct __pyx_obj_5t __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1); + __pyx_v_need = (TA_MULT_Lookback() + 1); - __pyx_v_retCode = TA_MASSI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MULT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -299177,7 +367651,7 @@ static int __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - (void)(TA_MASSI_Close(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_MULT_Close(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -299245,7 +367719,7 @@ static int __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20934, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MULT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -299257,11 +367731,11 @@ static int __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(struct __pyx_obj_5t goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); __Pyx_XDECREF(__pyx_v_arrays); @@ -299277,31 +367751,29 @@ static int __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill, "MASSI_Stream.open_and_fill(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MULT_Stream_4open_and_fill, "MULT_Stream.open_and_fill(real0, real1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11MULT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MULT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -299317,95 +367789,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20936, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26494, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20936, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20936, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26494, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26494, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20936, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26494, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 20936, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20936, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20936, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20936, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20936, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 26494, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20937, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20937, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_slowperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26494, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26494, __pyx_L3_error) } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 20936, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26494, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -299414,8 +367855,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MASSI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_stream = 0; + TA_MULT_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -299437,44 +367878,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20938, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20939, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20940, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20940, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20940, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 26498, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 26498, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20941, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26499, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20942, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26500, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20943, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26501, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MASSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20949, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MULT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 20951, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26509, __pyx_L1_error) /*try:*/ { @@ -299484,7 +367925,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MULT_Lookback()); } /*finally:*/ { @@ -299497,7 +367938,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20955, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26513, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -299508,7 +367949,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MASSI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MULT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -299612,30 +368053,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MASSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20966, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MULT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20967, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20967, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20967, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 20967, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real0); + __Pyx_GIVEREF(__pyx_v_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 26525, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_real1); + __Pyx_GIVEREF(__pyx_v_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 26525, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20967, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20967, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26525, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 20967, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 26525, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -299653,11 +368094,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); __Pyx_XDECREF(__pyx_v_arrays); @@ -299676,23 +368117,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12MASSI_Stream_6update, "MASSI_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MULT_Stream_6update, "MULT_Stream.update(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; + double __pyx_v_real0; + double __pyx_v_real1; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -299713,52 +368154,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20969, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26527, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26527, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26527, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20969, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26527, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 20969, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 26527, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26527, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26527, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20970, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20970, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26528, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26528, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20969, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26527, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -299770,7 +368211,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -299794,7 +368235,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_6update(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MASSI_Update(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MULT_Update(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); } /*finally:*/ { @@ -299822,13 +368263,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_6update(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20977, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20978, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -299845,7 +368286,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_6update(struct __pyx_ob /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -299857,23 +368298,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_6update(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12MASSI_Stream_8peek, "MASSI_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MULT_Stream_8peek, "MULT_Stream.peek(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; + double __pyx_v_real0; + double __pyx_v_real1; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -299894,52 +368335,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20980, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26538, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20980, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26538, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20980, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26538, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20980, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26538, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 20980, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 26538, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20980, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26538, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20980, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26538, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20981, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20981, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26539, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26539, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20980, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26538, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -299951,7 +368392,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -299975,7 +368416,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_8peek(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MASSI_Peek(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MULT_Peek(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); } /*finally:*/ { @@ -300003,13 +368444,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_8peek(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20988, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20989, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -300026,7 +368467,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_8peek(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -300038,21 +368479,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_8peek(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -300076,7 +368517,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_5value___get__(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MASSI_Value(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_MULT_Value(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -300104,13 +368545,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_5value___get__(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20999, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21000, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -300127,7 +368568,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_5value___get__(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -300138,12 +368579,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_5value___get__(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12MASSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MULT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MASSI_OutRange(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_MULT_OutRange(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -300154,12 +368595,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12MASSI_Stream__out_range(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12MASSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MULT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MASSI_Advance(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_MULT_Advance(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -300171,15 +368612,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12MASSI_Stream__advance(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12MASSI_Stream_10copy, "MASSI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MULT_Stream_10copy, "MULT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -300205,16 +368646,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self) { - TA_MASSI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self) { + TA_MULT_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -300231,18 +368672,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(struct __pyx_obj __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21011, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream))))) __PYX_ERR(3, 21011, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream))))) __PYX_ERR(3, 26569, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -300256,7 +368697,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MASSI_Clone(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_MULT_Clone(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -300299,7 +368740,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(struct __pyx_obj if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21021, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -300321,7 +368762,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(struct __pyx_obj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -300334,19 +368775,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(struct __pyx_obj /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11NATR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11NATR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11MAVP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11NATR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11MAVP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11NATR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -300360,7 +368801,7 @@ static void __pyx_pf_5talib_7_ta_lib_11MAVP_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_MAVP_Close(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_NATR_Close(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -300386,30 +368827,29 @@ static void __pyx_pf_5talib_7_ta_lib_11MAVP_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11NATR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11NATR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - PyObject *__pyx_v_periods = 0; - int __pyx_v_minperiod; - int __pyx_v_maxperiod; - int __pyx_v_matype; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -300425,114 +368865,94 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21048, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26603, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21048, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21048, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26603, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21048, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26603, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21048, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26603, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21048, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26603, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21048, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, i); __PYX_ERR(3, 21048, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26603, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 26603, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21048, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21048, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26603, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21048, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26603, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21048, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26603, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21048, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26603, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - __pyx_v_periods = values[1]; - if (values[2]) { - __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21048, __pyx_L3_error) - } else { - __pyx_v_minperiod = ((int)-2147483648); - } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21048, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26603, __pyx_L3_error) } else { - __pyx_v_maxperiod = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21048, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)0); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 21048, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 26603, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, PyObject *__pyx_v_real, PyObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) { - PyArrayObject *__pyx_v_a_real = 0; - PyArrayObject *__pyx_v_a_periods = 0; +static int __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MAVP_Stream *__pyx_v_handle; + TA_NATR_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -300548,39 +368968,47 @@ static int __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21049, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21050, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_periods = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21051, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21051, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_periods); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_periods); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_periods)) != (0)) __PYX_ERR(3, 21051, __pyx_L1_error); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 26607, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 26607, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 26607, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21052, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26608, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21053, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26609, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21054, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26610, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21059, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26615, __pyx_L1_error) /*try:*/ { @@ -300590,9 +369018,9 @@ static int __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype) + 1); + __pyx_v_need = (TA_NATR_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_MAVP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_periods)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_NATR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -300609,7 +369037,7 @@ static int __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_MAVP_Close(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_NATR_Close(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -300677,7 +369105,7 @@ static int __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21076, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NATR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -300689,11 +369117,12 @@ static int __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); - __Pyx_XDECREF((PyObject *)__pyx_v_a_periods); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -300709,32 +369138,31 @@ static int __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill, "MAVP_Stream.open_and_fill(real, periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11NATR_Stream_4open_and_fill, "NATR_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11NATR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11NATR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - PyObject *__pyx_v_periods = 0; - int __pyx_v_minperiod; - int __pyx_v_maxperiod; - int __pyx_v_matype; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -300750,109 +369178,89 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21078, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26634, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21078, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26634, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26634, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26634, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26634, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21078, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, i); __PYX_ERR(3, 21078, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26634, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 26634, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21078, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26634, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21078, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26634, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26634, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26634, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - __pyx_v_periods = values[1]; - if (values[2]) { - __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21079, __pyx_L3_error) - } else { - __pyx_v_minperiod = ((int)-2147483648); - } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21079, __pyx_L3_error) - } else { - __pyx_v_maxperiod = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21079, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26635, __pyx_L3_error) } else { - __pyx_v_matype = ((int)0); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 21078, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 26634, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(__pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject *__pyx_v_real, PyObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) { - PyArrayObject *__pyx_v_a_real = 0; - PyArrayObject *__pyx_v_a_periods = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -300861,8 +369269,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MAVP_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_stream = 0; + TA_NATR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -300884,44 +369292,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21080, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21081, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_periods = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21082, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21082, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_periods); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_periods); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_periods)) != (0)) __PYX_ERR(3, 21082, __pyx_L1_error); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 26639, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 26639, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 26639, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21083, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26640, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21084, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26641, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21085, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26642, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAVP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21091, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_NATR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21093, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26650, __pyx_L1_error) /*try:*/ { @@ -300931,7 +369347,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_NATR_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -300944,7 +369360,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21097, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26654, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -300955,7 +369371,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MAVP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_periods)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_NATR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -301059,30 +369475,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAVP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21108, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NATR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21109, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21109, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_periods); - __Pyx_GIVEREF(__pyx_v_periods); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_periods) != (0)) __PYX_ERR(3, 21109, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 21109, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 26666, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 26666, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 26666, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21109, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21109, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26666, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 21109, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 26666, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -301100,11 +369519,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); - __Pyx_XDECREF((PyObject *)__pyx_v_a_periods); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -301123,28 +369543,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAVP_Stream_6update, "MAVP_Stream.update(self, double real, double periods)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11NATR_Stream_6update, "NATR_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; - double __pyx_v_periods; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -301160,52 +369581,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21111, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26668, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26668, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21111, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26668, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21111, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26668, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21111, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 21111, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26668, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 26668, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21111, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26668, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21111, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26668, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26668, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21112, __pyx_L3_error) - __pyx_v_periods = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_periods == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21112, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26669, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26669, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26669, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21111, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 26668, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_periods); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -301213,11 +369641,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_periods) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -301241,7 +369670,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MAVP_Update(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_periods, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_NATR_Update(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -301269,13 +369698,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21119, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21120, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -301292,7 +369721,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -301304,28 +369733,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAVP_Stream_8peek, "MAVP_Stream.peek(self, double real, double periods)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11NATR_Stream_8peek, "NATR_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; - double __pyx_v_periods; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -301341,52 +369771,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21122, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26679, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26679, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26679, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26679, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21122, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 21122, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26679, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 26679, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26679, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21122, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26679, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26679, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21123, __pyx_L3_error) - __pyx_v_periods = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_periods == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21123, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26680, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26680, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26680, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21122, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 26679, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_periods); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -301394,11 +369831,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_periods) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -301422,7 +369860,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MAVP_Peek(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_periods, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_NATR_Peek(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -301450,13 +369888,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21130, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21131, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -301473,7 +369911,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -301485,21 +369923,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -301523,7 +369961,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MAVP_Value(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_NATR_Value(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -301551,13 +369989,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21141, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21142, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -301574,7 +370012,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -301585,12 +370023,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAVP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11NATR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MAVP_OutRange(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_NATR_OutRange(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -301601,12 +370039,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAVP_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAVP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11NATR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MAVP_Advance(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_NATR_Advance(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -301618,15 +370056,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAVP_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAVP_Stream_10copy, "MAVP_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11NATR_Stream_10copy, "NATR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -301652,16 +370090,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self) { - TA_MAVP_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self) { + TA_NATR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -301678,18 +370116,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21153, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream))))) __PYX_ERR(3, 21153, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream))))) __PYX_ERR(3, 26710, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -301703,7 +370141,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MAVP_Clone(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_NATR_Clone(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -301746,7 +370184,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21163, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -301768,7 +370206,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -301781,19 +370219,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10MAX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10MAX_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10NVI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10NVI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10MAX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10NVI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10MAX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10NVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -301807,7 +370245,7 @@ static void __pyx_pf_5talib_7_ta_lib_10MAX_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_MAX_Close(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_NVI_Close(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -301833,22 +370271,22 @@ static void __pyx_pf_5talib_7_ta_lib_10MAX_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10MAX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10NVI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10MAX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10NVI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -301869,78 +370307,69 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21187, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26742, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26742, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26742, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21187, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 21187, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21187, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21187, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26742, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 26742, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21187, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26742, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26742, __pyx_L3_error) } + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21187, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26742, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MAX_Stream *__pyx_v_handle; + TA_NVI_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -301956,31 +370385,39 @@ static int __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21188, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21189, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21189, __pyx_L1_error); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26745, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 26745, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 26745, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21190, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26746, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21191, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26747, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21192, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26748, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21197, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26753, __pyx_L1_error) /*try:*/ { @@ -301990,9 +370427,9 @@ static int __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MAX_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_NVI_Lookback() + 1); - __pyx_v_retCode = TA_MAX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_NVI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -302009,7 +370446,7 @@ static int __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_MAX_Close(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_NVI_Close(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -302077,7 +370514,7 @@ static int __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21214, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NVI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -302089,10 +370526,11 @@ static int __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -302108,24 +370546,24 @@ static int __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MAX_Stream_4open_and_fill, "MAX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10MAX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MAX_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10NVI_Stream_4open_and_fill, "NVI_Stream.open_and_fill(close, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10NVI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10NVI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -302146,73 +370584,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21216, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26772, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21216, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26772, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21216, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26772, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21216, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21216, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21216, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21216, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26772, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 26772, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21217, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26772, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26772, __pyx_L3_error) } + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21216, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26772, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(__pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -302221,8 +370650,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MAX_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_stream = 0; + TA_NVI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -302244,36 +370673,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21218, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21219, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21219, __pyx_L1_error); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 26776, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 26776, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21220, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26777, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21221, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26778, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21222, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26779, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21228, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_NVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21230, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26787, __pyx_L1_error) /*try:*/ { @@ -302283,7 +370720,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MAX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_NVI_Lookback()); } /*finally:*/ { @@ -302296,7 +370733,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21234, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26791, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -302307,7 +370744,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MAX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_NVI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -302411,27 +370848,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21245, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21246, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21246, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 21246, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 26803, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 26803, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21246, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21246, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26803, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 21246, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 26803, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -302449,10 +370889,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -302471,27 +370912,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MAX_Stream_6update, "MAX_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10NVI_Stream_6update, "NVI_Stream.update(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -302507,56 +370949,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21248, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26805, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26805, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21248, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26805, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21248, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21248, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26805, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 26805, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21248, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26805, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26805, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21249, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26806, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26806, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21248, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26805, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -302580,7 +371030,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MAX_Update(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_NVI_Update(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -302608,13 +371058,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21256, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21257, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -302631,7 +371081,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -302643,27 +371093,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MAX_Stream_8peek, "MAX_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10NVI_Stream_8peek, "NVI_Stream.peek(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -302679,56 +371130,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21259, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26816, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26816, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21259, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26816, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21259, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21259, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26816, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 26816, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21259, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26816, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26816, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21260, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26817, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26817, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21259, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26816, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -302752,7 +371211,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MAX_Peek(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_NVI_Peek(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -302780,13 +371239,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21267, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21268, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -302803,7 +371262,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -302815,21 +371274,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -302853,7 +371312,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MAX_Value(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_NVI_Value(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -302881,13 +371340,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21278, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21279, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -302904,7 +371363,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -302915,12 +371374,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10MAX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10NVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MAX_OutRange(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_NVI_OutRange(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -302931,12 +371390,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10MAX_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10MAX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10NVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MAX_Advance(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_NVI_Advance(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -302948,15 +371407,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10MAX_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MAX_Stream_10copy, "MAX_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10NVI_Stream_10copy, "NVI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -302982,16 +371441,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self) { - TA_MAX_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self) { + TA_NVI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -303008,18 +371467,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21290, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream))))) __PYX_ERR(3, 21290, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream))))) __PYX_ERR(3, 26847, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -303033,7 +371492,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MAX_Clone(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_NVI_Clone(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -303076,7 +371535,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21300, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -303098,7 +371557,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -303111,19 +371570,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10OBV_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10OBV_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10OBV_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10OBV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -303137,7 +371596,7 @@ static void __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_MAXINDEX_Close(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_OBV_Close(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -303163,14 +371622,14 @@ static void __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10OBV_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10OBV_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -303178,7 +371637,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -303199,79 +371658,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21324, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26880, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21324, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 21324, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26880, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 26880, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21324, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21324, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26880, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26880, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21324, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21324, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26880, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, PyObject *__pyx_v_real, PyObject *__pyx_v_volume) { PyArrayObject *__pyx_v_a_real = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MAXINDEX_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_OBV_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -303286,31 +371736,39 @@ static int __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21325, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21326, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26882, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21326, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26883, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 26883, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21327, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26884, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21328, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26885, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21329, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26886, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21334, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26891, __pyx_L1_error) /*try:*/ { @@ -303320,9 +371778,9 @@ static int __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MAXINDEX_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_OBV_Lookback() + 1); - __pyx_v_retCode = TA_MAXINDEX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_OBV_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -303339,7 +371797,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_MAXINDEX_Close(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_OBV_Close(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -303407,7 +371865,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21351, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_OBV_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -303419,10 +371877,11 @@ static int __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -303438,16 +371897,16 @@ static int __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill, "MAXINDEX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10OBV_Stream_4open_and_fill, "OBV_Stream.open_and_fill(real, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10OBV_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10OBV_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -303455,7 +371914,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -303476,86 +371935,75 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21353, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26910, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26910, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26910, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21353, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21353, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26910, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 26910, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21353, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21353, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26910, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26910, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21354, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21353, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26910, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(__pyx_v_real, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject *__pyx_v_real, PyObject *__pyx_v_volume) { PyArrayObject *__pyx_v_a_real = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MAXINDEX_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_stream = 0; + TA_OBV_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; - npy_intp __pyx_v_i; - int *__pyx_v_outinteger_data; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -303570,45 +372018,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObj PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - npy_intp __pyx_t_13; - npy_intp __pyx_t_14; - npy_intp __pyx_t_15; - PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21355, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21356, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21356, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26914, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 26914, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21357, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26915, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21358, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26916, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21359, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26917, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAXINDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21365, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_OBV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21367, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26925, __pyx_L1_error) /*try:*/ { @@ -303618,7 +372071,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MAXINDEX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_OBV_Lookback()); } /*finally:*/ { @@ -303631,9 +372084,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21371, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26929, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -303642,7 +372095,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MAXINDEX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_OBV_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -303746,43 +372199,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21382, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_OBV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); - - - __pyx_t_2 = __pyx_v_length; - __pyx_t_13 = __pyx_t_2; - - for (__pyx_t_14 = __pyx_v_lookback; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { - __pyx_v_i = __pyx_t_14; - - - __pyx_t_15 = __pyx_v_i; - (__pyx_v_outinteger_data[__pyx_t_15]) = ((__pyx_v_outinteger_data[__pyx_t_15]) + __pyx_v_begidx); - } - - - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21387, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21387, __pyx_L1_error); - __pyx_t_16 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 21387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 26941, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 26941, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21387, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21387, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_16); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_16) != (0)) __PYX_ERR(3, 21387, __pyx_L1_error); - __pyx_t_16 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26941, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 26941, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { @@ -303798,24 +372239,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_16); - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_stream); - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -303823,15 +372263,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_6update, "MAXINDEX_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10OBV_Stream_6update, "OBV_Stream.update(self, double real, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -303839,11 +372279,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { double __pyx_v_real; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -303859,65 +372300,71 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21389, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26943, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26943, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21389, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26943, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21389, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21389, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26943, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 26943, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21389, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26943, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26943, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21390, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26944, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26944, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21389, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26943, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, double __pyx_v_real) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -303934,11 +372381,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MAXINDEX_Update(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); - - __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; - - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_OBV_Update(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -303961,40 +372404,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_6update(struct __pyx } } - __pyx_t_3 = (__pyx_v_retCode != 0); + __pyx_t_2 = (__pyx_v_retCode != 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21400, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -304002,15 +372444,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_8peek, "MAXINDEX_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10OBV_Stream_8peek, "OBV_Stream.peek(self, double real, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -304018,11 +372460,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { double __pyx_v_real; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -304038,65 +372481,71 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21402, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26954, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26954, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26954, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21402, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21402, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26954, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 26954, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21402, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26954, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26954, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21403, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26955, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26955, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21402, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26954, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, double __pyx_v_real) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -304113,11 +372562,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MAXINDEX_Peek(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); - - __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; - - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_OBV_Peek(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -304140,40 +372585,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_8peek(struct __pyx_o } } - __pyx_t_3 = (__pyx_v_retCode != 0); + __pyx_t_2 = (__pyx_v_retCode != 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21412, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21413, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -304181,30 +372625,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -304221,11 +372663,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MAXINDEX_Value(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); - - __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; - - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_OBV_Value(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -304248,52 +372686,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_5value___get__(struc } } - __pyx_t_3 = (__pyx_v_retCode != 0); + __pyx_t_2 = (__pyx_v_retCode != 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26973, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21426, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10OBV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MAXINDEX_OutRange(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_OBV_OutRange(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -304304,12 +372741,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10OBV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MAXINDEX_Advance(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_OBV_Advance(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -304321,15 +372758,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_10copy, "MAXINDEX_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10OBV_Stream_10copy, "OBV_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -304355,16 +372792,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self) { - TA_MAXINDEX_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self) { + TA_OBV_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -304381,18 +372818,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21437, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream))))) __PYX_ERR(3, 21437, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream))))) __PYX_ERR(3, 26985, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -304406,7 +372843,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MAXINDEX_Clone(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_OBV_Clone(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -304449,7 +372886,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21447, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -304471,7 +372908,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -304484,19 +372921,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -304510,7 +372947,7 @@ static void __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_MEDPRICE_Close(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PERCENTB_Close(((TA_PERCENTB_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -304536,27 +372973,30 @@ static void __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -304572,69 +373012,120 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21469, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27022, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27022, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27022, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27022, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21469, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27022, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21469, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27022, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21469, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 21469, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27022, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, i); __PYX_ERR(3, 27022, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21469, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21469, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27022, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27022, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27022, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27022, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27022, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27022, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27022, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)-4e37); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27022, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)-4e37); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27022, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21469, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 27022, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTB_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; +static int __pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MEDPRICE_Stream *__pyx_v_handle; + TA_PERCENTB_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -304650,39 +373141,31 @@ static int __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21471, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21472, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21472, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21472, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27024, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21473, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27025, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21474, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27026, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21475, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27027, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21480, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27032, __pyx_L1_error) /*try:*/ { @@ -304692,9 +373175,9 @@ static int __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MEDPRICE_Lookback() + 1); + __pyx_v_need = (TA_PERCENTB_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype) + 1); - __pyx_v_retCode = TA_MEDPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PERCENTB_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -304711,7 +373194,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_MEDPRICE_Close(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PERCENTB_Close(((TA_PERCENTB_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -304779,7 +373262,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21497, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTB_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -304791,11 +373274,10 @@ static int __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTB_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -304811,29 +373293,32 @@ static int __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill, "MEDPRICE_Stream.open_and_fill(high, low)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15PERCENTB_Stream_4open_and_fill, "PERCENTB_Stream.open_and_fill(real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15PERCENTB_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15PERCENTB_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -304849,64 +373334,115 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21499, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27051, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27051, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27051, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27051, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21499, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27051, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21499, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27051, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21499, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 21499, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27051, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, i); __PYX_ERR(3, 27051, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21499, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21499, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27051, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27051, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27051, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27051, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27051, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27052, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27052, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)-4e37); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27052, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)-4e37); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27052, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21499, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 27051, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTB_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -304915,8 +373451,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObj PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MEDPRICE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_stream = 0; + TA_PERCENTB_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -304938,44 +373474,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21501, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21502, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21503, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21503, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21503, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27054, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21504, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27055, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21505, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27056, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21506, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27057, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MEDPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21512, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PERCENTB_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21514, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27065, __pyx_L1_error) /*try:*/ { @@ -304985,7 +373513,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MEDPRICE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTB_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); } /*finally:*/ { @@ -304998,7 +373526,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21518, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27069, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -305009,7 +373537,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MEDPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PERCENTB_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -305113,30 +373641,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21529, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTB_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21530, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21530, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21530, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 21530, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 27081, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21530, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21530, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27081, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 21530, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 27081, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -305154,11 +373679,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTB_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -305177,28 +373701,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_6update, "MEDPRICE_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15PERCENTB_Stream_6update, "PERCENTB_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -305214,64 +373737,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21532, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27083, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21532, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27083, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21532, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 21532, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27083, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 27083, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21532, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27083, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21533, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21533, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27084, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21532, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27083, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTB_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -305295,7 +373810,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MEDPRICE_Update(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PERCENTB_Update(((TA_PERCENTB_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -305323,13 +373838,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_6update(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21540, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTB_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21541, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -305346,7 +373861,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_6update(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTB_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -305358,28 +373873,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_8peek, "MEDPRICE_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15PERCENTB_Stream_8peek, "PERCENTB_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -305395,64 +373909,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21543, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27094, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21543, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27094, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21543, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 21543, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27094, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 27094, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21543, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27094, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21544, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21544, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27095, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21543, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27094, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTB_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -305476,7 +373982,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MEDPRICE_Peek(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PERCENTB_Peek(((TA_PERCENTB_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -305504,13 +374010,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_8peek(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21551, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTB_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21552, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -305527,7 +374033,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_8peek(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTB_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -305539,21 +374045,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -305577,7 +374083,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MEDPRICE_Value(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PERCENTB_Value(((TA_PERCENTB_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -305605,13 +374111,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_5value___get__(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21562, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTB_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21563, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -305628,7 +374134,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_5value___get__(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTB_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -305639,12 +374145,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_5value___get__(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15PERCENTB_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MEDPRICE_OutRange(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_PERCENTB_OutRange(((TA_PERCENTB_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -305655,12 +374161,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15PERCENTB_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MEDPRICE_Advance(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_PERCENTB_Advance(((TA_PERCENTB_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -305672,15 +374178,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_10copy, "MEDPRICE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15PERCENTB_Stream_10copy, "PERCENTB_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -305706,16 +374212,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self) { - TA_MEDPRICE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15PERCENTB_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_self) { + TA_PERCENTB_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -305732,18 +374238,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21574, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream))))) __PYX_ERR(3, 21574, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream))))) __PYX_ERR(3, 27125, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -305757,7 +374263,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MEDPRICE_Clone(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_PERCENTB_Clone(((TA_PERCENTB_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -305800,7 +374306,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21584, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTB_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -305822,7 +374328,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTB_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -305835,19 +374341,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10MFI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10MFI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10MFI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10MFI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -305861,7 +374367,7 @@ static void __pyx_pf_5talib_7_ta_lib_10MFI_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_MFI_Close(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PERCENTILE_Close(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -305887,30 +374393,28 @@ static void __pyx_pf_5talib_7_ta_lib_10MFI_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10MFI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10MFI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + double __pyx_v_percentile; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -305926,102 +374430,92 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21608, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27160, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21608, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21608, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21608, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27160, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21608, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27160, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21608, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27160, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21608, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 21608, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27160, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 27160, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21608, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21608, __pyx_L3_error) + case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21608, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27160, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21608, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27160, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21608, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27160, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - __pyx_v_volume = values[3]; - if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21608, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27160, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[2]) { + __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27160, __pyx_L3_error) + } else { + __pyx_v_percentile = ((double)50.0); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 21608, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 27160, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static int __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MFI_Stream *__pyx_v_handle; + TA_PERCENTILE_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -306037,55 +374531,31 @@ static int __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21609, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21611, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21612, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21613, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21613, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21613, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21613, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 21613, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27162, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21614, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27163, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21615, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27164, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21616, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27165, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21621, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27170, __pyx_L1_error) /*try:*/ { @@ -306095,9 +374565,9 @@ static int __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MFI_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile) + 1); - __pyx_v_retCode = TA_MFI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PERCENTILE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -306114,7 +374584,7 @@ static int __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_MFI_Close(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PERCENTILE_Close(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -306182,7 +374652,7 @@ static int __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MFI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21638, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -306194,13 +374664,10 @@ static int __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -306216,32 +374683,30 @@ static int __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MFI_Stream_4open_and_fill, "MFI_Stream.open_and_fill(high, low, close, volume, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10MFI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MFI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill, "PERCENTILE_Stream.open_and_fill(real, int timeperiod=-0x80000000, double percentile=50.0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + double __pyx_v_percentile; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -306257,97 +374722,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21640, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27189, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21640, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21640, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21640, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27189, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21640, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27189, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21640, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27189, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21640, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 21640, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27189, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 27189, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21640, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21640, __pyx_L3_error) + case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21640, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27189, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21640, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27189, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21640, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27189, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - __pyx_v_volume = values[3]; - if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21641, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27190, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[2]) { + __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27190, __pyx_L3_error) + } else { + __pyx_v_percentile = ((double)50.0); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 21640, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 27189, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -306356,8 +374811,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MFI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_stream = 0; + TA_PERCENTILE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -306379,60 +374834,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21644, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21645, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21646, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21646, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21646, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21646, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 21646, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27192, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21647, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27193, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21648, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27194, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21649, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27195, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21655, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PERCENTILE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21657, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27203, __pyx_L1_error) /*try:*/ { @@ -306442,7 +374873,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MFI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile)); } /*finally:*/ { @@ -306455,7 +374886,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21661, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27207, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -306466,7 +374897,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MFI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PERCENTILE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -306570,36 +375001,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21672, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21673, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21673, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21673, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21673, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_volume); - __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 21673, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 21673, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 27219, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21673, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21673, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27219, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 21673, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 27219, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -306617,13 +375039,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -306642,30 +375061,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MFI_Stream_6update, "MFI_Stream.update(self, double high, double low, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_6update, "PERCENTILE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; - double __pyx_v_volume; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -306681,80 +375097,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21675, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27221, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21675, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21675, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21675, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21675, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27221, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21675, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 21675, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27221, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 27221, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21675, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21675, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21675, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21675, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27221, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21676, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21676, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21676, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21676, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27222, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21675, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27221, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -306778,7 +375170,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MFI_Update(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PERCENTILE_Update(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -306806,13 +375198,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21683, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21684, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -306829,7 +375221,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -306841,30 +375233,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MFI_Stream_8peek, "MFI_Stream.peek(self, double high, double low, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_8peek, "PERCENTILE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; - double __pyx_v_volume; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -306880,80 +375269,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21686, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27232, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21686, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21686, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21686, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27232, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21686, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 21686, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27232, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 27232, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21686, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21686, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21686, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27232, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21687, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21687, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21687, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21687, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27233, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21686, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27232, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -306977,7 +375342,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MFI_Peek(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PERCENTILE_Peek(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -307005,13 +375370,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21694, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21695, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -307028,7 +375393,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -307040,21 +375405,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -307078,7 +375443,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MFI_Value(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PERCENTILE_Value(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -307106,13 +375471,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21705, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21706, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -307129,7 +375494,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -307140,12 +375505,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10MFI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MFI_OutRange(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_PERCENTILE_OutRange(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -307156,12 +375521,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10MFI_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10MFI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MFI_Advance(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_PERCENTILE_Advance(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -307173,15 +375538,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10MFI_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MFI_Stream_10copy, "MFI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_10copy, "PERCENTILE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -307207,16 +375572,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self) { - TA_MFI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self) { + TA_PERCENTILE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -307233,18 +375598,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21717, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream))))) __PYX_ERR(3, 21717, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream))))) __PYX_ERR(3, 27263, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -307258,7 +375623,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MFI_Clone(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_PERCENTILE_Clone(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -307301,7 +375666,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21727, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -307323,7 +375688,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -307336,19 +375701,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -307362,7 +375727,7 @@ static void __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_MIDPOINT_Close(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PERCENTRANK_Close(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -307388,14 +375753,14 @@ static void __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -307426,59 +375791,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21751, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27297, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21751, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27297, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21751, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27297, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21751, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27297, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 21751, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 27297, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21751, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27297, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21751, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27297, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21751, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27297, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21751, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 27297, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -307489,13 +375854,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MIDPOINT_Stream *__pyx_v_handle; + TA_PERCENTRANK_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -307511,31 +375876,31 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21752, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21753, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21753, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27299, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21754, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27300, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21755, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27301, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21756, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27302, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21761, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27307, __pyx_L1_error) /*try:*/ { @@ -307545,9 +375910,9 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MIDPOINT_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_PERCENTRANK_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_MIDPOINT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PERCENTRANK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -307564,7 +375929,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_MIDPOINT_Close(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PERCENTRANK_Close(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -307632,7 +375997,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21778, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -307644,7 +376009,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -307663,16 +376028,16 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill, "MIDPOINT_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill, "PERCENTRANK_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -307703,59 +376068,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21780, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27326, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21780, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21780, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21780, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27326, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21780, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 27326, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21780, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21780, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27326, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21781, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27327, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21780, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 27326, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -307766,7 +376131,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -307776,8 +376141,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObj PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MIDPOINT_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_stream = 0; + TA_PERCENTRANK_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -307799,36 +376164,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21782, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21783, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21783, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27329, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21784, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27330, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21785, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27331, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21786, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27332, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIDPOINT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21792, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PERCENTRANK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21794, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27340, __pyx_L1_error) /*try:*/ { @@ -307838,7 +376203,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPOINT_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTRANK_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -307851,7 +376216,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21798, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27344, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -307862,7 +376227,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MIDPOINT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PERCENTRANK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -307966,27 +376331,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21809, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21810, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21810, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 21810, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 27356, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21810, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21810, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27356, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 21810, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 27356, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -308004,7 +376369,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -308026,15 +376391,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_6update, "MIDPOINT_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_6update, "PERCENTRANK_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -308064,43 +376429,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21812, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27358, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21812, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27358, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21812, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27358, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21812, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 27358, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21812, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27358, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21813, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27359, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21812, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27358, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -308111,7 +376476,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -308135,7 +376500,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MIDPOINT_Update(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PERCENTRANK_Update(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -308163,13 +376528,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_6update(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21820, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21821, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -308186,7 +376551,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_6update(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -308198,15 +376563,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_8peek, "MIDPOINT_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek, "PERCENTRANK_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -308236,43 +376601,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21823, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27369, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21823, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27369, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21823, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27369, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21823, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 27369, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21823, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27369, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21824, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27370, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21823, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27369, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -308283,7 +376648,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -308307,7 +376672,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MIDPOINT_Peek(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PERCENTRANK_Peek(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -308335,13 +376700,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_8peek(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21831, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21832, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -308358,7 +376723,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_8peek(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -308370,21 +376735,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -308408,7 +376773,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MIDPOINT_Value(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PERCENTRANK_Value(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -308436,13 +376801,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_5value___get__(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21842, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21843, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -308459,7 +376824,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_5value___get__(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -308470,12 +376835,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_5value___get__(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MIDPOINT_OutRange(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_PERCENTRANK_OutRange(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -308486,12 +376851,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MIDPOINT_Advance(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_PERCENTRANK_Advance(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -308503,15 +376868,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_10copy, "MIDPOINT_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy, "PERCENTRANK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -308537,16 +376902,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self) { - TA_MIDPOINT_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self) { + TA_PERCENTRANK_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -308563,18 +376928,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21854, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream))))) __PYX_ERR(3, 21854, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream))))) __PYX_ERR(3, 27400, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -308588,7 +376953,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MIDPOINT_Clone(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_PERCENTRANK_Clone(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -308631,7 +376996,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21864, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -308653,7 +377018,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -308666,19 +377031,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -308692,7 +377057,7 @@ static void __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_MIDPRICE_Close(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PLUS_DI_Close(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -308718,14 +377083,14 @@ static void __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -308734,12 +377099,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -308755,68 +377121,75 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21888, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27434, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27434, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21888, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21888, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21888, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21888, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 21888, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27434, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 27434, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27434, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21888, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27434, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21888, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27434, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21888, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27434, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = values[0]; __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21888, __pyx_L3_error) + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27434, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 21888, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 27434, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -308827,14 +377200,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MIDPRICE_Stream *__pyx_v_handle; + TA_PLUS_DI_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -308850,39 +377224,47 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21889, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21890, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21891, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21891, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 27438, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21891, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 27438, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 27438, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21892, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27439, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21893, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27440, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21894, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27441, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21899, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27446, __pyx_L1_error) /*try:*/ { @@ -308892,9 +377274,9 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MIDPRICE_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_PLUS_DI_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_MIDPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PLUS_DI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -308911,7 +377293,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_MIDPRICE_Close(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PLUS_DI_Close(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -308979,7 +377361,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21916, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -308991,11 +377373,12 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -309011,16 +377394,16 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill, "MIDPRICE_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill, "PLUS_DI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -309029,12 +377412,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -309050,68 +377434,75 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21918, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27465, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27465, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21918, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 21918, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27465, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 27465, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27465, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21918, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27465, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27465, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27465, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = values[0]; __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21919, __pyx_L3_error) + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27466, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 21918, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 27465, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -309122,9 +377513,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -309133,8 +377525,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObj PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MIDPRICE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_stream = 0; + TA_PLUS_DI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -309156,44 +377548,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21920, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21921, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21922, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21922, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 27470, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21922, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 27470, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 27470, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21923, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27471, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21924, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27472, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21925, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27473, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIDPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21931, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PLUS_DI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 21933, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27481, __pyx_L1_error) /*try:*/ { @@ -309203,7 +377603,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPRICE_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -309216,7 +377616,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21937, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27485, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -309227,7 +377627,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MIDPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PLUS_DI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -309331,30 +377731,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21948, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21949, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21949, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 27497, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21949, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 21949, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 27497, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 27497, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21949, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21949, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27497, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 21949, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 27497, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -309372,11 +377775,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -309395,15 +377799,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_6update, "MIDPRICE_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_6update, "PLUS_DI_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -309412,11 +377816,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -309432,52 +377837,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21951, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27499, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27499, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27499, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27499, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21951, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 21951, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27499, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 27499, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27499, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27499, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27499, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21952, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21952, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27500, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27500, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27500, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21951, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 27499, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -309485,11 +377897,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -309513,7 +377926,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MIDPRICE_Update(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PLUS_DI_Update(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -309541,13 +377954,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_6update(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21959, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21960, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -309564,7 +377977,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_6update(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -309576,15 +377989,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_8peek, "MIDPRICE_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_8peek, "PLUS_DI_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -309593,11 +378006,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -309613,52 +378027,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21962, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27510, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27510, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27510, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27510, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21962, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 21962, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27510, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 27510, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27510, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27510, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27510, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21963, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21963, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27511, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27511, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27511, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21962, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 27510, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -309666,11 +378087,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -309694,7 +378116,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MIDPRICE_Peek(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PLUS_DI_Peek(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -309722,13 +378144,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_8peek(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21970, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21971, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -309745,7 +378167,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_8peek(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -309757,21 +378179,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -309795,7 +378217,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MIDPRICE_Value(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PLUS_DI_Value(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -309823,13 +378245,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_5value___get__(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21981, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21982, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -309846,7 +378268,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_5value___get__(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -309857,12 +378279,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_5value___get__(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MIDPRICE_OutRange(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_PLUS_DI_OutRange(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -309873,12 +378295,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MIDPRICE_Advance(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_PLUS_DI_Advance(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -309890,15 +378312,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_10copy, "MIDPRICE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_10copy, "PLUS_DI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -309924,16 +378346,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self) { - TA_MIDPRICE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self) { + TA_PLUS_DI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -309950,18 +378372,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21993, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream))))) __PYX_ERR(3, 21993, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream))))) __PYX_ERR(3, 27541, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -309975,7 +378397,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MIDPRICE_Clone(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_PLUS_DI_Clone(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -310018,7 +378440,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22003, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -310040,7 +378462,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -310053,19 +378475,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10MIN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10MIN_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10MIN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10MIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -310079,7 +378501,7 @@ static void __pyx_pf_5talib_7_ta_lib_10MIN_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_MIN_Close(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PLUS_DM_Close(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -310105,27 +378527,28 @@ static void __pyx_pf_5talib_7_ta_lib_10MIN_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10MIN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10MIN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -310141,61 +378564,68 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22027, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27575, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27575, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22027, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27575, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22027, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27575, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22027, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22027, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27575, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 27575, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27575, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22027, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27575, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22027, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27575, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22027, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27575, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22027, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 27575, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -310206,13 +378636,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MIN_Stream *__pyx_v_handle; + TA_PLUS_DM_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -310228,31 +378659,39 @@ static int __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22028, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22029, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22029, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 27578, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 27578, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22030, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27579, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22031, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27580, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22032, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27581, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22037, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27586, __pyx_L1_error) /*try:*/ { @@ -310262,9 +378701,9 @@ static int __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MIN_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_PLUS_DM_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_MIN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PLUS_DM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -310281,7 +378720,7 @@ static int __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_MIN_Close(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PLUS_DM_Close(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -310349,7 +378788,7 @@ static int __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22054, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -310361,10 +378800,11 @@ static int __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -310380,29 +378820,30 @@ static int __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MIN_Stream_4open_and_fill, "MIN_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10MIN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MIN_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill, "PLUS_DM_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -310418,61 +378859,68 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22056, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27605, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27605, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22056, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27605, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22056, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27605, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22056, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22056, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27605, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 27605, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27605, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22056, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27605, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22056, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27605, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22057, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27606, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22056, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 27605, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -310483,8 +378931,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -310493,8 +378942,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MIN_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_stream = 0; + TA_PLUS_DM_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -310516,36 +378965,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22058, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22059, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22059, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 27609, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 27609, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22060, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27610, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22061, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27611, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22062, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27612, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22068, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PLUS_DM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22070, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27620, __pyx_L1_error) /*try:*/ { @@ -310555,7 +379012,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MIN_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DM_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -310568,7 +379025,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22074, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27624, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -310579,7 +379036,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MIN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PLUS_DM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -310683,27 +379140,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22085, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22086, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22086, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 22086, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 27636, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 27636, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22086, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22086, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27636, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 22086, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 27636, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -310721,10 +379181,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -310743,27 +379204,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MIN_Stream_6update, "MIN_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_6update, "PLUS_DM_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -310779,56 +379241,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22088, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27638, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27638, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22088, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27638, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22088, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22088, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27638, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 27638, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22088, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27638, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27638, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22089, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27639, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27639, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22088, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 27638, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -310852,7 +379322,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MIN_Update(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PLUS_DM_Update(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -310880,13 +379350,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22096, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22097, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -310903,7 +379373,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -310915,27 +379385,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MIN_Stream_8peek, "MIN_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_8peek, "PLUS_DM_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -310951,56 +379422,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22099, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27649, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27649, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22099, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27649, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22099, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22099, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27649, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 27649, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22099, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27649, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27649, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22100, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27650, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27650, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22099, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 27649, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -311024,7 +379503,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MIN_Peek(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PLUS_DM_Peek(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -311052,13 +379531,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22107, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22108, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -311075,7 +379554,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -311087,21 +379566,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -311125,7 +379604,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MIN_Value(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PLUS_DM_Value(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -311153,13 +379632,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22118, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22119, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -311176,7 +379655,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -311187,12 +379666,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10MIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MIN_OutRange(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_PLUS_DM_OutRange(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -311203,12 +379682,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10MIN_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10MIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MIN_Advance(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_PLUS_DM_Advance(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -311220,15 +379699,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10MIN_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MIN_Stream_10copy, "MIN_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_10copy, "PLUS_DM_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -311254,16 +379733,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self) { - TA_MIN_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self) { + TA_PLUS_DM_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -311280,18 +379759,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22130, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream))))) __PYX_ERR(3, 22130, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream))))) __PYX_ERR(3, 27680, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -311305,7 +379784,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MIN_Clone(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_PLUS_DM_Clone(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -311348,7 +379827,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22140, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -311370,7 +379849,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -311383,19 +379862,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10PPO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10PPO_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10PPO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10PPO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -311409,7 +379888,7 @@ static void __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_MININDEX_Close(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PPO_Close(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -311435,14 +379914,14 @@ static void __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10PPO_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10PPO_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -311450,12 +379929,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -311471,79 +379952,107 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22164, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27716, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27716, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27716, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22164, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27716, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22164, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27716, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22164, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27716, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22164, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 27716, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27716, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27716, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22164, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27716, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22164, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27716, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22164, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27716, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27716, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27716, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)1); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22164, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 27716, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MININDEX_Stream *__pyx_v_handle; - int __pyx_v_outinteger; + TA_PPO_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -311558,31 +380067,31 @@ static int __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22165, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22166, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22166, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27718, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22167, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27719, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22168, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27720, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22169, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27721, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22174, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27726, __pyx_L1_error) /*try:*/ { @@ -311592,9 +380101,9 @@ static int __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MININDEX_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1); - __pyx_v_retCode = TA_MININDEX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_PPO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -311611,7 +380120,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_MININDEX_Close(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PPO_Close(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -311679,7 +380188,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22191, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PPO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -311691,7 +380200,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -311710,16 +380219,16 @@ static int __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill, "MININDEX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PPO_Stream_4open_and_fill, "PPO_Stream.open_and_fill(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10PPO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PPO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -311727,12 +380236,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -311748,86 +380259,112 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22193, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27745, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27745, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27745, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22193, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27745, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22193, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27745, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22193, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27745, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22193, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 27745, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27745, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27745, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22193, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27745, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22193, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27745, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22194, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27746, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27746, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27746, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)1); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22193, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 27745, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MININDEX_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_stream = 0; + TA_PPO_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; - npy_intp __pyx_v_i; - int *__pyx_v_outinteger_data; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -311842,45 +380379,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObj PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - npy_intp __pyx_t_13; - npy_intp __pyx_t_14; - npy_intp __pyx_t_15; - PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22195, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22196, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27748, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22197, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27749, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22198, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27750, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22199, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27751, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MININDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22205, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PPO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22207, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27759, __pyx_L1_error) /*try:*/ { @@ -311890,7 +380424,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MININDEX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); } /*finally:*/ { @@ -311903,9 +380437,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22211, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27763, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -311914,7 +380448,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MININDEX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PPO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -312018,43 +380552,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22222, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PPO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); - - - __pyx_t_2 = __pyx_v_length; - __pyx_t_13 = __pyx_t_2; - - for (__pyx_t_14 = __pyx_v_lookback; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { - __pyx_v_i = __pyx_t_14; - - - __pyx_t_15 = __pyx_v_i; - (__pyx_v_outinteger_data[__pyx_t_15]) = ((__pyx_v_outinteger_data[__pyx_t_15]) + __pyx_v_begidx); - } - - - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22227, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22227, __pyx_L1_error); - __pyx_t_16 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 22227, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 27775, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22227, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22227, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_16); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_16) != (0)) __PYX_ERR(3, 22227, __pyx_L1_error); - __pyx_t_16 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27775, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 27775, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { @@ -312070,8 +380589,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_16); - __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -312080,14 +380599,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObj - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_stream); - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -312095,15 +380612,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_6update, "MININDEX_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PPO_Stream_6update, "PPO_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -312133,43 +380650,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22229, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27777, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27777, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22229, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27777, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22229, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 27777, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27777, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22230, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27778, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22229, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27777, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -312180,16 +380697,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, double __pyx_v_real) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -312206,11 +380721,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MININDEX_Update(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); - - __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; - - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_PPO_Update(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -312233,40 +380744,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_6update(struct __pyx } } - __pyx_t_3 = (__pyx_v_retCode != 0); + __pyx_t_2 = (__pyx_v_retCode != 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22239, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22240, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -312274,15 +380784,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_8peek, "MININDEX_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PPO_Stream_8peek, "PPO_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -312312,43 +380822,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22242, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27788, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27788, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22242, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27788, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22242, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 27788, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27788, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22243, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27789, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22242, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27788, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -312359,16 +380869,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, double __pyx_v_real) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -312385,11 +380893,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MININDEX_Peek(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); - - __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; - - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_PPO_Peek(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -312412,40 +380916,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_8peek(struct __pyx_o } } - __pyx_t_3 = (__pyx_v_retCode != 0); + __pyx_t_2 = (__pyx_v_retCode != 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22253, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -312453,30 +380956,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self) { - int __pyx_v_outinteger; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -312493,11 +380994,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MININDEX_Value(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); - - __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; - - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_PPO_Value(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -312520,52 +381017,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_5value___get__(struc } } - __pyx_t_3 = (__pyx_v_retCode != 0); + __pyx_t_2 = (__pyx_v_retCode != 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22265, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22266, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MININDEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PPO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MININDEX_OutRange(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_PPO_OutRange(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -312576,12 +381072,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MININDEX_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MININDEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PPO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MININDEX_Advance(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_PPO_Advance(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -312593,15 +381089,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MININDEX_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_10copy, "MININDEX_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PPO_Stream_10copy, "PPO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -312627,16 +381123,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self) { - TA_MININDEX_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self) { + TA_PPO_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -312653,18 +381149,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22277, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream))))) __PYX_ERR(3, 22277, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream))))) __PYX_ERR(3, 27819, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -312678,7 +381174,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MININDEX_Clone(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_PPO_Clone(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -312721,7 +381217,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22287, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -312743,7 +381239,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -312756,19 +381252,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10PSO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10PSO_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10PSO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10PSO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -312782,7 +381278,7 @@ static void __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream___dealloc__(struct __pyx_ob if (__pyx_t_1) { - (void)(TA_MINMAX_Close(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PSO_Close(((TA_PSO_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -312808,27 +381304,30 @@ static void __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream___dealloc__(struct __pyx_ob /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10PSO_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10PSO_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_emaperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -312844,80 +381343,109 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_emaperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22312, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27854, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27854, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27854, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27854, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22312, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27854, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22312, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27854, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22312, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22312, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27854, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, i); __PYX_ERR(3, 27854, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22312, __pyx_L3_error) + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27854, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27854, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27854, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27854, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22312, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27854, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22312, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27854, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_fastk_period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_emaperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_emaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27854, __pyx_L3_error) + } else { + __pyx_v_emaperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22312, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 27854, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PSO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PSO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_emaperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_10PSO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_emaperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MINMAX_Stream *__pyx_v_handle; - double __pyx_v_outmin; - double __pyx_v_outmax; + TA_PSO_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -312932,31 +381460,47 @@ static int __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22313, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22314, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22314, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27857, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27858, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 27858, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 27858, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 27858, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22315, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27859, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22316, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27860, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22317, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27861, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22323, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27866, __pyx_L1_error) /*try:*/ { @@ -312966,9 +381510,9 @@ static int __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(struct __pyx_obj_5 __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MINMAX_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_PSO_Lookback(__pyx_v_fastk_period, __pyx_v_emaperiod) + 1); - __pyx_v_retCode = TA_MINMAX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outmin), (&__pyx_v_outmax)); + __pyx_v_retCode = TA_PSO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_emaperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -312985,7 +381529,7 @@ static int __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - (void)(TA_MINMAX_Close(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PSO_Close(((TA_PSO_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -313053,7 +381597,7 @@ static int __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22340, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PSO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -313065,10 +381609,12 @@ static int __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(struct __pyx_obj_5 goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PSO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -313078,36 +381624,38 @@ static int __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(struct __pyx_obj_5 - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PSO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill, "MINMAX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PSO_Stream_4open_and_fill, "PSO_Stream.open_and_fill(high, low, close, int fastk_period=-0x80000000, int emaperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10PSO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PSO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PSO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10PSO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_emaperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -313123,84 +381671,113 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_emaperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22342, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27885, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27885, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27885, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27885, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22342, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27885, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22342, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27885, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22342, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22342, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27885, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, i); __PYX_ERR(3, 27885, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22342, __pyx_L3_error) + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27885, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27885, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27885, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27885, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22342, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27885, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22343, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27886, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_fastk_period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_emaperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_emaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27886, __pyx_L3_error) + } else { + __pyx_v_emaperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22342, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 27885, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PSO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PSO_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_emaperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PSO_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_emaperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outmin = 0; - PyArrayObject *__pyx_v_outmax = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MINMAX_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_stream = 0; + TA_PSO_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -313217,42 +381794,57 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObjec PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22344, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22345, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22345, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 27890, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 27890, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 27890, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22346, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27891, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22347, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27892, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22348, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27893, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINMAX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22355, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PSO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PSO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22357, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27901, __pyx_L1_error) /*try:*/ { @@ -313262,7 +381854,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PSO_Lookback(__pyx_v_fastk_period, __pyx_v_emaperiod)); } /*finally:*/ { @@ -313275,14 +381867,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22361, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmin = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22362, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27905, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmax = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -313291,7 +381878,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MINMAX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmin)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmax)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PSO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_emaperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -313395,53 +381982,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22373, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PSO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22374, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22374, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmin)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 22374, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 27917, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 27917, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 27917, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22374, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmax)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 22374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22374, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 22374, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 22374, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 22374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22374, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 22374, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27917, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 27917, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_14; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_14 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -313449,18 +382026,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObjec __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PSO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outmin); - __Pyx_XDECREF((PyObject *)__pyx_v_outmax); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -313473,27 +382050,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PSO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_6update, "MINMAX_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PSO_Stream_6update, "PSO_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PSO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -313509,66 +382088,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22376, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27919, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27919, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27919, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22376, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27919, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22376, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22376, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27919, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 27919, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22376, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27919, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27919, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27919, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22377, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27920, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27920, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27920, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22376, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 27919, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PSO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PSO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outmin; - double __pyx_v_outmax; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PSO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -313585,7 +382177,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_6update(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MINMAX_Update(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmin), (&__pyx_v_outmax)); + __pyx_v_retCode = TA_PSO_Update(((TA_PSO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -313613,47 +382205,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_6update(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22385, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PSO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22386, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 22386, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 22386, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PSO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -313661,27 +382240,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_6update(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PSO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_8peek, "MINMAX_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PSO_Stream_8peek, "PSO_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PSO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -313697,66 +382278,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22388, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27930, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27930, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27930, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22388, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27930, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22388, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22388, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27930, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 27930, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22388, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27930, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27930, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27930, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22389, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27931, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27931, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27931, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22388, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 27930, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PSO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PSO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outmin; - double __pyx_v_outmax; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PSO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -313773,7 +382367,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_8peek(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MINMAX_Peek(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmin), (&__pyx_v_outmax)); + __pyx_v_retCode = TA_PSO_Peek(((TA_PSO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -313801,47 +382395,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_8peek(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22397, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PSO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22398, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 22398, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 22398, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PSO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -313849,31 +382430,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_8peek(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10PSO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10PSO_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PSO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self) { - double __pyx_v_outmin; - double __pyx_v_outmax; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PSO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -313890,7 +382468,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MINMAX_Value(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmin), (&__pyx_v_outmax)); + __pyx_v_retCode = TA_PSO_Value(((TA_PSO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -313918,59 +382496,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22409, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PSO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22410, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22410, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22410, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 22410, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 22410, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PSO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13MINMAX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PSO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MINMAX_OutRange(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_PSO_OutRange(((TA_PSO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -313981,12 +382546,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13MINMAX_Stream__out_range(struct __py } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13MINMAX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PSO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MINMAX_Advance(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_PSO_Advance(((TA_PSO_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -313998,15 +382563,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13MINMAX_Stream__advance(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PSO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_10copy, "MINMAX_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PSO_Stream_10copy, "PSO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PSO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -314032,16 +382597,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PSO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self) { - TA_MINMAX_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PSO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_self) { + TA_PSO_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -314058,18 +382623,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(struct __pyx_ob __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PSO_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22421, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream))))) __PYX_ERR(3, 22421, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PSO_Stream))))) __PYX_ERR(3, 27961, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -314083,7 +382648,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MINMAX_Clone(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_PSO_Clone(((TA_PSO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -314126,7 +382691,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(struct __pyx_ob if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22431, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PSO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -314148,7 +382713,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(struct __pyx_ob __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PSO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -314161,19 +382726,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(struct __pyx_ob /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10PVI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10PVI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10PVI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10PVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -314187,7 +382752,7 @@ static void __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream___dealloc__(struct __p if (__pyx_t_1) { - (void)(TA_MINMAXINDEX_Close(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PVI_Close(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -314213,22 +382778,22 @@ static void __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream___dealloc__(struct __p /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10PVI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10PVI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -314249,80 +382814,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22456, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27993, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22456, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27993, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22456, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27993, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22456, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22456, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22456, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22456, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27993, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 27993, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22456, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27993, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27993, __pyx_L3_error) } + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22456, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 27993, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MINMAXINDEX_Stream *__pyx_v_handle; - int __pyx_v_outminidx; - int __pyx_v_outmaxidx; + TA_PVI_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -314337,31 +382892,39 @@ static int __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22457, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22458, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22458, __pyx_L1_error); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 27996, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 27996, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22459, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27997, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22460, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27998, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22461, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27999, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22467, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28004, __pyx_L1_error) /*try:*/ { @@ -314371,9 +382934,9 @@ static int __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(struct __pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_PVI_Lookback() + 1); - __pyx_v_retCode = TA_MINMAXINDEX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); + __pyx_v_retCode = TA_PVI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -314390,7 +382953,7 @@ static int __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - (void)(TA_MINMAXINDEX_Close(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PVI_Close(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -314458,7 +383021,7 @@ static int __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22484, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -314470,10 +383033,11 @@ static int __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(struct __pyx_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -314483,31 +383047,30 @@ static int __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(struct __pyx_ - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill, "MINMAXINDEX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVI_Stream_4open_and_fill, "PVI_Stream.open_and_fill(close, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10PVI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -314528,88 +383091,75 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22486, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28023, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28023, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28023, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22486, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22486, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22486, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22486, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28023, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 28023, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22487, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28023, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28023, __pyx_L3_error) } + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22486, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 28023, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(__pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outminidx = 0; - PyArrayObject *__pyx_v_outmaxidx = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MINMAXINDEX_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_stream = 0; + TA_PVI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; - npy_intp __pyx_v_i; - int *__pyx_v_outminidx_data; - int *__pyx_v_outmaxidx_data; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -314624,46 +383174,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(Py PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - npy_intp __pyx_t_13; - npy_intp __pyx_t_14; - npy_intp __pyx_t_15; - PyObject *__pyx_t_16 = NULL; - PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22488, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22489, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22489, __pyx_L1_error); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 28027, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 28027, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22490, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28028, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22491, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28029, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22492, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28030, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINMAXINDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22499, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22501, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28038, __pyx_L1_error) /*try:*/ { @@ -314673,7 +383227,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PVI_Lookback()); } /*finally:*/ { @@ -314686,14 +383240,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22505, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22506, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28042, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -314702,7 +383251,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MINMAXINDEX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PVI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -314806,110 +383355,63 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22517, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_v_outminidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)); - - - __pyx_t_2 = __pyx_v_length; - __pyx_t_13 = __pyx_t_2; - - for (__pyx_t_14 = __pyx_v_lookback; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { - __pyx_v_i = __pyx_t_14; - - - __pyx_t_15 = __pyx_v_i; - (__pyx_v_outminidx_data[__pyx_t_15]) = ((__pyx_v_outminidx_data[__pyx_t_15]) + __pyx_v_begidx); - } - - - __pyx_v_outmaxidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)); - - - __pyx_t_2 = __pyx_v_length; - __pyx_t_13 = __pyx_t_2; - - for (__pyx_t_14 = __pyx_v_lookback; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { - __pyx_v_i = __pyx_t_14; - - - __pyx_t_15 = __pyx_v_i; - (__pyx_v_outmaxidx_data[__pyx_t_15]) = ((__pyx_v_outmaxidx_data[__pyx_t_15]) + __pyx_v_begidx); - } - - - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22525, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22525, __pyx_L1_error); - __pyx_t_16 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outminidx)); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 22525, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22525, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22525, __pyx_L1_error); - __pyx_t_17 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmaxidx)); if (unlikely(!__pyx_t_17)) __PYX_ERR(3, 22525, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_17); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 28054, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 28054, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22525, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_16); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16) != (0)) __PYX_ERR(3, 22525, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_17); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_17) != (0)) __PYX_ERR(3, 22525, __pyx_L1_error); - __pyx_t_16 = 0; - __pyx_t_17 = 0; - __pyx_t_17 = PyTuple_New(2); if (unlikely(!__pyx_t_17)) __PYX_ERR(3, 22525, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_17); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_17, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22525, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_17, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 22525, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28054, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28054, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_17; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_17 = 0; + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_16); - __Pyx_XDECREF(__pyx_t_17); - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outminidx); - __Pyx_XDECREF((PyObject *)__pyx_v_outmaxidx); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_stream); - - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -314917,27 +383419,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update, "MINMAXINDEX_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVI_Stream_6update, "PVI_Stream.update(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -314953,68 +383456,71 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22527, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28056, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28056, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28056, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22527, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22527, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28056, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 28056, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28056, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28056, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22528, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28057, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28057, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22527, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 28056, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, double __pyx_v_real) { - int __pyx_v_outminidx; - int __pyx_v_outmaxidx; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -315031,11 +383537,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MINMAXINDEX_Update(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); - - __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; - - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_PVI_Update(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -315058,53 +383560,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update(struct __ } } - __pyx_t_3 = (__pyx_v_retCode != 0); + __pyx_t_2 = (__pyx_v_retCode != 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22538, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22539, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22539, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 22539, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4) != (0)) __PYX_ERR(3, 22539, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22539, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_5 = 0; + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28065, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -315112,27 +383600,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek, "MINMAXINDEX_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVI_Stream_8peek, "PVI_Stream.peek(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -315148,68 +383637,71 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22541, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28067, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28067, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22541, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28067, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22541, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22541, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28067, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 28067, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22541, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28067, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28067, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22542, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28068, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28068, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22541, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 28067, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, double __pyx_v_real) { - int __pyx_v_outminidx; - int __pyx_v_outmaxidx; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -315226,11 +383718,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MINMAXINDEX_Peek(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); - - __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; - - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_PVI_Peek(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -315253,53 +383741,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek(struct __py } } - __pyx_t_3 = (__pyx_v_retCode != 0); + __pyx_t_2 = (__pyx_v_retCode != 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22552, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22553, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22553, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 22553, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4) != (0)) __PYX_ERR(3, 22553, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22553, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_5 = 0; + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -315307,33 +383781,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self) { - int __pyx_v_outminidx; - int __pyx_v_outmaxidx; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -315350,11 +383819,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value___get__(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MINMAXINDEX_Value(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); - - __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; - - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_PVI_Value(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -315377,65 +383842,51 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value___get__(st } } - __pyx_t_3 = (__pyx_v_retCode != 0); + __pyx_t_2 = (__pyx_v_retCode != 0); - if (__pyx_t_3) { + if (__pyx_t_2) { - __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_4 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 22567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4) != (0)) __PYX_ERR(3, 22567, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22567, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_5 = 0; + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MINMAXINDEX_OutRange(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_PVI_OutRange(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -315446,12 +383897,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MINMAXINDEX_Advance(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_PVI_Advance(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -315463,15 +383914,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__advance(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy, "MINMAXINDEX_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVI_Stream_10copy, "PVI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -315497,16 +383948,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self) { - TA_MINMAXINDEX_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self) { + TA_PVI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -315523,18 +383974,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(struct __p __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22578, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream))))) __PYX_ERR(3, 22578, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream))))) __PYX_ERR(3, 28098, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -315548,7 +383999,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MINMAXINDEX_Clone(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_PVI_Clone(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -315591,7 +384042,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(struct __p if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22588, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -315613,7 +384064,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(struct __p __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -315626,19 +384077,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(struct __p /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10PVO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10PVO_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10PVO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10PVO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -315652,7 +384103,7 @@ static void __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_MINUS_DI_Close(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PVO_Close(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -315678,24 +384129,24 @@ static void __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10PVO_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10PVO_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -315716,94 +384167,106 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22612, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28134, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22612, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 28134, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22612, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28134, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22612, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28134, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22612, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28134, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22612, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 22612, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28134, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 28134, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22612, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 28134, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22612, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28134, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22612, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28134, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22612, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28134, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; + __pyx_v_volume = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28134, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28134, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22612, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28134, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_matype = ((int)1); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 22612, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 28134, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self), __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MINUS_DI_Stream *__pyx_v_handle; + TA_PVO_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -315819,47 +384282,31 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22613, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22614, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22616, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22616, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22616, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22616, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 28136, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22617, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28137, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22618, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28138, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22619, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28139, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22624, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28144, __pyx_L1_error) /*try:*/ { @@ -315869,9 +384316,9 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MINUS_DI_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1); - __pyx_v_retCode = TA_MINUS_DI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PVO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -315888,7 +384335,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_MINUS_DI_Close(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PVO_Close(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -315956,7 +384403,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22641, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -315968,12 +384415,10 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -315989,26 +384434,26 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill, "MINUS_DI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVO_Stream_4open_and_fill, "PVO_Stream.open_and_fill(volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10PVO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -316029,89 +384474,101 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22643, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28163, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 28163, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28163, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28163, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28163, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22643, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 22643, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28163, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 28163, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 28163, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28163, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28163, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28163, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; + __pyx_v_volume = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28164, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28164, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22644, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28164, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_matype = ((int)1); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 22643, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 28163, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(__pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -316120,8 +384577,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObj PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MINUS_DI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_stream = 0; + TA_PVO_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -316143,52 +384600,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22645, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22646, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22648, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22648, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22648, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22648, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 28166, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22649, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28167, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22650, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28168, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22651, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28169, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINUS_DI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22657, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22659, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28177, __pyx_L1_error) /*try:*/ { @@ -316198,7 +384639,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); } /*finally:*/ { @@ -316211,7 +384652,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22663, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28181, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -316222,7 +384663,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MINUS_DI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PVO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -316326,33 +384767,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22674, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22675, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 22675, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 22675, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 22675, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 22675, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_volume) != (0)) __PYX_ERR(3, 28193, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22675, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22675, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28193, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 22675, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28193, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -316370,12 +384805,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -316394,29 +384827,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_6update, "MINUS_DI_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVO_Stream_6update, "PVO_Stream.update(self, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -316432,72 +384863,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22677, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28195, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22677, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22677, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28195, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22677, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 22677, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28195, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 28195, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22677, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22677, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28195, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22678, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22678, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22678, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28196, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22677, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28195, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self), __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -316521,7 +384936,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MINUS_DI_Update(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PVO_Update(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -316549,13 +384964,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_6update(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22685, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22686, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -316572,7 +384987,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_6update(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -316584,29 +384999,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_8peek, "MINUS_DI_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVO_Stream_8peek, "PVO_Stream.peek(self, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -316622,72 +385035,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22688, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28206, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22688, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22688, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22688, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 22688, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28206, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 28206, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22688, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22688, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28206, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22689, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22689, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22689, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28207, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22688, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28206, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self), __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -316711,7 +385108,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MINUS_DI_Peek(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PVO_Peek(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -316739,13 +385136,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_8peek(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22696, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22697, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -316762,7 +385159,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_8peek(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -316774,21 +385171,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -316812,7 +385209,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MINUS_DI_Value(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PVO_Value(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -316840,13 +385237,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_5value___get__(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22707, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22708, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -316863,7 +385260,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_5value___get__(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -316874,12 +385271,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_5value___get__(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MINUS_DI_OutRange(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_PVO_OutRange(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -316890,12 +385287,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MINUS_DI_Advance(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_PVO_Advance(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -316907,15 +385304,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_10copy, "MINUS_DI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVO_Stream_10copy, "PVO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -316941,16 +385338,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self) { - TA_MINUS_DI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self) { + TA_PVO_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -316967,18 +385364,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22719, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream))))) __PYX_ERR(3, 22719, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream))))) __PYX_ERR(3, 28237, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -316992,7 +385389,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MINUS_DI_Clone(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_PVO_Clone(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -317035,7 +385432,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22729, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -317057,7 +385454,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -317070,19 +385467,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10PVT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10PVT_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10PVT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10PVT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -317096,7 +385493,7 @@ static void __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_MINUS_DM_Close(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PVT_Close(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -317122,28 +385519,27 @@ static void __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10PVT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10PVT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -317159,86 +385555,69 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22753, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28269, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22753, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28269, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28269, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22753, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28269, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 22753, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 28269, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22753, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22753, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22753, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22753, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28269, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28269, __pyx_L3_error) } + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 22753, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 28269, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; +static int __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MINUS_DM_Stream *__pyx_v_handle; + TA_PVT_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -317254,39 +385633,39 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22754, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22755, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22756, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22756, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22756, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 28272, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 28272, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22757, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28273, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22758, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28274, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22759, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28275, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22764, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28280, __pyx_L1_error) /*try:*/ { @@ -317296,9 +385675,9 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MINUS_DM_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_PVT_Lookback() + 1); - __pyx_v_retCode = TA_MINUS_DM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PVT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -317315,7 +385694,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_MINUS_DM_Close(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_PVT_Close(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -317383,7 +385762,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22781, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -317395,11 +385774,11 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -317415,30 +385794,29 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill, "MINUS_DM_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVT_Stream_4open_and_fill, "PVT_Stream.open_and_fill(close, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10PVT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -317454,81 +385832,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22783, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28299, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22783, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22783, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22783, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22783, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28299, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 22783, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22783, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22783, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22783, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 28299, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22784, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28299, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28299, __pyx_L3_error) } + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 22783, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 28299, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(__pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -317537,8 +385898,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObj PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MINUS_DM_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_stream = 0; + TA_PVT_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -317560,44 +385921,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22785, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22786, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22787, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22787, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22787, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 28303, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 28303, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22788, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28304, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22789, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28305, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22790, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28306, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINUS_DM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22796, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22798, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28314, __pyx_L1_error) /*try:*/ { @@ -317607,7 +385968,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DM_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PVT_Lookback()); } /*finally:*/ { @@ -317620,7 +385981,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22802, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28318, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -317631,7 +385992,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MINUS_DM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PVT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -317735,30 +386096,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22813, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22814, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 22814, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 22814, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 22814, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 28330, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 28330, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22814, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22814, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28330, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 22814, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28330, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -317776,11 +386137,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -317799,23 +386160,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_6update, "MINUS_DM_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVT_Stream_6update, "PVT_Stream.update(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -317836,52 +386197,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22816, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28332, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22816, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22816, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22816, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28332, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 22816, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 28332, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22816, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28332, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22816, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28332, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22817, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22817, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28333, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28333, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 22816, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 28332, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -317893,7 +386254,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -317917,7 +386278,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MINUS_DM_Update(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PVT_Update(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -317945,13 +386306,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_6update(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22824, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22825, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -317968,7 +386329,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_6update(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -317980,23 +386341,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_8peek, "MINUS_DM_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVT_Stream_8peek, "PVT_Stream.peek(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -318017,52 +386378,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22827, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28343, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28343, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28343, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22827, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28343, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 22827, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 28343, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28343, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28343, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22828, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22828, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28344, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28344, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 22827, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 28343, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -318074,7 +386435,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -318098,7 +386459,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MINUS_DM_Peek(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PVT_Peek(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -318126,13 +386487,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_8peek(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22835, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22836, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -318149,7 +386510,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_8peek(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -318161,21 +386522,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -318199,7 +386560,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MINUS_DM_Value(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_PVT_Value(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -318227,13 +386588,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_5value___get__(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22846, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22847, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -318250,7 +386611,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_5value___get__(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -318261,12 +386622,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_5value___get__(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MINUS_DM_OutRange(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_PVT_OutRange(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -318277,12 +386638,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MINUS_DM_Advance(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_PVT_Advance(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -318294,15 +386655,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_10copy, "MINUS_DM_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVT_Stream_10copy, "PVT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -318328,16 +386689,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self) { - TA_MINUS_DM_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self) { + TA_PVT_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -318354,18 +386715,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22858, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream))))) __PYX_ERR(3, 22858, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream))))) __PYX_ERR(3, 28374, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -318379,7 +386740,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MINUS_DM_Clone(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_PVT_Clone(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -318422,7 +386783,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22868, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -318444,7 +386805,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -318457,19 +386818,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10MOM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10MOM_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10MOM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10MOM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -318483,7 +386844,7 @@ static void __pyx_pf_5talib_7_ta_lib_10MOM_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_MOM_Close(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_QSTICK_Close(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -318509,27 +386870,28 @@ static void __pyx_pf_5talib_7_ta_lib_10MOM_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10MOM_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10MOM_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -318545,61 +386907,68 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22892, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28408, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28408, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28408, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28408, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22892, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22892, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28408, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 28408, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28408, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22892, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28408, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28408, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22892, __pyx_L3_error) + __pyx_v_open = values[0]; + __pyx_v_close = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28408, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22892, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 28408, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -318610,13 +386979,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MOM_Stream *__pyx_v_handle; + TA_QSTICK_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -318632,31 +387002,39 @@ static int __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22893, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22894, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22894, __pyx_L1_error); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 28411, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 28411, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22895, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28412, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22896, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28413, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22897, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28414, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22902, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28419, __pyx_L1_error) /*try:*/ { @@ -318666,9 +387044,9 @@ static int __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MOM_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_QSTICK_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_MOM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_QSTICK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -318685,7 +387063,7 @@ static int __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_MOM_Close(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_QSTICK_Close(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -318753,7 +387131,7 @@ static int __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MOM_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22919, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -318765,10 +387143,11 @@ static int __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -318784,29 +387163,30 @@ static int __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MOM_Stream_4open_and_fill, "MOM_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10MOM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MOM_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill, "QSTICK_Stream.open_and_fill(open, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -318822,61 +387202,68 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22921, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28438, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28438, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22921, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22921, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28438, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 28438, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28438, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22921, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28438, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28438, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22922, __pyx_L3_error) + __pyx_v_open = values[0]; + __pyx_v_close = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28439, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22921, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 28438, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -318887,8 +387274,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -318897,8 +387285,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MOM_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_stream = 0; + TA_QSTICK_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -318920,36 +387308,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22923, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22924, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22924, __pyx_L1_error); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 28442, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 28442, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22925, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28443, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22926, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28444, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22927, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28445, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MOM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22933, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_QSTICK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 22935, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28453, __pyx_L1_error) /*try:*/ { @@ -318959,7 +387355,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MOM_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_QSTICK_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -318972,7 +387368,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22939, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28457, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -318983,7 +387379,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MOM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_QSTICK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -319087,27 +387483,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MOM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22950, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22951, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22951, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 22951, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 28469, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_close) != (0)) __PYX_ERR(3, 28469, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22951, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22951, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28469, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 22951, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28469, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -319125,10 +387524,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -319147,27 +387547,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MOM_Stream_6update, "MOM_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_6update, "QSTICK_Stream.update(self, double open, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -319183,56 +387584,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22953, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28471, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28471, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22953, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22953, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22953, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28471, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 28471, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22953, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28471, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28471, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22954, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28472, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28472, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22953, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 28471, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -319256,7 +387665,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MOM_Update(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_QSTICK_Update(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -319284,13 +387693,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22961, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22962, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -319307,7 +387716,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -319319,27 +387728,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MOM_Stream_8peek, "MOM_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_8peek, "QSTICK_Stream.peek(self, double open, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -319355,56 +387765,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22964, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28482, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28482, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22964, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28482, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22964, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22964, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28482, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 28482, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22964, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28482, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28482, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22965, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28483, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28483, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22964, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 28482, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -319428,7 +387846,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MOM_Peek(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_QSTICK_Peek(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -319456,13 +387874,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22972, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22973, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -319479,7 +387897,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -319491,21 +387909,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -319529,7 +387947,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MOM_Value(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_QSTICK_Value(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -319557,13 +387975,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22983, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22984, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -319580,7 +387998,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -319591,12 +388009,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10MOM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13QSTICK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MOM_OutRange(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_QSTICK_OutRange(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -319607,12 +388025,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10MOM_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10MOM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13QSTICK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MOM_Advance(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_QSTICK_Advance(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -319624,15 +388042,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10MOM_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MOM_Stream_10copy, "MOM_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_10copy, "QSTICK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -319658,16 +388076,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self) { - TA_MOM_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self) { + TA_QSTICK_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -319684,18 +388102,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22995, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream))))) __PYX_ERR(3, 22995, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream))))) __PYX_ERR(3, 28513, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -319709,7 +388127,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MOM_Clone(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_QSTICK_Clone(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -319752,7 +388170,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23005, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -319774,7 +388192,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -319787,19 +388205,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11MULT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11MULT_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10RMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10RMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11MULT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10RMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11MULT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10RMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -319813,7 +388231,7 @@ static void __pyx_pf_5talib_7_ta_lib_11MULT_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_MULT_Close(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_RMA_Close(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -319839,22 +388257,22 @@ static void __pyx_pf_5talib_7_ta_lib_11MULT_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11MULT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10RMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11MULT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10RMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real0 = 0; - PyObject *__pyx_v_real1 = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -319875,69 +388293,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23028, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28547, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23028, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28547, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23028, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28547, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23028, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 23028, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28547, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 28547, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23028, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23028, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28547, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28547, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28547, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_real0 = values[0]; - __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 23028, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28547, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { - PyArrayObject *__pyx_v_a_real0 = 0; - PyArrayObject *__pyx_v_a_real1 = 0; +static int __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_MULT_Stream *__pyx_v_handle; + TA_RMA_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -319953,39 +388380,31 @@ static int __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23029, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23030, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23031, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real0); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 23031, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_real1); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 23031, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28549, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23032, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28550, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23033, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28551, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23034, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28552, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23039, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28557, __pyx_L1_error) /*try:*/ { @@ -319995,9 +388414,9 @@ static int __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_MULT_Lookback() + 1); + __pyx_v_need = (TA_RMA_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_MULT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -320014,7 +388433,7 @@ static int __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_MULT_Close(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_RMA_Close(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -320082,7 +388501,7 @@ static int __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MULT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23056, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -320094,11 +388513,10 @@ static int __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -320114,24 +388532,24 @@ static int __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MULT_Stream_4open_and_fill, "MULT_Stream.open_and_fill(real0, real1)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11MULT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MULT_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RMA_Stream_4open_and_fill, "RMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10RMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real0 = 0; - PyObject *__pyx_v_real1 = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -320152,64 +388570,73 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23058, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28576, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23058, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28576, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23058, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28576, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23058, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 23058, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28576, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 28576, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23058, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23058, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28576, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28576, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28577, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_real0 = values[0]; - __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 23058, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28576, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { - PyArrayObject *__pyx_v_a_real0 = 0; - PyArrayObject *__pyx_v_a_real1 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -320218,8 +388645,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_MULT_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_stream = 0; + TA_RMA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -320241,44 +388668,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23060, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23061, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23062, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real0); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 23062, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_real1); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 23062, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28579, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23063, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28580, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23064, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28581, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23065, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28582, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MULT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23071, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23073, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28590, __pyx_L1_error) /*try:*/ { @@ -320288,7 +388707,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_MULT_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_RMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -320301,7 +388720,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23077, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28594, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -320312,7 +388731,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_MULT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_RMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -320416,30 +388835,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MULT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23088, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23089, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real0); - __Pyx_GIVEREF(__pyx_v_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 23089, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_real1); - __Pyx_GIVEREF(__pyx_v_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 23089, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23089, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 28606, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23089, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23089, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28606, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 23089, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28606, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -320457,11 +388873,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -320480,28 +388895,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MULT_Stream_6update, "MULT_Stream.update(self, double real0, double real1)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RMA_Stream_6update, "RMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real0; - double __pyx_v_real1; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -320517,64 +388931,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23091, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28608, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23091, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23091, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28608, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23091, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 23091, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28608, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 28608, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23091, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23091, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28608, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23092, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23092, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28609, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 23091, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28608, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -320598,7 +389004,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MULT_Update(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RMA_Update(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -320626,13 +389032,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23099, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23100, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -320649,7 +389055,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -320661,28 +389067,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MULT_Stream_8peek, "MULT_Stream.peek(self, double real0, double real1)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RMA_Stream_8peek, "RMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real0; - double __pyx_v_real1; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -320698,64 +389103,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23102, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28619, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23102, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28619, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 23102, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 23102, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28619, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 28619, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23102, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28619, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23103, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23103, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28620, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 23102, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28619, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -320779,7 +389176,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MULT_Peek(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RMA_Peek(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -320807,13 +389204,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23110, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23111, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -320830,7 +389227,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -320842,21 +389239,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -320880,7 +389277,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_MULT_Value(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RMA_Value(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -320908,13 +389305,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23121, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23122, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -320931,7 +389328,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -320942,12 +389339,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11MULT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_MULT_OutRange(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_RMA_OutRange(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -320958,12 +389355,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11MULT_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11MULT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_MULT_Advance(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_RMA_Advance(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -320975,15 +389372,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11MULT_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MULT_Stream_10copy, "MULT_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RMA_Stream_10copy, "RMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -321009,16 +389406,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self) { - TA_MULT_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self) { + TA_RMA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -321035,18 +389432,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23133, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream))))) __PYX_ERR(3, 23133, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream))))) __PYX_ERR(3, 28650, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -321060,7 +389457,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_MULT_Clone(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_RMA_Clone(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -321103,7 +389500,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23143, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -321125,7 +389522,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -321138,19 +389535,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11NATR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11NATR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10ROC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10ROC_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11NATR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10ROC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11NATR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10ROC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -321164,7 +389561,7 @@ static void __pyx_pf_5talib_7_ta_lib_11NATR_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_NATR_Close(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ROC_Close(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -321190,29 +389587,27 @@ static void __pyx_pf_5talib_7_ta_lib_11NATR_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11NATR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10ROC_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11NATR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10ROC_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -321228,75 +389623,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23167, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28684, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23167, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23167, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23167, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 23167, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28684, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 28684, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23167, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23167, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28684, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28684, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23167, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28684, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 23167, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28684, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -321307,15 +389688,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_NATR_Stream *__pyx_v_handle; + TA_ROC_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -321331,47 +389710,31 @@ static int __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23168, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23170, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23171, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 23171, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 23171, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 23171, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28686, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23172, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28687, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23173, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28688, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23174, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28689, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23179, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28694, __pyx_L1_error) /*try:*/ { @@ -321381,9 +389744,9 @@ static int __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_NATR_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_ROC_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_NATR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -321400,7 +389763,7 @@ static int __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_NATR_Close(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ROC_Close(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -321468,7 +389831,7 @@ static int __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NATR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23196, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -321480,12 +389843,10 @@ static int __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -321501,31 +389862,29 @@ static int __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11NATR_Stream_4open_and_fill, "NATR_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11NATR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11NATR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ROC_Stream_4open_and_fill, "ROC_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ROC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ROC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -321541,75 +389900,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23198, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28713, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23198, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23198, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23198, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 23198, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28713, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 28713, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23198, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23198, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28713, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28713, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23199, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28714, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 23198, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28713, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -321620,10 +389965,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -321632,8 +389975,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_NATR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_stream = 0; + TA_ROC_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -321655,52 +389998,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23201, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23202, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23203, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 23203, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 23203, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 23203, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28716, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23204, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28717, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23205, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28718, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23206, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28719, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_NATR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23212, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23214, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28727, __pyx_L1_error) /*try:*/ { @@ -321710,7 +390037,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_NATR_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ROC_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -321723,7 +390050,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23218, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28731, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -321734,7 +390061,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_NATR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -321838,33 +390165,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NATR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23229, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23230, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 23230, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 23230, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 23230, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23230, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 28743, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23230, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23230, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28743, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 23230, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28743, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -321882,12 +390203,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -321906,29 +390225,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11NATR_Stream_6update, "NATR_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ROC_Stream_6update, "ROC_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -321944,72 +390261,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23232, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28745, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23232, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23232, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28745, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23232, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 23232, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28745, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 28745, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23232, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23232, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28745, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23233, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23233, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23233, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28746, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 23232, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28745, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -322033,7 +390334,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_NATR_Update(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROC_Update(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -322061,13 +390362,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23240, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23241, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -322084,7 +390385,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -322096,29 +390397,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11NATR_Stream_8peek, "NATR_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ROC_Stream_8peek, "ROC_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -322134,72 +390433,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23243, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28756, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23243, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23243, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28756, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 23243, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 23243, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28756, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 28756, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23243, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23243, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23243, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28756, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23244, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23244, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23244, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28757, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 23243, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28756, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -322223,7 +390506,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_NATR_Peek(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROC_Peek(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -322251,13 +390534,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23251, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23252, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -322274,7 +390557,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -322286,21 +390569,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -322324,7 +390607,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_NATR_Value(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROC_Value(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -322352,13 +390635,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23262, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23263, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -322375,7 +390658,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -322386,12 +390669,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11NATR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ROC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_NATR_OutRange(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_ROC_OutRange(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -322402,12 +390685,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11NATR_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11NATR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ROC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_NATR_Advance(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_ROC_Advance(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -322419,15 +390702,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11NATR_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11NATR_Stream_10copy, "NATR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ROC_Stream_10copy, "ROC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -322453,16 +390736,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self) { - TA_NATR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self) { + TA_ROC_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -322479,18 +390762,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23274, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream))))) __PYX_ERR(3, 23274, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream))))) __PYX_ERR(3, 28787, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -322504,7 +390787,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_NATR_Clone(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_ROC_Clone(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -322547,7 +390830,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23284, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -322569,7 +390852,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -322582,19 +390865,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10NVI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10NVI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10NVI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11ROCP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10NVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11ROCP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -322608,7 +390891,7 @@ static void __pyx_pf_5talib_7_ta_lib_10NVI_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_NVI_Close(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ROCP_Close(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -322634,22 +390917,22 @@ static void __pyx_pf_5talib_7_ta_lib_10NVI_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10NVI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10NVI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -322670,69 +390953,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23306, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28821, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23306, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28821, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23306, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28821, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23306, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 23306, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28821, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 28821, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23306, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23306, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28821, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28821, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_close = values[0]; - __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 23306, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28821, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { - PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static int __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_NVI_Stream *__pyx_v_handle; + TA_ROCP_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -322748,39 +391040,31 @@ static int __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23307, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23309, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 23309, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 23309, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28823, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23310, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28824, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23311, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28825, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23312, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28826, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23317, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28831, __pyx_L1_error) /*try:*/ { @@ -322790,9 +391074,9 @@ static int __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_NVI_Lookback() + 1); + __pyx_v_need = (TA_ROCP_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_NVI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROCP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -322809,7 +391093,7 @@ static int __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_NVI_Close(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ROCP_Close(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -322877,7 +391161,7 @@ static int __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NVI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23334, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -322889,11 +391173,10 @@ static int __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -322909,24 +391192,24 @@ static int __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10NVI_Stream_4open_and_fill, "NVI_Stream.open_and_fill(close, volume)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10NVI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10NVI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill, "ROCP_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -322947,64 +391230,73 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23336, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28850, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23336, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23336, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23336, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 23336, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28850, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 28850, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23336, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23336, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28850, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28850, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28851, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_close = values[0]; - __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 23336, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28850, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(__pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { - PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -323013,8 +391305,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_NVI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_stream = 0; + TA_ROCP_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -323036,44 +391328,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23338, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23339, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23340, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 23340, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 23340, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28853, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23341, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28854, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23342, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28855, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23343, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28856, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_NVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23349, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23351, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28864, __pyx_L1_error) /*try:*/ { @@ -323083,7 +391367,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_NVI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_ROCP_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -323096,7 +391380,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23355, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28868, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -323107,7 +391391,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_NVI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROCP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -323211,30 +391495,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23366, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23367, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 23367, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_volume); - __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 23367, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23367, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 28880, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23367, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23367, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28880, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 23367, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28880, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -323252,11 +391533,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -323275,28 +391555,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10NVI_Stream_6update, "NVI_Stream.update(self, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCP_Stream_6update, "ROCP_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_close; - double __pyx_v_volume; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -323312,64 +391591,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23369, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28882, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23369, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28882, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23369, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 23369, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28882, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 28882, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23369, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28882, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23370, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23370, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28883, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 23369, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28882, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -323393,7 +391664,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_NVI_Update(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROCP_Update(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -323421,13 +391692,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23377, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23378, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -323444,7 +391715,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -323456,28 +391727,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10NVI_Stream_8peek, "NVI_Stream.peek(self, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCP_Stream_8peek, "ROCP_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_close; - double __pyx_v_volume; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -323493,64 +391763,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23380, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28893, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23380, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28893, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 23380, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 23380, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28893, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 28893, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23380, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28893, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23381, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23381, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28894, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 23380, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28893, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -323574,7 +391836,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_NVI_Peek(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROCP_Peek(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -323602,13 +391864,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23388, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23389, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -323625,7 +391887,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -323637,21 +391899,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -323675,7 +391937,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_NVI_Value(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROCP_Value(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -323703,13 +391965,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23399, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23400, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -323726,7 +391988,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -323737,12 +391999,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10NVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_NVI_OutRange(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_ROCP_OutRange(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -323753,12 +392015,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10NVI_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10NVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_NVI_Advance(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_ROCP_Advance(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -323770,15 +392032,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10NVI_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10NVI_Stream_10copy, "NVI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCP_Stream_10copy, "ROCP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -323804,16 +392066,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self) { - TA_NVI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self) { + TA_ROCP_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -323830,18 +392092,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23411, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream))))) __PYX_ERR(3, 23411, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream))))) __PYX_ERR(3, 28924, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -323855,7 +392117,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_NVI_Clone(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_ROCP_Clone(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -323898,7 +392160,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23421, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -323920,7 +392182,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -323933,19 +392195,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10OBV_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10OBV_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10OBV_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11ROCR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10OBV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11ROCR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -323959,7 +392221,7 @@ static void __pyx_pf_5talib_7_ta_lib_10OBV_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_OBV_Close(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ROCR_Close(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -323985,14 +392247,14 @@ static void __pyx_pf_5talib_7_ta_lib_10OBV_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10OBV_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10OBV_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -324000,7 +392262,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -324021,69 +392283,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23444, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28958, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28958, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28958, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23444, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 23444, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28958, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 28958, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23444, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23444, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28958, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28958, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; - __pyx_v_volume = values[1]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28958, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 23444, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28958, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, PyObject *__pyx_v_real, PyObject *__pyx_v_volume) { +static int __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; - PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_OBV_Stream *__pyx_v_handle; + TA_ROCR_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -324099,39 +392370,31 @@ static int __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23445, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23446, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23447, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23447, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 23447, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28960, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23448, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28961, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23449, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28962, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23450, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28963, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23455, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28968, __pyx_L1_error) /*try:*/ { @@ -324141,9 +392404,9 @@ static int __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_OBV_Lookback() + 1); + __pyx_v_need = (TA_ROCR_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_OBV_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROCR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -324160,7 +392423,7 @@ static int __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_OBV_Close(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ROCR_Close(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -324228,7 +392491,7 @@ static int __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_OBV_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23472, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -324240,11 +392503,10 @@ static int __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -324260,16 +392522,16 @@ static int __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10OBV_Stream_4open_and_fill, "OBV_Stream.open_and_fill(real, volume)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10OBV_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10OBV_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill, "ROCR_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -324277,7 +392539,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -324298,64 +392560,73 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23474, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28987, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28987, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28987, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23474, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 23474, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28987, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 28987, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23474, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23474, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28987, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28987, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; - __pyx_v_volume = values[1]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28988, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 23474, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28987, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(__pyx_v_real, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject *__pyx_v_real, PyObject *__pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; - PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -324364,8 +392635,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_OBV_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_stream = 0; + TA_ROCR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -324387,44 +392658,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23476, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23478, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23478, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 23478, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28990, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23479, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28991, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23480, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28992, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23481, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28993, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_OBV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23487, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23489, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29001, __pyx_L1_error) /*try:*/ { @@ -324434,7 +392697,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_OBV_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -324447,7 +392710,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23493, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29005, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -324458,7 +392721,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_OBV_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROCR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -324562,30 +392825,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_OBV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23504, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23505, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23505, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_volume); - __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 23505, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23505, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 29017, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23505, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23505, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29017, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 23505, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29017, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -324603,11 +392863,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -324626,15 +392885,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10OBV_Stream_6update, "OBV_Stream.update(self, double real, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCR_Stream_6update, "ROCR_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -324642,12 +392901,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { double __pyx_v_real; - double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -324663,64 +392921,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23507, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29019, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23507, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29019, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23507, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 23507, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29019, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 29019, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23507, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29019, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23508, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23508, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29020, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 23507, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29019, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -324744,7 +392994,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_OBV_Update(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROCR_Update(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -324772,13 +393022,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23515, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23516, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -324795,7 +393045,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -324807,15 +393057,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10OBV_Stream_8peek, "OBV_Stream.peek(self, double real, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCR_Stream_8peek, "ROCR_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -324823,12 +393073,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { double __pyx_v_real; - double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -324844,64 +393093,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23518, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29030, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23518, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23518, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29030, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 23518, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 23518, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29030, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 29030, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23518, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23518, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29030, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23519, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23519, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29031, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 23518, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29030, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -324925,7 +393166,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_OBV_Peek(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROCR_Peek(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -324953,13 +393194,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23526, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23527, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -324976,7 +393217,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -324988,21 +393229,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -325026,7 +393267,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_OBV_Value(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROCR_Value(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -325054,13 +393295,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23537, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23538, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -325077,7 +393318,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -325088,12 +393329,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10OBV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_OBV_OutRange(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_ROCR_OutRange(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -325104,12 +393345,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10OBV_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10OBV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_OBV_Advance(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_ROCR_Advance(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -325121,15 +393362,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10OBV_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10OBV_Stream_10copy, "OBV_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCR_Stream_10copy, "ROCR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -325155,16 +393396,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self) { - TA_OBV_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self) { + TA_ROCR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -325181,18 +393422,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23549, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream))))) __PYX_ERR(3, 23549, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream))))) __PYX_ERR(3, 29061, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -325206,7 +393447,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_OBV_Clone(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_ROCR_Clone(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -325249,7 +393490,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23559, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -325271,7 +393512,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -325284,19 +393525,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -325310,7 +393551,7 @@ static void __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream___dealloc__(struct __py if (__pyx_t_1) { - (void)(TA_PERCENTILE_Close(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ROCR100_Close(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -325336,14 +393577,14 @@ static void __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream___dealloc__(struct __py /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -325352,12 +393593,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - double __pyx_v_percentile; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -325373,92 +393613,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23584, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29095, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23584, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29095, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29095, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23584, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29095, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 23584, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 29095, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23584, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29095, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29095, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23584, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29095, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } - if (values[2]) { - __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23584, __pyx_L3_error) - } else { - __pyx_v_percentile = ((double)50.0); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 23584, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 29095, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile) { +static int __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_PERCENTILE_Stream *__pyx_v_handle; + TA_ROCR100_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -325474,31 +393700,31 @@ static int __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23585, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23586, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23586, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 29097, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23587, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29098, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23588, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29099, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23589, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29100, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23594, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29105, __pyx_L1_error) /*try:*/ { @@ -325508,9 +393734,9 @@ static int __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(struct __pyx_o __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile) + 1); + __pyx_v_need = (TA_ROCR100_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_PERCENTILE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROCR100_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -325527,7 +393753,7 @@ static int __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - (void)(TA_PERCENTILE_Close(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ROCR100_Close(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -325595,7 +393821,7 @@ static int __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23611, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -325607,7 +393833,7 @@ static int __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(struct __pyx_o goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -325626,16 +393852,16 @@ static int __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill, "PERCENTILE_Stream.open_and_fill(real, int timeperiod=-0x80000000, double percentile=50.0)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill, "ROCR100_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -325644,12 +393870,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - double __pyx_v_percentile; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -325665,86 +393890,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23613, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29124, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23613, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23613, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29124, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 23613, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 29124, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23613, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29124, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23614, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29125, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } - if (values[2]) { - __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23614, __pyx_L3_error) - } else { - __pyx_v_percentile = ((double)50.0); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 23613, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 29124, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -325754,8 +393965,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyO PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_PERCENTILE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_stream = 0; + TA_ROCR100_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -325777,36 +393988,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23615, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23616, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23616, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 29127, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23617, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29128, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23618, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29129, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23619, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29130, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PERCENTILE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23625, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCR100_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23627, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29138, __pyx_L1_error) /*try:*/ { @@ -325816,7 +394027,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR100_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -325829,7 +394040,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyO } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23631, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29142, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -325840,7 +394051,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PERCENTILE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROCR100_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -325944,27 +394155,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23642, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23643, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23643, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23643, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 29154, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23643, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23643, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29154, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 23643, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29154, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -325982,7 +394193,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyO __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -326004,15 +394215,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_6update, "PERCENTILE_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_6update, "ROCR100_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -326042,43 +394253,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23645, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29156, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29156, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23645, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29156, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 23645, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 29156, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23645, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29156, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23646, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29157, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23645, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29156, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -326089,7 +394300,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -326113,7 +394324,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_6update(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PERCENTILE_Update(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROCR100_Update(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -326141,13 +394352,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_6update(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23653, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23654, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -326164,7 +394375,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_6update(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -326176,15 +394387,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_6update(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_8peek, "PERCENTILE_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_8peek, "ROCR100_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -326214,43 +394425,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23656, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29167, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23656, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29167, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 23656, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29167, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 23656, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 29167, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23656, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29167, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23657, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29168, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23656, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29167, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -326261,7 +394472,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -326285,7 +394496,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_8peek(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PERCENTILE_Peek(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROCR100_Peek(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -326313,13 +394524,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_8peek(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23664, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23665, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -326336,7 +394547,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_8peek(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -326348,21 +394559,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_8peek(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -326386,7 +394597,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_5value___get__(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PERCENTILE_Value(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROCR100_Value(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -326414,13 +394625,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_5value___get__(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23675, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23676, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -326437,7 +394648,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_5value___get__(str /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -326448,12 +394659,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_5value___get__(str } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14ROCR100_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_PERCENTILE_OutRange(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_ROCR100_OutRange(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -326464,12 +394675,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14ROCR100_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_PERCENTILE_Advance(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_ROCR100_Advance(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -326481,15 +394692,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__advance(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_10copy, "PERCENTILE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_10copy, "ROCR100_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -326515,16 +394726,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self) { - TA_PERCENTILE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self) { + TA_ROCR100_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -326541,18 +394752,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(struct __py __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23687, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream))))) __PYX_ERR(3, 23687, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream))))) __PYX_ERR(3, 29198, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -326566,7 +394777,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_PERCENTILE_Clone(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_ROCR100_Clone(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -326609,7 +394820,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(struct __py if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23697, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -326631,7 +394842,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(struct __py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -326644,19 +394855,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(struct __py /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -326670,7 +394881,7 @@ static void __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream___dealloc__(struct __p if (__pyx_t_1) { - (void)(TA_PERCENTRANK_Close(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ROGERSSATCHELL_Close(((TA_ROGERSSATCHELL_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -326696,27 +394907,31 @@ static void __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream___dealloc__(struct __p /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; + double __pyx_v_annualization; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -326732,78 +394947,116 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_annualization,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23721, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29233, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 29233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 29233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29233, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29233, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29233, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23721, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 23721, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29233, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, i); __PYX_ERR(3, 29233, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23721, __pyx_L3_error) + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 29233, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 29233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29233, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29233, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29233, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29233, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23721, __pyx_L3_error) + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29233, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[5]) { + __pyx_v_annualization = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_annualization == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29233, __pyx_L3_error) + } else { + __pyx_v_annualization = ((double)252.0); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 23721, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, __pyx_nargs); __PYX_ERR(3, 29233, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROGERSSATCHELL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_annualization); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_annualization) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_PERCENTRANK_Stream *__pyx_v_handle; + TA_ROGERSSATCHELL_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -326819,31 +395072,55 @@ static int __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23722, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23723, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23723, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 29238, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29238, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29238, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 29238, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23724, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29239, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23725, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29240, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23726, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29241, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23731, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29246, __pyx_L1_error) /*try:*/ { @@ -326853,9 +395130,9 @@ static int __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(struct __pyx_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_PERCENTRANK_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_ROGERSSATCHELL_Lookback(__pyx_v_timeperiod, __pyx_v_annualization) + 1); - __pyx_v_retCode = TA_PERCENTRANK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROGERSSATCHELL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_annualization, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -326872,7 +395149,7 @@ static int __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - (void)(TA_PERCENTRANK_Close(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ROGERSSATCHELL_Close(((TA_ROGERSSATCHELL_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -326940,7 +395217,7 @@ static int __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23748, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROGERSSATCHELL_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -326952,10 +395229,13 @@ static int __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(struct __pyx_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROGERSSATCHELL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -326971,29 +395251,33 @@ static int __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill, "PERCENTRANK_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_4open_and_fill, "ROGERSSATCHELL_Stream.open_and_fill(open, high, low, close, int timeperiod=-0x80000000, double annualization=252.0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; + double __pyx_v_annualization; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -327009,73 +395293,111 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_annualization,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23750, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29265, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 29265, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 29265, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29265, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29265, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23750, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29265, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23750, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29265, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23750, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 23750, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29265, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 6, i); __PYX_ERR(3, 29265, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23750, __pyx_L3_error) + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 29265, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 29265, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29265, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29265, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29265, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23750, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29265, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23751, __pyx_L3_error) + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29266, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[5]) { + __pyx_v_annualization = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_annualization == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29266, __pyx_L3_error) + } else { + __pyx_v_annualization = ((double)252.0); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 23750, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 6, __pyx_nargs); __PYX_ERR(3, 29265, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROGERSSATCHELL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_annualization); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_annualization) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -327084,8 +395406,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(Py PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_PERCENTRANK_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_stream = 0; + TA_ROGERSSATCHELL_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -327107,36 +395429,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23752, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23753, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 23753, __pyx_L1_error); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 29271, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29271, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29271, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 29271, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23754, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29272, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23755, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29273, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23756, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29274, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PERCENTRANK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23762, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROGERSSATCHELL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23764, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29282, __pyx_L1_error) /*try:*/ { @@ -327146,7 +395492,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTRANK_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ROGERSSATCHELL_Lookback(__pyx_v_timeperiod, __pyx_v_annualization)); } /*finally:*/ { @@ -327159,7 +395505,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(Py } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23768, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29286, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -327170,7 +395516,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(Py __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PERCENTRANK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROGERSSATCHELL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_annualization, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -327274,27 +395620,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23779, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROGERSSATCHELL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23780, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 23780, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23780, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 29298, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 29298, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 29298, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 29298, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23780, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23780, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29298, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 23780, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29298, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -327312,10 +395667,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(Py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROGERSSATCHELL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -327334,27 +395692,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_6update, "PERCENTRANK_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_6update, "ROGERSSATCHELL_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -327370,56 +395731,80 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23782, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29300, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29300, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29300, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29300, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29300, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23782, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 23782, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29300, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 29300, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29300, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29300, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29300, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29300, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23783, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29301, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29301, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29301, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29301, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23782, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 29300, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROGERSSATCHELL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -327443,7 +395828,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_6update(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PERCENTRANK_Update(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROGERSSATCHELL_Update(((TA_ROGERSSATCHELL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -327471,13 +395856,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_6update(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23790, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROGERSSATCHELL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23791, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -327494,7 +395879,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_6update(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROGERSSATCHELL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -327506,27 +395891,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_6update(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek, "PERCENTRANK_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_8peek, "ROGERSSATCHELL_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -327542,56 +395930,80 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23793, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29311, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29311, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29311, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29311, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23793, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29311, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 23793, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 23793, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29311, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 29311, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23793, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29311, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29311, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29311, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29311, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23794, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29312, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29312, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29312, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29312, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 23793, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 29311, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROGERSSATCHELL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -327615,7 +396027,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PERCENTRANK_Peek(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROGERSSATCHELL_Peek(((TA_ROGERSSATCHELL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -327643,13 +396055,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek(struct __py if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23801, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROGERSSATCHELL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23802, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -327666,7 +396078,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek(struct __py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROGERSSATCHELL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -327678,21 +396090,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -327716,7 +396128,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_5value___get__(st __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PERCENTRANK_Value(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ROGERSSATCHELL_Value(((TA_ROGERSSATCHELL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -327744,13 +396156,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_5value___get__(st if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23812, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROGERSSATCHELL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23813, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -327767,7 +396179,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_5value___get__(st /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROGERSSATCHELL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -327778,12 +396190,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_5value___get__(st } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21ROGERSSATCHELL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_PERCENTRANK_OutRange(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_ROGERSSATCHELL_OutRange(((TA_ROGERSSATCHELL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -327794,12 +396206,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_21ROGERSSATCHELL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_PERCENTRANK_Advance(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_ROGERSSATCHELL_Advance(((TA_ROGERSSATCHELL_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -327811,15 +396223,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__advance(struct _ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy, "PERCENTRANK_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_10copy, "ROGERSSATCHELL_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -327845,16 +396257,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self) { - TA_PERCENTRANK_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_self) { + TA_ROGERSSATCHELL_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -327871,18 +396283,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(struct __p __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23824, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream))))) __PYX_ERR(3, 23824, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream))))) __PYX_ERR(3, 29342, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -327896,7 +396308,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_PERCENTRANK_Clone(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_ROGERSSATCHELL_Clone(((TA_ROGERSSATCHELL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -327939,7 +396351,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(struct __p if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23834, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROGERSSATCHELL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -327961,7 +396373,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(struct __p __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROGERSSATCHELL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -327974,19 +396386,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(struct __p /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10RSI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10RSI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10RSI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10RSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -328000,7 +396412,7 @@ static void __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream___dealloc__(struct __pyx_o if (__pyx_t_1) { - (void)(TA_PLUS_DI_Close(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_RSI_Close(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -328026,29 +396438,27 @@ static void __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream___dealloc__(struct __pyx_o /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10RSI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10RSI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -328064,75 +396474,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23858, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29376, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23858, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23858, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23858, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29376, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23858, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29376, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23858, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 23858, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29376, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 29376, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23858, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23858, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23858, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29376, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23858, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29376, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23858, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29376, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 23858, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 29376, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -328143,15 +396539,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_PLUS_DI_Stream *__pyx_v_handle; + TA_RSI_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -328167,47 +396561,31 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23859, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23860, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23861, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23862, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 23862, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 23862, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 23862, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 29378, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23863, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29379, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23864, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29380, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23865, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29381, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23870, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29386, __pyx_L1_error) /*try:*/ { @@ -328217,9 +396595,9 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(struct __pyx_obj_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_PLUS_DI_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_RSI_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_PLUS_DI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RSI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -328236,7 +396614,7 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - (void)(TA_PLUS_DI_Close(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_RSI_Close(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -328304,7 +396682,7 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23887, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RSI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -328316,12 +396694,10 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(struct __pyx_obj_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -328337,31 +396713,29 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill, "PLUS_DI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RSI_Stream_4open_and_fill, "RSI_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10RSI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RSI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -328377,75 +396751,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23889, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29405, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23889, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23889, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29405, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29405, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 23889, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 23889, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29405, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 29405, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 23889, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23889, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29405, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29405, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23890, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29406, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 23889, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 29405, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -328456,10 +396816,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -328468,8 +396826,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObje PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_PLUS_DI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_stream = 0; + TA_RSI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -328491,52 +396849,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23891, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23892, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23893, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23894, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 23894, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 23894, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 23894, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 29408, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 23895, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29409, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 23896, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29410, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 23897, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29411, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PLUS_DI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23903, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 23905, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29419, __pyx_L1_error) /*try:*/ { @@ -328546,7 +396888,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_RSI_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -328559,7 +396901,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23909, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29423, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -328570,7 +396912,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PLUS_DI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_RSI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -328674,33 +397016,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23920, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23921, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 23921, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 23921, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 23921, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 23921, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 29435, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23921, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 23921, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29435, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 23921, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29435, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -328718,12 +397054,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObje __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -328742,29 +397076,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_6update, "PLUS_DI_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RSI_Stream_6update, "RSI_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -328780,72 +397112,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23923, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29437, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23923, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23923, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29437, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 23923, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 23923, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29437, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 29437, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23923, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23923, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29437, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23924, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23924, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23924, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29438, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 23923, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29437, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -328869,7 +397185,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_6update(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PLUS_DI_Update(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RSI_Update(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -328897,13 +397213,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_6update(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23931, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23932, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -328920,7 +397236,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_6update(struct __pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -328932,29 +397248,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_6update(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_8peek, "PLUS_DI_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RSI_Stream_8peek, "RSI_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -328970,72 +397284,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23934, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29448, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23934, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23934, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23934, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29448, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 23934, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 23934, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29448, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 29448, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23934, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23934, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23934, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29448, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23935, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23935, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 23935, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29449, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 23934, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29448, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -329059,7 +397357,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_8peek(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PLUS_DI_Peek(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RSI_Peek(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -329087,13 +397385,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_8peek(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23942, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23943, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -329110,7 +397408,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_8peek(struct __pyx_ob /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -329122,21 +397420,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_8peek(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -329160,7 +397458,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PLUS_DI_Value(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RSI_Value(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -329188,13 +397486,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23953, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23954, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -329211,7 +397509,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_5value___get__(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -329222,12 +397520,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_5value___get__(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_PLUS_DI_OutRange(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_RSI_OutRange(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -329238,12 +397536,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__out_range(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_PLUS_DI_Advance(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_RSI_Advance(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -329255,15 +397553,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__advance(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_10copy, "PLUS_DI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RSI_Stream_10copy, "RSI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -329289,16 +397587,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self) { - TA_PLUS_DI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self) { + TA_RSI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -329315,18 +397613,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(struct __pyx_o __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23965, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream))))) __PYX_ERR(3, 23965, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream))))) __PYX_ERR(3, 29479, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -329340,7 +397638,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_PLUS_DI_Clone(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_RSI_Clone(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -329383,7 +397681,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(struct __pyx_o if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23975, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -329405,7 +397703,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(struct __pyx_o __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -329418,19 +397716,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(struct __pyx_o /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10RVI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10RVI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10RVI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10RVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -329444,7 +397742,7 @@ static void __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream___dealloc__(struct __pyx_o if (__pyx_t_1) { - (void)(TA_PLUS_DM_Close(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_RVI_Close(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -329470,23 +397768,23 @@ static void __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream___dealloc__(struct __pyx_o /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10RVI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10RVI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + int __pyx_v_stddevperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -329507,86 +397805,92 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 23999, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29514, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23999, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29514, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23999, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29514, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23999, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29514, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 23999, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 23999, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29514, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 29514, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 23999, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29514, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 23999, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29514, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 23999, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29514, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23999, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29514, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[2]) { + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29514, __pyx_L3_error) + } else { + __pyx_v_stddevperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 23999, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 29514, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; +static int __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_PLUS_DM_Stream *__pyx_v_handle; + TA_RVI_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -329602,39 +397906,31 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24001, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24002, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 24002, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 24002, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 29516, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24003, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29517, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24004, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29518, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24005, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29519, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24010, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29524, __pyx_L1_error) /*try:*/ { @@ -329644,9 +397940,9 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(struct __pyx_obj_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_PLUS_DM_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod) + 1); - __pyx_v_retCode = TA_PLUS_DM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RVI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -329663,7 +397959,7 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - (void)(TA_PLUS_DM_Close(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_RVI_Close(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -329731,7 +398027,7 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24027, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -329743,11 +398039,10 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(struct __pyx_obj_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -329763,25 +398058,25 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill, "PLUS_DM_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RVI_Stream_4open_and_fill, "RVI_Stream.open_and_fill(real, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10RVI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RVI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + int __pyx_v_stddevperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -329802,81 +398097,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24029, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29543, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29543, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29543, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29543, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24029, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 24029, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29543, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 29543, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29543, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29543, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29543, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24030, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29544, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[2]) { + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29544, __pyx_L3_error) + } else { + __pyx_v_stddevperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 24029, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 29543, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -329885,8 +398186,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObje PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_PLUS_DM_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_stream = 0; + TA_RVI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -329908,44 +398209,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24031, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24032, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24033, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 24033, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 24033, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 29546, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24034, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29547, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24035, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29548, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24036, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29549, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PLUS_DM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24042, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24044, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29557, __pyx_L1_error) /*try:*/ { @@ -329955,7 +398248,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DM_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod)); } /*finally:*/ { @@ -329968,7 +398261,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24048, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29561, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -329979,7 +398272,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PLUS_DM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_RVI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -330083,30 +398376,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24059, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24060, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 24060, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 24060, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 24060, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 29573, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24060, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24060, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29573, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 24060, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29573, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -330124,11 +398414,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObje __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -330147,28 +398436,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_6update, "PLUS_DM_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RVI_Stream_6update, "RVI_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -330184,64 +398472,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24062, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29575, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24062, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24062, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29575, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24062, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 24062, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29575, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 29575, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24062, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24062, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29575, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24063, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24063, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29576, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24062, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29575, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -330265,7 +398545,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_6update(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PLUS_DM_Update(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RVI_Update(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -330293,13 +398573,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_6update(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24070, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24071, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -330316,7 +398596,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_6update(struct __pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -330328,28 +398608,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_6update(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_8peek, "PLUS_DM_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RVI_Stream_8peek, "RVI_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -330365,64 +398644,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24073, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29586, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24073, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29586, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24073, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 24073, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29586, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 29586, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24073, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29586, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24074, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24074, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29587, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24073, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29586, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -330446,7 +398717,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_8peek(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PLUS_DM_Peek(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RVI_Peek(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -330474,13 +398745,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_8peek(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24081, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24082, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -330497,7 +398768,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_8peek(struct __pyx_ob /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -330509,21 +398780,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_8peek(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -330547,7 +398818,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PLUS_DM_Value(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RVI_Value(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -330575,13 +398846,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24092, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24093, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -330598,7 +398869,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_5value___get__(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -330609,12 +398880,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_5value___get__(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_PLUS_DM_OutRange(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_RVI_OutRange(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -330625,12 +398896,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__out_range(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_PLUS_DM_Advance(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_RVI_Advance(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -330642,15 +398913,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__advance(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_10copy, "PLUS_DM_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RVI_Stream_10copy, "RVI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -330676,16 +398947,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self) { - TA_PLUS_DM_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self) { + TA_RVI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -330702,18 +398973,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(struct __pyx_o __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24104, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream))))) __PYX_ERR(3, 24104, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream))))) __PYX_ERR(3, 29617, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -330727,7 +398998,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_PLUS_DM_Clone(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_RVI_Clone(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -330770,7 +399041,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(struct __pyx_o if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24114, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -330792,7 +399063,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(struct __pyx_o __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -330805,19 +399076,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(struct __pyx_o /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10PPO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10PPO_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11RVIR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11RVIR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10PPO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11RVIR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10PPO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11RVIR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -330831,7 +399102,7 @@ static void __pyx_pf_5talib_7_ta_lib_10PPO_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_PPO_Close(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_RVIR_Close(((TA_RVIR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -330857,24 +399128,24 @@ static void __pyx_pf_5talib_7_ta_lib_10PPO_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10PPO_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11RVIR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10PPO_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11RVIR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + int __pyx_v_stddevperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -330895,87 +399166,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24140, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29652, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24140, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29652, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24140, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29652, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24140, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29652, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24140, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29652, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24140, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 24140, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29652, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 29652, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24140, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29652, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24140, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29652, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24140, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29652, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24140, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29652, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24140, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24140, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29652, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)-2147483648); + __pyx_v_timeperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24140, __pyx_L3_error) + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29652, __pyx_L3_error) } else { - __pyx_v_matype = ((int)1); + __pyx_v_stddevperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 24140, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 29652, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVIR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVIR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_stddevperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -330983,18 +399248,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_11RVIR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_PPO_Stream *__pyx_v_handle; + TA_RVIR_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -331010,31 +399275,39 @@ static int __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24141, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24142, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24142, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29655, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29655, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24143, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29656, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24144, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29657, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24145, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29658, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24150, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29663, __pyx_L1_error) /*try:*/ { @@ -331044,9 +399317,9 @@ static int __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1); + __pyx_v_need = (TA_RVIR_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod) + 1); - __pyx_v_retCode = TA_PPO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RVIR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -331063,7 +399336,7 @@ static int __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_PPO_Close(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_RVIR_Close(((TA_RVIR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -331131,7 +399404,7 @@ static int __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PPO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24167, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVIR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -331143,10 +399416,11 @@ static int __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVIR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -331162,26 +399436,26 @@ static int __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PPO_Stream_4open_and_fill, "PPO_Stream.open_and_fill(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10PPO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PPO_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVIR_Stream_4open_and_fill, "RVIR_Stream.open_and_fill(high, low, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11RVIR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11RVIR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + int __pyx_v_stddevperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -331202,87 +399476,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24169, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29682, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24169, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 24169, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29682, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 29682, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24169, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29682, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29682, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24170, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24170, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29683, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)-2147483648); + __pyx_v_timeperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24170, __pyx_L3_error) + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29683, __pyx_L3_error) } else { - __pyx_v_matype = ((int)1); + __pyx_v_stddevperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 24169, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 29682, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVIR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVIR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_stddevperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -331290,13 +399558,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVIR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -331305,8 +399573,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_PPO_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_stream = 0; + TA_RVIR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -331328,36 +399596,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24171, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24172, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24172, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29686, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29686, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24173, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29687, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24174, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29688, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24175, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29689, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PPO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24181, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RVIR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24183, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29697, __pyx_L1_error) /*try:*/ { @@ -331367,7 +399643,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_RVIR_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod)); } /*finally:*/ { @@ -331380,7 +399656,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24187, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29701, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -331391,7 +399667,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PPO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_RVIR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -331495,27 +399771,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PPO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24198, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVIR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24199, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 24199, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 24199, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 29713, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 29713, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24199, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24199, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29713, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 24199, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29713, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -331533,10 +399812,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVIR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -331555,27 +399835,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PPO_Stream_6update, "PPO_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVIR_Stream_6update, "RVIR_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -331591,56 +399872,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24201, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29715, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29715, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24201, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29715, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24201, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 24201, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29715, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 29715, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24201, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29715, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29715, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24202, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29716, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29716, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24201, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 29715, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVIR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVIR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVIR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -331664,7 +399953,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PPO_Update(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RVIR_Update(((TA_RVIR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -331692,13 +399981,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24209, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVIR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24210, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -331715,7 +400004,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVIR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -331727,27 +400016,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PPO_Stream_8peek, "PPO_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVIR_Stream_8peek, "RVIR_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -331763,56 +400053,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24212, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29726, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29726, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24212, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29726, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24212, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 24212, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29726, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 29726, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24212, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29726, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29726, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24213, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29727, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29727, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24212, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 29726, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVIR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVIR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVIR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -331836,7 +400134,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PPO_Peek(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RVIR_Peek(((TA_RVIR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -331864,13 +400162,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24220, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVIR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24221, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -331887,7 +400185,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVIR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -331899,21 +400197,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVIR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVIR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -331937,7 +400235,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PPO_Value(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RVIR_Value(((TA_RVIR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -331965,13 +400263,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24231, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVIR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24232, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -331988,7 +400286,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVIR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -331999,12 +400297,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10PPO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVIR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_PPO_OutRange(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_RVIR_OutRange(((TA_RVIR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -332015,12 +400313,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10PPO_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10PPO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVIR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_PPO_Advance(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_RVIR_Advance(((TA_RVIR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -332032,15 +400330,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10PPO_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PPO_Stream_10copy, "PPO_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVIR_Stream_10copy, "RVIR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -332066,16 +400364,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVIR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self) { - TA_PPO_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVIR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_self) { + TA_RVIR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -332092,18 +400390,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24243, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream))))) __PYX_ERR(3, 24243, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream))))) __PYX_ERR(3, 29757, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -332117,7 +400415,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_PPO_Clone(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_RVIR_Clone(((TA_RVIR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -332160,7 +400458,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24253, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVIR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -332182,7 +400480,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVIR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -332195,19 +400493,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10PVI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10PVI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10PVI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11RVOL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10PVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11RVOL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -332221,7 +400519,7 @@ static void __pyx_pf_5talib_7_ta_lib_10PVI_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_PVI_Close(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_RVOL_Close(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -332247,22 +400545,22 @@ static void __pyx_pf_5talib_7_ta_lib_10PVI_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10PVI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10PVI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_close = 0; PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -332283,69 +400581,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24275, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29791, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24275, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29791, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24275, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29791, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24275, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 24275, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29791, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 29791, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24275, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24275, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29791, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29791, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_volume = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29791, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_close = values[0]; - __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24275, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 29791, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self), __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_PVI_Stream *__pyx_v_handle; + TA_RVOL_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -332361,39 +400668,31 @@ static int __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24277, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24278, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 24278, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 24278, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 29793, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24279, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29794, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24280, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29795, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24281, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29796, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24286, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29801, __pyx_L1_error) /*try:*/ { @@ -332403,9 +400702,9 @@ static int __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_PVI_Lookback() + 1); + __pyx_v_need = (TA_RVOL_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_PVI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RVOL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -332422,7 +400721,7 @@ static int __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_PVI_Close(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_RVOL_Close(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -332490,7 +400789,7 @@ static int __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24303, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -332502,10 +400801,9 @@ static int __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -332522,24 +400820,24 @@ static int __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVI_Stream_4open_and_fill, "PVI_Stream.open_and_fill(close, volume)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10PVI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill, "RVOL_Stream.open_and_fill(volume, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_close = 0; PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -332560,63 +400858,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24305, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29820, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24305, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29820, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24305, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29820, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24305, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 24305, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29820, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 29820, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24305, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24305, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29820, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29820, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_volume = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29821, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_close = values[0]; - __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24305, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 29820, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(__pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(__pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -332626,8 +400933,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_PVI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_stream = 0; + TA_RVOL_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -332649,44 +400956,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24308, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24309, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 24309, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 24309, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 29823, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24310, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29824, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24311, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29825, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24312, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29826, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24318, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RVOL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24320, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29834, __pyx_L1_error) /*try:*/ { @@ -332696,7 +400995,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PVI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_RVOL_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -332709,7 +401008,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24324, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29838, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -332720,7 +401019,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PVI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_RVOL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -332824,30 +401123,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24335, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVOL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24336, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 24336, __pyx_L1_error); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 24336, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 24336, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_volume) != (0)) __PYX_ERR(3, 29850, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24336, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24336, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29850, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 24336, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29850, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -332865,10 +401161,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -332888,28 +401183,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVI_Stream_6update, "PVI_Stream.update(self, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVOL_Stream_6update, "RVOL_Stream.update(self, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_close; double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -332925,64 +401219,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24338, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29852, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24338, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24338, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29852, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24338, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 24338, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29852, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 29852, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24338, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24338, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29852, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24339, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24339, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29853, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24338, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29852, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self), __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -333006,7 +401292,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PVI_Update(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RVOL_Update(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -333034,13 +401320,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24346, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24347, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -333057,7 +401343,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -333069,28 +401355,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVI_Stream_8peek, "PVI_Stream.peek(self, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVOL_Stream_8peek, "RVOL_Stream.peek(self, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_close; double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -333106,64 +401391,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24349, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29863, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24349, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29863, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24349, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 24349, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29863, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 29863, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24349, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29863, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24350, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24350, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29864, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24349, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29863, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self), __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -333187,7 +401464,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PVI_Peek(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RVOL_Peek(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -333215,13 +401492,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24357, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24358, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -333238,7 +401515,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -333250,21 +401527,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -333288,7 +401565,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PVI_Value(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_RVOL_Value(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -333316,13 +401593,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24368, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24369, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -333339,7 +401616,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -333350,12 +401627,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVOL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_PVI_OutRange(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_RVOL_OutRange(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -333366,12 +401643,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVI_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVOL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_PVI_Advance(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_RVOL_Advance(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -333383,15 +401660,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVI_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVI_Stream_10copy, "PVI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVOL_Stream_10copy, "RVOL_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -333417,16 +401694,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self) { - TA_PVI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self) { + TA_RVOL_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -333443,18 +401720,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24380, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream))))) __PYX_ERR(3, 24380, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream))))) __PYX_ERR(3, 29894, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -333468,7 +401745,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_PVI_Clone(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_RVOL_Clone(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -333511,7 +401788,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24390, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -333533,7 +401810,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -333546,19 +401823,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10PVO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10PVO_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10SAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10SAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10PVO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10SAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10PVO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10SAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -333572,7 +401849,7 @@ static void __pyx_pf_5talib_7_ta_lib_10PVO_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_PVO_Close(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SAR_Close(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -333598,24 +401875,24 @@ static void __pyx_pf_5talib_7_ta_lib_10PVO_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10PVO_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10SAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10PVO_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10SAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_volume = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + double __pyx_v_acceleration; + double __pyx_v_maximum; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -333636,87 +401913,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24416, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29929, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24416, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 24416, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29929, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 29929, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24416, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29929, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29929, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_volume = values[0]; - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24416, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24416, __pyx_L3_error) + __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29929, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)-2147483648); + __pyx_v_acceleration = ((double)0.02); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24416, __pyx_L3_error) + __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29929, __pyx_L3_error) } else { - __pyx_v_matype = ((int)1); + __pyx_v_maximum = ((double)0.2); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 24416, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 29929, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self), __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -333724,18 +401995,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { - PyArrayObject *__pyx_v_a_volume = 0; +static int __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_PVO_Stream *__pyx_v_handle; + TA_SAR_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -333751,31 +402022,39 @@ static int __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24417, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24418, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 24418, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29932, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29932, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29932, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24419, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29933, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24420, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29934, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24421, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29935, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24426, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29940, __pyx_L1_error) /*try:*/ { @@ -333785,9 +402064,9 @@ static int __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1); + __pyx_v_need = (TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum) + 1); - __pyx_v_retCode = TA_PVO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -333804,7 +402083,7 @@ static int __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_PVO_Close(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SAR_Close(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -333872,7 +402151,7 @@ static int __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVO_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24443, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -333884,10 +402163,11 @@ static int __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -333903,26 +402183,26 @@ static int __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVO_Stream_4open_and_fill, "PVO_Stream.open_and_fill(volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10PVO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVO_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SAR_Stream_4open_and_fill, "SAR_Stream.open_and_fill(high, low, double acceleration=0.02, double maximum=0.2)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_volume = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + double __pyx_v_acceleration; + double __pyx_v_maximum; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -333943,87 +402223,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24445, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29959, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29959, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29959, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29959, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29959, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24445, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 24445, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29959, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 29959, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 24445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29959, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29959, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24445, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29959, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29959, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_volume = values[0]; - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24446, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24446, __pyx_L3_error) + __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29960, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)-2147483648); + __pyx_v_acceleration = ((double)0.02); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24446, __pyx_L3_error) + __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29960, __pyx_L3_error) } else { - __pyx_v_matype = ((int)1); + __pyx_v_maximum = ((double)0.2); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 24445, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 29959, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(__pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -334031,13 +402305,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { - PyArrayObject *__pyx_v_a_volume = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -334046,8 +402320,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_PVO_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_stream = 0; + TA_SAR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -334069,36 +402343,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24447, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24448, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 24448, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29963, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29963, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24449, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29964, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24450, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29965, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24451, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29966, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24457, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24459, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29974, __pyx_L1_error) /*try:*/ { @@ -334108,7 +402390,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum)); } /*finally:*/ { @@ -334121,7 +402403,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24463, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29978, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -334132,7 +402414,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PVO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -334236,27 +402518,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24474, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24475, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_volume); - __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_volume) != (0)) __PYX_ERR(3, 24475, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 24475, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 29990, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 29990, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24475, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24475, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29990, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 24475, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29990, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -334274,10 +402559,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -334296,27 +402582,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVO_Stream_6update, "PVO_Stream.update(self, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SAR_Stream_6update, "SAR_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_volume; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -334332,56 +402619,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24477, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29992, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29992, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24477, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 24477, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29992, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 29992, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29992, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29992, __pyx_L3_error) } - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24478, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29993, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29993, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24477, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 29992, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self), __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -334405,7 +402700,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PVO_Update(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SAR_Update(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -334433,13 +402728,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24485, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24486, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -334456,7 +402751,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -334468,27 +402763,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVO_Stream_8peek, "PVO_Stream.peek(self, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SAR_Stream_8peek, "SAR_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_volume; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -334504,56 +402800,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24488, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30003, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30003, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24488, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30003, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24488, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 24488, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30003, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 30003, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24488, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30003, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30003, __pyx_L3_error) } - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24489, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30004, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30004, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24488, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 30003, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self), __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -334577,7 +402881,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PVO_Peek(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SAR_Peek(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -334605,13 +402909,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24496, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24497, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -334628,7 +402932,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -334640,21 +402944,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -334678,7 +402982,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PVO_Value(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SAR_Value(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -334706,13 +403010,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24507, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24508, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -334729,7 +403033,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -334740,12 +403044,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_PVO_OutRange(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SAR_OutRange(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -334756,12 +403060,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVO_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_PVO_Advance(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SAR_Advance(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -334773,15 +403077,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVO_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVO_Stream_10copy, "PVO_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SAR_Stream_10copy, "SAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -334807,16 +403111,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self) { - TA_PVO_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self) { + TA_SAR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -334833,18 +403137,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24519, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream))))) __PYX_ERR(3, 24519, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream))))) __PYX_ERR(3, 30034, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -334858,7 +403162,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_PVO_Clone(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SAR_Clone(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -334901,7 +403205,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24529, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -334923,7 +403227,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -334936,19 +403240,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10PVT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10PVT_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10PVT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10PVT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -334962,7 +403266,7 @@ static void __pyx_pf_5talib_7_ta_lib_10PVT_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_PVT_Close(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SAREXT_Close(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -334988,27 +403292,35 @@ static void __pyx_pf_5talib_7_ta_lib_10PVT_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10PVT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10PVT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + double __pyx_v_startvalue; + double __pyx_v_offsetonreverse; + double __pyx_v_accelerationinitlong; + double __pyx_v_accelerationlong; + double __pyx_v_accelerationmaxlong; + double __pyx_v_accelerationinitshort; + double __pyx_v_accelerationshort; + double __pyx_v_accelerationmaxshort; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -335024,69 +403336,184 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24551, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30075, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30075, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30075, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24551, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 30075, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 24551, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 10, i); __PYX_ERR(3, 30075, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24551, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24551, __pyx_L3_error) + switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30075, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30075, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30075, __pyx_L3_error) + } else { + __pyx_v_startvalue = ((double)-4e37); + } + if (values[3]) { + __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30075, __pyx_L3_error) + } else { + __pyx_v_offsetonreverse = ((double)-4e37); + } + if (values[4]) { + __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30075, __pyx_L3_error) + } else { + __pyx_v_accelerationinitlong = ((double)-4e37); + } + if (values[5]) { + __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30075, __pyx_L3_error) + } else { + __pyx_v_accelerationlong = ((double)-4e37); + } + if (values[6]) { + __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30075, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxlong = ((double)-4e37); + } + if (values[7]) { + __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30075, __pyx_L3_error) + } else { + __pyx_v_accelerationinitshort = ((double)-4e37); + } + if (values[8]) { + __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30075, __pyx_L3_error) + } else { + __pyx_v_accelerationshort = ((double)-4e37); + } + if (values[9]) { + __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30075, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxshort = ((double)-4e37); } - __pyx_v_close = values[0]; - __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24551, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 10, __pyx_nargs); __PYX_ERR(3, 30075, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { - PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static int __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_PVT_Stream *__pyx_v_handle; + TA_SAREXT_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -335102,39 +403529,39 @@ static int __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24552, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24553, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24554, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 24554, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 24554, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 30078, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 30078, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24555, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30079, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24556, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30080, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24557, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30081, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24562, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30086, __pyx_L1_error) /*try:*/ { @@ -335144,9 +403571,9 @@ static int __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_PVT_Lookback() + 1); + __pyx_v_need = (TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort) + 1); - __pyx_v_retCode = TA_PVT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SAREXT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -335163,7 +403590,7 @@ static int __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_PVT_Close(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SAREXT_Close(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -335231,7 +403658,7 @@ static int __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24579, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -335243,11 +403670,11 @@ static int __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -335263,29 +403690,37 @@ static int __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVT_Stream_4open_and_fill, "PVT_Stream.open_and_fill(close, volume)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10PVT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVT_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill, "SAREXT_Stream.open_and_fill(high, low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + double __pyx_v_startvalue; + double __pyx_v_offsetonreverse; + double __pyx_v_accelerationinitlong; + double __pyx_v_accelerationlong; + double __pyx_v_accelerationmaxlong; + double __pyx_v_accelerationinitshort; + double __pyx_v_accelerationshort; + double __pyx_v_accelerationmaxshort; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -335301,64 +403736,179 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24581, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30105, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24581, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30105, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24581, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30105, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24581, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 30105, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 24581, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 10, i); __PYX_ERR(3, 30105, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24581, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24581, __pyx_L3_error) + switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30105, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30105, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30106, __pyx_L3_error) + } else { + __pyx_v_startvalue = ((double)-4e37); + } + if (values[3]) { + __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30106, __pyx_L3_error) + } else { + __pyx_v_offsetonreverse = ((double)-4e37); + } + if (values[4]) { + __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30106, __pyx_L3_error) + } else { + __pyx_v_accelerationinitlong = ((double)-4e37); + } + if (values[5]) { + __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30106, __pyx_L3_error) + } else { + __pyx_v_accelerationlong = ((double)-4e37); + } + if (values[6]) { + __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30106, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxlong = ((double)-4e37); + } + if (values[7]) { + __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30106, __pyx_L3_error) + } else { + __pyx_v_accelerationinitshort = ((double)-4e37); + } + if (values[8]) { + __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30106, __pyx_L3_error) + } else { + __pyx_v_accelerationshort = ((double)-4e37); + } + if (values[9]) { + __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30106, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxshort = ((double)-4e37); } - __pyx_v_close = values[0]; - __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24581, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 10, __pyx_nargs); __PYX_ERR(3, 30105, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(__pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { - PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -335367,8 +403917,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_PVT_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_stream = 0; + TA_SAREXT_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -335390,44 +403940,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24583, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24584, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24585, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 24585, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 24585, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 30109, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 30109, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24586, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30110, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24587, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30111, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24588, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30112, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24594, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SAREXT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24596, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30120, __pyx_L1_error) /*try:*/ { @@ -335437,7 +403987,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_PVT_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort)); } /*finally:*/ { @@ -335450,7 +404000,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24600, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30124, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -335461,7 +404011,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_PVT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SAREXT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -335565,30 +404115,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24611, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24612, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 24612, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_volume); - __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 24612, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 24612, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 30136, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 30136, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 30136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24612, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24612, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 30136, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 24612, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 30136, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -335606,11 +404156,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -335629,23 +404179,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVT_Stream_6update, "PVT_Stream.update(self, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_6update, "SAREXT_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_close; - double __pyx_v_volume; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -335666,52 +404216,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24614, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30138, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24614, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30138, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24614, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30138, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24614, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 30138, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 24614, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 30138, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24614, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30138, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24614, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30138, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24615, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24615, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30139, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30139, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24614, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 30138, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -335723,7 +404273,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -335747,7 +404297,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PVT_Update(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SAREXT_Update(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -335775,13 +404325,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24622, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24623, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -335798,7 +404348,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -335810,23 +404360,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVT_Stream_8peek, "PVT_Stream.peek(self, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_8peek, "SAREXT_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_close; - double __pyx_v_volume; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -335847,52 +404397,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24625, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30149, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24625, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30149, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24625, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30149, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24625, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30149, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 24625, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 30149, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24625, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30149, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24625, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30149, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24626, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24626, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30150, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30150, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24625, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 30149, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -335904,7 +404454,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -335928,7 +404478,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PVT_Peek(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SAREXT_Peek(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); } /*finally:*/ { @@ -335956,13 +404506,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24633, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24634, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -335979,7 +404529,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -335991,21 +404541,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -336029,7 +404579,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_PVT_Value(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SAREXT_Value(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -336057,13 +404607,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24644, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24645, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -336080,7 +404630,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -336091,12 +404641,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13SAREXT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_PVT_OutRange(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SAREXT_OutRange(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -336107,12 +404657,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVT_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13SAREXT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_PVT_Advance(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SAREXT_Advance(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -336124,15 +404674,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVT_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVT_Stream_10copy, "PVT_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_10copy, "SAREXT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -336158,16 +404708,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self) { - TA_PVT_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self) { + TA_SAREXT_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -336184,18 +404734,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24656, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream))))) __PYX_ERR(3, 24656, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream))))) __PYX_ERR(3, 30180, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -336209,7 +404759,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_PVT_Clone(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SAREXT_Clone(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -336252,7 +404802,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24666, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -336274,7 +404824,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -336287,19 +404837,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_9SI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9SI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_9SI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_9SI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -336313,7 +404863,7 @@ static void __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream___dealloc__(struct __pyx_ob if (__pyx_t_1) { - (void)(TA_QSTICK_Close(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SI_Close(((TA_SI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -336339,14 +404889,14 @@ static void __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream___dealloc__(struct __pyx_ob /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9SI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9SI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -336354,13 +404904,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_limitmove; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -336376,68 +404928,82 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_limitmove,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24690, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30214, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 30214, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30214, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30214, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30214, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30214, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24690, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 24690, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 30214, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 30214, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24690, __pyx_L3_error) + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 30214, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 2: + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30214, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30214, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30214, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30214, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_open = values[0]; - __pyx_v_close = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24690, __pyx_L3_error) + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_limitmove = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_limitmove == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30214, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_limitmove = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 24690, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 30214, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9SI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_limitmove); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -336448,14 +405014,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_9SI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_limitmove) { PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_QSTICK_Stream *__pyx_v_handle; + TA_SI_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -336471,39 +405039,55 @@ static int __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24691, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24692, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24693, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 24693, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 30219, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 30219, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 30219, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 24693, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 30219, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24694, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30220, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24695, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30221, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24696, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30222, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24701, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30227, __pyx_L1_error) /*try:*/ { @@ -336513,9 +405097,9 @@ static int __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(struct __pyx_obj_5 __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_QSTICK_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_SI_Lookback(__pyx_v_limitmove) + 1); - __pyx_v_retCode = TA_QSTICK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_limitmove, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -336532,7 +405116,7 @@ static int __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - (void)(TA_QSTICK_Close(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SI_Close(((TA_SI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -336600,7 +405184,7 @@ static int __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24718, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -336612,10 +405196,12 @@ static int __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(struct __pyx_obj_5 goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -336632,16 +405218,16 @@ static int __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9SI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill, "QSTICK_Stream.open_and_fill(open, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9SI_Stream_4open_and_fill, "SI_Stream.open_and_fill(open, high, low, close, double limitmove=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9SI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9SI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9SI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9SI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -336649,13 +405235,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_limitmove; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -336671,68 +405259,82 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_limitmove,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24720, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30246, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 30246, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30246, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30246, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30246, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30246, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24720, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 24720, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 30246, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 30246, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 24720, __pyx_L3_error) + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 30246, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 2: + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30246, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30246, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30246, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30246, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_open = values[0]; - __pyx_v_close = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24721, __pyx_L3_error) + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_limitmove = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_limitmove == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30247, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_limitmove = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 24720, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 30246, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9SI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_limitmove); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -336743,8 +405345,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9SI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_limitmove) { PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -336754,8 +405358,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObjec PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_QSTICK_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_stream = 0; + TA_SI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -336777,44 +405381,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24722, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24723, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24724, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 24724, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 30252, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 30252, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 30252, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 24724, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 30252, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24725, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30253, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24726, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30254, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24727, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30255, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_QSTICK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24733, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24735, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30263, __pyx_L1_error) /*try:*/ { @@ -336824,7 +405444,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_QSTICK_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SI_Lookback(__pyx_v_limitmove)); } /*finally:*/ { @@ -336837,7 +405457,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24739, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30267, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -336848,7 +405468,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_QSTICK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_limitmove, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -336952,30 +405572,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24750, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24751, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 24751, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 30279, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 30279, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 30279, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_close) != (0)) __PYX_ERR(3, 24751, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 24751, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 30279, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 30279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24751, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24751, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 30279, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 24751, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 30279, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -336993,10 +405619,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObjec __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -337016,15 +405644,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9SI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_6update, "QSTICK_Stream.update(self, double open, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9SI_Stream_6update, "SI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9SI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -337032,12 +405660,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -337053,52 +405683,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24753, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30281, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30281, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30281, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30281, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30281, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24753, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 24753, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 30281, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 30281, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30281, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24753, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30281, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30281, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30281, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24754, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24754, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30282, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30282, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30282, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30282, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24753, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 30281, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9SI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -337106,11 +405750,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9SI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -337134,7 +405780,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_6update(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_QSTICK_Update(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SI_Update(((TA_SI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -337162,13 +405808,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_6update(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24761, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24762, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -337185,7 +405831,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_6update(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -337197,15 +405843,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_6update(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9SI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_8peek, "QSTICK_Stream.peek(self, double open, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9SI_Stream_8peek, "SI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9SI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -337213,12 +405859,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -337234,52 +405882,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24764, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30292, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30292, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30292, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30292, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30292, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24764, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 24764, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30292, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 30292, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30292, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30292, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30292, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30292, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24765, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24765, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30293, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30293, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30293, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30293, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 24764, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 30292, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9SI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -337287,11 +405949,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9SI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -337315,7 +405979,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_8peek(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_QSTICK_Peek(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SI_Peek(((TA_SI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -337343,13 +406007,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_8peek(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24772, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24773, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -337366,7 +406030,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_8peek(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -337378,21 +406042,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_8peek(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_9SI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9SI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9SI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9SI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -337416,7 +406080,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_QSTICK_Value(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SI_Value(((TA_SI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -337444,13 +406108,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24783, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24784, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -337467,7 +406131,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_5value___get__(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -337478,12 +406142,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_5value___get__(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13QSTICK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9SI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_QSTICK_OutRange(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SI_OutRange(((TA_SI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -337494,12 +406158,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13QSTICK_Stream__out_range(struct __py } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13QSTICK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9SI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_QSTICK_Advance(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SI_Advance(((TA_SI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -337511,15 +406175,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13QSTICK_Stream__advance(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9SI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_10copy, "QSTICK_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9SI_Stream_10copy, "SI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9SI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -337545,16 +406209,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9SI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self) { - TA_QSTICK_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9SI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_self) { + TA_SI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -337571,18 +406235,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(struct __pyx_ob __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24795, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream))))) __PYX_ERR(3, 24795, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SI_Stream))))) __PYX_ERR(3, 30323, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -337596,7 +406260,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_QSTICK_Clone(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SI_Clone(((TA_SI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -337639,7 +406303,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(struct __pyx_ob if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24805, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -337661,7 +406325,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(struct __pyx_ob __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -337674,19 +406338,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(struct __pyx_ob /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10RMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10RMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10SIN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10SIN_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10RMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10SIN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10RMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10SIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -337700,7 +406364,7 @@ static void __pyx_pf_5talib_7_ta_lib_10RMA_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_RMA_Close(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SIN_Close(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -337726,14 +406390,14 @@ static void __pyx_pf_5talib_7_ta_lib_10RMA_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10RMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10SIN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10RMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10SIN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -337741,12 +406405,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -337762,78 +406425,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24829, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30355, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24829, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24829, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30355, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24829, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 30355, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 24829, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 30355, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24829, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24829, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30355, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24829, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 24829, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30355, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_RMA_Stream *__pyx_v_handle; + TA_SIN_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -337849,31 +406495,31 @@ static int __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24830, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24831, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24831, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 30357, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24832, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30358, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24833, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30359, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24834, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30360, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24839, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30365, __pyx_L1_error) /*try:*/ { @@ -337883,9 +406529,9 @@ static int __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_RMA_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_SIN_Lookback() + 1); - __pyx_v_retCode = TA_RMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SIN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -337902,7 +406548,7 @@ static int __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_RMA_Close(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SIN_Close(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -337970,7 +406616,7 @@ static int __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24856, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SIN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -337982,7 +406628,7 @@ static int __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -338001,16 +406647,16 @@ static int __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RMA_Stream_4open_and_fill, "RMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10RMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RMA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SIN_Stream_4open_and_fill, "SIN_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SIN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SIN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -338018,12 +406664,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -338039,72 +406684,55 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24858, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30384, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24858, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24858, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24858, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 30384, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 24858, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 30384, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24858, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24858, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30384, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24859, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 24858, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30384, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -338114,8 +406742,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_RMA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_stream = 0; + TA_SIN_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -338137,36 +406765,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24860, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24861, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24861, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 30387, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24862, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30388, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24863, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30389, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24864, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30390, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24870, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24872, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30398, __pyx_L1_error) /*try:*/ { @@ -338176,7 +406804,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_RMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SIN_Lookback()); } /*finally:*/ { @@ -338189,7 +406817,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24876, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30402, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -338200,7 +406828,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_RMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SIN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -338304,27 +406932,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24887, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24888, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 24888, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 24888, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 30414, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 30414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24888, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 24888, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 30414, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 24888, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 30414, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -338342,7 +406970,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -338364,15 +406992,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RMA_Stream_6update, "RMA_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SIN_Stream_6update, "SIN_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -338402,43 +407030,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24890, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30416, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30416, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 24890, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 30416, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 24890, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 30416, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30416, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24891, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30417, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24890, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30416, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -338449,7 +407077,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -338473,7 +407101,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_RMA_Update(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SIN_Update(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -338501,13 +407129,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24898, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24899, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -338524,7 +407152,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -338536,15 +407164,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RMA_Stream_8peek, "RMA_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SIN_Stream_8peek, "SIN_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -338574,43 +407202,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24901, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30427, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24901, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30427, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 24901, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30427, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 24901, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 30427, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24901, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30427, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 24902, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30428, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 24901, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30427, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -338621,7 +407249,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -338645,7 +407273,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_RMA_Peek(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SIN_Peek(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -338673,13 +407301,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24909, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24910, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -338696,7 +407324,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -338708,21 +407336,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -338746,7 +407374,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_RMA_Value(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SIN_Value(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -338774,13 +407402,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24920, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24921, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -338797,7 +407425,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -338808,12 +407436,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10RMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_RMA_OutRange(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SIN_OutRange(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -338824,12 +407452,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10RMA_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10RMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_RMA_Advance(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SIN_Advance(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -338841,15 +407469,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10RMA_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RMA_Stream_10copy, "RMA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SIN_Stream_10copy, "SIN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -338875,16 +407503,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self) { - TA_RMA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self) { + TA_SIN_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -338901,18 +407529,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24932, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream))))) __PYX_ERR(3, 24932, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream))))) __PYX_ERR(3, 30458, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -338926,7 +407554,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_RMA_Clone(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SIN_Clone(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -338969,7 +407597,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24942, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -338991,7 +407619,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -339004,19 +407632,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10ROC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10ROC_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11SINH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11SINH_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10ROC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11SINH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10ROC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11SINH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -339030,7 +407658,7 @@ static void __pyx_pf_5talib_7_ta_lib_10ROC_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_ROC_Close(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SINH_Close(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -339056,14 +407684,14 @@ static void __pyx_pf_5talib_7_ta_lib_10ROC_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10ROC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11SINH_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10ROC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11SINH_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -339071,12 +407699,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -339092,78 +407719,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24966, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30490, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24966, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24966, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30490, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 24966, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 30490, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 24966, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 30490, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24966, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24966, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30490, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24966, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 24966, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30490, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ROC_Stream *__pyx_v_handle; + TA_SINH_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -339179,31 +407789,31 @@ static int __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24967, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24968, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24968, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 30492, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24969, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30493, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 24970, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30494, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 24971, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30495, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 24976, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30500, __pyx_L1_error) /*try:*/ { @@ -339213,9 +407823,9 @@ static int __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ROC_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_SINH_Lookback() + 1); - __pyx_v_retCode = TA_ROC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SINH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -339232,7 +407842,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_ROC_Close(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SINH_Close(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -339300,7 +407910,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24993, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SINH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -339312,7 +407922,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -339331,16 +407941,16 @@ static int __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ROC_Stream_4open_and_fill, "ROC_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ROC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ROC_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SINH_Stream_4open_and_fill, "SINH_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11SINH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SINH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -339348,12 +407958,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -339369,72 +407978,55 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 24995, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30519, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24995, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30519, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 24995, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 30519, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 24995, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 30519, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 24995, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 24995, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30519, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 24996, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 24995, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30519, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -339444,8 +408036,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ROC_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_stream = 0; + TA_SINH_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -339467,36 +408059,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24997, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24998, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 24998, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 30522, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 24999, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30523, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25000, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30524, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25001, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30525, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25007, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SINH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25009, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30533, __pyx_L1_error) /*try:*/ { @@ -339506,7 +408098,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ROC_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SINH_Lookback()); } /*finally:*/ { @@ -339519,7 +408111,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25013, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30537, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -339530,7 +408122,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ROC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SINH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -339634,27 +408226,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25024, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SINH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25025, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 25025, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 25025, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 30549, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 30549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25025, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25025, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 30549, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 25025, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 30549, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -339672,7 +408264,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -339694,15 +408286,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ROC_Stream_6update, "ROC_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SINH_Stream_6update, "SINH_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -339732,43 +408324,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25027, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30551, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25027, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30551, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25027, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 30551, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 25027, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 30551, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25027, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30551, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25028, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30552, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25027, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30551, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -339779,7 +408371,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -339803,7 +408395,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ROC_Update(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SINH_Update(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -339831,13 +408423,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25035, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25036, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -339854,7 +408446,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -339866,15 +408458,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ROC_Stream_8peek, "ROC_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SINH_Stream_8peek, "SINH_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -339904,43 +408496,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25038, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30562, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30562, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25038, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30562, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 25038, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 30562, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30562, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25039, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30563, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25038, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30562, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -339951,7 +408543,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -339975,7 +408567,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ROC_Peek(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SINH_Peek(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -340003,13 +408595,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25046, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25047, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -340026,7 +408618,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -340038,21 +408630,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -340076,7 +408668,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ROC_Value(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SINH_Value(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -340104,13 +408696,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25057, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25058, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -340127,7 +408719,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -340138,12 +408730,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10ROC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11SINH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ROC_OutRange(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SINH_OutRange(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -340154,12 +408746,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ROC_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10ROC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11SINH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ROC_Advance(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SINH_Advance(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -340171,15 +408763,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10ROC_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ROC_Stream_10copy, "ROC_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SINH_Stream_10copy, "SINH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -340205,16 +408797,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self) { - TA_ROC_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self) { + TA_SINH_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -340231,18 +408823,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25069, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream))))) __PYX_ERR(3, 25069, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream))))) __PYX_ERR(3, 30593, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -340256,7 +408848,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ROC_Clone(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SINH_Clone(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -340299,7 +408891,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25079, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -340321,7 +408913,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -340334,19 +408926,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10SMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10SMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11ROCP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10SMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11ROCP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10SMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -340360,7 +408952,7 @@ static void __pyx_pf_5talib_7_ta_lib_11ROCP_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_ROCP_Close(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SMA_Close(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -340386,14 +408978,14 @@ static void __pyx_pf_5talib_7_ta_lib_11ROCP_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10SMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10SMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -340424,59 +409016,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25103, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30627, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30627, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30627, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25103, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 30627, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 25103, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 30627, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30627, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30627, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25103, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30627, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25103, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 30627, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -340487,13 +409079,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ROCP_Stream *__pyx_v_handle; + TA_SMA_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -340509,31 +409101,31 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25104, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25105, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25105, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 30629, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25106, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30630, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25107, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30631, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25108, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30632, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25113, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30637, __pyx_L1_error) /*try:*/ { @@ -340543,9 +409135,9 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ROCP_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_SMA_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_ROCP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -340562,7 +409154,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_ROCP_Close(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SMA_Close(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -340630,7 +409222,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25130, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -340642,7 +409234,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -340661,16 +409253,16 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill, "ROCP_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMA_Stream_4open_and_fill, "SMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -340701,59 +409293,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25132, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30656, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30656, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30656, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25132, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 30656, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 25132, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 30656, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30656, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30656, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25133, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30657, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25132, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 30656, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -340764,7 +409356,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -340774,8 +409366,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ROCP_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_stream = 0; + TA_SMA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -340797,36 +409389,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25134, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25135, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25135, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 30659, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25136, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30660, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25137, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30661, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25138, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30662, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25144, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25146, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30670, __pyx_L1_error) /*try:*/ { @@ -340836,7 +409428,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ROCP_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -340849,7 +409441,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25150, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30674, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -340860,7 +409452,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ROCP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -340964,27 +409556,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25161, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25162, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 25162, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 25162, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 30686, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 30686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25162, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25162, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 30686, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 25162, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 30686, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -341002,7 +409594,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -341024,15 +409616,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCP_Stream_6update, "ROCP_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMA_Stream_6update, "SMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -341062,43 +409654,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25164, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30688, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25164, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30688, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25164, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 30688, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 25164, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 30688, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25164, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30688, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25165, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30689, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25164, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30688, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -341109,7 +409701,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -341133,7 +409725,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ROCP_Update(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SMA_Update(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -341161,13 +409753,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25172, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25173, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -341184,7 +409776,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -341196,15 +409788,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCP_Stream_8peek, "ROCP_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMA_Stream_8peek, "SMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -341234,43 +409826,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25175, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30699, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25175, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30699, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25175, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30699, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 25175, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 30699, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25175, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30699, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25176, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30700, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25175, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30699, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -341281,7 +409873,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -341305,7 +409897,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ROCP_Peek(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SMA_Peek(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -341333,13 +409925,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25183, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25184, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -341356,7 +409948,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -341368,21 +409960,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -341406,7 +409998,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ROCP_Value(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SMA_Value(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -341434,13 +410026,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25194, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25195, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -341457,7 +410049,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -341468,12 +410060,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ROCP_OutRange(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SMA_OutRange(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -341484,12 +410076,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCP_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ROCP_Advance(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SMA_Advance(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -341501,15 +410093,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCP_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCP_Stream_10copy, "ROCP_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMA_Stream_10copy, "SMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -341535,16 +410127,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self) { - TA_ROCP_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self) { + TA_SMA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -341561,18 +410153,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25206, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream))))) __PYX_ERR(3, 25206, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream))))) __PYX_ERR(3, 30730, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -341586,7 +410178,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ROCP_Clone(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SMA_Clone(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -341629,7 +410221,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25216, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -341651,7 +410243,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -341664,19 +410256,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10SMI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10SMI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11ROCR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10SMI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11ROCR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10SMI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -341690,7 +410282,7 @@ static void __pyx_pf_5talib_7_ta_lib_11ROCR_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_ROCR_Close(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SMI_Close(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -341716,27 +410308,32 @@ static void __pyx_pf_5talib_7_ta_lib_11ROCR_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10SMI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10SMI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -341752,79 +410349,138 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25240, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30768, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 30768, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 30768, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 30768, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30768, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30768, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25240, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30768, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25240, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30768, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25240, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 25240, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 30768, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, i); __PYX_ERR(3, 30768, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25240, __pyx_L3_error) + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 30768, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 30768, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 30768, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30768, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30768, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30768, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25240, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30768, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25240, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30768, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30768, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30768, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30768, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25240, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, __pyx_nargs); __PYX_ERR(3, 30768, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ROCR_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_SMI_Stream *__pyx_v_handle; + double __pyx_v_outsmi; + double __pyx_v_outsmisignal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -341839,31 +410495,47 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25241, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25242, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25242, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 30772, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 30772, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 30772, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25243, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30773, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25244, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30774, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25245, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30775, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25250, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30781, __pyx_L1_error) /*try:*/ { @@ -341873,9 +410545,9 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ROCR_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1); - __pyx_v_retCode = TA_ROCR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SMI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -341892,7 +410564,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_ROCR_Close(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SMI_Close(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -341960,7 +410632,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25267, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -341972,10 +410644,12 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -341985,35 +410659,41 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(struct __pyx_obj_5ta + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill, "ROCR_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMI_Stream_4open_and_fill, "SMI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SMI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -342029,83 +410709,142 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25269, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30800, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 30800, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 30800, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 30800, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30800, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30800, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30800, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30800, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25269, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 25269, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 30800, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 7, i); __PYX_ERR(3, 30800, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25269, __pyx_L3_error) + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 30800, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 30800, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 30800, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30800, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30800, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30800, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30800, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25270, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30801, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30801, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30801, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30801, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25269, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 7, __pyx_nargs); __PYX_ERR(3, 30800, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outsmi = 0; + PyArrayObject *__pyx_v_outsmisignal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ROCR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_stream = 0; + TA_SMI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -342122,41 +410861,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25271, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25272, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25272, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 30805, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 30805, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 30805, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25273, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30806, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25274, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30807, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25275, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30808, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25281, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25283, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30817, __pyx_L1_error) /*try:*/ { @@ -342166,7 +410922,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); } /*finally:*/ { @@ -342179,9 +410935,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25287, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30821, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outsmi = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30822, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outsmisignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -342190,7 +410951,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ROCR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SMI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmisignal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -342294,37 +411055,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25298, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25299, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 25299, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 25299, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 30834, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 30834, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 30834, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsmi)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 30834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25299, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 30834, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 30834, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 30834, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsmisignal)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 30834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25299, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 25299, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 30834, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 30834, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 30834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 30834, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 30834, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -342332,16 +411121,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outsmi); + __Pyx_XDECREF((PyObject *)__pyx_v_outsmisignal); @@ -342354,27 +411147,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCR_Stream_6update, "ROCR_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMI_Stream_6update, "SMI_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -342390,63 +411185,82 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25301, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30836, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30836, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30836, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25301, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30836, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25301, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 25301, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 30836, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 30836, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25301, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30836, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30836, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30836, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25302, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30837, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30837, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30837, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25301, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 30836, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outsmi; + double __pyx_v_outsmisignal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -342463,7 +411277,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ROCR_Update(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SMI_Update(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); } /*finally:*/ { @@ -342491,34 +411305,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25309, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25310, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 30846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 30846, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 30846, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -342526,27 +411353,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCR_Stream_8peek, "ROCR_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMI_Stream_8peek, "SMI_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -342562,63 +411391,82 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25312, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30848, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30848, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30848, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25312, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30848, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25312, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 25312, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30848, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 30848, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25312, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30848, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30848, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30848, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25313, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30849, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30849, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30849, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25312, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 30848, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outsmi; + double __pyx_v_outsmisignal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -342635,7 +411483,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ROCR_Peek(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SMI_Peek(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); } /*finally:*/ { @@ -342663,34 +411511,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25320, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25321, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30858, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 30858, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 30858, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 30858, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -342698,28 +411559,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self) { + double __pyx_v_outsmi; + double __pyx_v_outsmisignal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -342736,7 +411600,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ROCR_Value(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SMI_Value(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); } /*finally:*/ { @@ -342764,46 +411628,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25331, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25332, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 30870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 30870, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 30870, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ROCR_OutRange(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SMI_OutRange(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -342814,12 +411691,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCR_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ROCR_Advance(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SMI_Advance(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -342831,15 +411708,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCR_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCR_Stream_10copy, "ROCR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMI_Stream_10copy, "SMI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -342865,16 +411742,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self) { - TA_ROCR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self) { + TA_SMI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -342891,18 +411768,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25343, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream))))) __PYX_ERR(3, 25343, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream))))) __PYX_ERR(3, 30881, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -342916,7 +411793,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ROCR_Clone(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SMI_Clone(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -342959,7 +411836,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25353, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -342981,7 +411858,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -342994,19 +411871,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11SQRT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11SQRT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -343020,7 +411897,7 @@ static void __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream___dealloc__(struct __pyx_o if (__pyx_t_1) { - (void)(TA_ROCR100_Close(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SQRT_Close(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -343046,14 +411923,14 @@ static void __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream___dealloc__(struct __pyx_o /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -343061,12 +411938,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -343082,78 +411958,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25377, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30913, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25377, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25377, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 30913, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 25377, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 30913, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25377, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25377, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30913, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25377, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25377, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30913, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ROCR100_Stream *__pyx_v_handle; + TA_SQRT_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -343169,31 +412028,31 @@ static int __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25378, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25379, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25379, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 30915, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25380, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30916, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25381, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30917, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25382, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30918, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25387, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30923, __pyx_L1_error) /*try:*/ { @@ -343203,9 +412062,9 @@ static int __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(struct __pyx_obj_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ROCR100_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_SQRT_Lookback() + 1); - __pyx_v_retCode = TA_ROCR100_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SQRT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -343222,7 +412081,7 @@ static int __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - (void)(TA_ROCR100_Close(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SQRT_Close(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -343290,7 +412149,7 @@ static int __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25404, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -343302,7 +412161,7 @@ static int __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(struct __pyx_obj_ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -343321,16 +412180,16 @@ static int __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill, "ROCR100_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill, "SQRT_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -343338,12 +412197,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -343359,72 +412217,55 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25406, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30942, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25406, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25406, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30942, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25406, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 30942, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 25406, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 30942, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25406, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25406, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30942, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25407, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25406, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30942, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -343434,8 +412275,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObje PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ROCR100_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_stream = 0; + TA_SQRT_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -343457,36 +412298,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25408, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25409, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25409, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 30945, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25410, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30946, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25411, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30947, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25412, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30948, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCR100_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25418, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SQRT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25420, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30956, __pyx_L1_error) /*try:*/ { @@ -343496,7 +412337,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR100_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SQRT_Lookback()); } /*finally:*/ { @@ -343509,7 +412350,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObje } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25424, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30960, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -343520,7 +412361,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObje __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ROCR100_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SQRT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -343624,27 +412465,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25435, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SQRT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25436, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 25436, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 25436, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 30972, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 30972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25436, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25436, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 30972, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 25436, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 30972, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -343662,7 +412503,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObje __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -343684,15 +412525,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_6update, "ROCR100_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SQRT_Stream_6update, "SQRT_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -343722,43 +412563,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25438, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30974, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25438, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30974, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25438, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 30974, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 25438, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 30974, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25438, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30974, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25439, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30975, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25438, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30974, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -343769,7 +412610,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -343793,7 +412634,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_6update(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ROCR100_Update(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SQRT_Update(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -343821,13 +412662,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_6update(struct __pyx_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25446, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25447, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -343844,7 +412685,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_6update(struct __pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -343856,15 +412697,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_6update(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_8peek, "ROCR100_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SQRT_Stream_8peek, "SQRT_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -343894,43 +412735,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25449, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30985, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25449, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30985, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25449, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30985, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 25449, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 30985, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25449, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30985, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25450, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30986, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25449, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30985, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -343941,7 +412782,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -343965,7 +412806,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_8peek(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ROCR100_Peek(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SQRT_Peek(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -343993,13 +412834,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_8peek(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25457, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25458, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -344016,7 +412857,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_8peek(struct __pyx_ob /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -344028,21 +412869,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_8peek(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -344066,7 +412907,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ROCR100_Value(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SQRT_Value(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -344094,13 +412935,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25468, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25469, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -344117,7 +412958,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_5value___get__(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -344128,12 +412969,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_5value___get__(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14ROCR100_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11SQRT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ROCR100_OutRange(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SQRT_OutRange(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -344144,12 +412985,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14ROCR100_Stream__out_range(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_14ROCR100_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11SQRT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ROCR100_Advance(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SQRT_Advance(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -344161,15 +413002,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_14ROCR100_Stream__advance(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_10copy, "ROCR100_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SQRT_Stream_10copy, "SQRT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -344195,16 +413036,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self) { - TA_ROCR100_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self) { + TA_SQRT_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -344221,18 +413062,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(struct __pyx_o __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25480, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream))))) __PYX_ERR(3, 25480, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream))))) __PYX_ERR(3, 31016, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -344246,7 +413087,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ROCR100_Clone(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SQRT_Clone(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -344289,7 +413130,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(struct __pyx_o if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25490, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -344311,7 +413152,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(struct __pyx_o __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -344324,19 +413165,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(struct __pyx_o /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10RSI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10RSI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10RSI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10RSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -344350,7 +413191,7 @@ static void __pyx_pf_5talib_7_ta_lib_10RSI_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_RSI_Close(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SQZMOM_Close(((TA_SQZMOM_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -344376,27 +413217,34 @@ static void __pyx_pf_5talib_7_ta_lib_10RSI_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10RSI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10RSI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_bbperiod; + double __pyx_v_nbdev; + int __pyx_v_kcperiod; + double __pyx_v_factorwide; + double __pyx_v_factornormal; + double __pyx_v_factornarrow; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -344412,79 +413260,166 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_bbperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,&__pyx_mstate_global->__pyx_n_u_kcperiod,&__pyx_mstate_global->__pyx_n_u_factorwide,&__pyx_mstate_global->__pyx_n_u_factornormal,&__pyx_mstate_global->__pyx_n_u_factornarrow,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25514, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31056, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 9: + values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 31056, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 31056, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 31056, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 31056, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31056, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31056, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31056, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25514, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31056, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25514, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31056, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25514, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 25514, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 31056, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 9, i); __PYX_ERR(3, 31056, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25514, __pyx_L3_error) + case 9: + values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 31056, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 31056, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 31056, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 31056, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31056, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31056, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31056, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31056, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25514, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31056, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25514, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_bbperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_bbperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31056, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_bbperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31056, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)-4e37); + } + if (values[5]) { + __pyx_v_kcperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_kcperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31056, __pyx_L3_error) + } else { + __pyx_v_kcperiod = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_factorwide = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_factorwide == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31056, __pyx_L3_error) + } else { + __pyx_v_factorwide = ((double)-4e37); + } + if (values[7]) { + __pyx_v_factornormal = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_factornormal == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31056, __pyx_L3_error) + } else { + __pyx_v_factornormal = ((double)-4e37); + } + if (values[8]) { + __pyx_v_factornarrow = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_factornarrow == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31056, __pyx_L3_error) + } else { + __pyx_v_factornarrow = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25514, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 9, __pyx_nargs); __PYX_ERR(3, 31056, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQZMOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_bbperiod, __pyx_v_nbdev, __pyx_v_kcperiod, __pyx_v_factorwide, __pyx_v_factornormal, __pyx_v_factornarrow); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_bbperiod, double __pyx_v_nbdev, int __pyx_v_kcperiod, double __pyx_v_factorwide, double __pyx_v_factornormal, double __pyx_v_factornarrow) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_RSI_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_SQZMOM_Stream *__pyx_v_handle; + double __pyx_v_outmomentum; + int __pyx_v_outsqueeze; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -344499,31 +413434,47 @@ static int __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25515, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25516, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25516, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 31060, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 31060, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 31060, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25517, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31061, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25518, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31062, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25519, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31063, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25524, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31069, __pyx_L1_error) /*try:*/ { @@ -344533,9 +413484,9 @@ static int __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_RSI_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_SQZMOM_Lookback(__pyx_v_bbperiod, __pyx_v_nbdev, __pyx_v_kcperiod, __pyx_v_factorwide, __pyx_v_factornormal, __pyx_v_factornarrow) + 1); - __pyx_v_retCode = TA_RSI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SQZMOM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_bbperiod, __pyx_v_nbdev, __pyx_v_kcperiod, __pyx_v_factorwide, __pyx_v_factornormal, __pyx_v_factornarrow, (&__pyx_v_outmomentum), (&__pyx_v_outsqueeze)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -344552,7 +413503,7 @@ static int __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_RSI_Close(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SQZMOM_Close(((TA_SQZMOM_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -344620,7 +413571,7 @@ static int __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RSI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25541, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SQZMOM_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -344632,10 +413583,12 @@ static int __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQZMOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -344645,35 +413598,43 @@ static int __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(struct __pyx_obj_5tal + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RSI_Stream_4open_and_fill, "RSI_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10RSI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RSI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SQZMOM_Stream_4open_and_fill, "SQZMOM_Stream.open_and_fill(high, low, close, int bbperiod=-0x80000000, double nbdev=-4e37, int kcperiod=-0x80000000, double factorwide=-4e37, double factornormal=-4e37, double factornarrow=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13SQZMOM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13SQZMOM_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_bbperiod; + double __pyx_v_nbdev; + int __pyx_v_kcperiod; + double __pyx_v_factorwide; + double __pyx_v_factornormal; + double __pyx_v_factornarrow; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -344689,83 +413650,170 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_bbperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,&__pyx_mstate_global->__pyx_n_u_kcperiod,&__pyx_mstate_global->__pyx_n_u_factorwide,&__pyx_mstate_global->__pyx_n_u_factornormal,&__pyx_mstate_global->__pyx_n_u_factornarrow,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25543, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31088, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 31088, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 31088, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 31088, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 31088, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31088, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31088, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31088, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31088, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31088, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25543, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 25543, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 31088, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 9, i); __PYX_ERR(3, 31088, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25543, __pyx_L3_error) + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 31088, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 31088, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 31088, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 31088, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31088, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31088, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31088, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31088, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31088, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25544, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_bbperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_bbperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31089, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_bbperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31089, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)-4e37); + } + if (values[5]) { + __pyx_v_kcperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_kcperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31089, __pyx_L3_error) + } else { + __pyx_v_kcperiod = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_factorwide = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_factorwide == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31089, __pyx_L3_error) + } else { + __pyx_v_factorwide = ((double)-4e37); + } + if (values[7]) { + __pyx_v_factornormal = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_factornormal == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31089, __pyx_L3_error) + } else { + __pyx_v_factornormal = ((double)-4e37); + } + if (values[8]) { + __pyx_v_factornarrow = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_factornarrow == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31089, __pyx_L3_error) + } else { + __pyx_v_factornarrow = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25543, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 9, __pyx_nargs); __PYX_ERR(3, 31088, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQZMOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_bbperiod, __pyx_v_nbdev, __pyx_v_kcperiod, __pyx_v_factorwide, __pyx_v_factornormal, __pyx_v_factornarrow); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_bbperiod, double __pyx_v_nbdev, int __pyx_v_kcperiod, double __pyx_v_factorwide, double __pyx_v_factornormal, double __pyx_v_factornarrow) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmomentum = 0; + PyArrayObject *__pyx_v_outsqueeze = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_RSI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_stream = 0; + TA_SQZMOM_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -344782,41 +413830,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject * PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25545, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25546, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25546, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 31093, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 31093, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 31093, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25547, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31094, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25548, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31095, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25549, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31096, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25555, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SQZMOM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25557, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31105, __pyx_L1_error) /*try:*/ { @@ -344826,7 +413891,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_RSI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SQZMOM_Lookback(__pyx_v_bbperiod, __pyx_v_nbdev, __pyx_v_kcperiod, __pyx_v_factorwide, __pyx_v_factornormal, __pyx_v_factornarrow)); } /*finally:*/ { @@ -344839,9 +413904,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25561, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31109, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmomentum = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31110, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outsqueeze = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -344850,7 +413920,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_RSI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SQZMOM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_bbperiod, __pyx_v_nbdev, __pyx_v_kcperiod, __pyx_v_factorwide, __pyx_v_factornormal, __pyx_v_factornarrow, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmomentum)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsqueeze)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -344954,37 +414024,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25572, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SQZMOM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25573, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 25573, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 25573, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 31122, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 31122, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 31122, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmomentum)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 31122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25573, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 31122, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 31122, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 31122, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsqueeze)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 31122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25573, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 25573, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 31122, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 31122, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 31122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 31122, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 31122, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -344992,16 +414090,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.SQZMOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmomentum); + __Pyx_XDECREF((PyObject *)__pyx_v_outsqueeze); @@ -345014,27 +414116,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RSI_Stream_6update, "RSI_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SQZMOM_Stream_6update, "SQZMOM_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -345050,239 +414154,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25575, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31124, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31124, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31124, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25575, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 25575, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 31124, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 31124, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31124, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31124, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31124, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25576, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31125, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31125, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31125, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25575, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 31124, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQZMOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; - TA_RetCode __pyx_v_retCode; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_Locks_PyMutex *__pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("update", 0); - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - { - __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; - __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); - /*try:*/ { - - __pyx_v_retCode = TA_RSI_Update(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); - goto __pyx_L8; - } - __pyx_L8:; - } - } - } - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L5; - } - __pyx_L5:; - } - } - __pyx_t_2 = (__pyx_v_retCode != 0); - - if (__pyx_t_2) { - - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25583, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25584, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_3 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_9peek(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RSI_Stream_8peek, "RSI_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_9peek(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - double __pyx_v_real; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("peek (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25586, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25586, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25586, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 25586, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25586, __pyx_L3_error) - } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25587, __pyx_L3_error) - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25586, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self), __pyx_v_real); - - /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outmomentum; + int __pyx_v_outsqueeze; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("peek", 0); + __Pyx_RefNannySetupContext("update", 0); { PyThreadState * _save; @@ -345295,7 +414246,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_RSI_Peek(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SQZMOM_Update(((TA_SQZMOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outmomentum), (&__pyx_v_outsqueeze)); } /*finally:*/ { @@ -345323,34 +414274,253 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25594, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQZMOM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25595, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmomentum); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outsqueeze); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 31134, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 31134, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SQZMOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SQZMOM_Stream_8peek, "SQZMOM_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31136, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31136, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31136, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31136, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 31136, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 31136, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31136, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31136, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31136, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31137, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31137, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31137, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 31136, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.SQZMOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outmomentum; + int __pyx_v_outsqueeze; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_SQZMOM_Peek(((TA_SQZMOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outmomentum), (&__pyx_v_outsqueeze)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQZMOM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmomentum); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outsqueeze); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 31146, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 31146, __pyx_L1_error); __pyx_t_3 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SQZMOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -345358,28 +414528,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self) { + double __pyx_v_outmomentum; + int __pyx_v_outsqueeze; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -345396,7 +414569,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_RSI_Value(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SQZMOM_Value(((TA_SQZMOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmomentum), (&__pyx_v_outsqueeze)); } /*finally:*/ { @@ -345424,46 +414597,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25605, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQZMOM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25606, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmomentum); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outsqueeze); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 31158, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 31158, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SQZMOM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10RSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13SQZMOM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_RSI_OutRange(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SQZMOM_OutRange(((TA_SQZMOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -345474,12 +414660,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10RSI_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10RSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13SQZMOM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_RSI_Advance(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SQZMOM_Advance(((TA_SQZMOM_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -345491,15 +414677,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10RSI_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RSI_Stream_10copy, "RSI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SQZMOM_Stream_10copy, "SQZMOM_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -345525,16 +414711,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self) { - TA_RSI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13SQZMOM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_self) { + TA_SQZMOM_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -345551,18 +414737,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25617, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream))))) __PYX_ERR(3, 25617, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream))))) __PYX_ERR(3, 31169, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -345576,7 +414762,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_RSI_Clone(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SQZMOM_Clone(((TA_SQZMOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -345619,7 +414805,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25627, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQZMOM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -345641,7 +414827,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQZMOM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -345654,19 +414840,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10RVI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10RVI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10STC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10STC_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10RVI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10STC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_STC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10RVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10STC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -345680,7 +414866,7 @@ static void __pyx_pf_5talib_7_ta_lib_10RVI_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_RVI_Close(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_STC_Close(((TA_STC_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -345706,14 +414892,14 @@ static void __pyx_pf_5talib_7_ta_lib_10RVI_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10RVI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10STC_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10RVI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10STC_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -345721,13 +414907,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - int __pyx_v_stddevperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_cycleperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -345743,74 +414930,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_cycleperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25652, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31205, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31205, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25652, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31205, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25652, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31205, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25652, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31205, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25652, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 31205, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 25652, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 31205, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31205, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25652, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31205, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25652, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31205, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25652, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31205, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25652, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31205, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_fastperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25652, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31205, __pyx_L3_error) } else { - __pyx_v_stddevperiod = ((int)-2147483648); + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_cycleperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_cycleperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31205, __pyx_L3_error) + } else { + __pyx_v_cycleperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 25652, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 31205, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10STC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_STC_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_cycleperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -345818,17 +415018,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { +static int __pyx_pf_5talib_7_ta_lib_10STC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_cycleperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_RVI_Stream *__pyx_v_handle; + TA_STC_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -345844,31 +415045,31 @@ static int __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25653, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25654, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25654, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 31207, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25655, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31208, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25656, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31209, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25657, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31210, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25662, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31215, __pyx_L1_error) /*try:*/ { @@ -345878,9 +415079,9 @@ static int __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod) + 1); + __pyx_v_need = (TA_STC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_cycleperiod) + 1); - __pyx_v_retCode = TA_RVI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_cycleperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -345897,7 +415098,7 @@ static int __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_RVI_Close(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_STC_Close(((TA_STC_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -345965,7 +415166,7 @@ static int __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25679, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -345977,7 +415178,7 @@ static int __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -345996,16 +415197,16 @@ static int __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10STC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RVI_Stream_4open_and_fill, "RVI_Stream.open_and_fill(real, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10RVI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RVI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10STC_Stream_4open_and_fill, "STC_Stream.open_and_fill(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int cycleperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10STC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10STC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10STC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10STC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -346013,13 +415214,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - int __pyx_v_stddevperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_cycleperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -346035,74 +415237,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_cycleperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25681, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31234, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31234, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31234, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31234, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31234, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25681, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 31234, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 25681, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 31234, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31234, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31234, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31234, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31234, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25682, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31235, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_fastperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25682, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31235, __pyx_L3_error) } else { - __pyx_v_stddevperiod = ((int)-2147483648); + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_cycleperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_cycleperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31235, __pyx_L3_error) + } else { + __pyx_v_cycleperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 25681, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 31234, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10STC_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_cycleperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -346110,11 +415325,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10STC_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_cycleperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -346124,8 +415340,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_RVI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_stream = 0; + TA_STC_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -346147,36 +415363,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25683, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25684, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 25684, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 31237, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25685, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31238, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25686, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31239, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25687, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31240, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25693, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STC_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25695, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31248, __pyx_L1_error) /*try:*/ { @@ -346186,7 +415402,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_STC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_cycleperiod)); } /*finally:*/ { @@ -346199,7 +415415,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25699, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31252, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -346210,7 +415426,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_RVI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_STC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_cycleperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -346314,27 +415530,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25710, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25711, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 25711, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 25711, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 31264, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 31264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25711, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 31264, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 25711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 31264, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -346352,7 +415568,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -346374,15 +415590,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10STC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RVI_Stream_6update, "RVI_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10STC_Stream_6update, "STC_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10STC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -346412,43 +415628,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25713, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31266, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25713, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 31266, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 25713, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 31266, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31266, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25714, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31267, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25713, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 31266, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10STC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_STC_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -346459,7 +415675,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10STC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -346483,7 +415699,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_RVI_Update(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STC_Update(((TA_STC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -346511,13 +415727,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25721, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25722, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -346534,7 +415750,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -346546,15 +415762,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10STC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RVI_Stream_8peek, "RVI_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10STC_Stream_8peek, "STC_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10STC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -346584,43 +415800,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25724, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31277, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25724, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31277, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25724, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 31277, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 25724, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 31277, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25724, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31277, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25725, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31278, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25724, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 31277, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10STC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_STC_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -346631,7 +415847,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10STC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -346655,7 +415871,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_RVI_Peek(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STC_Peek(((TA_STC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -346683,13 +415899,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25732, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25733, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -346706,7 +415922,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -346718,21 +415934,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10STC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10STC_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10STC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_STC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10STC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -346756,7 +415972,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_RVI_Value(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STC_Value(((TA_STC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -346784,13 +416000,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25743, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25744, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -346807,7 +416023,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -346818,12 +416034,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10RVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10STC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_RVI_OutRange(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_STC_OutRange(((TA_STC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -346834,12 +416050,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10RVI_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10RVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10STC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_RVI_Advance(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_STC_Advance(((TA_STC_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -346851,15 +416067,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10RVI_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10STC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RVI_Stream_10copy, "RVI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10STC_Stream_10copy, "STC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10STC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -346885,16 +416101,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10STC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_STC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self) { - TA_RVI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10STC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_self) { + TA_STC_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_STC_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -346911,18 +416127,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STC_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25755, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream))))) __PYX_ERR(3, 25755, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STC_Stream))))) __PYX_ERR(3, 31308, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STC_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -346936,7 +416152,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_RVI_Clone(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_STC_Clone(((TA_STC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -346979,7 +416195,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25765, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -347001,7 +416217,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -347014,19 +416230,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11RVOL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11RVOL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -347040,7 +416256,7 @@ static void __pyx_pf_5talib_7_ta_lib_11RVOL_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_RVOL_Close(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_STDDEV_Close(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -347066,27 +416282,28 @@ static void __pyx_pf_5talib_7_ta_lib_11RVOL_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_volume = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + double __pyx_v_nbdev; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -347102,78 +416319,92 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25789, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31343, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31343, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25789, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31343, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25789, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31343, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25789, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 31343, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 25789, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 31343, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31343, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25789, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31343, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25789, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31343, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_volume = values[0]; + __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25789, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31343, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31343, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)-4e37); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25789, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 31343, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self), __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_volume = 0; +static int __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_RVOL_Stream *__pyx_v_handle; + TA_STDDEV_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -347189,31 +416420,31 @@ static int __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25790, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25791, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 25791, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 31345, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25792, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31346, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25793, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31347, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25794, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31348, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25799, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31353, __pyx_L1_error) /*try:*/ { @@ -347223,9 +416454,9 @@ static int __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_RVOL_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev) + 1); - __pyx_v_retCode = TA_RVOL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STDDEV_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -347242,7 +416473,7 @@ static int __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_RVOL_Close(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_STDDEV_Close(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -347310,7 +416541,7 @@ static int __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25816, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -347322,10 +416553,10 @@ static int __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -347341,29 +416572,30 @@ static int __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill, "RVOL_Stream.open_and_fill(volume, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill, "STDDEV_Stream.open_and_fill(real, int timeperiod=-0x80000000, double nbdev=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_volume = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + double __pyx_v_nbdev; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -347379,73 +416611,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25818, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31372, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31372, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31372, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31372, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25818, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 31372, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 25818, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 31372, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31372, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31372, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31372, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_volume = values[0]; + __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 25819, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31373, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31373, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)-4e37); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 25818, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 31372, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(__pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_volume = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -347454,8 +416700,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_RVOL_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_stream = 0; + TA_STDDEV_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -347477,36 +416723,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25820, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25821, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 25821, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 31375, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25822, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31376, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25823, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31377, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25824, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31378, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RVOL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25830, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STDDEV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25832, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31386, __pyx_L1_error) /*try:*/ { @@ -347516,7 +416762,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_RVOL_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); } /*finally:*/ { @@ -347529,7 +416775,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25836, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31390, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -347540,7 +416786,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_RVOL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_STDDEV_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -347644,27 +416890,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVOL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25847, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25848, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_volume); - __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_volume) != (0)) __PYX_ERR(3, 25848, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 25848, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 31402, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 31402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25848, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25848, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 31402, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 25848, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 31402, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -347682,10 +416928,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -347704,22 +416950,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVOL_Stream_6update, "RVOL_Stream.update(self, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_6update, "STDDEV_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_volume; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -347740,45 +416986,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25850, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31404, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25850, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31404, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25850, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 31404, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 25850, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 31404, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25850, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31404, __pyx_L3_error) } - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25851, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31405, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25850, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 31404, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self), __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -347789,7 +417035,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -347813,7 +417059,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_RVOL_Update(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STDDEV_Update(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -347841,13 +417087,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25858, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25859, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -347864,7 +417110,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -347876,22 +417122,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVOL_Stream_8peek, "RVOL_Stream.peek(self, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_8peek, "STDDEV_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_volume; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -347912,45 +417158,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25861, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31415, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25861, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31415, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 25861, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 31415, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 25861, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 31415, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25861, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31415, __pyx_L3_error) } - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25862, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31416, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 25861, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 31415, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self), __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -347961,7 +417207,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -347985,7 +417231,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_RVOL_Peek(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STDDEV_Peek(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -348013,13 +417259,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25869, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25870, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -348036,7 +417282,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -348048,21 +417294,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -348086,7 +417332,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_RVOL_Value(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STDDEV_Value(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -348114,13 +417360,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25880, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25881, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -348137,7 +417383,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -348148,12 +417394,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVOL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13STDDEV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_RVOL_OutRange(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_STDDEV_OutRange(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -348164,12 +417410,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVOL_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVOL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13STDDEV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_RVOL_Advance(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_STDDEV_Advance(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -348181,15 +417427,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVOL_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVOL_Stream_10copy, "RVOL_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_10copy, "STDDEV_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -348215,16 +417461,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self) { - TA_RVOL_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self) { + TA_STDDEV_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -348241,18 +417487,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25892, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream))))) __PYX_ERR(3, 25892, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream))))) __PYX_ERR(3, 31446, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -348266,7 +417512,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_RVOL_Clone(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_STDDEV_Clone(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -348309,7 +417555,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25902, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -348331,7 +417577,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -348344,19 +417590,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10SAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10SAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10SAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_12STOCH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10SAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_12STOCH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -348370,7 +417616,7 @@ static void __pyx_pf_5talib_7_ta_lib_10SAR_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_SAR_Close(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_STOCH_Close(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -348396,14 +417642,14 @@ static void __pyx_pf_5talib_7_ta_lib_10SAR_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10SAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10SAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -348412,13 +417658,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - double __pyx_v_acceleration; - double __pyx_v_maximum; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -348434,81 +417684,127 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25927, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31485, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 31485, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 31485, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 31485, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31485, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 25927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31485, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31485, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31485, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31485, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 25927, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 25927, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 31485, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, i); __PYX_ERR(3, 31485, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 31485, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 31485, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 31485, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31485, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 25927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31485, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25927, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31485, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31485, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31485, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = values[0]; __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25927, __pyx_L3_error) + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31485, __pyx_L3_error) } else { - __pyx_v_acceleration = ((double)0.02); + __pyx_v_fastk_period = ((int)-2147483648); } - if (values[3]) { - __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25927, __pyx_L3_error) + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31485, __pyx_L3_error) } else { - __pyx_v_maximum = ((double)0.2); + __pyx_v_slowk_period = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31485, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)0); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31485, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)-2147483648); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31485, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 25927, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 31485, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -348516,19 +417812,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { +static int __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_SAR_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_STOCH_Stream *__pyx_v_handle; + double __pyx_v_outslowk; + double __pyx_v_outslowd; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -348543,39 +417844,47 @@ static int __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25928, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25929, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25930, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 25930, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 31489, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 25930, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 31489, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 31489, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25931, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31490, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25932, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31491, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25933, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31492, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25938, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31498, __pyx_L1_error) /*try:*/ { @@ -348585,9 +417894,9 @@ static int __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum) + 1); + __pyx_v_need = (TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype) + 1); - __pyx_v_retCode = TA_SAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STOCH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outslowk), (&__pyx_v_outslowd)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -348604,7 +417913,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_SAR_Close(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_STOCH_Close(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -348672,7 +417981,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25955, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -348684,11 +417993,12 @@ static int __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -348698,22 +418008,23 @@ static int __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(struct __pyx_obj_5tal + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SAR_Stream_4open_and_fill, "SAR_Stream.open_and_fill(high, low, double acceleration=0.02, double maximum=0.2)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SAR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill, "STOCH_Stream.open_and_fill(high, low, close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -348722,13 +418033,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - double __pyx_v_acceleration; - double __pyx_v_maximum; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -348744,81 +418059,127 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25957, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31517, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 31517, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 31517, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 31517, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31517, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 25957, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31517, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25957, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31517, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25957, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31517, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25957, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31517, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 25957, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 25957, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 31517, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, i); __PYX_ERR(3, 31517, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 31517, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 31517, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 31517, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31517, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 25957, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31517, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 25957, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31517, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25957, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31517, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25957, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31517, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = values[0]; __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25958, __pyx_L3_error) + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31518, __pyx_L3_error) } else { - __pyx_v_acceleration = ((double)0.02); + __pyx_v_fastk_period = ((int)-2147483648); } - if (values[3]) { - __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25958, __pyx_L3_error) + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31518, __pyx_L3_error) } else { - __pyx_v_maximum = ((double)0.2); + __pyx_v_slowk_period = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31518, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)0); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31518, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)-2147483648); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31518, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 25957, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 31517, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -348826,23 +418187,28 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outslowk = 0; + PyArrayObject *__pyx_v_outslowd = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_SAR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_stream = 0; + TA_STOCH_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -348859,49 +418225,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject * PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25959, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25960, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25961, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 25961, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 31522, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 25961, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 31522, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 31522, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 25962, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31523, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 25963, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31524, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 25964, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31525, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25970, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 25972, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31534, __pyx_L1_error) /*try:*/ { @@ -348911,7 +418286,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum)); + __pyx_v_lookback = (__pyx_v_begidx + TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); } /*finally:*/ { @@ -348924,9 +418299,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25976, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31538, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31539, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -348935,7 +418315,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_STOCH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowd)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -349039,40 +418419,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25987, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25988, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 25988, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 31551, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 25988, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 25988, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 31551, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 31551, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outslowk)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 31551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25988, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 31551, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 31551, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 31551, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outslowd)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 31551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 25988, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 25988, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 31551, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 31551, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 31551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 31551, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 31551, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -349080,17 +418485,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outslowk); + __Pyx_XDECREF((PyObject *)__pyx_v_outslowd); @@ -349103,15 +418511,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SAR_Stream_6update, "SAR_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12STOCH_Stream_6update, "STOCH_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -349120,11 +418528,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -349140,52 +418549,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 25990, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31553, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31553, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31553, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31553, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 25990, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 25990, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 31553, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 31553, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 25990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31553, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 25990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31553, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31553, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25991, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 25991, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31554, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31554, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31554, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 25990, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 31553, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -349193,18 +418609,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outslowk; + double __pyx_v_outslowd; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -349221,7 +418641,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SAR_Update(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STOCH_Update(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outslowk), (&__pyx_v_outslowd)); } /*finally:*/ { @@ -349249,34 +418669,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25998, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25999, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31563, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31563, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 31563, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 31563, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -349284,15 +418717,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SAR_Stream_8peek, "SAR_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12STOCH_Stream_8peek, "STOCH_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -349301,11 +418734,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -349321,52 +418755,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26001, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31565, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31565, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26001, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 26001, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 31565, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 31565, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31565, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31565, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31565, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26002, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26002, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31566, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31566, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31566, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26001, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 31565, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -349374,18 +418815,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outslowk; + double __pyx_v_outslowd; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -349402,7 +418847,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SAR_Peek(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STOCH_Peek(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outslowk), (&__pyx_v_outslowd)); } /*finally:*/ { @@ -349430,34 +418875,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26009, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26010, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 31575, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 31575, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -349465,28 +418923,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self) { + double __pyx_v_outslowk; + double __pyx_v_outslowd; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -349503,7 +418964,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SAR_Value(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STOCH_Value(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outslowk), (&__pyx_v_outslowd)); } /*finally:*/ { @@ -349531,46 +418992,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26020, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26021, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 31587, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 31587, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10SAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12STOCH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_SAR_OutRange(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_STOCH_OutRange(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -349581,12 +419055,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SAR_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10SAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12STOCH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_SAR_Advance(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_STOCH_Advance(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -349598,15 +419072,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SAR_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SAR_Stream_10copy, "SAR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12STOCH_Stream_10copy, "STOCH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -349632,16 +419106,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self) { - TA_SAR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self) { + TA_STOCH_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -349658,18 +419132,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26032, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream))))) __PYX_ERR(3, 26032, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream))))) __PYX_ERR(3, 31598, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -349683,7 +419157,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_SAR_Clone(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_STOCH_Clone(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -349726,7 +419200,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26042, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -349748,7 +419222,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -349761,19 +419235,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -349787,7 +419261,7 @@ static void __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream___dealloc__(struct __pyx_ob if (__pyx_t_1) { - (void)(TA_SAREXT_Close(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_STOCHF_Close(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -349813,14 +419287,14 @@ static void __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream___dealloc__(struct __pyx_ob /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -349829,19 +419303,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - double __pyx_v_startvalue; - double __pyx_v_offsetonreverse; - double __pyx_v_accelerationinitlong; - double __pyx_v_accelerationlong; - double __pyx_v_accelerationmaxlong; - double __pyx_v_accelerationinitshort; - double __pyx_v_accelerationshort; - double __pyx_v_accelerationmaxshort; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -349857,159 +419327,101 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26073, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31635, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 26073, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 26073, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 26073, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 26073, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 26073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 31635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 26073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26073, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 10, i); __PYX_ERR(3, 26073, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 31635, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 31635, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 26073, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 26073, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 26073, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 26073, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 26073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 31635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 26073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26073, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31635, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31635, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31635, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = values[0]; __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26073, __pyx_L3_error) - } else { - __pyx_v_startvalue = ((double)-4e37); - } + __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26073, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31635, __pyx_L3_error) } else { - __pyx_v_offsetonreverse = ((double)-4e37); + __pyx_v_fastk_period = ((int)-2147483648); } if (values[4]) { - __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26073, __pyx_L3_error) + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31635, __pyx_L3_error) } else { - __pyx_v_accelerationinitlong = ((double)-4e37); + __pyx_v_fastd_period = ((int)-2147483648); } if (values[5]) { - __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26073, __pyx_L3_error) - } else { - __pyx_v_accelerationlong = ((double)-4e37); - } - if (values[6]) { - __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26073, __pyx_L3_error) + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31635, __pyx_L3_error) } else { - __pyx_v_accelerationmaxlong = ((double)-4e37); - } - if (values[7]) { - __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26073, __pyx_L3_error) - } else { - __pyx_v_accelerationinitshort = ((double)-4e37); - } - if (values[8]) { - __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26073, __pyx_L3_error) - } else { - __pyx_v_accelerationshort = ((double)-4e37); - } - if (values[9]) { - __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26073, __pyx_L3_error) - } else { - __pyx_v_accelerationmaxshort = ((double)-4e37); + __pyx_v_fastd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 10, __pyx_nargs); __PYX_ERR(3, 26073, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 31635, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -350018,24 +419430,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) { +static int __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_SAREXT_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_STOCHF_Stream *__pyx_v_handle; + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -350050,39 +419459,47 @@ static int __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26074, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26075, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26076, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 26076, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 31639, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 26076, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 31639, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 31639, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26077, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31640, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26078, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31641, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26079, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31642, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26084, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31648, __pyx_L1_error) /*try:*/ { @@ -350092,9 +419509,9 @@ static int __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(struct __pyx_obj_5 __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort) + 1); + __pyx_v_need = (TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype) + 1); - __pyx_v_retCode = TA_SAREXT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STOCHF_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -350111,7 +419528,7 @@ static int __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - (void)(TA_SAREXT_Close(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_STOCHF_Close(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -350179,7 +419596,7 @@ static int __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26101, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -350191,11 +419608,12 @@ static int __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(struct __pyx_obj_5 goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -350205,22 +419623,23 @@ static int __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(struct __pyx_obj_5 + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill, "SAREXT_Stream.open_and_fill(high, low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill, "STOCHF_Stream.open_and_fill(high, low, close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -350229,19 +419648,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; - double __pyx_v_startvalue; - double __pyx_v_offsetonreverse; - double __pyx_v_accelerationinitlong; - double __pyx_v_accelerationlong; - double __pyx_v_accelerationmaxlong; - double __pyx_v_accelerationinitshort; - double __pyx_v_accelerationshort; - double __pyx_v_accelerationmaxshort; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -350257,159 +419672,101 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26103, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31667, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 26103, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 26103, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 26103, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 26103, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 26103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 31667, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 26103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31667, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31667, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31667, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31667, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31667, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26103, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 10, i); __PYX_ERR(3, 26103, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 31667, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 31667, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 26103, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 26103, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 26103, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 26103, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 26103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 31667, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 26103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31667, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31667, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26103, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31667, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31667, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26103, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31667, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = values[0]; __pyx_v_low = values[1]; - if (values[2]) { - __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26104, __pyx_L3_error) - } else { - __pyx_v_startvalue = ((double)-4e37); - } + __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26104, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31668, __pyx_L3_error) } else { - __pyx_v_offsetonreverse = ((double)-4e37); + __pyx_v_fastk_period = ((int)-2147483648); } if (values[4]) { - __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26104, __pyx_L3_error) + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31668, __pyx_L3_error) } else { - __pyx_v_accelerationinitlong = ((double)-4e37); + __pyx_v_fastd_period = ((int)-2147483648); } if (values[5]) { - __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26104, __pyx_L3_error) - } else { - __pyx_v_accelerationlong = ((double)-4e37); - } - if (values[6]) { - __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26104, __pyx_L3_error) + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31668, __pyx_L3_error) } else { - __pyx_v_accelerationmaxlong = ((double)-4e37); - } - if (values[7]) { - __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26104, __pyx_L3_error) - } else { - __pyx_v_accelerationinitshort = ((double)-4e37); - } - if (values[8]) { - __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26104, __pyx_L3_error) - } else { - __pyx_v_accelerationshort = ((double)-4e37); - } - if (values[9]) { - __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26104, __pyx_L3_error) - } else { - __pyx_v_accelerationmaxshort = ((double)-4e37); + __pyx_v_fastd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 10, __pyx_nargs); __PYX_ERR(3, 26103, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 31667, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -350418,28 +419775,25 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outfastk = 0; + PyArrayObject *__pyx_v_outfastd = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_SAREXT_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_stream = 0; + TA_STOCHF_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -350456,49 +419810,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObjec PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26105, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26106, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26107, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 26107, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 31672, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 26107, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 31672, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 31672, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26108, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31673, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26109, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31674, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26110, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31675, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SAREXT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26116, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCHF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26118, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31684, __pyx_L1_error) /*try:*/ { @@ -350508,7 +419871,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort)); + __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); } /*finally:*/ { @@ -350521,9 +419884,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26122, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31688, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31689, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -350532,7 +419900,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SAREXT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_STOCHF_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -350636,40 +420004,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26133, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26134, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 26134, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 31701, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 26134, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26134, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 31701, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 31701, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfastk)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 31701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26134, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 31701, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 31701, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 31701, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfastd)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 31701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26134, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 26134, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 31701, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 31701, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 31701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 31701, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 31701, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -350677,17 +420070,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObjec __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); + __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); @@ -350700,15 +420096,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_6update, "SAREXT_Stream.update(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_6update, "STOCHF_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -350717,11 +420113,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -350737,52 +420134,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26136, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31703, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31703, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26136, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31703, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26136, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31703, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26136, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 26136, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 31703, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 31703, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26136, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31703, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26136, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31703, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31703, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26137, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26137, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31704, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31704, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31704, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26136, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 31703, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -350790,18 +420194,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -350818,7 +420226,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_6update(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SAREXT_Update(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STOCHF_Update(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); } /*finally:*/ { @@ -350846,34 +420254,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_6update(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26144, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26145, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 31713, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 31713, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -350881,15 +420302,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_6update(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_8peek, "SAREXT_Stream.peek(self, double high, double low)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_8peek, "STOCHF_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -350898,11 +420319,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { double __pyx_v_high; double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -350918,52 +420340,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26147, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31715, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31715, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26147, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31715, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26147, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31715, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26147, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 26147, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 31715, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 31715, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26147, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31715, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26147, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31715, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31715, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26148, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26148, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31716, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31716, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31716, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 26147, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 31715, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -350971,18 +420400,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -350999,7 +420432,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_8peek(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SAREXT_Peek(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STOCHF_Peek(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); } /*finally:*/ { @@ -351027,34 +420460,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_8peek(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26155, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26156, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 31725, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 31725, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -351062,28 +420508,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_8peek(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self) { + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -351100,7 +420549,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SAREXT_Value(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STOCHF_Value(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outfastk), (&__pyx_v_outfastd)); } /*finally:*/ { @@ -351128,46 +420577,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26166, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26167, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 31737, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 31737, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13SAREXT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13STOCHF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_SAREXT_OutRange(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_STOCHF_OutRange(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -351178,12 +420640,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13SAREXT_Stream__out_range(struct __py } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13SAREXT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13STOCHF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_SAREXT_Advance(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_STOCHF_Advance(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -351195,15 +420657,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13SAREXT_Stream__advance(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_10copy, "SAREXT_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_10copy, "STOCHF_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -351229,16 +420691,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self) { - TA_SAREXT_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self) { + TA_STOCHF_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -351255,18 +420717,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(struct __pyx_ob __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26178, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream))))) __PYX_ERR(3, 26178, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream))))) __PYX_ERR(3, 31748, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -351280,7 +420742,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_SAREXT_Clone(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_STOCHF_Clone(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -351323,7 +420785,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(struct __pyx_ob if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26188, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -351345,7 +420807,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(struct __pyx_ob __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -351358,19 +420820,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(struct __pyx_ob /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10SIN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10SIN_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10SIN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10SIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -351384,7 +420846,7 @@ static void __pyx_pf_5talib_7_ta_lib_10SIN_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_SIN_Close(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_STOCHRSI_Close(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -351410,14 +420872,14 @@ static void __pyx_pf_5talib_7_ta_lib_10SIN_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10SIN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10SIN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -351425,11 +420887,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -351445,62 +420911,122 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26210, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31786, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31786, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31786, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31786, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31786, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26210, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31786, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26210, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 31786, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 26210, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, i); __PYX_ERR(3, 31786, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26210, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31786, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31786, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31786, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31786, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31786, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31786, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31786, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31786, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31786, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)0); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26210, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 31786, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_SIN_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_STOCHRSI_Stream *__pyx_v_handle; + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -351515,31 +421041,31 @@ static int __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26211, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26212, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26212, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 31788, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26213, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31789, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26214, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31790, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26215, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31791, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26220, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31797, __pyx_L1_error) /*try:*/ { @@ -351549,9 +421075,9 @@ static int __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_SIN_Lookback() + 1); + __pyx_v_need = (TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype) + 1); - __pyx_v_retCode = TA_SIN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STOCHRSI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -351568,7 +421094,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_SIN_Close(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_STOCHRSI_Close(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -351636,7 +421162,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SIN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26237, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -351648,7 +421174,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -351661,22 +421187,23 @@ static int __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(struct __pyx_obj_5tal + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SIN_Stream_4open_and_fill, "SIN_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SIN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SIN_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill, "STOCHRSI_Stream.open_and_fill(real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -351684,11 +421211,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -351704,66 +421235,126 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26239, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31816, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31816, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31816, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31816, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31816, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26239, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31816, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26239, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 31816, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 26239, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, i); __PYX_ERR(3, 31816, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26239, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 31816, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 31816, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 31816, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31816, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31816, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31817, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31817, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31817, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 31817, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)0); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26239, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 31816, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outfastk = 0; + PyArrayObject *__pyx_v_outfastd = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_SIN_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_stream = 0; + TA_STOCHRSI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -351780,41 +421371,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject * PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26241, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26242, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26242, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 31819, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26243, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31820, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26244, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31821, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26245, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31822, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26251, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCHRSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26253, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31831, __pyx_L1_error) /*try:*/ { @@ -351824,7 +421416,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SIN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); } /*finally:*/ { @@ -351837,9 +421429,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26257, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31835, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31836, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -351848,7 +421445,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SIN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_STOCHRSI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -351952,37 +421549,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26268, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26269, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 26269, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26269, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 31848, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfastk)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 31848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26269, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 31848, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfastd)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 31848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26269, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 26269, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 31848, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 31848, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 31848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 31848, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 31848, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -351990,7 +421603,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -351999,7 +421613,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject * - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); + __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); @@ -352012,15 +421627,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SIN_Stream_6update, "SIN_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_6update, "STOCHRSI_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -352050,43 +421665,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26271, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31850, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26271, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 31850, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 26271, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 31850, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31850, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26272, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31851, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26271, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 31850, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -352097,14 +421712,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -352121,7 +421739,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SIN_Update(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STOCHRSI_Update(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); } /*finally:*/ { @@ -352149,34 +421767,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26279, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26280, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 31860, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 31860, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -352184,15 +421815,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SIN_Stream_8peek, "SIN_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_8peek, "STOCHRSI_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -352222,43 +421853,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26282, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31862, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31862, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26282, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 31862, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 26282, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 31862, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31862, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26283, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31863, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26282, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 31862, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -352269,14 +421900,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -352293,7 +421927,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SIN_Peek(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STOCHRSI_Peek(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); } /*finally:*/ { @@ -352321,34 +421955,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26290, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26291, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31872, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31872, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 31872, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 31872, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -352356,28 +422003,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self) { + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -352394,7 +422044,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SIN_Value(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_STOCHRSI_Value(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outfastk), (&__pyx_v_outfastd)); } /*finally:*/ { @@ -352422,46 +422072,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26301, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26302, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 31884, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 31884, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10SIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_SIN_OutRange(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_STOCHRSI_OutRange(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -352472,12 +422135,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SIN_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10SIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_SIN_Advance(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_STOCHRSI_Advance(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -352489,15 +422152,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SIN_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SIN_Stream_10copy, "SIN_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_10copy, "STOCHRSI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -352523,16 +422186,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self) { - TA_SIN_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self) { + TA_STOCHRSI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -352549,18 +422212,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26313, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream))))) __PYX_ERR(3, 26313, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream))))) __PYX_ERR(3, 31895, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -352574,7 +422237,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_SIN_Clone(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_STOCHRSI_Clone(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -352617,7 +422280,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26323, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -352639,7 +422302,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -352652,19 +422315,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11SINH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11SINH_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10SUB_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10SUB_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11SINH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10SUB_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11SINH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10SUB_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -352678,7 +422341,7 @@ static void __pyx_pf_5talib_7_ta_lib_11SINH_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_SINH_Close(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SUB_Close(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -352704,26 +422367,27 @@ static void __pyx_pf_5talib_7_ta_lib_11SINH_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11SINH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10SUB_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11SINH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10SUB_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -352739,45 +422403,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26345, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31928, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31928, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26345, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31928, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26345, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 26345, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 31928, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 31928, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26345, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31928, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31928, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26345, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 31928, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -352787,13 +422458,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_SINH_Stream *__pyx_v_handle; + TA_SUB_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -352809,31 +422481,39 @@ static int __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26346, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26347, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26347, __pyx_L1_error); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31931, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 31931, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 31931, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26348, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31932, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26349, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31933, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26350, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31934, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26355, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31939, __pyx_L1_error) /*try:*/ { @@ -352843,9 +422523,9 @@ static int __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_SINH_Lookback() + 1); + __pyx_v_need = (TA_SUB_Lookback() + 1); - __pyx_v_retCode = TA_SINH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SUB_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -352862,7 +422542,7 @@ static int __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_SINH_Close(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SUB_Close(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -352930,7 +422610,7 @@ static int __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SINH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26372, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUB_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -352942,10 +422622,11 @@ static int __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); __Pyx_XDECREF(__pyx_v_arrays); @@ -352961,28 +422642,29 @@ static int __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SINH_Stream_4open_and_fill, "SINH_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11SINH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SINH_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUB_Stream_4open_and_fill, "SUB_Stream.open_and_fill(real0, real1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SUB_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUB_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -352998,45 +422680,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26374, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31958, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31958, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26374, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31958, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26374, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 26374, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 31958, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 31958, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26374, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31958, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31958, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26374, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 31958, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -353046,8 +422735,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -353056,8 +422746,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_SINH_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_stream = 0; + TA_SUB_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -353079,36 +422769,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26376, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26377, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26377, __pyx_L1_error); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 31962, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 31962, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26378, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 31963, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26379, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 31964, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26380, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 31965, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SINH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26386, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUB_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26388, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 31973, __pyx_L1_error) /*try:*/ { @@ -353118,7 +422816,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SINH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_SUB_Lookback()); } /*finally:*/ { @@ -353131,7 +422829,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26392, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31977, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -353142,7 +422840,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SINH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SUB_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -353246,27 +422944,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SINH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26403, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUB_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26404, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 26404, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26404, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real0); + __Pyx_GIVEREF(__pyx_v_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 31989, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_real1); + __Pyx_GIVEREF(__pyx_v_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 31989, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 31989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26404, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26404, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 31989, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 26404, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 31989, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -353284,10 +422985,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); __Pyx_XDECREF(__pyx_v_arrays); @@ -353306,27 +423008,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SINH_Stream_6update, "SINH_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUB_Stream_6update, "SUB_Stream.update(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_real0; + double __pyx_v_real1; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -353342,56 +423045,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26406, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 31991, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31991, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26406, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31991, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26406, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 26406, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 31991, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 31991, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26406, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 31991, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 31991, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26407, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31992, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31992, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26406, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 31991, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -353415,7 +423126,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SINH_Update(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SUB_Update(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); } /*finally:*/ { @@ -353443,13 +423154,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26414, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26415, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -353466,7 +423177,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -353478,27 +423189,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SINH_Stream_8peek, "SINH_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUB_Stream_8peek, "SUB_Stream.peek(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_real0; + double __pyx_v_real1; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -353514,56 +423226,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26417, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32002, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32002, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32002, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26417, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 26417, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 32002, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 32002, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32002, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32002, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26418, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32003, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32003, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26417, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 32002, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -353587,7 +423307,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SINH_Peek(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SUB_Peek(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); } /*finally:*/ { @@ -353615,13 +423335,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26425, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26426, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -353638,7 +423358,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -353650,21 +423370,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -353688,7 +423408,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SINH_Value(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SUB_Value(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -353716,13 +423436,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26436, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26437, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -353739,7 +423459,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -353750,12 +423470,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11SINH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUB_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_SINH_OutRange(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SUB_OutRange(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -353766,12 +423486,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11SINH_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11SINH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUB_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_SINH_Advance(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SUB_Advance(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -353783,15 +423503,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11SINH_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SINH_Stream_10copy, "SINH_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUB_Stream_10copy, "SUB_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -353817,16 +423537,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self) { - TA_SINH_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self) { + TA_SUB_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -353843,18 +423563,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26448, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream))))) __PYX_ERR(3, 26448, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream))))) __PYX_ERR(3, 32033, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -353868,7 +423588,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_SINH_Clone(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SUB_Clone(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -353911,7 +423631,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26458, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -353933,7 +423653,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -353946,19 +423666,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10SMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10SMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10SUM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10SUM_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10SMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10SUM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10SMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10SUM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -353972,7 +423692,7 @@ static void __pyx_pf_5talib_7_ta_lib_10SMA_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_SMA_Close(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SUM_Close(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -353998,14 +423718,14 @@ static void __pyx_pf_5talib_7_ta_lib_10SMA_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10SMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10SUM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10SMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10SUM_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -354036,59 +423756,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26482, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32067, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32067, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32067, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26482, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 32067, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 26482, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 32067, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32067, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32067, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26482, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32067, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 26482, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 32067, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -354099,13 +423819,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_SMA_Stream *__pyx_v_handle; + TA_SUM_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -354121,31 +423841,31 @@ static int __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26483, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26484, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26484, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 32069, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26485, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32070, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26486, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32071, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26487, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32072, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26492, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32077, __pyx_L1_error) /*try:*/ { @@ -354155,9 +423875,9 @@ static int __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_SMA_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_SUM_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_SMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SUM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -354174,7 +423894,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_SMA_Close(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SUM_Close(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -354242,7 +423962,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26509, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUM_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -354254,7 +423974,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -354273,16 +423993,16 @@ static int __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMA_Stream_4open_and_fill, "SMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUM_Stream_4open_and_fill, "SUM_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SUM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUM_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -354313,59 +424033,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26511, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32096, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32096, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32096, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26511, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 32096, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 26511, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 32096, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32096, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32096, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26512, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32097, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 26511, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 32096, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -354376,7 +424096,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -354386,8 +424106,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_SMA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_stream = 0; + TA_SUM_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -354409,36 +424129,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26513, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26514, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26514, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 32099, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26515, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32100, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26516, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32101, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26517, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32102, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26523, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26525, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32110, __pyx_L1_error) /*try:*/ { @@ -354448,7 +424168,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SUM_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -354461,7 +424181,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26529, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32114, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -354472,7 +424192,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SUM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -354576,27 +424296,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26540, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26541, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 26541, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26541, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 32126, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 32126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26541, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26541, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 32126, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 26541, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 32126, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -354614,7 +424334,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -354636,15 +424356,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMA_Stream_6update, "SMA_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUM_Stream_6update, "SUM_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -354674,43 +424394,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26543, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32128, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32128, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26543, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 32128, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 26543, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 32128, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32128, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26544, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32129, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26543, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 32128, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -354721,7 +424441,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -354745,7 +424465,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SMA_Update(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SUM_Update(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -354773,13 +424493,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26551, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26552, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -354796,7 +424516,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -354808,15 +424528,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMA_Stream_8peek, "SMA_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUM_Stream_8peek, "SUM_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -354846,43 +424566,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26554, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32139, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32139, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26554, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 32139, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 26554, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 32139, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32139, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26555, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32140, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26554, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 32139, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -354893,7 +424613,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -354917,7 +424637,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SMA_Peek(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SUM_Peek(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -354945,13 +424665,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26562, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26563, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -354968,7 +424688,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -354980,21 +424700,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -355018,7 +424738,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SMA_Value(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SUM_Value(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -355046,13 +424766,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26573, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26574, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -355069,7 +424789,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -355080,12 +424800,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_SMA_OutRange(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SUM_OutRange(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -355096,12 +424816,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMA_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_SMA_Advance(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SUM_Advance(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -355113,15 +424833,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMA_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMA_Stream_10copy, "SMA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUM_Stream_10copy, "SUM_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -355147,16 +424867,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self) { - TA_SMA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self) { + TA_SUM_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -355173,18 +424893,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26585, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream))))) __PYX_ERR(3, 26585, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream))))) __PYX_ERR(3, 32170, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -355198,7 +424918,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_SMA_Clone(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SUM_Clone(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -355241,7 +424961,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26595, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -355263,7 +424983,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -355276,19 +424996,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10SMI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10SMI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10SMI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10SMI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -355302,7 +425022,7 @@ static void __pyx_pf_5talib_7_ta_lib_10SMI_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_SMI_Close(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SUPERTREND_Close(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -355328,14 +425048,14 @@ static void __pyx_pf_5talib_7_ta_lib_10SMI_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10SMI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10SMI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -355346,14 +425066,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; + double __pyx_v_multiplier; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[7] = {0,0,0,0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -355369,72 +425087,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26623, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32206, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 26623, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 26623, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 26623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 32206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 32206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 32206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26623, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 32206, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, i); __PYX_ERR(3, 26623, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, i); __PYX_ERR(3, 32206, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 26623, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 26623, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 26623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 32206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 32206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 32206, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32206, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26623, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32206, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -355443,40 +425145,30 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26623, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32206, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26623, __pyx_L3_error) + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32206, __pyx_L3_error) } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26623, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)-2147483648); - } - if (values[6]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26623, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)-2147483648); + __pyx_v_multiplier = ((double)3.0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, __pyx_nargs); __PYX_ERR(3, 26623, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 32206, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -355484,13 +425176,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -355498,9 +425188,9 @@ static int __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(struct __pyx_obj_5tal npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_SMI_Stream *__pyx_v_handle; - double __pyx_v_outsmi; - double __pyx_v_outsmisignal; + TA_SUPERTREND_Stream *__pyx_v_handle; + double __pyx_v_outsupertrend; + int __pyx_v_outtrend; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -355515,47 +425205,47 @@ static int __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26624, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26625, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26626, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26627, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 26627, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 32210, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 26627, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 32210, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 26627, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 32210, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26628, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32211, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26629, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32212, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26630, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32213, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26636, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32219, __pyx_L1_error) /*try:*/ { @@ -355565,9 +425255,9 @@ static int __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1); + __pyx_v_need = (TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier) + 1); - __pyx_v_retCode = TA_SMI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); + __pyx_v_retCode = TA_SUPERTREND_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outsupertrend), (&__pyx_v_outtrend)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -355584,7 +425274,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_SMI_Close(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SUPERTREND_Close(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -355652,7 +425342,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26653, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -355664,7 +425354,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); @@ -355686,16 +425376,16 @@ static int __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMI_Stream_4open_and_fill, "SMI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SMI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill, "SUPERTREND_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000, double multiplier=3.0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -355706,14 +425396,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; + double __pyx_v_multiplier; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[7] = {0,0,0,0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -355729,72 +425417,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26655, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32238, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 26655, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 26655, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 26655, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 32238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26655, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 32238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26655, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 32238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26655, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26655, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26655, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 32238, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 7, i); __PYX_ERR(3, 26655, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, i); __PYX_ERR(3, 32238, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 26655, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 26655, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 26655, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 32238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 26655, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 32238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26655, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 32238, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26655, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32238, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26655, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32238, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -355803,40 +425475,30 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26656, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32239, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26656, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)-2147483648); - } - if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26656, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)-2147483648); - } - if (values[6]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26656, __pyx_L3_error) + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32239, __pyx_L3_error) } else { - __pyx_v_signalperiod = ((int)-2147483648); + __pyx_v_multiplier = ((double)3.0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 7, __pyx_nargs); __PYX_ERR(3, 26655, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 32238, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -355844,13 +425506,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -355859,12 +425519,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject * int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outsmi = 0; - PyArrayObject *__pyx_v_outsmisignal = 0; + PyArrayObject *__pyx_v_outsupertrend = 0; + PyArrayObject *__pyx_v_outtrend = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_SMI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_stream = 0; + TA_SUPERTREND_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -355887,52 +425547,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26657, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26658, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26659, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26660, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 26660, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 32243, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 26660, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 32243, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 26660, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 32243, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26661, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32244, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26662, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32245, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26663, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32246, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26670, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUPERTREND_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26672, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32255, __pyx_L1_error) /*try:*/ { @@ -355942,7 +425602,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier)); } /*finally:*/ { @@ -355955,14 +425615,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26676, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32259, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outsmi = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outsupertrend = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26677, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32260, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outsmisignal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outtrend = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -355971,7 +425631,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SMI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmisignal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SUPERTREND_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsupertrend)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outtrend)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -356075,55 +425735,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26688, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26689, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 26689, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 32272, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 26689, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 32272, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 26689, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsmi)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26689, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 32272, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsupertrend)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 32272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26689, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 26689, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 32272, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 26689, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 32272, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 26689, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsmisignal)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 26689, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 32272, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outtrend)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 32272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26689, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 26689, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 32272, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 26689, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 32272, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 26689, __pyx_L1_error) + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 32272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26689, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 32272, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 26689, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 32272, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -356142,7 +425802,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject * __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); @@ -356153,8 +425813,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject * - __Pyx_XDECREF((PyObject *)__pyx_v_outsmi); - __Pyx_XDECREF((PyObject *)__pyx_v_outsmisignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outsupertrend); + __Pyx_XDECREF((PyObject *)__pyx_v_outtrend); @@ -356167,15 +425827,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMI_Stream_6update, "SMI_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_6update, "SUPERTREND_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -356207,57 +425867,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26691, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32274, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 32274, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32274, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32274, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26691, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 32274, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 26691, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 32274, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32274, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32274, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 32274, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26692, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26692, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26692, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32275, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32275, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32275, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 26691, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 32274, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -356270,9 +425930,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outsmi; - double __pyx_v_outsmisignal; +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outsupertrend; + int __pyx_v_outtrend; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -356297,7 +425957,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SMI_Update(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); + __pyx_v_retCode = TA_SUPERTREND_Update(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outsupertrend), (&__pyx_v_outtrend)); } /*finally:*/ { @@ -356325,22 +425985,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26700, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26701, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26701, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 32284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 26701, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 32284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 26701, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 32284, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 26701, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 32284, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; { @@ -356360,7 +426020,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(struct __pyx_obj_ __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -356373,15 +426033,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMI_Stream_8peek, "SMI_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_8peek, "SUPERTREND_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -356413,57 +426073,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26703, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32286, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 32286, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32286, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32286, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26703, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 32286, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 26703, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 32286, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32286, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32286, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 32286, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26704, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26704, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26704, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32287, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32287, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32287, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 26703, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 32286, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -356476,9 +426136,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outsmi; - double __pyx_v_outsmisignal; +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outsupertrend; + int __pyx_v_outtrend; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -356503,7 +426163,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SMI_Peek(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); + __pyx_v_retCode = TA_SUPERTREND_Peek(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outsupertrend), (&__pyx_v_outtrend)); } /*finally:*/ { @@ -356531,22 +426191,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26712, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26713, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26713, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 32296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 26713, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 32296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 26713, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 32296, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 26713, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 32296, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; { @@ -356566,7 +426226,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(struct __pyx_obj_5t __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -356579,23 +426239,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self) { - double __pyx_v_outsmi; - double __pyx_v_outsmisignal; +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self) { + double __pyx_v_outsupertrend; + int __pyx_v_outtrend; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -356620,7 +426280,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SMI_Value(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); + __pyx_v_retCode = TA_SUPERTREND_Value(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outsupertrend), (&__pyx_v_outtrend)); } /*finally:*/ { @@ -356648,22 +426308,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26724, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26725, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26725, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 32308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 26725, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 32308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 26725, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 32308, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 26725, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 32308, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; { @@ -356683,7 +426343,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(struct __p __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -356695,12 +426355,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_SMI_OutRange(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SUPERTREND_OutRange(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -356711,12 +426371,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMI_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_SMI_Advance(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SUPERTREND_Advance(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -356728,15 +426388,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMI_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMI_Stream_10copy, "SMI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_10copy, "SUPERTREND_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -356762,16 +426422,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self) { - TA_SMI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self) { + TA_SUPERTREND_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -356788,18 +426448,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26736, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream))))) __PYX_ERR(3, 26736, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream))))) __PYX_ERR(3, 32319, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -356813,7 +426473,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_SMI_Clone(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SUPERTREND_Clone(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -356856,7 +426516,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26746, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -356878,7 +426538,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -356891,19 +426551,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11SQRT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11SQRT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -356917,7 +426577,7 @@ static void __pyx_pf_5talib_7_ta_lib_11SQRT_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_SQRT_Close(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SWAK_2PHP_Close(((TA_SWAK_2PHP_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -356943,14 +426603,14 @@ static void __pyx_pf_5talib_7_ta_lib_11SQRT_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -356958,11 +426618,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -356978,61 +426639,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26768, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32353, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32353, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26768, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26768, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 32353, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 26768, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 32353, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26768, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32353, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32353, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32353, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26768, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 32353, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_2PHP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, PyObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_SQRT_Stream *__pyx_v_handle; + TA_SWAK_2PHP_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -357048,31 +426726,31 @@ static int __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26769, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26770, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26770, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 32355, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26771, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32356, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26772, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32357, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26773, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32358, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26778, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32363, __pyx_L1_error) /*try:*/ { @@ -357082,9 +426760,9 @@ static int __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_SQRT_Lookback() + 1); + __pyx_v_need = (TA_SWAK_2PHP_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_SQRT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SWAK_2PHP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -357101,7 +426779,7 @@ static int __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_SQRT_Close(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SWAK_2PHP_Close(((TA_SWAK_2PHP_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -357169,7 +426847,7 @@ static int __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26795, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SWAK_2PHP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -357181,7 +426859,7 @@ static int __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_2PHP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -357200,16 +426878,16 @@ static int __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill, "SQRT_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16SWAK_2PHP_Stream_4open_and_fill, "SWAK_2PHP_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16SWAK_2PHP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16SWAK_2PHP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -357217,11 +426895,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -357237,55 +426916,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26797, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32382, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32382, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26797, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32382, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26797, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 32382, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 26797, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 32382, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26797, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32382, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32382, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32383, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26797, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 32382, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_2PHP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -357295,8 +426991,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_SQRT_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_stream = 0; + TA_SWAK_2PHP_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -357318,36 +427014,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26799, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26800, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26800, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 32385, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26801, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32386, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26802, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32387, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26803, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32388, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SQRT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26809, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SWAK_2PHP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26811, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32396, __pyx_L1_error) /*try:*/ { @@ -357357,7 +427053,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SQRT_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_SWAK_2PHP_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -357370,7 +427066,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26815, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32400, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -357381,7 +427077,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SQRT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SWAK_2PHP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -357485,27 +427181,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SQRT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26826, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SWAK_2PHP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26827, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 26827, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26827, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 32412, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 32412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26827, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26827, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 32412, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 26827, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 32412, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -357523,7 +427219,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_2PHP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -357545,15 +427241,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SQRT_Stream_6update, "SQRT_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16SWAK_2PHP_Stream_6update, "SWAK_2PHP_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -357583,43 +427279,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26829, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32414, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26829, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32414, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26829, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 32414, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 26829, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 32414, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26829, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32414, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26830, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32415, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26829, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 32414, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_2PHP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -357630,7 +427326,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -357654,7 +427350,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SQRT_Update(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SWAK_2PHP_Update(((TA_SWAK_2PHP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -357682,13 +427378,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26837, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_2PHP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26838, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -357705,7 +427401,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_2PHP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -357717,15 +427413,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SQRT_Stream_8peek, "SQRT_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16SWAK_2PHP_Stream_8peek, "SWAK_2PHP_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -357755,43 +427451,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26840, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32425, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26840, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32425, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26840, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 32425, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 26840, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 32425, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26840, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32425, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26841, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32426, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26840, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 32425, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_2PHP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -357802,7 +427498,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -357826,7 +427522,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SQRT_Peek(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SWAK_2PHP_Peek(((TA_SWAK_2PHP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -357854,13 +427550,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26848, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_2PHP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26849, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -357877,7 +427573,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_2PHP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -357889,21 +427585,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -357927,7 +427623,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SQRT_Value(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SWAK_2PHP_Value(((TA_SWAK_2PHP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -357955,13 +427651,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26859, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_2PHP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26860, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -357978,7 +427674,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_2PHP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -357989,12 +427685,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11SQRT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16SWAK_2PHP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_SQRT_OutRange(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SWAK_2PHP_OutRange(((TA_SWAK_2PHP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -358005,12 +427701,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11SQRT_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11SQRT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16SWAK_2PHP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_SQRT_Advance(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SWAK_2PHP_Advance(((TA_SWAK_2PHP_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -358022,15 +427718,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11SQRT_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SQRT_Stream_10copy, "SQRT_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16SWAK_2PHP_Stream_10copy, "SWAK_2PHP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -358056,16 +427752,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self) { - TA_SQRT_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_16SWAK_2PHP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_self) { + TA_SWAK_2PHP_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -358082,18 +427778,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26871, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream))))) __PYX_ERR(3, 26871, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream))))) __PYX_ERR(3, 32456, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -358107,7 +427803,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_SQRT_Clone(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SWAK_2PHP_Clone(((TA_SWAK_2PHP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -358150,7 +427846,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26881, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_2PHP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -358172,7 +427868,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_2PHP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -358185,19 +427881,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -358211,7 +427907,7 @@ static void __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream___dealloc__(struct __pyx_ob if (__pyx_t_1) { - (void)(TA_STDDEV_Close(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SWAK_BP_Close(((TA_SWAK_BP_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -358237,14 +427933,14 @@ static void __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream___dealloc__(struct __pyx_ob /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -358253,7 +427949,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - double __pyx_v_nbdev; + double __pyx_v_delta; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -358274,74 +427970,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_delta,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26906, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32491, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26906, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 32491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26906, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26906, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 26906, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 32491, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 26906, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 32491, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26906, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 32491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26906, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26906, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32491, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26906, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32491, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26906, __pyx_L3_error) + __pyx_v_delta = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_delta == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32491, __pyx_L3_error) } else { - __pyx_v_nbdev = ((double)-4e37); + __pyx_v_delta = ((double)0.1); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 26906, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 32491, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_delta); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -358353,13 +428049,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { +static int __pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_delta) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_STDDEV_Stream *__pyx_v_handle; + TA_SWAK_BP_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -358375,31 +428071,31 @@ static int __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26907, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26908, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26908, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 32493, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26909, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32494, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26910, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32495, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26911, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32496, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26916, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32501, __pyx_L1_error) /*try:*/ { @@ -358409,9 +428105,9 @@ static int __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(struct __pyx_obj_5 __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev) + 1); + __pyx_v_need = (TA_SWAK_BP_Lookback(__pyx_v_timeperiod, __pyx_v_delta) + 1); - __pyx_v_retCode = TA_STDDEV_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SWAK_BP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_delta, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -358428,7 +428124,7 @@ static int __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - (void)(TA_STDDEV_Close(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SWAK_BP_Close(((TA_SWAK_BP_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -358496,7 +428192,7 @@ static int __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26933, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -358508,7 +428204,7 @@ static int __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(struct __pyx_obj_5 goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -358527,16 +428223,16 @@ static int __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill, "STDDEV_Stream.open_and_fill(real, int timeperiod=-0x80000000, double nbdev=-4e37)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14SWAK_BP_Stream_4open_and_fill, "SWAK_BP_Stream.open_and_fill(real, int timeperiod=-0x80000000, double delta=0.1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14SWAK_BP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14SWAK_BP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -358545,7 +428241,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - double __pyx_v_nbdev; + double __pyx_v_delta; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -358566,74 +428262,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_delta,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26935, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32520, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 32520, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32520, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32520, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 26935, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 32520, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 26935, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 32520, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 26935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 32520, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 26935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32520, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32520, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 26936, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32521, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26936, __pyx_L3_error) + __pyx_v_delta = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_delta == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32521, __pyx_L3_error) } else { - __pyx_v_nbdev = ((double)-4e37); + __pyx_v_delta = ((double)0.1); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 26935, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 32520, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_delta); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -358645,7 +428341,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_delta) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -358655,8 +428351,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObjec PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_STDDEV_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_stream = 0; + TA_SWAK_BP_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -358678,36 +428374,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26937, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26938, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 26938, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 32523, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 26939, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32524, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 26940, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32525, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 26941, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32526, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STDDEV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26947, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SWAK_BP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 26949, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32534, __pyx_L1_error) /*try:*/ { @@ -358717,7 +428413,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SWAK_BP_Lookback(__pyx_v_timeperiod, __pyx_v_delta)); } /*finally:*/ { @@ -358730,7 +428426,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26953, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32538, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -358741,7 +428437,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_STDDEV_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SWAK_BP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_delta, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -358845,27 +428541,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26964, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26965, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 26965, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 26965, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 32550, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 32550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26965, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 26965, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 32550, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 26965, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 32550, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -358883,7 +428579,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObjec __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -358905,15 +428601,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_6update, "STDDEV_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14SWAK_BP_Stream_6update, "SWAK_BP_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -358943,43 +428639,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26967, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32552, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26967, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32552, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 26967, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 32552, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 26967, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 32552, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26967, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32552, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26968, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32553, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26967, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 32552, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -358990,7 +428686,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -359014,7 +428710,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_6update(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_STDDEV_Update(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SWAK_BP_Update(((TA_SWAK_BP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -359042,13 +428738,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_6update(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26975, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26976, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -359065,7 +428761,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_6update(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -359077,15 +428773,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_6update(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_8peek, "STDDEV_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14SWAK_BP_Stream_8peek, "SWAK_BP_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -359115,43 +428811,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 26978, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32563, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32563, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 26978, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 32563, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 26978, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 32563, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 26978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32563, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 26979, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32564, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 26978, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 32563, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -359162,7 +428858,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -359186,7 +428882,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_8peek(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_STDDEV_Peek(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SWAK_BP_Peek(((TA_SWAK_BP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -359214,13 +428910,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_8peek(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26986, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26987, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -359237,7 +428933,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_8peek(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -359249,21 +428945,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_8peek(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -359287,7 +428983,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_STDDEV_Value(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_SWAK_BP_Value(((TA_SWAK_BP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -359315,13 +429011,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26997, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26998, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -359338,7 +429034,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_5value___get__(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -359349,12 +429045,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_5value___get__(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13STDDEV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14SWAK_BP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_STDDEV_OutRange(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SWAK_BP_OutRange(((TA_SWAK_BP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -359365,12 +429061,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13STDDEV_Stream__out_range(struct __py } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13STDDEV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14SWAK_BP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_STDDEV_Advance(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SWAK_BP_Advance(((TA_SWAK_BP_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -359382,15 +429078,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13STDDEV_Stream__advance(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_10copy, "STDDEV_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14SWAK_BP_Stream_10copy, "SWAK_BP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -359416,16 +429112,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self) { - TA_STDDEV_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_BP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_self) { + TA_SWAK_BP_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -359442,18 +429138,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(struct __pyx_ob __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27009, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream))))) __PYX_ERR(3, 27009, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream))))) __PYX_ERR(3, 32594, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -359467,7 +429163,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_STDDEV_Clone(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SWAK_BP_Clone(((TA_SWAK_BP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -359510,7 +429206,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(struct __pyx_ob if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27019, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -359532,7 +429228,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(struct __pyx_ob __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -359545,19 +429241,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(struct __pyx_ob /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_12STOCH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_12STOCH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -359571,7 +429267,7 @@ static void __pyx_pf_5talib_7_ta_lib_12STOCH_Stream___dealloc__(struct __pyx_obj if (__pyx_t_1) { - (void)(TA_STOCH_Close(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SWAK_BUTTER_Close(((TA_SWAK_BUTTER_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -359597,33 +429293,27 @@ static void __pyx_pf_5talib_7_ta_lib_12STOCH_Stream___dealloc__(struct __pyx_obj /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_slowk_period; - int __pyx_v_slowk_matype; - int __pyx_v_slowd_period; - int __pyx_v_slowd_matype; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[8] = {0,0,0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -359639,152 +429329,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27048, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32628, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 27048, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 27048, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 27048, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27048, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27048, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27048, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27048, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32628, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27048, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32628, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27048, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, i); __PYX_ERR(3, 27048, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 32628, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 32628, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 27048, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 27048, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 27048, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27048, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27048, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27048, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27048, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32628, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27048, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32628, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27048, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27048, __pyx_L3_error) - } else { - __pyx_v_slowk_period = ((int)-2147483648); - } - if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27048, __pyx_L3_error) - } else { - __pyx_v_slowk_matype = ((int)0); - } - if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27048, __pyx_L3_error) - } else { - __pyx_v_slowd_period = ((int)-2147483648); - } - if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27048, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32628, __pyx_L3_error) } else { - __pyx_v_slowd_matype = ((int)0); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 27048, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 32628, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BUTTER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_STOCH_Stream *__pyx_v_handle; - double __pyx_v_outslowk; - double __pyx_v_outslowd; + TA_SWAK_BUTTER_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -359799,47 +429416,31 @@ static int __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27049, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27050, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27051, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27052, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 27052, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 27052, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 27052, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 32630, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27053, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32631, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27054, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32632, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27055, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32633, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27061, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32638, __pyx_L1_error) /*try:*/ { @@ -359849,9 +429450,9 @@ static int __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(struct __pyx_obj_5t __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype) + 1); + __pyx_v_need = (TA_SWAK_BUTTER_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_STOCH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outslowk), (&__pyx_v_outslowd)); + __pyx_v_retCode = TA_SWAK_BUTTER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -359868,7 +429469,7 @@ static int __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - (void)(TA_STOCH_Close(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SWAK_BUTTER_Close(((TA_SWAK_BUTTER_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -359936,7 +429537,7 @@ static int __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27078, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BUTTER_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -359948,12 +429549,10 @@ static int __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(struct __pyx_obj_5t goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BUTTER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -359963,42 +429562,35 @@ static int __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(struct __pyx_obj_5t - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill, "STOCH_Stream.open_and_fill(high, low, close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18SWAK_BUTTER_Stream_4open_and_fill, "SWAK_BUTTER_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18SWAK_BUTTER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18SWAK_BUTTER_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_slowk_period; - int __pyx_v_slowk_matype; - int __pyx_v_slowd_period; - int __pyx_v_slowd_matype; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[8] = {0,0,0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -360014,156 +429606,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27080, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32657, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 27080, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 27080, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 27080, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27080, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27080, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27080, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27080, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32657, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27080, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32657, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27080, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, i); __PYX_ERR(3, 27080, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 32657, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 32657, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 27080, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 27080, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 27080, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27080, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27080, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27080, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27080, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32657, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27080, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32657, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27081, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27081, __pyx_L3_error) - } else { - __pyx_v_slowk_period = ((int)-2147483648); - } - if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27081, __pyx_L3_error) - } else { - __pyx_v_slowk_matype = ((int)0); - } - if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27081, __pyx_L3_error) - } else { - __pyx_v_slowd_period = ((int)-2147483648); - } - if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27081, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32658, __pyx_L3_error) } else { - __pyx_v_slowd_matype = ((int)0); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 27080, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 32657, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BUTTER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outslowk = 0; - PyArrayObject *__pyx_v_outslowd = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_STOCH_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_stream = 0; + TA_SWAK_BUTTER_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -360180,58 +429699,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27082, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27083, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27085, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 27085, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 27085, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 27085, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 32660, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27086, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32661, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27087, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32662, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27088, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32663, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27095, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SWAK_BUTTER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27097, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32671, __pyx_L1_error) /*try:*/ { @@ -360241,7 +429743,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SWAK_BUTTER_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -360254,14 +429756,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27101, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27102, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32675, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -360270,7 +429767,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_STOCH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowd)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SWAK_BUTTER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -360374,65 +429871,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27113, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BUTTER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27114, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 27114, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 27114, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 27114, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outslowk)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27114, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 32687, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 32687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27114, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 27114, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 27114, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 27114, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outslowd)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 27114, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27114, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 27114, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 27114, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 27114, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27114, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 27114, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 32687, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 32687, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_14; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_14 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -360440,20 +429909,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BUTTER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outslowk); - __Pyx_XDECREF((PyObject *)__pyx_v_outslowd); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -360466,29 +429931,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12STOCH_Stream_6update, "STOCH_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18SWAK_BUTTER_Stream_6update, "SWAK_BUTTER_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -360504,82 +429967,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27116, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32689, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27116, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27116, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27116, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32689, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27116, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 27116, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 32689, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 32689, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27116, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27116, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27116, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32689, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27117, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27117, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27117, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32690, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 27116, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 32689, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BUTTER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outslowk; - double __pyx_v_outslowd; +static PyObject *__pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -360596,7 +430040,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_6update(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_STOCH_Update(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outslowk), (&__pyx_v_outslowd)); + __pyx_v_retCode = TA_SWAK_BUTTER_Update(((TA_SWAK_BUTTER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -360624,47 +430068,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_6update(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27125, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BUTTER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27126, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27126, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27126, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 27126, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 27126, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BUTTER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -360672,29 +430103,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_6update(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12STOCH_Stream_8peek, "STOCH_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18SWAK_BUTTER_Stream_8peek, "SWAK_BUTTER_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -360710,82 +430139,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27128, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32700, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27128, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27128, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27128, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32700, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27128, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 27128, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 32700, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 32700, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27128, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27128, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27128, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32700, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27129, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27129, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27129, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32701, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 27128, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 32700, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BUTTER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outslowk; - double __pyx_v_outslowd; +static PyObject *__pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -360802,7 +430212,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_8peek(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_STOCH_Peek(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outslowk), (&__pyx_v_outslowd)); + __pyx_v_retCode = TA_SWAK_BUTTER_Peek(((TA_SWAK_BUTTER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -360830,47 +430240,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_8peek(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27137, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BUTTER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27138, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 27138, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 27138, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BUTTER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -360878,31 +430275,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_8peek(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self) { - double __pyx_v_outslowk; - double __pyx_v_outslowd; +static PyObject *__pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -360919,7 +430313,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_5value___get__(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_STOCH_Value(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outslowk), (&__pyx_v_outslowd)); + __pyx_v_retCode = TA_SWAK_BUTTER_Value(((TA_SWAK_BUTTER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -360947,59 +430341,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_5value___get__(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27149, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BUTTER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27150, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 27150, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 27150, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BUTTER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12STOCH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18SWAK_BUTTER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_STOCH_OutRange(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SWAK_BUTTER_OutRange(((TA_SWAK_BUTTER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -361010,12 +430391,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12STOCH_Stream__out_range(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12STOCH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_18SWAK_BUTTER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_STOCH_Advance(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SWAK_BUTTER_Advance(((TA_SWAK_BUTTER_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -361027,15 +430408,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12STOCH_Stream__advance(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12STOCH_Stream_10copy, "STOCH_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18SWAK_BUTTER_Stream_10copy, "SWAK_BUTTER_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -361061,16 +430442,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self) { - TA_STOCH_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_18SWAK_BUTTER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_self) { + TA_SWAK_BUTTER_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -361087,18 +430468,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(struct __pyx_obj __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27161, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream))))) __PYX_ERR(3, 27161, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream))))) __PYX_ERR(3, 32731, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -361112,7 +430493,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_STOCH_Clone(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SWAK_BUTTER_Clone(((TA_SWAK_BUTTER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -361155,7 +430536,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(struct __pyx_obj if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27171, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_BUTTER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -361177,7 +430558,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(struct __pyx_obj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_BUTTER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -361190,19 +430571,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(struct __pyx_obj /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -361216,7 +430597,7 @@ static void __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream___dealloc__(struct __pyx_ob if (__pyx_t_1) { - (void)(TA_STOCHF_Close(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SWAK_GAUSS_Close(((TA_SWAK_GAUSS_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -361242,31 +430623,27 @@ static void __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream___dealloc__(struct __pyx_ob /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -361282,124 +430659,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27198, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32765, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 27198, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27198, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27198, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27198, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27198, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 27198, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 32765, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 32765, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 27198, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27198, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27198, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27198, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32765, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32765, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27198, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27198, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)-2147483648); - } - if (values[5]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27198, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32765, __pyx_L3_error) } else { - __pyx_v_fastd_matype = ((int)0); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 27198, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 32765, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_GAUSS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_STOCHF_Stream *__pyx_v_handle; - double __pyx_v_outfastk; - double __pyx_v_outfastd; + TA_SWAK_GAUSS_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -361414,47 +430746,31 @@ static int __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27199, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27201, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27202, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 27202, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 27202, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 27202, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 32767, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27203, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32768, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27204, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32769, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27205, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32770, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27211, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32775, __pyx_L1_error) /*try:*/ { @@ -361464,9 +430780,9 @@ static int __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(struct __pyx_obj_5 __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype) + 1); + __pyx_v_need = (TA_SWAK_GAUSS_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_STOCHF_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); + __pyx_v_retCode = TA_SWAK_GAUSS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -361483,7 +430799,7 @@ static int __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - (void)(TA_STOCHF_Close(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SWAK_GAUSS_Close(((TA_SWAK_GAUSS_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -361551,7 +430867,7 @@ static int __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27228, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SWAK_GAUSS_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -361563,12 +430879,10 @@ static int __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(struct __pyx_obj_5 goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_GAUSS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -361578,40 +430892,35 @@ static int __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(struct __pyx_obj_5 - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill, "STOCHF_Stream.open_and_fill(high, low, close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SWAK_GAUSS_Stream_4open_and_fill, "SWAK_GAUSS_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17SWAK_GAUSS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17SWAK_GAUSS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -361627,128 +430936,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27230, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32794, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 27230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27230, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27230, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32794, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27230, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32794, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27230, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 27230, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 32794, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 32794, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 27230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27230, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27230, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32794, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27230, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32794, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27231, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27231, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)-2147483648); - } - if (values[5]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27231, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32795, __pyx_L3_error) } else { - __pyx_v_fastd_matype = ((int)0); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 27230, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 32794, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_GAUSS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outfastk = 0; - PyArrayObject *__pyx_v_outfastd = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_STOCHF_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_stream = 0; + TA_SWAK_GAUSS_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -361765,58 +431029,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObjec PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27232, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27233, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27235, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 27235, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 27235, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 27235, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 32797, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27236, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32798, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27237, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32799, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27238, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32800, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCHF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27245, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SWAK_GAUSS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27247, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32808, __pyx_L1_error) /*try:*/ { @@ -361826,7 +431073,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SWAK_GAUSS_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -361839,14 +431086,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27251, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32812, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27252, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -361855,7 +431097,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_STOCHF_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SWAK_GAUSS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -361959,65 +431201,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27263, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SWAK_GAUSS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27264, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 27264, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 27264, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 27264, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfastk)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27264, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 32824, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 32824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27264, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 27264, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 27264, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 27264, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfastd)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 27264, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27264, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 27264, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 27264, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 27264, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27264, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 27264, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 32824, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 32824, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_14; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_14 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -362025,20 +431239,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObjec __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_GAUSS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); - __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -362051,29 +431261,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_6update, "STOCHF_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SWAK_GAUSS_Stream_6update, "SWAK_GAUSS_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -362089,82 +431297,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27266, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32826, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27266, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27266, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27266, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32826, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27266, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 27266, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 32826, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 32826, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27266, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27266, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27266, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32826, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27267, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27267, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27267, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32827, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 27266, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 32826, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_GAUSS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outfastk; - double __pyx_v_outfastd; +static PyObject *__pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -362181,7 +431370,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_6update(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_STOCHF_Update(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); + __pyx_v_retCode = TA_SWAK_GAUSS_Update(((TA_SWAK_GAUSS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -362209,47 +431398,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_6update(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27275, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_GAUSS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27276, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 27276, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 27276, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_GAUSS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -362257,29 +431433,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_6update(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_8peek, "STOCHF_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SWAK_GAUSS_Stream_8peek, "SWAK_GAUSS_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -362295,82 +431469,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27278, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32837, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27278, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27278, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27278, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32837, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27278, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 27278, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 32837, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 32837, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27278, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27278, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27278, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32837, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27279, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27279, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27279, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32838, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 27278, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 32837, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_GAUSS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outfastk; - double __pyx_v_outfastd; +static PyObject *__pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -362387,7 +431542,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_8peek(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_STOCHF_Peek(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); + __pyx_v_retCode = TA_SWAK_GAUSS_Peek(((TA_SWAK_GAUSS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -362415,47 +431570,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_8peek(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27287, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_GAUSS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27288, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27288, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27288, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 27288, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 27288, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_GAUSS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -362463,31 +431605,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_8peek(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self) { - double __pyx_v_outfastk; - double __pyx_v_outfastd; +static PyObject *__pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -362504,7 +431643,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_STOCHF_Value(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outfastk), (&__pyx_v_outfastd)); + __pyx_v_retCode = TA_SWAK_GAUSS_Value(((TA_SWAK_GAUSS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -362532,59 +431671,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27299, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_GAUSS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27300, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27300, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27300, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 27300, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 27300, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_GAUSS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13STOCHF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17SWAK_GAUSS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_STOCHF_OutRange(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SWAK_GAUSS_OutRange(((TA_SWAK_GAUSS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -362595,12 +431721,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13STOCHF_Stream__out_range(struct __py } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13STOCHF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_17SWAK_GAUSS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_STOCHF_Advance(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SWAK_GAUSS_Advance(((TA_SWAK_GAUSS_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -362612,15 +431738,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13STOCHF_Stream__advance(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_10copy, "STOCHF_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SWAK_GAUSS_Stream_10copy, "SWAK_GAUSS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -362646,16 +431772,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self) { - TA_STOCHF_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_17SWAK_GAUSS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_self) { + TA_SWAK_GAUSS_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -362672,18 +431798,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(struct __pyx_ob __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27311, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream))))) __PYX_ERR(3, 27311, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream))))) __PYX_ERR(3, 32868, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -362697,7 +431823,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_STOCHF_Clone(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SWAK_GAUSS_Clone(((TA_SWAK_GAUSS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -362740,7 +431866,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(struct __pyx_ob if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27321, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_GAUSS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -362762,7 +431888,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(struct __pyx_ob __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_GAUSS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -362775,19 +431901,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(struct __pyx_ob /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -362801,7 +431927,7 @@ static void __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_STOCHRSI_Close(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SWAK_HP_Close(((TA_SWAK_HP_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -362827,14 +431953,14 @@ static void __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -362843,14 +431969,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -362866,122 +431989,79 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27349, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32902, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27349, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27349, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27349, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32902, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32902, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27349, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 32902, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, i); __PYX_ERR(3, 27349, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 32902, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27349, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27349, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27349, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32902, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32902, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27349, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32902, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } - if (values[2]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27349, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27349, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27349, __pyx_L3_error) - } else { - __pyx_v_fastd_matype = ((int)0); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 27349, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 32902, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_HP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { +static int __pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_STOCHRSI_Stream *__pyx_v_handle; - double __pyx_v_outfastk; - double __pyx_v_outfastd; + TA_SWAK_HP_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -362996,31 +432076,31 @@ static int __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27350, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27351, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27351, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 32904, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27352, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32905, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27353, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32906, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27354, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32907, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27360, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32912, __pyx_L1_error) /*try:*/ { @@ -363030,9 +432110,9 @@ static int __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype) + 1); + __pyx_v_need = (TA_SWAK_HP_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_STOCHRSI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); + __pyx_v_retCode = TA_SWAK_HP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -363049,7 +432129,7 @@ static int __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_STOCHRSI_Close(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_SWAK_HP_Close(((TA_SWAK_HP_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -363117,7 +432197,7 @@ static int __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27377, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SWAK_HP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -363129,7 +432209,7 @@ static int __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_HP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -363142,23 +432222,22 @@ static int __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(struct __pyx_obj - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill, "STOCHRSI_Stream.open_and_fill(real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14SWAK_HP_Stream_4open_and_fill, "SWAK_HP_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14SWAK_HP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14SWAK_HP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -363167,14 +432246,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -363190,126 +432266,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27379, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32931, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27379, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27379, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27379, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27379, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32931, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27379, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32931, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27379, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 32931, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, i); __PYX_ERR(3, 27379, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 32931, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27379, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27379, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27379, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27379, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 32931, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27379, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32931, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27380, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 32932, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } - if (values[2]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27380, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)-2147483648); - } - if (values[3]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27380, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27380, __pyx_L3_error) - } else { - __pyx_v_fastd_matype = ((int)0); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 27379, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 32931, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_HP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outfastk = 0; - PyArrayObject *__pyx_v_outfastd = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_STOCHRSI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_stream = 0; + TA_SWAK_HP_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -363326,42 +432359,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObj PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27381, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27382, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 32934, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27383, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 32935, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27384, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 32936, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27385, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 32937, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCHRSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27392, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SWAK_HP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27394, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 32945, __pyx_L1_error) /*try:*/ { @@ -363371,7 +432403,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SWAK_HP_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -363384,14 +432416,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27398, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27399, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32949, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -363400,7 +432427,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_STOCHRSI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SWAK_HP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -363504,53 +432531,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27410, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SWAK_HP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27411, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 27411, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfastk)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27411, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 32961, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 32961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 27411, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfastd)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 27411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27411, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 27411, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 27411, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 27411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27411, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 27411, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 32961, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 32961, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_14; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_14 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -363558,8 +432569,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_HP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -363568,8 +432578,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObj - __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); - __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -363582,15 +432591,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_6update, "STOCHRSI_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14SWAK_HP_Stream_6update, "SWAK_HP_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -363620,43 +432629,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27413, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32963, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27413, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 32963, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 27413, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 32963, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32963, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27414, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32964, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27413, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 32963, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_HP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -363667,17 +432676,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outfastk; - double __pyx_v_outfastd; +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -363694,7 +432700,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_STOCHRSI_Update(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); + __pyx_v_retCode = TA_SWAK_HP_Update(((TA_SWAK_HP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -363722,47 +432728,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_6update(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27422, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_HP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27423, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 27423, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 27423, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_HP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -363770,15 +432763,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_8peek, "STOCHRSI_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14SWAK_HP_Stream_8peek, "SWAK_HP_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -363808,43 +432801,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27425, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 32974, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32974, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27425, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 32974, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 27425, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 32974, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 32974, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27426, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32975, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27425, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 32974, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_HP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -363855,17 +432848,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outfastk; - double __pyx_v_outfastd; +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -363882,7 +432872,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_STOCHRSI_Peek(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); + __pyx_v_retCode = TA_SWAK_HP_Peek(((TA_SWAK_HP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -363910,47 +432900,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_8peek(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27434, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_HP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27435, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 27435, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 27435, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_HP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -363958,31 +432935,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self) { - double __pyx_v_outfastk; - double __pyx_v_outfastd; +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -363999,7 +432973,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_STOCHRSI_Value(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outfastk), (&__pyx_v_outfastd)); + __pyx_v_retCode = TA_SWAK_HP_Value(((TA_SWAK_HP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -364027,59 +433001,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_5value___get__(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27446, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_HP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27447, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 27447, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 27447, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_HP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14SWAK_HP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_STOCHRSI_OutRange(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_SWAK_HP_OutRange(((TA_SWAK_HP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -364090,12 +433051,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_14SWAK_HP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_STOCHRSI_Advance(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_SWAK_HP_Advance(((TA_SWAK_HP_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -364107,15 +433068,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_10copy, "STOCHRSI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14SWAK_HP_Stream_10copy, "SWAK_HP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -364141,16 +433102,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self) { - TA_STOCHRSI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_14SWAK_HP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_self) { + TA_SWAK_HP_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -364167,18 +433128,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27458, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream))))) __PYX_ERR(3, 27458, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream))))) __PYX_ERR(3, 33005, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -364192,7 +433153,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_STOCHRSI_Clone(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_SWAK_HP_Clone(((TA_SWAK_HP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -364235,7 +433196,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27468, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SWAK_HP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -364257,7 +433218,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SWAK_HP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -364270,19 +433231,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10SUB_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10SUB_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_9T3_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9T3_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10SUB_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_9T3_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10SUB_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_9T3_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -364296,7 +433257,7 @@ static void __pyx_pf_5talib_7_ta_lib_10SUB_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_SUB_Close(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_T3_Close(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -364322,27 +433283,28 @@ static void __pyx_pf_5talib_7_ta_lib_10SUB_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10SUB_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9T3_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10SUB_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_9T3_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real0 = 0; - PyObject *__pyx_v_real1 = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_vfactor; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -364358,69 +433320,92 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27491, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33040, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 33040, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33040, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33040, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27491, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 27491, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 33040, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 33040, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27491, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27491, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 33040, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33040, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33040, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 33040, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33040, __pyx_L3_error) + } else { + __pyx_v_vfactor = ((double)-4e37); } - __pyx_v_real0 = values[0]; - __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 27491, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 33040, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { - PyArrayObject *__pyx_v_a_real0 = 0; - PyArrayObject *__pyx_v_a_real1 = 0; +static int __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_SUB_Stream *__pyx_v_handle; + TA_T3_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -364436,39 +433421,31 @@ static int __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27492, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27493, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27494, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real0); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 27494, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_real1); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 27494, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 33042, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27495, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33043, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27496, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33044, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27497, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33045, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27502, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33050, __pyx_L1_error) /*try:*/ { @@ -364478,9 +433455,9 @@ static int __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_SUB_Lookback() + 1); + __pyx_v_need = (TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor) + 1); - __pyx_v_retCode = TA_SUB_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_T3_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -364497,7 +433474,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_SUB_Close(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_T3_Close(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -364565,7 +433542,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUB_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27519, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_T3_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -364577,11 +433554,10 @@ static int __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -364597,29 +433573,30 @@ static int __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUB_Stream_4open_and_fill, "SUB_Stream.open_and_fill(real0, real1)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SUB_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUB_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9T3_Stream_4open_and_fill, "T3_Stream.open_and_fill(real, int timeperiod=-0x80000000, double vfactor=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9T3_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9T3_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9T3_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real0 = 0; - PyObject *__pyx_v_real1 = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_vfactor; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -364635,64 +433612,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27521, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33069, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 33069, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33069, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33069, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27521, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 27521, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 33069, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 33069, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27521, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27521, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 33069, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33069, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33069, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 33070, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33070, __pyx_L3_error) + } else { + __pyx_v_vfactor = ((double)-4e37); } - __pyx_v_real0 = values[0]; - __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 27521, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 33069, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { - PyArrayObject *__pyx_v_a_real0 = 0; - PyArrayObject *__pyx_v_a_real1 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -364701,8 +433701,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_SUB_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_stream = 0; + TA_T3_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -364724,44 +433724,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27523, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27525, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real0); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 27525, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_real1); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 27525, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 33072, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27526, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33073, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27527, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33074, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27528, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33075, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUB_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27534, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_T3_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27536, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33083, __pyx_L1_error) /*try:*/ { @@ -364771,7 +433763,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SUB_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor)); } /*finally:*/ { @@ -364784,7 +433776,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27540, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33087, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -364795,7 +433787,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SUB_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_T3_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -364899,30 +433891,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUB_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27551, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_T3_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27552, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real0); - __Pyx_GIVEREF(__pyx_v_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 27552, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_real1); - __Pyx_GIVEREF(__pyx_v_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 27552, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27552, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 33099, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 33099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27552, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27552, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 33099, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 27552, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 33099, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -364940,11 +433929,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -364963,28 +433951,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUB_Stream_6update, "SUB_Stream.update(self, double real0, double real1)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9T3_Stream_6update, "T3_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real0; - double __pyx_v_real1; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -365000,64 +433987,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27554, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33101, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27554, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33101, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27554, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 27554, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 33101, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 33101, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27554, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33101, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27555, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27555, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33102, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 27554, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33101, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -365081,7 +434060,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SUB_Update(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_T3_Update(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -365109,13 +434088,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27562, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27563, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -365132,7 +434111,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -365144,28 +434123,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUB_Stream_8peek, "SUB_Stream.peek(self, double real0, double real1)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9T3_Stream_8peek, "T3_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real0; - double __pyx_v_real1; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -365181,64 +434159,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27565, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33112, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27565, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33112, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27565, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 27565, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 33112, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 33112, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27565, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33112, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27566, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27566, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33113, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 27565, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33112, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -365262,7 +434232,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SUB_Peek(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_T3_Peek(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -365290,13 +434260,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27573, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27574, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -365313,7 +434283,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -365325,21 +434295,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -365363,7 +434333,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SUB_Value(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_T3_Value(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -365391,13 +434361,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27584, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27585, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -365414,7 +434384,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -365425,12 +434395,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUB_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9T3_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_SUB_OutRange(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_T3_OutRange(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -365441,12 +434411,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUB_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUB_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_9T3_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_SUB_Advance(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_T3_Advance(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -365458,15 +434428,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUB_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUB_Stream_10copy, "SUB_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9T3_Stream_10copy, "T3_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -365492,16 +434462,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self) { - TA_SUB_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self) { + TA_T3_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -365518,18 +434488,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27596, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream))))) __PYX_ERR(3, 27596, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream))))) __PYX_ERR(3, 33143, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -365543,7 +434513,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_SUB_Clone(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_T3_Clone(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -365586,7 +434556,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27606, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -365608,7 +434578,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -365621,19 +434591,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10SUM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10SUM_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10TAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10TAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10SUM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10TAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10SUM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10TAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -365647,7 +434617,7 @@ static void __pyx_pf_5talib_7_ta_lib_10SUM_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_SUM_Close(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TAN_Close(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -365673,14 +434643,14 @@ static void __pyx_pf_5talib_7_ta_lib_10SUM_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10SUM_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10TAN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10SUM_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10TAN_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -365688,12 +434658,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -365709,78 +434678,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27630, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33175, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27630, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27630, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33175, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27630, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 33175, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 27630, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 33175, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27630, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27630, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33175, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27630, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 27630, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33175, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_SUM_Stream *__pyx_v_handle; + TA_TAN_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -365796,31 +434748,31 @@ static int __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27631, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27632, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27632, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 33177, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27633, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33178, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27634, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33179, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27635, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33180, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27640, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33185, __pyx_L1_error) /*try:*/ { @@ -365830,9 +434782,9 @@ static int __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_SUM_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_TAN_Lookback() + 1); - __pyx_v_retCode = TA_SUM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -365849,7 +434801,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_SUM_Close(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TAN_Close(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -365917,7 +434869,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUM_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27657, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TAN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -365929,7 +434881,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -365948,16 +434900,16 @@ static int __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUM_Stream_4open_and_fill, "SUM_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SUM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUM_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TAN_Stream_4open_and_fill, "TAN_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10TAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TAN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -365965,12 +434917,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -365986,72 +434937,55 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27659, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33204, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27659, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27659, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27659, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 33204, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 27659, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 33204, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27659, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27659, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33204, __pyx_L3_error) } __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27660, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 27659, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33204, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject *__pyx_v_real) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -366061,8 +434995,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_SUM_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_stream = 0; + TA_TAN_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -366084,36 +435018,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27661, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27662, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27662, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 33207, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27663, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33208, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27664, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33209, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27665, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33210, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27671, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27673, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33218, __pyx_L1_error) /*try:*/ { @@ -366123,7 +435057,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SUM_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_TAN_Lookback()); } /*finally:*/ { @@ -366136,7 +435070,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27677, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33222, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -366147,7 +435081,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SUM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_TAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -366251,27 +435185,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27688, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27689, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 27689, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27689, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 33234, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 33234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27689, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27689, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 33234, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 27689, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 33234, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -366289,7 +435223,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -366311,15 +435245,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUM_Stream_6update, "SUM_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TAN_Stream_6update, "TAN_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -366349,43 +435283,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27691, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33236, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33236, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27691, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 33236, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 27691, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 33236, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33236, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27692, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33237, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27691, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33236, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -366396,7 +435330,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -366420,7 +435354,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SUM_Update(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TAN_Update(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -366448,13 +435382,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27699, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27700, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -366471,7 +435405,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -366483,15 +435417,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUM_Stream_8peek, "SUM_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TAN_Stream_8peek, "TAN_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -366521,43 +435455,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27702, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33247, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27702, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 33247, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 27702, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 33247, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33247, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27703, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33248, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27702, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33247, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -366568,7 +435502,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -366592,7 +435526,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SUM_Peek(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TAN_Peek(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -366620,13 +435554,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27710, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27711, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -366643,7 +435577,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -366655,21 +435589,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -366693,7 +435627,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SUM_Value(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TAN_Value(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -366721,13 +435655,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27721, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27722, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -366744,7 +435678,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -366755,12 +435689,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_SUM_OutRange(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_TAN_OutRange(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -366771,12 +435705,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUM_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_SUM_Advance(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_TAN_Advance(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -366788,15 +435722,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUM_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUM_Stream_10copy, "SUM_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TAN_Stream_10copy, "TAN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -366822,16 +435756,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self) { - TA_SUM_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self) { + TA_TAN_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -366848,18 +435782,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27733, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream))))) __PYX_ERR(3, 27733, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream))))) __PYX_ERR(3, 33278, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -366873,7 +435807,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_SUM_Clone(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_TAN_Clone(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -366916,7 +435850,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27743, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -366938,7 +435872,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -366951,19 +435885,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11TANH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11TANH_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11TANH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11TANH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -366977,7 +435911,7 @@ static void __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream___dealloc__(struct __py if (__pyx_t_1) { - (void)(TA_SUPERTREND_Close(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TANH_Close(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -367003,30 +435937,26 @@ static void __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream___dealloc__(struct __py /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11TANH_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11TANH_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - double __pyx_v_multiplier; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -367042,110 +435972,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27769, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33310, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27769, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27769, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27769, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27769, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27769, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33310, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27769, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, i); __PYX_ERR(3, 27769, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27769, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27769, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27769, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27769, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27769, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 33310, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 33310, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27769, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27769, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_multiplier = ((double)3.0); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33310, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 27769, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33310, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_SUPERTREND_Stream *__pyx_v_handle; - double __pyx_v_outsupertrend; - int __pyx_v_outtrend; + TA_TANH_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -367160,47 +436042,31 @@ static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27770, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27772, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27773, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 27773, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 27773, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 27773, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 33312, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27774, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33313, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27775, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33314, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27776, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33315, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27782, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33320, __pyx_L1_error) /*try:*/ { @@ -367210,9 +436076,9 @@ static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_o __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier) + 1); + __pyx_v_need = (TA_TANH_Lookback() + 1); - __pyx_v_retCode = TA_SUPERTREND_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outsupertrend), (&__pyx_v_outtrend)); + __pyx_v_retCode = TA_TANH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -367229,7 +436095,7 @@ static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - (void)(TA_SUPERTREND_Close(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TANH_Close(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -367297,7 +436163,7 @@ static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27799, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TANH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -367309,12 +436175,10 @@ static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_o goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -367324,39 +436188,34 @@ static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_o - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill, "SUPERTREND_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000, double multiplier=3.0)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TANH_Stream_4open_and_fill, "TANH_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11TANH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TANH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - double __pyx_v_multiplier; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -367372,114 +436231,66 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27801, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33339, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27801, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33339, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27801, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, i); __PYX_ERR(3, 27801, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 27801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 27801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27801, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27801, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27801, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 33339, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 33339, __pyx_L3_error) } } - } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27802, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27802, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_multiplier = ((double)3.0); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33339, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 27801, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33339, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outsupertrend = 0; - PyArrayObject *__pyx_v_outtrend = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_SUPERTREND_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_stream = 0; + TA_TANH_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -367496,58 +436307,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27803, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27804, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27805, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27806, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 27806, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 27806, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 27806, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 33342, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27807, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33343, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27808, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33344, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27809, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33345, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUPERTREND_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27816, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TANH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27818, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33353, __pyx_L1_error) /*try:*/ { @@ -367557,7 +436351,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier)); + __pyx_v_lookback = (__pyx_v_begidx + TA_TANH_Lookback()); } /*finally:*/ { @@ -367570,14 +436364,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27822, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33357, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outsupertrend = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27823, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outtrend = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -367586,7 +436375,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_SUPERTREND_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsupertrend)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outtrend)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_TANH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -367690,65 +436479,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27834, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TANH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27835, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 27835, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 27835, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 27835, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsupertrend)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27835, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 33369, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 33369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27835, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 27835, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 27835, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 27835, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outtrend)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 27835, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27835, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 27835, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 27835, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 27835, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27835, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 27835, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 33369, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 33369, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_14; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_14 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -367756,20 +436517,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outsupertrend); - __Pyx_XDECREF((PyObject *)__pyx_v_outtrend); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -367782,29 +436539,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_6update, "SUPERTREND_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TANH_Stream_6update, "TANH_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -367820,82 +436575,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27837, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33371, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27837, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27837, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27837, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33371, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27837, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 27837, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 33371, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 33371, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27837, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27837, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27837, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33371, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27838, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27838, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27838, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33372, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 27837, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33371, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outsupertrend; - int __pyx_v_outtrend; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -367912,7 +436648,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SUPERTREND_Update(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outsupertrend), (&__pyx_v_outtrend)); + __pyx_v_retCode = TA_TANH_Update(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -367940,47 +436676,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27846, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27847, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27847, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27847, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 27847, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 27847, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -367988,29 +436711,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_8peek, "SUPERTREND_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TANH_Stream_8peek, "TANH_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -368026,82 +436747,63 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27849, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33382, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27849, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27849, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27849, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33382, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27849, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 27849, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 33382, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 33382, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27849, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27849, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27849, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33382, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27850, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27850, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27850, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33383, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 27849, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33382, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outsupertrend; - int __pyx_v_outtrend; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -368118,7 +436820,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SUPERTREND_Peek(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outsupertrend), (&__pyx_v_outtrend)); + __pyx_v_retCode = TA_TANH_Peek(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -368146,47 +436848,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27858, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27859, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27859, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27859, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 27859, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 27859, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -368194,31 +436883,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self) { - double __pyx_v_outsupertrend; - int __pyx_v_outtrend; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -368235,7 +436921,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(str __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_SUPERTREND_Value(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outsupertrend), (&__pyx_v_outtrend)); + __pyx_v_retCode = TA_TANH_Value(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -368263,59 +436949,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(str if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27870, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27871, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27871, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27871, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 27871, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 27871, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TANH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_SUPERTREND_OutRange(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_TANH_OutRange(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -368326,12 +436999,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__out_range(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TANH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_SUPERTREND_Advance(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_TANH_Advance(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -368343,15 +437016,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__advance(struct __ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_10copy, "SUPERTREND_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TANH_Stream_10copy, "TANH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -368377,16 +437050,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self) { - TA_SUPERTREND_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self) { + TA_TANH_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -368403,18 +437076,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(struct __py __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27882, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream))))) __PYX_ERR(3, 27882, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream))))) __PYX_ERR(3, 33413, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -368428,7 +437101,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(struct __py __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_SUPERTREND_Clone(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_TANH_Clone(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -368471,7 +437144,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(struct __py if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27892, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -368493,7 +437166,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(struct __py __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -368506,19 +437179,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(struct __py /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_9T3_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_9T3_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_9T3_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11TEMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_9T3_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11TEMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -368532,7 +437205,7 @@ static void __pyx_pf_5talib_7_ta_lib_9T3_Stream___dealloc__(struct __pyx_obj_5ta if (__pyx_t_1) { - (void)(TA_T3_Close(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TEMA_Close(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -368558,14 +437231,14 @@ static void __pyx_pf_5talib_7_ta_lib_9T3_Stream___dealloc__(struct __pyx_obj_5ta /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_9T3_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_9T3_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -368574,12 +437247,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - double __pyx_v_vfactor; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -368595,92 +437267,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27917, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33447, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27917, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33447, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33447, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 27917, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 33447, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 27917, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 33447, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27917, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33447, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33447, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27917, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 33447, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } - if (values[2]) { - __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27917, __pyx_L3_error) - } else { - __pyx_v_vfactor = ((double)-4e37); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 27917, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 33447, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.T3_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { +static int __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_T3_Stream *__pyx_v_handle; + TA_TEMA_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -368696,31 +437354,31 @@ static int __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27918, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27919, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27919, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 33449, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27920, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33450, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27921, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33451, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27922, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33452, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27927, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33457, __pyx_L1_error) /*try:*/ { @@ -368730,9 +437388,9 @@ static int __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(struct __pyx_obj_5talib __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor) + 1); + __pyx_v_need = (TA_TEMA_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_T3_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TEMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -368749,7 +437407,7 @@ static int __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - (void)(TA_T3_Close(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TEMA_Close(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -368817,7 +437475,7 @@ static int __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_T3_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27944, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -368829,7 +437487,7 @@ static int __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(struct __pyx_obj_5talib goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.T3_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -368848,16 +437506,16 @@ static int __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(struct __pyx_obj_5talib /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9T3_Stream_4open_and_fill, "T3_Stream.open_and_fill(real, int timeperiod=-0x80000000, double vfactor=-4e37)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9T3_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9T3_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9T3_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill, "TEMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -368866,12 +437524,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - double __pyx_v_vfactor; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -368887,86 +437544,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27946, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33476, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27946, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33476, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33476, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 27946, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 33476, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 27946, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 33476, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 27946, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 27946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33476, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33476, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 27947, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 33477, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } - if (values[2]) { - __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27947, __pyx_L3_error) - } else { - __pyx_v_vfactor = ((double)-4e37); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 27946, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 33476, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.T3_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -368976,8 +437619,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__ PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_T3_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_stream = 0; + TA_TEMA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -368999,36 +437642,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27948, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27949, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 27949, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 33479, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 27950, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33480, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 27951, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33481, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 27952, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33482, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_T3_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27958, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 27960, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33490, __pyx_L1_error) /*try:*/ { @@ -369038,7 +437681,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor)); + __pyx_v_lookback = (__pyx_v_begidx + TA_TEMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -369051,7 +437694,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__ } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27964, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33494, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -369062,7 +437705,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_T3_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_TEMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -369166,27 +437809,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_T3_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27975, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27976, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 27976, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 27976, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 33506, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 33506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27976, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 27976, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 33506, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 27976, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 33506, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -369204,7 +437847,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.T3_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -369226,15 +437869,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9T3_Stream_6update, "T3_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TEMA_Stream_6update, "TEMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -369264,43 +437907,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27978, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33508, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33508, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 27978, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 33508, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 27978, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 33508, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33508, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27979, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33509, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27978, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33508, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.T3_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -369311,7 +437954,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -369335,7 +437978,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_6update(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_T3_Update(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TEMA_Update(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -369363,13 +438006,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_6update(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27986, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27987, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -369386,7 +438029,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_6update(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.T3_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -369398,15 +438041,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_6update(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9T3_Stream_8peek, "T3_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TEMA_Stream_8peek, "TEMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -369436,43 +438079,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 27989, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33519, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27989, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33519, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 27989, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 33519, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 27989, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 33519, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 27989, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33519, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 27990, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33520, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 27989, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33519, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.T3_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -369483,7 +438126,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -369507,7 +438150,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_8peek(struct __pyx_obj_5tal __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_T3_Peek(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TEMA_Peek(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -369535,13 +438178,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27997, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27998, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -369558,7 +438201,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_8peek(struct __pyx_obj_5tal /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.T3_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -369570,21 +438213,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_8peek(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -369608,7 +438251,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_5value___get__(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_T3_Value(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TEMA_Value(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -369636,13 +438279,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_5value___get__(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28008, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28009, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -369659,7 +438302,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_5value___get__(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.T3_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -369670,12 +438313,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_5value___get__(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9T3_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TEMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_T3_OutRange(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_TEMA_OutRange(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -369686,12 +438329,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9T3_Stream__out_range(struct __pyx_obj } -static TA_RetCode __pyx_f_5talib_7_ta_lib_9T3_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TEMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_T3_Advance(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_TEMA_Advance(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -369703,15 +438346,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_9T3_Stream__advance(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9T3_Stream_10copy, "T3_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TEMA_Stream_10copy, "TEMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -369737,16 +438380,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self) { - TA_T3_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self) { + TA_TEMA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -369763,18 +438406,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(struct __pyx_obj_5ta __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28020, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream))))) __PYX_ERR(3, 28020, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream))))) __PYX_ERR(3, 33550, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -369788,7 +438431,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(struct __pyx_obj_5ta __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_T3_Clone(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_TEMA_Clone(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -369831,7 +438474,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28030, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -369853,7 +438496,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(struct __pyx_obj_5ta __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.T3_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -369866,19 +438509,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(struct __pyx_obj_5ta /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10TAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10TAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10TAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10TAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -369892,7 +438535,7 @@ static void __pyx_pf_5talib_7_ta_lib_10TAN_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_TAN_Close(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TRANGE_Close(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -369918,26 +438561,28 @@ static void __pyx_pf_5talib_7_ta_lib_10TAN_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10TAN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10TAN_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -369953,45 +438598,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28052, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33582, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 33582, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33582, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33582, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28052, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 28052, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 33582, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 33582, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33582, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33582, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 33582, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28052, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 33582, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -370001,13 +438660,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_TAN_Stream *__pyx_v_handle; + TA_TRANGE_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -370023,31 +438684,47 @@ static int __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28053, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28054, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28054, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 33586, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 33586, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 33586, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28055, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33587, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28056, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33588, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28057, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33589, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28062, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33594, __pyx_L1_error) /*try:*/ { @@ -370057,9 +438734,9 @@ static int __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_TAN_Lookback() + 1); + __pyx_v_need = (TA_TRANGE_Lookback() + 1); - __pyx_v_retCode = TA_TAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TRANGE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -370076,7 +438753,7 @@ static int __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_TAN_Close(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TRANGE_Close(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -370144,7 +438821,7 @@ static int __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TAN_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28079, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -370156,10 +438833,12 @@ static int __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -370175,28 +438854,30 @@ static int __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TAN_Stream_4open_and_fill, "TAN_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10TAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TAN_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill, "TRANGE_Stream.open_and_fill(high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -370212,45 +438893,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28081, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33613, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 33613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33613, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28081, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 28081, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 33613, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 33613, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33613, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33613, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 33613, __pyx_L3_error) } - __pyx_v_real = values[0]; + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28081, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 33613, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -370260,8 +438955,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject *__pyx_v_real) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -370270,8 +438967,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_TAN_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_stream = 0; + TA_TRANGE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -370293,36 +438990,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28083, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28084, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28084, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 33618, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 33618, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 33618, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28085, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33619, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28086, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33620, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28087, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33621, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28093, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRANGE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28095, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33629, __pyx_L1_error) /*try:*/ { @@ -370332,7 +439045,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TAN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_TRANGE_Lookback()); } /*finally:*/ { @@ -370345,7 +439058,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28099, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33633, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -370356,7 +439069,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_TRANGE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -370460,27 +439173,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28110, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28111, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 28111, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28111, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 33645, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 33645, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 33645, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 33645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28111, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28111, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 33645, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28111, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 33645, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -370498,10 +439217,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -370520,27 +439241,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TAN_Stream_6update, "TAN_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_6update, "TRANGE_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -370556,56 +439279,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28113, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33647, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 33647, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33647, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33647, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28113, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 28113, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 33647, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 33647, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33647, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33647, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 33647, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28114, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33648, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33648, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33648, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28113, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 33647, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -370629,7 +439368,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TAN_Update(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TRANGE_Update(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -370657,13 +439396,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28121, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28122, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -370680,7 +439419,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -370692,27 +439431,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TAN_Stream_8peek, "TAN_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_8peek, "TRANGE_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -370728,56 +439469,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28124, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33658, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 33658, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33658, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28124, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33658, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28124, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 28124, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 33658, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 33658, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28124, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33658, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33658, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 33658, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28125, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33659, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33659, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33659, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28124, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 33658, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -370801,7 +439558,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TAN_Peek(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TRANGE_Peek(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -370829,13 +439586,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28132, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28133, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -370852,7 +439609,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -370864,21 +439621,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -370902,7 +439659,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TAN_Value(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TRANGE_Value(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -370930,13 +439687,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28143, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28144, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -370953,7 +439710,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -370964,12 +439721,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10TAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13TRANGE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_TAN_OutRange(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_TRANGE_OutRange(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -370980,12 +439737,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10TAN_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10TAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13TRANGE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_TAN_Advance(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_TRANGE_Advance(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -370997,15 +439754,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10TAN_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TAN_Stream_10copy, "TAN_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_10copy, "TRANGE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -371031,16 +439788,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self) { - TA_TAN_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self) { + TA_TRANGE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -371057,18 +439814,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28155, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream))))) __PYX_ERR(3, 28155, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream))))) __PYX_ERR(3, 33689, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -371082,7 +439839,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_TAN_Clone(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_TRANGE_Clone(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -371125,7 +439882,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28165, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -371147,7 +439904,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -371160,19 +439917,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11TANH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11TANH_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11TANH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11TANH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -371186,7 +439943,7 @@ static void __pyx_pf_5talib_7_ta_lib_11TANH_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_TANH_Close(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TRIMA_Close(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -371212,14 +439969,14 @@ static void __pyx_pf_5talib_7_ta_lib_11TANH_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11TANH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11TANH_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -371227,11 +439984,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -371247,61 +440005,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28187, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33723, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33723, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33723, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28187, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 33723, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 28187, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 33723, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28187, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33723, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33723, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 33723, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28187, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 33723, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, PyObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_TANH_Stream *__pyx_v_handle; + TA_TRIMA_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -371317,31 +440092,31 @@ static int __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28188, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28189, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28189, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 33725, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28190, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33726, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28191, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33727, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28192, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33728, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28197, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33733, __pyx_L1_error) /*try:*/ { @@ -371351,9 +440126,9 @@ static int __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_TANH_Lookback() + 1); + __pyx_v_need = (TA_TRIMA_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_TANH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TRIMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -371370,7 +440145,7 @@ static int __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_TANH_Close(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TRIMA_Close(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -371438,7 +440213,7 @@ static int __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TANH_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28214, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -371450,7 +440225,7 @@ static int __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -371469,16 +440244,16 @@ static int __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TANH_Stream_4open_and_fill, "TANH_Stream.open_and_fill(real)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11TANH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TANH_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill, "TRIMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -371486,11 +440261,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -371506,55 +440282,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28216, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33752, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33752, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28216, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33752, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28216, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 33752, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 28216, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 33752, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28216, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33752, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33752, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 33753, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28216, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 33752, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(__pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -371564,8 +440357,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_TANH_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_stream = 0; + TA_TRIMA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -371587,36 +440380,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28218, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28219, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28219, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 33755, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28220, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33756, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28221, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33757, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28222, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33758, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TANH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28228, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRIMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28230, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33766, __pyx_L1_error) /*try:*/ { @@ -371626,7 +440419,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TANH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_TRIMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -371639,7 +440432,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28234, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33770, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -371650,7 +440443,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TANH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_TRIMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -371754,27 +440547,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TANH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28245, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28246, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 28246, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28246, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 33782, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 33782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28246, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28246, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 33782, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28246, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 33782, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -371792,7 +440585,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -371814,15 +440607,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TANH_Stream_6update, "TANH_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_6update, "TRIMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -371852,43 +440645,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28248, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33784, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28248, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28248, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 33784, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 28248, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 33784, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28248, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33784, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28249, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33785, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28248, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33784, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -371899,7 +440692,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -371923,7 +440716,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TANH_Update(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TRIMA_Update(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -371951,13 +440744,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28256, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28257, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -371974,7 +440767,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -371986,15 +440779,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TANH_Stream_8peek, "TANH_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_8peek, "TRIMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -372024,43 +440817,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28259, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33795, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28259, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33795, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28259, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 33795, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 28259, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 33795, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28259, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33795, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28260, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33796, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28259, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33795, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -372071,7 +440864,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -372095,7 +440888,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TANH_Peek(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TRIMA_Peek(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -372123,13 +440916,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28267, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28268, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -372146,7 +440939,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -372158,21 +440951,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -372196,7 +440989,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TANH_Value(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TRIMA_Value(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -372224,13 +441017,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28278, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28279, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -372247,7 +441040,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -372258,12 +441051,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11TANH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12TRIMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_TANH_OutRange(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_TRIMA_OutRange(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -372274,12 +441067,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11TANH_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11TANH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12TRIMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_TANH_Advance(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_TRIMA_Advance(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -372291,15 +441084,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11TANH_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TANH_Stream_10copy, "TANH_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_10copy, "TRIMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -372325,16 +441118,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self) { - TA_TANH_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self) { + TA_TRIMA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -372351,18 +441144,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28290, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream))))) __PYX_ERR(3, 28290, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream))))) __PYX_ERR(3, 33826, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -372376,7 +441169,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_TANH_Clone(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_TRIMA_Clone(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -372419,7 +441212,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28300, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -372441,7 +441234,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -372454,19 +441247,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11TEMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11TRIX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11TEMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11TRIX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -372480,7 +441273,7 @@ static void __pyx_pf_5talib_7_ta_lib_11TEMA_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_TEMA_Close(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TRIX_Close(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -372506,14 +441299,14 @@ static void __pyx_pf_5talib_7_ta_lib_11TEMA_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -372544,59 +441337,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28324, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33860, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33860, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33860, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28324, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 33860, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 28324, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 33860, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33860, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33860, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28324, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 33860, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28324, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 33860, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -372607,13 +441400,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_TEMA_Stream *__pyx_v_handle; + TA_TRIX_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -372629,31 +441422,31 @@ static int __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28325, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28326, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28326, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 33862, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28327, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33863, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28328, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33864, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28329, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33865, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28334, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33870, __pyx_L1_error) /*try:*/ { @@ -372663,9 +441456,9 @@ static int __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_TEMA_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_TRIX_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_TEMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TRIX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -372682,7 +441475,7 @@ static int __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_TEMA_Close(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TRIX_Close(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -372750,7 +441543,7 @@ static int __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28351, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -372762,7 +441555,7 @@ static int __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -372781,16 +441574,16 @@ static int __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill, "TEMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill, "TRIX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -372821,59 +441614,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28353, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33889, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33889, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33889, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28353, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 33889, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 28353, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 33889, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33889, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33889, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28354, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 33890, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28353, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 33889, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -372884,7 +441677,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -372894,8 +441687,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_TEMA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_stream = 0; + TA_TRIX_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -372917,36 +441710,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28355, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28356, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28356, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 33892, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28357, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 33893, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28358, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 33894, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28359, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 33895, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28365, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRIX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28367, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 33903, __pyx_L1_error) /*try:*/ { @@ -372956,7 +441749,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TEMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_TRIX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -372969,7 +441762,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28371, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33907, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -372980,7 +441773,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TEMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_TRIX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -373084,27 +441877,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28382, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28383, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 28383, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28383, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 33919, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 33919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28383, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28383, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 33919, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28383, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 33919, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -373122,7 +441915,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -373144,15 +441937,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TEMA_Stream_6update, "TEMA_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TRIX_Stream_6update, "TRIX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -373182,43 +441975,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28385, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33921, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28385, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28385, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 33921, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 28385, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 33921, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28385, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33921, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28386, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33922, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28385, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33921, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -373229,7 +442022,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -373253,7 +442046,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TEMA_Update(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TRIX_Update(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -373281,13 +442074,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28393, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28394, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -373304,7 +442097,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -373316,15 +442109,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TEMA_Stream_8peek, "TEMA_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TRIX_Stream_8peek, "TRIX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -373354,43 +442147,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28396, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33932, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33932, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28396, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 33932, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 28396, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 33932, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33932, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28397, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 33933, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28396, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 33932, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -373401,7 +442194,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -373425,7 +442218,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TEMA_Peek(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TRIX_Peek(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -373453,13 +442246,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28404, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28405, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -373476,7 +442269,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -373488,21 +442281,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -373526,7 +442319,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TEMA_Value(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TRIX_Value(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -373554,13 +442347,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28415, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28416, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -373577,7 +442370,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -373588,12 +442381,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11TEMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TRIX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_TEMA_OutRange(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_TRIX_OutRange(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -373604,12 +442397,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11TEMA_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11TEMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TRIX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_TEMA_Advance(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_TRIX_Advance(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -373621,15 +442414,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11TEMA_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TEMA_Stream_10copy, "TEMA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TRIX_Stream_10copy, "TRIX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -373655,16 +442448,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self) { - TA_TEMA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self) { + TA_TRIX_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -373681,18 +442474,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28427, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream))))) __PYX_ERR(3, 28427, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream))))) __PYX_ERR(3, 33963, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -373706,7 +442499,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_TEMA_Clone(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_TRIX_Clone(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -373749,7 +442542,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28437, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -373771,7 +442564,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -373784,19 +442577,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10TSF_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10TSF_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10TSF_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10TSF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -373810,7 +442603,7 @@ static void __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream___dealloc__(struct __pyx_ob if (__pyx_t_1) { - (void)(TA_TRANGE_Close(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TSF_Close(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -373836,28 +442629,27 @@ static void __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream___dealloc__(struct __pyx_ob /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10TSF_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10TSF_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -373873,77 +442665,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28459, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 33997, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28459, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28459, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33997, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28459, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33997, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28459, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 28459, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 33997, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 33997, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28459, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28459, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28459, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 33997, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 33997, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 33997, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 28459, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 33997, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_TRANGE_Stream *__pyx_v_handle; + TA_TSF_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -373959,47 +442752,31 @@ static int __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28460, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28463, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 28463, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 28463, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 28463, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 33999, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28464, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34000, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28465, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34001, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28466, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34002, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28471, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34007, __pyx_L1_error) /*try:*/ { @@ -374009,9 +442786,9 @@ static int __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(struct __pyx_obj_5 __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_TRANGE_Lookback() + 1); + __pyx_v_need = (TA_TSF_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_TRANGE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TSF_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -374028,7 +442805,7 @@ static int __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - (void)(TA_TRANGE_Close(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TSF_Close(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -374096,7 +442873,7 @@ static int __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28488, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSF_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -374108,12 +442885,10 @@ static int __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(struct __pyx_obj_5 goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -374129,30 +442904,29 @@ static int __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill, "TRANGE_Stream.open_and_fill(high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSF_Stream_4open_and_fill, "TSF_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10TSF_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSF_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -374168,72 +442942,73 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28490, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34026, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28490, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34026, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34026, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28490, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 28490, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 34026, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 34026, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28490, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28490, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28490, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34026, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34026, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34027, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 28490, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 34026, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -374242,8 +443017,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObjec PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_TRANGE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_stream = 0; + TA_TSF_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -374265,52 +443040,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28492, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28493, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28494, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28495, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 28495, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 28495, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 28495, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 34029, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28496, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34030, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28497, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34031, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28498, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34032, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRANGE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28504, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TSF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28506, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34040, __pyx_L1_error) /*try:*/ { @@ -374320,7 +443079,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TRANGE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_TSF_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -374333,7 +443092,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28510, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34044, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -374344,7 +443103,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TRANGE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_TSF_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -374448,33 +443207,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28521, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28522, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 28522, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 28522, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 28522, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28522, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 34056, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 34056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28522, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28522, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 34056, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28522, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 34056, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -374492,12 +443245,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObjec __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -374516,29 +443267,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_6update, "TRANGE_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSF_Stream_6update, "TSF_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -374554,72 +443303,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28524, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34058, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28524, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28524, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28524, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34058, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28524, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 28524, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 34058, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 34058, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28524, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28524, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28524, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34058, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28525, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28525, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28525, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34059, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 28524, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 34058, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -374643,7 +443376,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_6update(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TRANGE_Update(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TSF_Update(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -374671,13 +443404,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_6update(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28532, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28533, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -374694,7 +443427,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_6update(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -374706,29 +443439,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_6update(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_8peek, "TRANGE_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSF_Stream_8peek, "TSF_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -374744,72 +443475,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28535, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34069, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28535, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28535, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28535, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34069, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28535, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 28535, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 34069, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 34069, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28535, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28535, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 28535, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34069, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28536, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28536, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28536, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34070, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 28535, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 34069, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -374833,7 +443548,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_8peek(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TRANGE_Peek(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TSF_Peek(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -374861,13 +443576,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_8peek(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28543, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28544, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -374884,7 +443599,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_8peek(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -374896,21 +443611,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_8peek(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -374934,7 +443649,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TRANGE_Value(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TSF_Value(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -374962,13 +443677,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28554, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28555, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -374985,7 +443700,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_5value___get__(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -374996,12 +443711,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_5value___get__(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13TRANGE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_TRANGE_OutRange(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_TSF_OutRange(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -375012,12 +443727,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13TRANGE_Stream__out_range(struct __py } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13TRANGE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_TRANGE_Advance(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_TSF_Advance(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -375029,15 +443744,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13TRANGE_Stream__advance(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_10copy, "TRANGE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSF_Stream_10copy, "TSF_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -375063,16 +443778,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self) { - TA_TRANGE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self) { + TA_TSF_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -375089,18 +443804,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(struct __pyx_ob __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28566, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream))))) __PYX_ERR(3, 28566, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream))))) __PYX_ERR(3, 34100, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -375114,7 +443829,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_TRANGE_Clone(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_TSF_Clone(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -375157,7 +443872,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(struct __pyx_ob if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28576, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -375179,7 +443894,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(struct __pyx_ob __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -375192,19 +443907,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(struct __pyx_ob /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10TSI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10TSI_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10TSI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10TSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -375218,7 +443933,7 @@ static void __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream___dealloc__(struct __pyx_obj if (__pyx_t_1) { - (void)(TA_TRIMA_Close(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TSI_Close(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -375244,14 +443959,14 @@ static void __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream___dealloc__(struct __pyx_obj /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10TSI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10TSI_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -375259,12 +443974,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + int __pyx_v_firstperiod; + int __pyx_v_secondperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -375280,78 +443996,92 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28600, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34135, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34135, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34135, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34135, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28600, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 34135, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 28600, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 34135, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34135, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34135, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34135, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28600, __pyx_L3_error) + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34135, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_firstperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34135, __pyx_L3_error) + } else { + __pyx_v_secondperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28600, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 34135, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_TRIMA_Stream *__pyx_v_handle; + TA_TSI_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -375367,31 +444097,31 @@ static int __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28601, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28602, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28602, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 34137, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28603, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34138, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28604, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34139, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28605, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34140, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28610, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34145, __pyx_L1_error) /*try:*/ { @@ -375401,9 +444131,9 @@ static int __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(struct __pyx_obj_5t __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_TRIMA_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod) + 1); - __pyx_v_retCode = TA_TRIMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TSI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -375420,7 +444150,7 @@ static int __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - (void)(TA_TRIMA_Close(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TSI_Close(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -375488,7 +444218,7 @@ static int __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28627, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -375500,7 +444230,7 @@ static int __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(struct __pyx_obj_5t goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -375519,16 +444249,16 @@ static int __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill, "TRIMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSI_Stream_4open_and_fill, "TSI_Stream.open_and_fill(real, int firstperiod=-0x80000000, int secondperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10TSI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -375536,12 +444266,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + int __pyx_v_firstperiod; + int __pyx_v_secondperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -375557,72 +444288,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28629, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34164, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34164, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28629, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28629, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28629, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 34164, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 28629, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 34164, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34164, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28629, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28629, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34164, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28630, __pyx_L3_error) + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34165, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_firstperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34165, __pyx_L3_error) + } else { + __pyx_v_secondperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28629, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 34164, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -375632,8 +444377,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_TRIMA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_stream = 0; + TA_TSI_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -375655,36 +444400,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28631, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28632, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28632, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 34167, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28633, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34168, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28634, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34169, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28635, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34170, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRIMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28641, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28643, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34178, __pyx_L1_error) /*try:*/ { @@ -375694,7 +444439,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TRIMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod)); } /*finally:*/ { @@ -375707,7 +444452,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28647, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34182, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -375718,7 +444463,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TRIMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_TSI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -375822,27 +444567,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28658, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28659, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 28659, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28659, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 34194, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 34194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28659, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28659, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 34194, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28659, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 34194, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -375860,7 +444605,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -375882,15 +444627,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_6update, "TRIMA_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSI_Stream_6update, "TSI_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -375920,43 +444665,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28661, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34196, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28661, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34196, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28661, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 34196, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 28661, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 34196, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28661, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34196, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28662, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34197, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28661, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 34196, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -375967,7 +444712,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -375991,7 +444736,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_6update(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TRIMA_Update(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TSI_Update(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -376019,13 +444764,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_6update(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28669, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28670, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -376042,7 +444787,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_6update(struct __pyx_ob /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -376054,15 +444799,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_6update(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_8peek, "TRIMA_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSI_Stream_8peek, "TSI_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -376092,43 +444837,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28672, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34207, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28672, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28672, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 34207, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 28672, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 34207, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28672, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34207, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28673, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34208, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28672, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 34207, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -376139,7 +444884,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -376163,7 +444908,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_8peek(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TRIMA_Peek(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TSI_Peek(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -376191,13 +444936,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_8peek(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28680, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28681, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -376214,7 +444959,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_8peek(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -376226,21 +444971,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_8peek(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -376264,7 +445009,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_5value___get__(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TRIMA_Value(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TSI_Value(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -376292,13 +445037,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_5value___get__(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28691, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28692, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -376315,7 +445060,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_5value___get__(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -376326,12 +445071,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_5value___get__(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12TRIMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_TRIMA_OutRange(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_TSI_OutRange(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -376342,12 +445087,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12TRIMA_Stream__out_range(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12TRIMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_TRIMA_Advance(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_TSI_Advance(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -376359,15 +445104,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12TRIMA_Stream__advance(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_10copy, "TRIMA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSI_Stream_10copy, "TSI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -376393,16 +445138,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self) { - TA_TRIMA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self) { + TA_TSI_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -376419,18 +445164,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(struct __pyx_obj __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28703, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream))))) __PYX_ERR(3, 28703, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream))))) __PYX_ERR(3, 34238, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -376444,7 +445189,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_TRIMA_Clone(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_TSI_Clone(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -376487,7 +445232,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(struct __pyx_obj if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28713, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -376509,7 +445254,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(struct __pyx_obj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -376522,19 +445267,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(struct __pyx_obj /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11TRIX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11TRIX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -376548,7 +445293,7 @@ static void __pyx_pf_5talib_7_ta_lib_11TRIX_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_TRIX_Close(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TYPPRICE_Close(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -376574,27 +445319,28 @@ static void __pyx_pf_5talib_7_ta_lib_11TRIX_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -376610,78 +445356,77 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28737, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34270, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34270, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28737, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34270, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28737, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34270, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28737, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 28737, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28737, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28737, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 34270, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 34270, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28737, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34270, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34270, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34270, __pyx_L3_error) } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28737, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 34270, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_TRIX_Stream *__pyx_v_handle; + TA_TYPPRICE_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -376697,31 +445442,47 @@ static int __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28738, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28739, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28739, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 34274, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 34274, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 34274, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28740, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34275, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28741, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34276, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28742, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34277, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28747, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34282, __pyx_L1_error) /*try:*/ { @@ -376731,9 +445492,9 @@ static int __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_TRIX_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_TYPPRICE_Lookback() + 1); - __pyx_v_retCode = TA_TRIX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TYPPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -376750,7 +445511,7 @@ static int __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_TRIX_Close(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_TYPPRICE_Close(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -376818,7 +445579,7 @@ static int __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28764, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -376830,10 +445591,12 @@ static int __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -376849,29 +445612,30 @@ static int __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill, "TRIX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill, "TYPPRICE_Stream.open_and_fill(high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -376887,73 +445651,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28766, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34301, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34301, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28766, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34301, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28766, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34301, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28766, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 28766, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28766, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28766, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 34301, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 34301, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28767, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34301, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34301, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34301, __pyx_L3_error) } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28766, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 34301, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -376962,8 +445725,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_TRIX_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_stream = 0; + TA_TYPPRICE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -376985,36 +445748,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28768, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28769, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28769, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 34306, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 34306, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 34306, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28770, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34307, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28771, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34308, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28772, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34309, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRIX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28778, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TYPPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28780, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34317, __pyx_L1_error) /*try:*/ { @@ -377024,7 +445803,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TRIX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_Lookback()); } /*finally:*/ { @@ -377037,7 +445816,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28784, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34321, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -377048,7 +445827,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TRIX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_TYPPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -377152,27 +445931,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28795, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28796, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 28796, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28796, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 34333, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 34333, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 34333, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 34333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28796, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 34333, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 34333, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -377190,10 +445975,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -377212,27 +445999,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TRIX_Stream_6update, "TRIX_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_6update, "TYPPRICE_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -377248,56 +446037,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28798, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34335, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34335, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34335, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28798, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 28798, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 34335, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 34335, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34335, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34335, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34335, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28799, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34336, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34336, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34336, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28798, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 34335, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -377321,7 +446126,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TRIX_Update(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TYPPRICE_Update(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -377349,13 +446154,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28806, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28807, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -377372,7 +446177,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -377384,27 +446189,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TRIX_Stream_8peek, "TRIX_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_8peek, "TYPPRICE_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -377420,56 +446227,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28809, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34346, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34346, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34346, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28809, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34346, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28809, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 28809, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 34346, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 34346, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28809, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34346, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34346, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34346, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28810, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34347, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34347, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34347, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28809, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 34346, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -377493,7 +446316,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TRIX_Peek(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TYPPRICE_Peek(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -377521,13 +446344,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28817, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28818, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -377544,7 +446367,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -377556,21 +446379,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -377594,7 +446417,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TRIX_Value(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_TYPPRICE_Value(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -377622,13 +446445,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28828, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28829, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -377645,7 +446468,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -377656,12 +446479,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11TRIX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_TRIX_OutRange(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_TYPPRICE_OutRange(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -377672,12 +446495,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11TRIX_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11TRIX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_TRIX_Advance(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_TYPPRICE_Advance(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -377689,15 +446512,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11TRIX_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TRIX_Stream_10copy, "TRIX_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_10copy, "TYPPRICE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -377723,16 +446546,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self) { - TA_TRIX_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self) { + TA_TYPPRICE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -377749,18 +446572,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28840, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream))))) __PYX_ERR(3, 28840, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream))))) __PYX_ERR(3, 34377, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -377774,7 +446597,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_TRIX_Clone(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_TYPPRICE_Clone(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -377817,7 +446640,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28850, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -377839,7 +446662,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -377852,19 +446675,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10TSF_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10TSF_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10TSF_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10TSF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -377878,7 +446701,7 @@ static void __pyx_pf_5talib_7_ta_lib_10TSF_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_TSF_Close(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ULTOSC_Close(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -377904,27 +446727,31 @@ static void __pyx_pf_5talib_7_ta_lib_10TSF_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10TSF_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10TSF_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod1; + int __pyx_v_timeperiod2; + int __pyx_v_timeperiod3; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -377940,78 +446767,122 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28874, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34413, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 34413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 34413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 34413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34413, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28874, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28874, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 28874, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 28874, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 34413, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 34413, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28874, __pyx_L3_error) + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 34413, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 34413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 34413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34413, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34413, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28874, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34413, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28874, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34413, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_timeperiod1 = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34413, __pyx_L3_error) + } else { + __pyx_v_timeperiod2 = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34413, __pyx_L3_error) + } else { + __pyx_v_timeperiod3 = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28874, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 34413, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_TSF_Stream *__pyx_v_handle; + TA_ULTOSC_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -378027,31 +446898,47 @@ static int __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28875, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28876, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28876, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 34417, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 34417, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 34417, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28877, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34418, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28878, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34419, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28879, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34420, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28884, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34425, __pyx_L1_error) /*try:*/ { @@ -378061,9 +446948,9 @@ static int __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_TSF_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3) + 1); - __pyx_v_retCode = TA_TSF_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ULTOSC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -378080,7 +446967,7 @@ static int __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_TSF_Close(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ULTOSC_Close(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -378148,7 +447035,7 @@ static int __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSF_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28901, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -378160,10 +447047,12 @@ static int __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -378179,29 +447068,33 @@ static int __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSF_Stream_4open_and_fill, "TSF_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10TSF_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSF_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill, "ULTOSC_Stream.open_and_fill(high, low, close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod1; + int __pyx_v_timeperiod2; + int __pyx_v_timeperiod3; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -378217,73 +447110,117 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28903, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34444, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 34444, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 34444, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 34444, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34444, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28903, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34444, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28903, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34444, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 28903, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 28903, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 34444, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 34444, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 28903, __pyx_L3_error) + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 34444, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 34444, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 34444, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34444, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34444, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28903, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34444, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 28904, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34445, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_timeperiod1 = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34445, __pyx_L3_error) + } else { + __pyx_v_timeperiod2 = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34445, __pyx_L3_error) + } else { + __pyx_v_timeperiod3 = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 28903, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 34444, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -378292,8 +447229,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_TSF_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_stream = 0; + TA_ULTOSC_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -378315,36 +447252,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28905, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28906, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 28906, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 34449, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 34449, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 34449, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 28907, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34450, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 28908, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34451, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 28909, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34452, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TSF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28915, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ULTOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 28917, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34460, __pyx_L1_error) /*try:*/ { @@ -378354,7 +447307,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TSF_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3)); } /*finally:*/ { @@ -378367,7 +447320,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28921, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34464, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -378378,7 +447331,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TSF_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ULTOSC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -378482,27 +447435,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28932, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28933, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 28933, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 28933, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 34476, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 34476, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 34476, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 34476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28933, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 28933, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 34476, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 28933, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 34476, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -378520,10 +447479,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -378542,27 +447503,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSF_Stream_6update, "TSF_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_6update, "ULTOSC_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -378578,56 +447541,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28935, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34478, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34478, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34478, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 28935, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 28935, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 34478, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 34478, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34478, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34478, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34478, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28936, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34479, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34479, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34479, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28935, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 34478, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -378651,7 +447630,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TSF_Update(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ULTOSC_Update(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -378679,13 +447658,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28943, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28944, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -378702,7 +447681,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -378714,27 +447693,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSF_Stream_8peek, "TSF_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_8peek, "ULTOSC_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -378750,56 +447731,72 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 28946, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34489, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34489, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34489, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34489, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 28946, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 28946, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 34489, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 34489, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 28946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34489, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34489, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34489, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 28947, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34490, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34490, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34490, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 28946, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 34489, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -378823,7 +447820,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TSF_Peek(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ULTOSC_Peek(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -378851,13 +447848,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28954, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28955, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -378874,7 +447871,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -378886,21 +447883,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -378924,7 +447921,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TSF_Value(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ULTOSC_Value(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -378952,13 +447949,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28965, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28966, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -378975,7 +447972,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -378986,12 +447983,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_TSF_OutRange(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_ULTOSC_OutRange(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -379002,12 +447999,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSF_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_TSF_Advance(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_ULTOSC_Advance(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -379019,15 +448016,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSF_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSF_Stream_10copy, "TSF_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_10copy, "ULTOSC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -379053,16 +448050,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self) { - TA_TSF_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self) { + TA_ULTOSC_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -379079,18 +448076,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28977, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream))))) __PYX_ERR(3, 28977, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream))))) __PYX_ERR(3, 34520, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -379104,7 +448101,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_TSF_Clone(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_ULTOSC_Clone(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -379147,7 +448144,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28987, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -379169,7 +448166,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -379182,19 +448179,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10TSI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10TSI_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10VAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10VAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10TSI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10VAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10TSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10VAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -379208,7 +448205,7 @@ static void __pyx_pf_5talib_7_ta_lib_10TSI_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_TSI_Close(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_VAR_Close(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -379234,14 +448231,14 @@ static void __pyx_pf_5talib_7_ta_lib_10TSI_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10TSI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10VAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10TSI_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10VAR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -379249,8 +448246,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_firstperiod; - int __pyx_v_secondperiod; + int __pyx_v_timeperiod; + double __pyx_v_nbdev; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -379271,74 +448268,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29012, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34555, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29012, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29012, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29012, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29012, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 34555, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 29012, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 34555, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29012, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29012, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29012, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34555, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29012, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34555, __pyx_L3_error) } else { - __pyx_v_firstperiod = ((int)-2147483648); + __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29012, __pyx_L3_error) + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34555, __pyx_L3_error) } else { - __pyx_v_secondperiod = ((int)-2147483648); + __pyx_v_nbdev = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 29012, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 34555, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -379350,13 +448347,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod) { +static int __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_TSI_Stream *__pyx_v_handle; + TA_VAR_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -379372,31 +448369,31 @@ static int __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29013, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29014, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 29014, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 34557, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29015, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34558, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29016, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34559, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29017, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34560, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29022, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34565, __pyx_L1_error) /*try:*/ { @@ -379406,9 +448403,9 @@ static int __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod) + 1); + __pyx_v_need = (TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev) + 1); - __pyx_v_retCode = TA_TSI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -379425,7 +448422,7 @@ static int __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_TSI_Close(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_VAR_Close(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -379493,7 +448490,7 @@ static int __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSI_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29039, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -379505,7 +448502,7 @@ static int __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -379524,16 +448521,16 @@ static int __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSI_Stream_4open_and_fill, "TSI_Stream.open_and_fill(real, int firstperiod=-0x80000000, int secondperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10TSI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSI_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VAR_Stream_4open_and_fill, "VAR_Stream.open_and_fill(real, int timeperiod=-0x80000000, double nbdev=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10VAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -379541,8 +448538,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_real = 0; - int __pyx_v_firstperiod; - int __pyx_v_secondperiod; + int __pyx_v_timeperiod; + double __pyx_v_nbdev; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -379563,74 +448560,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29041, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34584, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29041, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 34584, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 29041, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 34584, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34584, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29042, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34585, __pyx_L3_error) } else { - __pyx_v_firstperiod = ((int)-2147483648); + __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29042, __pyx_L3_error) + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34585, __pyx_L3_error) } else { - __pyx_v_secondperiod = ((int)-2147483648); + __pyx_v_nbdev = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 29041, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 34584, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -379642,7 +448639,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; @@ -379652,8 +448649,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_TSI_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_stream = 0; + TA_VAR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -379675,36 +448672,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29043, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29044, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 29044, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 34587, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29045, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34588, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29046, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34589, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29047, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34590, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29053, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29055, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34598, __pyx_L1_error) /*try:*/ { @@ -379714,7 +448711,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); } /*finally:*/ { @@ -379727,7 +448724,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29059, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34602, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -379738,7 +448735,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TSI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_VAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -379842,27 +448839,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29070, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29071, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 29071, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29071, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 34614, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 34614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29071, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29071, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 34614, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29071, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 34614, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -379880,7 +448877,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_real); @@ -379902,15 +448899,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSI_Stream_6update, "TSI_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VAR_Stream_6update, "VAR_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -379940,43 +448937,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29073, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34616, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34616, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29073, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 34616, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 29073, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 34616, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34616, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29074, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34617, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29073, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 34616, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -379987,7 +448984,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -380011,7 +449008,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TSI_Update(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VAR_Update(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -380039,13 +449036,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29081, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34624, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29082, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -380062,7 +449059,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -380074,15 +449071,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSI_Stream_8peek, "TSI_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VAR_Stream_8peek, "VAR_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -380112,43 +449109,43 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29084, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34627, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34627, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29084, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 34627, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 29084, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 34627, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34627, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29085, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34628, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29084, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 34627, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -380159,7 +449156,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -380183,7 +449180,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TSI_Peek(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VAR_Peek(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -380211,13 +449208,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29092, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29093, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -380234,7 +449231,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -380246,21 +449243,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -380284,7 +449281,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TSI_Value(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VAR_Value(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -380312,13 +449309,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29103, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29104, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -380335,7 +449332,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -380346,12 +449343,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10VAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_TSI_OutRange(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_VAR_OutRange(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -380362,12 +449359,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSI_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10VAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_TSI_Advance(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_VAR_Advance(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -380379,15 +449376,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSI_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSI_Stream_10copy, "TSI_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VAR_Stream_10copy, "VAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -380413,16 +449410,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self) { - TA_TSI_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self) { + TA_VAR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -380439,18 +449436,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29115, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream))))) __PYX_ERR(3, 29115, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream))))) __PYX_ERR(3, 34658, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -380464,7 +449461,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_TSI_Clone(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_VAR_Clone(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -380507,7 +449504,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29125, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -380529,7 +449526,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -380542,19 +449539,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10VHF_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10VHF_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10VHF_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10VHF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -380568,7 +449565,7 @@ static void __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_TYPPRICE_Close(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_VHF_Close(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -380594,28 +449591,27 @@ static void __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10VHF_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10VHF_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -380631,77 +449627,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29147, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34692, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29147, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29147, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34692, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29147, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34692, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29147, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 29147, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 34692, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 34692, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29147, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29147, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29147, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34692, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34692, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34692, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 29147, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 34692, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_TYPPRICE_Stream *__pyx_v_handle; + TA_VHF_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -380717,47 +449714,31 @@ static int __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29149, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29150, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29151, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29151, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29151, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 29151, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 34694, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29152, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34695, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29153, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34696, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29154, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34697, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29159, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34702, __pyx_L1_error) /*try:*/ { @@ -380767,9 +449748,9 @@ static int __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_TYPPRICE_Lookback() + 1); + __pyx_v_need = (TA_VHF_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_TYPPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VHF_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -380786,7 +449767,7 @@ static int __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_TYPPRICE_Close(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_VHF_Close(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -380854,7 +449835,7 @@ static int __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29176, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VHF_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -380866,12 +449847,10 @@ static int __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -380887,30 +449866,29 @@ static int __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill, "TYPPRICE_Stream.open_and_fill(high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VHF_Stream_4open_and_fill, "VHF_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10VHF_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VHF_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -380926,72 +449904,73 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29178, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34721, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29178, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34721, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34721, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29178, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 29178, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 34721, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 34721, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29178, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29178, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29178, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34721, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34721, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34722, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 29178, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 34721, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -381000,8 +449979,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObj PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_TYPPRICE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_stream = 0; + TA_VHF_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -381023,52 +450002,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29180, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29181, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29182, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29183, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29183, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29183, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 29183, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 34724, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29184, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34725, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29185, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34726, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29186, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34727, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TYPPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29192, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VHF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29194, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34735, __pyx_L1_error) /*try:*/ { @@ -381078,7 +450041,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_VHF_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -381091,7 +450054,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29198, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34739, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -381102,7 +450065,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_TYPPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_VHF_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -381206,33 +450169,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29209, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VHF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29210, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 29210, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 29210, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 29210, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29210, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 34751, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 34751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29210, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29210, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 34751, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29210, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 34751, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -381250,12 +450207,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -381274,29 +450229,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_6update, "TYPPRICE_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VHF_Stream_6update, "VHF_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -381312,72 +450265,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29212, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34753, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29212, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29212, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29212, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34753, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29212, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 29212, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 34753, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 34753, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29212, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29212, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29212, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34753, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29213, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29213, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29213, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34754, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 29212, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 34753, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -381401,7 +450338,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TYPPRICE_Update(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VHF_Update(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -381429,13 +450366,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_6update(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29220, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29221, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -381452,7 +450389,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_6update(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -381464,29 +450401,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_8peek, "TYPPRICE_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VHF_Stream_8peek, "VHF_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -381502,72 +450437,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29223, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34764, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29223, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29223, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29223, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34764, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29223, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 29223, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 34764, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 34764, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29223, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29223, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29223, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34764, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29224, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29224, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29224, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34765, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 29223, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 34764, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -381591,7 +450510,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TYPPRICE_Peek(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VHF_Peek(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -381619,13 +450538,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_8peek(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29231, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29232, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -381642,7 +450561,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_8peek(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -381654,21 +450573,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -381692,7 +450611,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_TYPPRICE_Value(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VHF_Value(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -381720,13 +450639,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_5value___get__(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29242, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29243, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -381743,7 +450662,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_5value___get__(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -381754,12 +450673,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_5value___get__(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10VHF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_TYPPRICE_OutRange(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_VHF_OutRange(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -381770,12 +450689,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10VHF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_TYPPRICE_Advance(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_VHF_Advance(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -381787,15 +450706,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_10copy, "TYPPRICE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VHF_Stream_10copy, "VHF_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -381821,16 +450740,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self) { - TA_TYPPRICE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self) { + TA_VHF_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -381847,18 +450766,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29254, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream))))) __PYX_ERR(3, 29254, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream))))) __PYX_ERR(3, 34795, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -381872,7 +450791,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_TYPPRICE_Clone(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_VHF_Clone(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -381915,7 +450834,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29264, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -381937,7 +450856,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -381950,19 +450869,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_12VIDYA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_12VIDYA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -381976,7 +450895,7 @@ static void __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream___dealloc__(struct __pyx_ob if (__pyx_t_1) { - (void)(TA_ULTOSC_Close(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_VIDYA_Close(((TA_VIDYA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -382002,31 +450921,28 @@ static void __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream___dealloc__(struct __pyx_ob /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod1; - int __pyx_v_timeperiod2; - int __pyx_v_timeperiod3; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_cmoperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -382042,101 +450958,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_cmoperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29290, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34830, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 29290, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 29290, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29290, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34830, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34830, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34830, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29290, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 29290, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 34830, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 34830, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 29290, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 29290, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29290, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34830, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34830, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34830, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29290, __pyx_L3_error) - } else { - __pyx_v_timeperiod1 = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29290, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34830, __pyx_L3_error) } else { - __pyx_v_timeperiod2 = ((int)-2147483648); + __pyx_v_timeperiod = ((int)-2147483648); } - if (values[5]) { - __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29290, __pyx_L3_error) + if (values[2]) { + __pyx_v_cmoperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_cmoperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34830, __pyx_L3_error) } else { - __pyx_v_timeperiod3 = ((int)-2147483648); + __pyx_v_cmoperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 29290, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 34830, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VIDYA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_cmoperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -382144,20 +451033,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_cmoperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_ULTOSC_Stream *__pyx_v_handle; + TA_VIDYA_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -382173,47 +451059,31 @@ static int __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29293, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29294, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29294, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29294, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 29294, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 34832, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29295, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34833, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29296, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34834, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29297, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34835, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29302, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34840, __pyx_L1_error) /*try:*/ { @@ -382223,9 +451093,9 @@ static int __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(struct __pyx_obj_5 __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3) + 1); + __pyx_v_need = (TA_VIDYA_Lookback(__pyx_v_timeperiod, __pyx_v_cmoperiod) + 1); - __pyx_v_retCode = TA_ULTOSC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VIDYA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_cmoperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -382242,7 +451112,7 @@ static int __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - (void)(TA_ULTOSC_Close(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_VIDYA_Close(((TA_VIDYA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -382310,7 +451180,7 @@ static int __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29319, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VIDYA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -382322,12 +451192,10 @@ static int __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(struct __pyx_obj_5 goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VIDYA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -382343,33 +451211,30 @@ static int __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill, "ULTOSC_Stream.open_and_fill(high, low, close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12VIDYA_Stream_4open_and_fill, "VIDYA_Stream.open_and_fill(real, int timeperiod=-0x80000000, int cmoperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12VIDYA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12VIDYA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; - int __pyx_v_timeperiod1; - int __pyx_v_timeperiod2; - int __pyx_v_timeperiod3; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_cmoperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -382385,101 +451250,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_cmoperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29321, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34859, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 29321, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 29321, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29321, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34859, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34859, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34859, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29321, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 29321, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 34859, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 34859, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 29321, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 29321, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29321, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34859, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34859, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34859, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29322, __pyx_L3_error) - } else { - __pyx_v_timeperiod1 = ((int)-2147483648); - } - if (values[4]) { - __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29322, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34860, __pyx_L3_error) } else { - __pyx_v_timeperiod2 = ((int)-2147483648); + __pyx_v_timeperiod = ((int)-2147483648); } - if (values[5]) { - __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29322, __pyx_L3_error) + if (values[2]) { + __pyx_v_cmoperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_cmoperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34860, __pyx_L3_error) } else { - __pyx_v_timeperiod3 = ((int)-2147483648); + __pyx_v_cmoperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 29321, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 34859, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VIDYA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_cmoperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -382487,15 +451325,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_cmoperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -382504,8 +451339,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObjec PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_ULTOSC_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_stream = 0; + TA_VIDYA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -382527,52 +451362,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29323, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29324, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29325, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29326, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29326, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29326, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 29326, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 34862, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29327, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34863, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29328, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34864, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29329, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34865, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ULTOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29335, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VIDYA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29337, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34873, __pyx_L1_error) /*try:*/ { @@ -382582,7 +451401,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3)); + __pyx_v_lookback = (__pyx_v_begidx + TA_VIDYA_Lookback(__pyx_v_timeperiod, __pyx_v_cmoperiod)); } /*finally:*/ { @@ -382595,7 +451414,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29341, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34877, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -382606,7 +451425,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ULTOSC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_VIDYA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_cmoperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -382710,33 +451529,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29352, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VIDYA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29353, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 29353, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 29353, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 29353, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29353, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 34889, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 34889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29353, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29353, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 34889, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29353, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 34889, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -382754,12 +451567,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObjec __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VIDYA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -382778,29 +451589,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_6update, "ULTOSC_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12VIDYA_Stream_6update, "VIDYA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -382816,72 +451625,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29355, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34891, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29355, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29355, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29355, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34891, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29355, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 29355, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 34891, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 34891, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29355, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29355, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29355, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34891, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29356, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29356, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29356, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34892, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 29355, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 34891, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VIDYA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -382905,7 +451698,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_6update(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ULTOSC_Update(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VIDYA_Update(((TA_VIDYA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -382933,13 +451726,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_6update(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29363, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VIDYA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29364, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -382956,7 +451749,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_6update(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VIDYA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -382968,29 +451761,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_6update(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_8peek, "ULTOSC_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12VIDYA_Stream_8peek, "VIDYA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -383006,72 +451797,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29366, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34902, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29366, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29366, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29366, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34902, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29366, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 29366, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 34902, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 34902, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29366, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29366, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29366, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34902, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29367, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29367, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29367, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34903, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 29366, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 34902, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VIDYA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -383095,7 +451870,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_8peek(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ULTOSC_Peek(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VIDYA_Peek(((TA_VIDYA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -383123,13 +451898,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_8peek(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29374, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VIDYA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29375, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -383146,7 +451921,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_8peek(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VIDYA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -383158,21 +451933,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_8peek(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -383196,7 +451971,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_ULTOSC_Value(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VIDYA_Value(((TA_VIDYA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -383224,13 +451999,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29385, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VIDYA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29386, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -383247,7 +452022,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_5value___get__(struct /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VIDYA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -383258,12 +452033,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_5value___get__(struct } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12VIDYA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_ULTOSC_OutRange(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_VIDYA_OutRange(((TA_VIDYA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -383274,12 +452049,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__out_range(struct __py } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12VIDYA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_ULTOSC_Advance(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_VIDYA_Advance(((TA_VIDYA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -383291,15 +452066,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__advance(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_10copy, "ULTOSC_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12VIDYA_Stream_10copy, "VIDYA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -383325,16 +452100,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self) { - TA_ULTOSC_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12VIDYA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_self) { + TA_VIDYA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -383351,18 +452126,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(struct __pyx_ob __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29397, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream))))) __PYX_ERR(3, 29397, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream))))) __PYX_ERR(3, 34933, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -383376,7 +452151,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_ULTOSC_Clone(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_VIDYA_Clone(((TA_VIDYA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -383419,7 +452194,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(struct __pyx_ob if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29407, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VIDYA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -383441,7 +452216,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(struct __pyx_ob __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VIDYA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -383454,19 +452229,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(struct __pyx_ob /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10VAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10VAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10VAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10VAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -383480,7 +452255,7 @@ static void __pyx_pf_5talib_7_ta_lib_10VAR_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_VAR_Close(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_VORTEX_Close(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -383506,28 +452281,29 @@ static void __pyx_pf_5talib_7_ta_lib_10VAR_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10VAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10VAR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; - double __pyx_v_nbdev; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -383543,93 +452319,96 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29432, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 34968, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 34968, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34968, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34968, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34968, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29432, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 29432, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 34968, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 34968, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 34968, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29432, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 34968, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29432, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 34968, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 34968, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29432, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 34968, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } - if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29432, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)-4e37); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 29432, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 34968, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_VAR_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_VORTEX_Stream *__pyx_v_handle; + double __pyx_v_outplusvi; + double __pyx_v_outminusvi; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -383644,31 +452423,47 @@ static int __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29433, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29434, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 29434, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34971, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34972, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 34972, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 34972, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 34972, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29435, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 34973, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29436, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 34974, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29437, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 34975, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29442, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 34981, __pyx_L1_error) /*try:*/ { @@ -383678,9 +452473,9 @@ static int __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev) + 1); + __pyx_v_need = (TA_VORTEX_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_VAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VORTEX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outplusvi), (&__pyx_v_outminusvi)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -383697,7 +452492,7 @@ static int __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_VAR_Close(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_VORTEX_Close(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -383765,7 +452560,7 @@ static int __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VAR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29459, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -383777,10 +452572,12 @@ static int __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -383790,36 +452587,38 @@ static int __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(struct __pyx_obj_5tal + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VAR_Stream_4open_and_fill, "VAR_Stream.open_and_fill(real, int timeperiod=-0x80000000, double nbdev=-4e37)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10VAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VAR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill, "VORTEX_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; - double __pyx_v_nbdev; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -383835,97 +452634,100 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29461, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35000, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35000, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35000, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35000, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35000, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29461, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 29461, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 35000, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 35000, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35000, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29461, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35000, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29461, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35000, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35000, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29462, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 35001, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } - if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29462, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)-4e37); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 29461, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 35000, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outplusvi = 0; + PyArrayObject *__pyx_v_outminusvi = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_VAR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_stream = 0; + TA_VORTEX_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -383942,41 +452744,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject * PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29463, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29464, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 29464, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 35005, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 35005, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 35005, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29465, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35006, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29466, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35007, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29467, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35008, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29473, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VORTEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29475, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35017, __pyx_L1_error) /*try:*/ { @@ -383986,7 +452805,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); + __pyx_v_lookback = (__pyx_v_begidx + TA_VORTEX_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -383999,9 +452818,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29479, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35021, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outplusvi = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35022, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outminusvi = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -384010,7 +452834,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_VAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_VORTEX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outplusvi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminusvi)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -384114,37 +452938,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29490, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29491, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 29491, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29491, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 35034, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 35034, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 35034, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outplusvi)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 35034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29491, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35034, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 35034, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 35034, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 35034, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outminusvi)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 35034, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29491, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29491, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 35034, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 35034, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 35034, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 35034, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 35034, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -384152,16 +453004,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outplusvi); + __Pyx_XDECREF((PyObject *)__pyx_v_outminusvi); @@ -384174,27 +453030,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VAR_Stream_6update, "VAR_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_6update, "VORTEX_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -384210,63 +453068,82 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29493, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35036, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35036, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35036, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29493, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35036, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29493, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 29493, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 35036, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 35036, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29493, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35036, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35036, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35036, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29494, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35037, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35037, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35037, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29493, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35036, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outplusvi; + double __pyx_v_outminusvi; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -384283,7 +453160,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VAR_Update(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VORTEX_Update(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outplusvi), (&__pyx_v_outminusvi)); } /*finally:*/ { @@ -384311,34 +453188,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29501, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29502, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 35046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 35046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 35046, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 35046, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -384346,27 +453236,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VAR_Stream_8peek, "VAR_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_8peek, "VORTEX_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -384382,63 +453274,82 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29504, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35048, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35048, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35048, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29504, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35048, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29504, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 29504, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 35048, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 35048, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29504, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35048, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35048, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35048, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29505, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35049, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35049, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35049, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29504, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35048, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outplusvi; + double __pyx_v_outminusvi; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -384455,7 +453366,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VAR_Peek(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VORTEX_Peek(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outplusvi), (&__pyx_v_outminusvi)); } /*finally:*/ { @@ -384483,34 +453394,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29512, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29513, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 35058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 35058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 35058, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 35058, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -384518,28 +453442,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self) { + double __pyx_v_outplusvi; + double __pyx_v_outminusvi; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -384556,7 +453483,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VAR_Value(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VORTEX_Value(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outplusvi), (&__pyx_v_outminusvi)); } /*finally:*/ { @@ -384584,46 +453511,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29523, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29524, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 35070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 35070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 35070, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 35070, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10VAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13VORTEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_VAR_OutRange(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_VORTEX_OutRange(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -384634,12 +453574,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10VAR_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10VAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13VORTEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_VAR_Advance(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_VORTEX_Advance(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -384651,15 +453591,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10VAR_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VAR_Stream_10copy, "VAR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_10copy, "VORTEX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -384685,16 +453625,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self) { - TA_VAR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self) { + TA_VORTEX_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -384711,18 +453651,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29535, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream))))) __PYX_ERR(3, 29535, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream))))) __PYX_ERR(3, 35081, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -384736,7 +453676,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_VAR_Clone(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_VORTEX_Clone(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -384779,7 +453719,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29545, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -384801,7 +453741,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -384814,19 +453754,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10VHF_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10VHF_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10VHF_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11VWAP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10VHF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11VWAP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -384840,7 +453780,7 @@ static void __pyx_pf_5talib_7_ta_lib_10VHF_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_VHF_Close(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_VWAP_Close(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -384866,27 +453806,29 @@ static void __pyx_pf_5talib_7_ta_lib_10VHF_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10VHF_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10VHF_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -384902,78 +453844,85 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29569, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35113, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35113, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29569, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 29569, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29569, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29569, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 35113, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 35113, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29569, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35113, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35113, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35113, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35113, __pyx_L3_error) } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 29569, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 35113, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_VHF_Stream *__pyx_v_handle; + TA_VWAP_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -384989,31 +453938,55 @@ static int __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29570, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29571, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 29571, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 35118, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 35118, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 35118, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 35118, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29572, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35119, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29573, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35120, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29574, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35121, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29579, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35126, __pyx_L1_error) /*try:*/ { @@ -385023,9 +453996,9 @@ static int __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_VHF_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_VWAP_Lookback() + 1); - __pyx_v_retCode = TA_VHF_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VWAP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -385042,7 +454015,7 @@ static int __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_VHF_Close(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_VWAP_Close(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -385110,7 +454083,7 @@ static int __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VHF_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29596, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -385122,10 +454095,13 @@ static int __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -385141,29 +454117,31 @@ static int __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VHF_Stream_4open_and_fill, "VHF_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10VHF_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VHF_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill, "VWAP_Stream.open_and_fill(high, low, close, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -385179,73 +454157,80 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29598, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35145, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35145, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35145, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29598, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35145, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29598, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35145, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29598, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 29598, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29598, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29598, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 35145, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 35145, __pyx_L3_error) } } - } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29599, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)-2147483648); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35145, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35145, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35145, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35145, __pyx_L3_error) } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 29598, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 35145, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -385254,8 +454239,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_VHF_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_stream = 0; + TA_VWAP_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -385277,36 +454262,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29600, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29601, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 29601, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 35151, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 35151, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 35151, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 35151, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29602, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35152, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29603, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35153, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29604, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35154, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VHF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29610, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VWAP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29612, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35162, __pyx_L1_error) /*try:*/ { @@ -385316,7 +454325,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_VHF_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_VWAP_Lookback()); } /*finally:*/ { @@ -385329,7 +454338,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29616, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35166, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -385340,7 +454349,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_VHF_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_VWAP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -385444,27 +454453,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VHF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29627, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWAP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29628, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 29628, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29628, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 35178, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 35178, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 35178, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 35178, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 35178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29628, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29628, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 35178, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29628, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 35178, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -385482,10 +454500,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -385504,27 +454525,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VHF_Stream_6update, "VHF_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWAP_Stream_6update, "VWAP_Stream.update(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -385540,56 +454564,80 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29630, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35180, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35180, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35180, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35180, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29630, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29630, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 29630, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 35180, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 35180, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29630, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35180, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35180, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35180, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35180, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29631, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35181, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35181, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35181, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35181, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29630, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 35180, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -385613,7 +454661,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VHF_Update(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VWAP_Update(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -385641,13 +454689,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29638, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29639, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -385664,7 +454712,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -385676,27 +454724,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VHF_Stream_8peek, "VHF_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWAP_Stream_8peek, "VWAP_Stream.peek(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -385712,56 +454763,80 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29641, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35191, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35191, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35191, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35191, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35191, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29641, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 29641, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 35191, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 35191, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35191, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35191, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35191, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35191, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29642, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35192, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35192, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35192, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35192, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 29641, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 35191, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, double __pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -385785,7 +454860,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VHF_Peek(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VWAP_Peek(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -385813,13 +454888,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29649, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29650, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -385836,7 +454911,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -385848,21 +454923,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -385886,7 +454961,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VHF_Value(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_VWAP_Value(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -385914,13 +454989,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29660, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29661, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -385937,7 +455012,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -385948,12 +455023,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10VHF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWAP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_VHF_OutRange(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_VWAP_OutRange(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -385964,12 +455039,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10VHF_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10VHF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWAP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_VHF_Advance(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_VWAP_Advance(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -385981,15 +455056,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10VHF_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VHF_Stream_10copy, "VHF_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWAP_Stream_10copy, "VWAP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -386015,16 +455090,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self) { - TA_VHF_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self) { + TA_VWAP_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -386041,18 +455116,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29672, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream))))) __PYX_ERR(3, 29672, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream))))) __PYX_ERR(3, 35222, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -386066,7 +455141,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_VHF_Clone(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_VWAP_Clone(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -386109,7 +455184,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29682, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -386131,7 +455206,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -386144,19 +455219,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_11VWMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_11VWMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -386170,7 +455245,7 @@ static void __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream___dealloc__(struct __pyx_ob if (__pyx_t_1) { - (void)(TA_VORTEX_Close(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_VWMA_Close(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -386196,29 +455271,28 @@ static void __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream___dealloc__(struct __pyx_ob /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_volume = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -386234,75 +455308,68 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29707, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35257, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29707, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29707, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 29707, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 35257, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 35257, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29707, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35257, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35257, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35257, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29707, __pyx_L3_error) + __pyx_v_real = values[0]; + __pyx_v_volume = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 35257, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 29707, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 35257, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -386313,17 +455380,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_VORTEX_Stream *__pyx_v_handle; - double __pyx_v_outplusvi; - double __pyx_v_outminusvi; + TA_VWMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -386338,47 +455403,39 @@ static int __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29708, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29709, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29710, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29711, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29711, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29711, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 29711, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 35260, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 35260, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29712, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35261, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29713, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35262, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29714, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35263, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29720, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35268, __pyx_L1_error) /*try:*/ { @@ -386388,9 +455445,9 @@ static int __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(struct __pyx_obj_5 __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_VORTEX_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_VWMA_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_VORTEX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outplusvi), (&__pyx_v_outminusvi)); + __pyx_v_retCode = TA_VWMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -386407,7 +455464,7 @@ static int __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - (void)(TA_VORTEX_Close(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_VWMA_Close(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -386475,7 +455532,7 @@ static int __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29737, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -386487,12 +455544,11 @@ static int __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(struct __pyx_obj_5 goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -386502,38 +455558,36 @@ static int __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(struct __pyx_obj_5 - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill, "VORTEX_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill, "VWMA_Stream.open_and_fill(real, volume, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_volume = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -386549,75 +455603,68 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29739, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35287, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29739, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29739, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29739, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29739, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29739, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 29739, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 35287, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 35287, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29739, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29739, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35287, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29739, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35287, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29739, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35287, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29740, __pyx_L3_error) + __pyx_v_real = values[0]; + __pyx_v_volume = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 35288, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 29739, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 35287, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -386628,21 +455675,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject *__pyx_v_real, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outplusvi = 0; - PyArrayObject *__pyx_v_outminusvi = 0; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_VORTEX_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_stream = 0; + TA_VWMA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -386659,58 +455704,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObjec PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29741, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29742, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29743, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29744, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29744, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29744, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 29744, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 35291, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 35291, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29745, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35292, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29746, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35293, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29747, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35294, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VORTEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29754, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VWMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29756, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35302, __pyx_L1_error) /*try:*/ { @@ -386720,7 +455756,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_VORTEX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_VWMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -386733,14 +455769,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObjec } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29760, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outplusvi = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29761, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35306, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outminusvi = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -386749,7 +455780,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObjec __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_VORTEX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outplusvi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminusvi)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_VWMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -386853,65 +455884,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29772, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29773, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 29773, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 29773, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 29773, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outplusvi)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29773, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 35318, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 35318, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 35318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29773, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 29773, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 29773, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 29773, __pyx_L1_error); - __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outminusvi)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 29773, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29773, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 29773, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 29773, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 29773, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29773, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 29773, __pyx_L1_error); - __pyx_t_1 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 35318, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_13); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 35318, __pyx_L1_error); + __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_14; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_14 = 0; + __pyx_t_1 = 0; goto __pyx_L0; @@ -386919,20 +455925,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObjec __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outplusvi); - __Pyx_XDECREF((PyObject *)__pyx_v_outminusvi); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -386945,29 +455948,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_6update, "VORTEX_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWMA_Stream_6update, "VWMA_Stream.update(self, double real, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -386983,59 +455985,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29775, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35320, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29775, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29775, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35320, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29775, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35320, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29775, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 29775, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 35320, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 35320, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29775, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35320, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29775, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29775, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35320, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29776, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29776, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29776, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35321, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35321, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 29775, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 35320, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -387043,22 +456038,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outplusvi; - double __pyx_v_outminusvi; +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -387075,7 +456066,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_6update(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VORTEX_Update(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outplusvi), (&__pyx_v_outminusvi)); + __pyx_v_retCode = TA_VWMA_Update(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -387103,47 +456094,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_6update(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29784, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29785, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 29785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 29785, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 29785, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -387151,29 +456129,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_6update(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_8peek, "VORTEX_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWMA_Stream_8peek, "VWMA_Stream.peek(self, double real, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -387189,59 +456166,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29787, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35331, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29787, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29787, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35331, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29787, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35331, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29787, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 29787, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 35331, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 35331, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29787, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35331, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29787, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29787, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35331, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29788, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29788, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29788, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35332, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35332, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 29787, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 35331, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -387249,22 +456219,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outplusvi; - double __pyx_v_outminusvi; +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -387281,7 +456247,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_8peek(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VORTEX_Peek(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outplusvi), (&__pyx_v_outminusvi)); + __pyx_v_retCode = TA_VWMA_Peek(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_volume, (&__pyx_v_outreal)); } /*finally:*/ { @@ -387309,47 +456275,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_8peek(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29796, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29797, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 29797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 29797, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 29797, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -387357,31 +456310,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_8peek(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self) { - double __pyx_v_outplusvi; - double __pyx_v_outminusvi; +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -387398,7 +456348,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_5value___get__(struct __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VORTEX_Value(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outplusvi), (&__pyx_v_outminusvi)); + __pyx_v_retCode = TA_VWMA_Value(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -387426,59 +456376,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_5value___get__(struct if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29808, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29809, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29809, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 29809, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 29809, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 29809, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_3 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13VORTEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_VORTEX_OutRange(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_VWMA_OutRange(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -387489,12 +456426,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13VORTEX_Stream__out_range(struct __py } -static TA_RetCode __pyx_f_5talib_7_ta_lib_13VORTEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_VORTEX_Advance(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_VWMA_Advance(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -387506,15 +456443,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_13VORTEX_Stream__advance(struct __pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_10copy, "VORTEX_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWMA_Stream_10copy, "VWMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -387540,16 +456477,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self) { - TA_VORTEX_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self) { + TA_VWMA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -387566,18 +456503,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(struct __pyx_ob __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29820, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream))))) __PYX_ERR(3, 29820, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream))))) __PYX_ERR(3, 35362, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -387591,7 +456528,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_VORTEX_Clone(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_VWMA_Clone(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -387634,7 +456571,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(struct __pyx_ob if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29830, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -387656,7 +456593,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(struct __pyx_ob __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -387669,19 +456606,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(struct __pyx_ob /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10WAD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10WAD_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11VWAP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10WAD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11VWAP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10WAD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -387695,7 +456632,7 @@ static void __pyx_pf_5talib_7_ta_lib_11VWAP_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_VWAP_Close(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_WAD_Close(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -387721,14 +456658,14 @@ static void __pyx_pf_5talib_7_ta_lib_11VWAP_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10WAD_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10WAD_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -387738,12 +456675,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -387759,66 +456695,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29852, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35394, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29852, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35394, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35394, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35394, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29852, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 29852, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 35394, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 35394, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35394, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35394, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29852, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35394, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; __pyx_v_close = values[2]; - __pyx_v_volume = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 29852, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35394, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -387828,16 +456757,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { +static int __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_VWAP_Stream *__pyx_v_handle; + TA_WAD_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -387853,55 +456781,47 @@ static int __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29853, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29854, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29855, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29856, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29857, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29857, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 35398, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29857, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 35398, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 29857, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 29857, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 35398, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29858, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35399, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29859, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35400, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29860, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35401, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29865, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35406, __pyx_L1_error) /*try:*/ { @@ -387911,9 +456831,9 @@ static int __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_VWAP_Lookback() + 1); + __pyx_v_need = (TA_WAD_Lookback() + 1); - __pyx_v_retCode = TA_VWAP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WAD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -387930,7 +456850,7 @@ static int __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_VWAP_Close(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_WAD_Close(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -387998,7 +456918,7 @@ static int __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29882, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WAD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -388010,13 +456930,12 @@ static int __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -388032,16 +456951,16 @@ static int __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(struct __pyx_obj_5ta /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill, "VWAP_Stream.open_and_fill(high, low, close, volume)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WAD_Stream_4open_and_fill, "WAD_Stream.open_and_fill(high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10WAD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WAD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -388051,12 +456970,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; - PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -388072,66 +456990,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29884, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35425, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29884, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35425, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35425, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35425, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 29884, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 29884, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 35425, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 35425, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35425, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35425, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29884, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35425, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; __pyx_v_close = values[2]; - __pyx_v_volume = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 29884, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35425, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -388141,11 +457052,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; - PyArrayObject *__pyx_v_a_volume = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -388154,8 +457064,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_VWAP_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_stream = 0; + TA_WAD_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -388177,60 +457087,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29886, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29887, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29888, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29889, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29890, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 29890, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 35430, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 29890, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 35430, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 29890, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 29890, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 35430, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 29891, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35431, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 29892, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35432, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 29893, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35433, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VWAP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29899, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WAD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 29901, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35441, __pyx_L1_error) /*try:*/ { @@ -388240,7 +457142,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_VWAP_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_WAD_Lookback()); } /*finally:*/ { @@ -388253,7 +457155,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29905, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35445, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -388264,7 +457166,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_VWAP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_WAD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -388368,36 +457270,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWAP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29916, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WAD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29917, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 29917, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 35457, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 29917, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 35457, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 29917, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_volume); - __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 29917, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 29917, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 35457, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 35457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29917, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 29917, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 35457, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 29917, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 35457, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -388415,13 +457314,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF((PyObject *)__pyx_v_a_close); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); __Pyx_XDECREF(__pyx_v_arrays); @@ -388440,15 +457338,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWAP_Stream_6update, "VWAP_Stream.update(self, double high, double low, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WAD_Stream_6update, "WAD_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -388458,12 +457356,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; - double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -388479,66 +457376,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29919, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35459, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29919, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35459, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35459, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35459, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 29919, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 29919, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 35459, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 35459, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35459, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35459, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29919, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35459, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29920, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29920, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29920, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29920, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35460, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35460, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35460, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 29919, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35459, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -388547,12 +457437,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -388576,7 +457465,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VWAP_Update(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WAD_Update(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -388604,13 +457493,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29927, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29928, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -388627,7 +457516,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_6update(struct __pyx_obj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -388639,15 +457528,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_6update(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWAP_Stream_8peek, "VWAP_Stream.peek(self, double high, double low, double close, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WAD_Stream_8peek, "WAD_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -388657,12 +457546,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds double __pyx_v_high; double __pyx_v_low; double __pyx_v_close; - double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -388678,66 +457566,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29930, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35470, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29930, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29930, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35470, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29930, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35470, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29930, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35470, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 29930, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 29930, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 35470, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 35470, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29930, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35470, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29930, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35470, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29930, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 29930, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35470, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29931, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29931, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29931, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 29931, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35471, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35471, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35471, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 29930, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35470, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -388746,12 +457627,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -388775,7 +457655,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_8peek(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VWAP_Peek(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WAD_Peek(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -388803,13 +457683,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29938, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29939, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -388826,7 +457706,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_8peek(struct __pyx_obj_5 /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -388838,21 +457718,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -388876,7 +457756,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VWAP_Value(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WAD_Value(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -388904,13 +457784,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29949, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29950, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -388927,7 +457807,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_5value___get__(struct __ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -388938,12 +457818,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_5value___get__(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWAP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10WAD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_VWAP_OutRange(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_WAD_OutRange(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -388954,12 +457834,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWAP_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWAP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10WAD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_VWAP_Advance(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_WAD_Advance(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -388971,15 +457851,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWAP_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWAP_Stream_10copy, "VWAP_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WAD_Stream_10copy, "WAD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -389005,16 +457885,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self) { - TA_VWAP_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self) { + TA_WAD_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -389031,18 +457911,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29961, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream))))) __PYX_ERR(3, 29961, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream))))) __PYX_ERR(3, 35501, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -389056,7 +457936,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_VWAP_Clone(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_WAD_Clone(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -389099,7 +457979,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29971, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -389121,7 +458001,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -389134,19 +458014,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_11VWMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_11VWMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -389160,7 +458040,7 @@ static void __pyx_pf_5talib_7_ta_lib_11VWMA_Stream___dealloc__(struct __pyx_obj_ if (__pyx_t_1) { - (void)(TA_VWMA_Close(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_WAVETREND_Close(((TA_WAVETREND_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -389186,28 +458066,31 @@ static void __pyx_pf_5talib_7_ta_lib_11VWMA_Stream___dealloc__(struct __pyx_obj_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - PyObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_channelperiod; + int __pyx_v_averageperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -389223,87 +458106,124 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_channelperiod,&__pyx_mstate_global->__pyx_n_u_averageperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 29996, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35538, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 35538, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 35538, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35538, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35538, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35538, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35538, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 29996, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 29996, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 35538, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 35538, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 35538, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 35538, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35538, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 29996, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35538, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 29996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35538, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 29996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35538, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - __pyx_v_volume = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 29996, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_channelperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_channelperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 35538, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_channelperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_averageperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_averageperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 35538, __pyx_L3_error) + } else { + __pyx_v_averageperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 35538, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 29996, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 35538, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAVETREND_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_channelperiod, __pyx_v_averageperiod, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static int __pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_channelperiod, int __pyx_v_averageperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_VWMA_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_WAVETREND_Stream *__pyx_v_handle; + double __pyx_v_outwt1; + double __pyx_v_outwt2; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -389318,39 +458238,47 @@ static int __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29997, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29998, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29999, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 29999, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 29999, __pyx_L1_error); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 35542, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 35542, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 35542, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30000, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35543, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30001, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35544, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30002, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35545, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30007, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35551, __pyx_L1_error) /*try:*/ { @@ -389360,9 +458288,9 @@ static int __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(struct __pyx_obj_5ta __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_VWMA_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_WAVETREND_Lookback(__pyx_v_channelperiod, __pyx_v_averageperiod, __pyx_v_signalperiod) + 1); - __pyx_v_retCode = TA_VWMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WAVETREND_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_channelperiod, __pyx_v_averageperiod, __pyx_v_signalperiod, (&__pyx_v_outwt1), (&__pyx_v_outwt2)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -389379,7 +458307,7 @@ static int __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - (void)(TA_VWMA_Close(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_WAVETREND_Close(((TA_WAVETREND_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -389447,7 +458375,7 @@ static int __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30024, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WAVETREND_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -389459,11 +458387,12 @@ static int __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(struct __pyx_obj_5ta goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAVETREND_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); @@ -389473,36 +458402,40 @@ static int __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(struct __pyx_obj_5ta + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill, "VWMA_Stream.open_and_fill(real, volume, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16WAVETREND_Stream_4open_and_fill, "WAVETREND_Stream.open_and_fill(high, low, close, int channelperiod=-0x80000000, int averageperiod=-0x80000000, int signalperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16WAVETREND_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16WAVETREND_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - PyObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_channelperiod; + int __pyx_v_averageperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -389518,91 +458451,128 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_channelperiod,&__pyx_mstate_global->__pyx_n_u_averageperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30026, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35570, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 35570, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 35570, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35570, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30026, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35570, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30026, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35570, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30026, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35570, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 30026, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 30026, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 35570, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 35570, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 35570, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 35570, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35570, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30026, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35570, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30026, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35570, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30026, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35570, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - __pyx_v_volume = values[1]; - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30027, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_channelperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_channelperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 35571, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_channelperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_averageperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_averageperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 35571, __pyx_L3_error) + } else { + __pyx_v_averageperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 35571, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 30026, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 35570, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAVETREND_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_channelperiod, __pyx_v_averageperiod, __pyx_v_signalperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject *__pyx_v_real, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; - PyArrayObject *__pyx_v_a_volume = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_channelperiod, int __pyx_v_averageperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outwt1 = 0; + PyArrayObject *__pyx_v_outwt2 = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_VWMA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_stream = 0; + TA_WAVETREND_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -389619,49 +458589,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30028, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30029, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30030, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 30030, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_volume); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 30030, __pyx_L1_error); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 35575, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 35575, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 35575, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30031, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35576, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30032, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35577, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30033, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35578, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VWMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30039, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WAVETREND_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30041, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35587, __pyx_L1_error) /*try:*/ { @@ -389671,7 +458650,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_VWMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_WAVETREND_Lookback(__pyx_v_channelperiod, __pyx_v_averageperiod, __pyx_v_signalperiod)); } /*finally:*/ { @@ -389684,9 +458663,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30045, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35591, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outwt1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35592, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outwt2 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -389695,7 +458679,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_VWMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_WAVETREND_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_channelperiod, __pyx_v_averageperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outwt1)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outwt2)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -389799,40 +458783,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30056, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WAVETREND_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30057, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 30057, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_volume); - __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 30057, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 30057, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 35604, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 35604, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 35604, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outwt1)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 35604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30057, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 35604, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 35604, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 35604, __pyx_L1_error); + __pyx_t_14 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outwt2)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 35604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_stream); - __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 30057, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 30057, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(3, 35604, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14) != (0)) __PYX_ERR(3, 35604, __pyx_L1_error); __pyx_t_13 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 35604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 35604, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 35604, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_14; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_14 = 0; goto __pyx_L0; @@ -389840,17 +458849,20 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("talib._ta_lib.WAVETREND_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); - __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outwt1); + __Pyx_XDECREF((PyObject *)__pyx_v_outwt2); @@ -389863,28 +458875,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWMA_Stream_6update, "VWMA_Stream.update(self, double real, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16WAVETREND_Stream_6update, "WAVETREND_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; - double __pyx_v_volume; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -389900,52 +458913,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30059, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35606, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35606, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35606, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35606, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 30059, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 30059, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 35606, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 35606, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35606, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35606, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35606, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30060, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30060, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35607, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35607, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35607, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 30059, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35606, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAVETREND_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -389953,18 +458973,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outwt1; + double __pyx_v_outwt2; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -389981,7 +459005,213 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_6update(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VWMA_Update(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_volume, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WAVETREND_Update(((TA_WAVETREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outwt1), (&__pyx_v_outwt2)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAVETREND_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outwt1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outwt2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 35616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 35616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 35616, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 35616, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.WAVETREND_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16WAVETREND_Stream_8peek, "WAVETREND_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35618, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35618, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35618, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35618, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 35618, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 35618, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35618, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35618, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35618, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35619, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35619, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35619, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35618, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.WAVETREND_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outwt1; + double __pyx_v_outwt2; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_WAVETREND_Peek(((TA_WAVETREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outwt1), (&__pyx_v_outwt2)); } /*finally:*/ { @@ -390009,215 +459239,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_6update(struct __pyx_obj if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30067, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAVETREND_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30068, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outwt1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; - } - __Pyx_XDECREF(__pyx_temp); - } + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outwt2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 35628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 35628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 35628, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 35628, __pyx_L1_error); __pyx_t_3 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_9peek(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWMA_Stream_8peek, "VWMA_Stream.peek(self, double real, double volume)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_9peek(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - double __pyx_v_real; - double __pyx_v_volume; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("peek (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30070, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30070, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30070, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30070, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 30070, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30070, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30070, __pyx_L3_error) - } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30071, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30071, __pyx_L3_error) - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 30070, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); - - /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - - - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume) { - double __pyx_v_outreal; - TA_RetCode __pyx_v_retCode; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_Locks_PyMutex *__pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("peek", 0); - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - { - __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; - __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); - /*try:*/ { - - __pyx_v_retCode = TA_VWMA_Peek(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_volume, (&__pyx_v_outreal)); - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); - goto __pyx_L8; - } - __pyx_L8:; - } - } - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L5; - } - __pyx_L5:; - } - } - - __pyx_t_2 = (__pyx_v_retCode != 0); - - if (__pyx_t_2) { - - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30079, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.WAVETREND_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -390225,28 +459287,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_8peek(struct __pyx_obj_5 /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self) { + double __pyx_v_outwt1; + double __pyx_v_outwt2; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -390263,7 +459328,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_5value___get__(struct __ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_VWMA_Value(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WAVETREND_Value(((TA_WAVETREND_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outwt1), (&__pyx_v_outwt2)); } /*finally:*/ { @@ -390291,46 +459356,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_5value___get__(struct __ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30089, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAVETREND_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30090, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outwt1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outwt2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 35640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 35640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 35640, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 35640, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.WAVETREND_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16WAVETREND_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_VWMA_OutRange(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_WAVETREND_OutRange(((TA_WAVETREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -390341,12 +459419,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWMA_Stream__out_range(struct __pyx_ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_16WAVETREND_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_VWMA_Advance(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_WAVETREND_Advance(((TA_WAVETREND_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -390358,15 +459436,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWMA_Stream__advance(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWMA_Stream_10copy, "VWMA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16WAVETREND_Stream_10copy, "WAVETREND_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -390392,16 +459470,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self) { - TA_VWMA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_16WAVETREND_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_self) { + TA_WAVETREND_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -390418,18 +459496,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(struct __pyx_obj_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30101, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream))))) __PYX_ERR(3, 30101, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream))))) __PYX_ERR(3, 35651, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -390443,7 +459521,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_VWMA_Clone(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_WAVETREND_Clone(((TA_WAVETREND_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -390486,7 +459564,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(struct __pyx_obj_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30111, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAVETREND_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -390508,7 +459586,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(struct __pyx_obj_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAVETREND_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -390521,19 +459599,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(struct __pyx_obj_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10WAD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10WAD_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10WAD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10WAD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -390547,7 +459625,7 @@ static void __pyx_pf_5talib_7_ta_lib_10WAD_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_WAD_Close(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_WCLPRICE_Close(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -390573,14 +459651,14 @@ static void __pyx_pf_5talib_7_ta_lib_10WAD_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10WAD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10WAD_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -390612,38 +459690,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30133, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35683, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35683, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35683, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35683, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 30133, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 35683, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 30133, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 35683, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35683, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35683, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35683, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -390651,18 +459729,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 30133, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35683, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -390672,7 +459750,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -390680,7 +459758,7 @@ static int __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(struct __pyx_obj_5tal npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_WAD_Stream *__pyx_v_handle; + TA_WCLPRICE_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -390696,47 +459774,47 @@ static int __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30134, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30135, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30136, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30137, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 30137, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 35687, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 30137, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 35687, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 30137, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 35687, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30138, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35688, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30139, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35689, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30140, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35690, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30145, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35695, __pyx_L1_error) /*try:*/ { @@ -390746,9 +459824,9 @@ static int __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_WAD_Lookback() + 1); + __pyx_v_need = (TA_WCLPRICE_Lookback() + 1); - __pyx_v_retCode = TA_WAD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WCLPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -390765,7 +459843,7 @@ static int __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_WAD_Close(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_WCLPRICE_Close(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -390833,7 +459911,7 @@ static int __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WAD_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30162, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -390845,7 +459923,7 @@ static int __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); @@ -390866,16 +459944,16 @@ static int __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(struct __pyx_obj_5tal /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WAD_Stream_4open_and_fill, "WAD_Stream.open_and_fill(high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10WAD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WAD_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill, "WCLPRICE_Stream.open_and_fill(high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -390907,38 +459985,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30164, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35714, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30164, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35714, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30164, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35714, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30164, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35714, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 30164, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 35714, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 30164, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 35714, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30164, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35714, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30164, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35714, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30164, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35714, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -390946,18 +460024,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 30164, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35714, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -390967,7 +460045,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -390979,8 +460057,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject * PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_WAD_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_stream = 0; + TA_WCLPRICE_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -391002,52 +460080,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30166, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30167, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30168, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30169, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 30169, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 35719, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 30169, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 35719, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 30169, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 35719, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30170, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35720, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30171, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35721, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30172, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35722, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WAD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30178, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WCLPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30180, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35730, __pyx_L1_error) /*try:*/ { @@ -391057,7 +460135,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_WAD_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_WCLPRICE_Lookback()); } /*finally:*/ { @@ -391070,7 +460148,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30184, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35734, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -391081,7 +460159,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_WAD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_WCLPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -391185,33 +460263,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WAD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30195, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30196, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 30196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 35746, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 30196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 35746, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 30196, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 30196, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 35746, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 35746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30196, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 30196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 35746, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 30196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 35746, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -391229,7 +460307,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject * __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); @@ -391253,15 +460331,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WAD_Stream_6update, "WAD_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_6update, "WCLPRICE_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -391293,57 +460371,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30198, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35748, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 30198, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 35748, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 30198, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 35748, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35748, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35748, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35748, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30199, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30199, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30199, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35749, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35749, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35749, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 30198, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35748, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -391356,7 +460434,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -391380,7 +460458,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_WAD_Update(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WCLPRICE_Update(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -391408,13 +460486,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_6update(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30206, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30207, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -391431,7 +460509,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_6update(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -391443,15 +460521,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WAD_Stream_8peek, "WAD_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_8peek, "WCLPRICE_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -391483,57 +460561,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30209, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35759, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30209, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 35759, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 30209, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 35759, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35759, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35759, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35759, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30210, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30210, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30210, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35760, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35760, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35760, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 30209, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35759, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -391546,7 +460624,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -391570,7 +460648,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_WAD_Peek(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WCLPRICE_Peek(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -391598,13 +460676,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30217, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30218, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -391621,7 +460699,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_8peek(struct __pyx_obj_5t /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -391633,21 +460711,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_8peek(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -391671,7 +460749,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_5value___get__(struct __p __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_WAD_Value(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WCLPRICE_Value(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -391699,13 +460777,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_5value___get__(struct __p if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30228, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30229, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -391722,7 +460800,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_5value___get__(struct __p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -391733,12 +460811,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10WAD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_WAD_OutRange(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_WCLPRICE_OutRange(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -391749,12 +460827,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10WAD_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10WAD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_WAD_Advance(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_WCLPRICE_Advance(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -391766,15 +460844,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10WAD_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WAD_Stream_10copy, "WAD_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_10copy, "WCLPRICE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -391800,16 +460878,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self) { - TA_WAD_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self) { + TA_WCLPRICE_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -391826,18 +460904,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30240, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream))))) __PYX_ERR(3, 30240, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream))))) __PYX_ERR(3, 35790, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -391851,7 +460929,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_WAD_Clone(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_WCLPRICE_Clone(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -391894,7 +460972,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30250, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -391916,7 +460994,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -391929,19 +461007,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(struct __pyx_obj_5 /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_12WILLR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_12WILLR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -391955,7 +461033,7 @@ static void __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream___dealloc__(struct __pyx_ if (__pyx_t_1) { - (void)(TA_WCLPRICE_Close(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_WILLR_Close(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -391981,14 +461059,14 @@ static void __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream___dealloc__(struct __pyx_ /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -391998,11 +461076,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -392018,69 +461097,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30272, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35824, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35824, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30272, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35824, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30272, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35824, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30272, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35824, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 30272, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 35824, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 30272, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 35824, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30272, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30272, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30272, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35824, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35824, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35824, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35824, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_high = values[0]; __pyx_v_low = values[1]; __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 35824, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 30272, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 35824, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -392088,7 +461184,7 @@ static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_WCLPRICE_Stream *__pyx_v_handle; + TA_WILLR_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -392104,47 +461200,47 @@ static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30273, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30274, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30275, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30276, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 30276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 35828, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 30276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 35828, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 30276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 35828, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30277, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35829, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30278, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35830, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30279, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35831, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30284, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35836, __pyx_L1_error) /*try:*/ { @@ -392154,9 +461250,9 @@ static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_WCLPRICE_Lookback() + 1); + __pyx_v_need = (TA_WILLR_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_WCLPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WILLR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -392173,7 +461269,7 @@ static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - (void)(TA_WCLPRICE_Close(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_WILLR_Close(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -392241,7 +461337,7 @@ static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30301, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -392253,7 +461349,7 @@ static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); @@ -392274,16 +461370,16 @@ static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill, "WCLPRICE_Stream.open_and_fill(high, low, close)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill, "WILLR_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -392293,11 +461389,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_high = 0; PyObject *__pyx_v_low = 0; PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -392313,69 +461410,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30303, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35855, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35855, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30303, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35855, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30303, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35855, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30303, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35855, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 30303, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 35855, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 30303, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 35855, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30303, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30303, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30303, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 35855, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35855, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35855, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35855, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_high = values[0]; __pyx_v_low = values[1]; __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 35856, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 30303, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 35855, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { PyArrayObject *__pyx_v_a_high = 0; PyArrayObject *__pyx_v_a_low = 0; PyArrayObject *__pyx_v_a_close = 0; @@ -392387,8 +461501,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObj PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_WCLPRICE_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_stream = 0; + TA_WILLR_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -392410,52 +461524,52 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30305, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30306, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30307, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30308, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 30308, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 35860, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 30308, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 35860, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 30308, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 35860, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30309, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35861, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30310, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35862, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30311, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35863, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WCLPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30317, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WILLR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30319, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35871, __pyx_L1_error) /*try:*/ { @@ -392465,7 +461579,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_WCLPRICE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -392478,7 +461592,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObj } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30323, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35875, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -392489,7 +461603,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObj __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_WCLPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_WILLR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -392593,33 +461707,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30334, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WILLR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30335, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 30335, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 35887, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 30335, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 35887, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 30335, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 30335, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 35887, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 35887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30335, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 30335, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 35887, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 30335, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 35887, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -392637,7 +461751,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_a_high); @@ -392661,15 +461775,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_6update, "WCLPRICE_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12WILLR_Stream_6update, "WILLR_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -392701,57 +461815,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30337, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35889, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35889, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35889, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35889, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 30337, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 35889, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 30337, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 35889, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35889, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35889, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30337, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35889, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30338, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30338, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30338, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35890, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35890, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35890, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 30337, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35889, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -392764,7 +461878,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -392788,7 +461902,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_6update(struct __pyx __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_WCLPRICE_Update(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WILLR_Update(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -392816,13 +461930,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_6update(struct __pyx if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30345, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30346, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -392839,7 +461953,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_6update(struct __pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -392851,15 +461965,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_6update(struct __pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_8peek, "WCLPRICE_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12WILLR_Stream_8peek, "WILLR_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -392891,57 +462005,57 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30348, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35900, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35900, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35900, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35900, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30348, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 35900, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 30348, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 35900, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35900, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35900, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 35900, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30349, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30349, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30349, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35901, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35901, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 35901, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 30348, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 35900, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -392954,7 +462068,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -392978,7 +462092,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_8peek(struct __pyx_o __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_WCLPRICE_Peek(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WILLR_Peek(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); } /*finally:*/ { @@ -393006,13 +462120,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_8peek(struct __pyx_o if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30356, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30357, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -393029,7 +462143,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_8peek(struct __pyx_o /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -393041,21 +462155,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_8peek(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -393079,7 +462193,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_5value___get__(struc __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_WCLPRICE_Value(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WILLR_Value(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -393107,13 +462221,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_5value___get__(struc if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30367, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30368, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -393130,7 +462244,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_5value___get__(struc /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -393141,12 +462255,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_5value___get__(struc } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12WILLR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_WCLPRICE_OutRange(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_WILLR_OutRange(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -393157,12 +462271,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__out_range(struct __ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_12WILLR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_WCLPRICE_Advance(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_WILLR_Advance(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -393174,15 +462288,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__advance(struct __py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_10copy, "WCLPRICE_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12WILLR_Stream_10copy, "WILLR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -393208,16 +462322,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self) { - TA_WCLPRICE_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self) { + TA_WILLR_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -393234,18 +462348,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(struct __pyx_ __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30379, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream))))) __PYX_ERR(3, 30379, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream))))) __PYX_ERR(3, 35931, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -393259,7 +462373,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(struct __pyx_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_WCLPRICE_Clone(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_WILLR_Clone(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -393302,7 +462416,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(struct __pyx_ if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30389, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -393324,7 +462438,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(struct __pyx_ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -393337,19 +462451,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(struct __pyx_ /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_10WMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10WMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_12WILLR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_10WMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_12WILLR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_10WMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -393363,7 +462477,7 @@ static void __pyx_pf_5talib_7_ta_lib_12WILLR_Stream___dealloc__(struct __pyx_obj if (__pyx_t_1) { - (void)(TA_WILLR_Close(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_WMA_Close(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -393389,29 +462503,27 @@ static void __pyx_pf_5talib_7_ta_lib_12WILLR_Stream___dealloc__(struct __pyx_obj /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10WMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_10WMA_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -393427,75 +462539,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30413, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35965, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30413, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30413, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 30413, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 30413, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 35965, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 35965, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30413, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30413, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35965, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30413, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 35965, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 30413, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 35965, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -393506,15 +462604,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static int __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_WILLR_Stream *__pyx_v_handle; + TA_WMA_Stream *__pyx_v_handle; double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; int __pyx_v_need; @@ -393530,47 +462626,31 @@ static int __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30414, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30415, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30417, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 30417, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 30417, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 30417, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 35967, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30418, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35968, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30419, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35969, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30420, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 35970, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30425, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 35975, __pyx_L1_error) /*try:*/ { @@ -393580,9 +462660,9 @@ static int __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(struct __pyx_obj_5t __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_WILLR_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_WMA_Lookback(__pyx_v_timeperiod) + 1); - __pyx_v_retCode = TA_WILLR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -393599,7 +462679,7 @@ static int __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - (void)(TA_WILLR_Close(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_WMA_Close(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -393667,7 +462747,7 @@ static int __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30442, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -393679,12 +462759,10 @@ static int __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(struct __pyx_obj_5t goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -393700,31 +462778,29 @@ static int __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(struct __pyx_obj_5t /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill, "WILLR_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WMA_Stream_4open_and_fill, "WMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10WMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_high = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -393740,75 +462816,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30444, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 35994, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30444, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30444, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 30444, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 30444, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 35994, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 35994, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 30444, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30444, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 35994, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 35994, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = values[0]; - __pyx_v_low = values[1]; - __pyx_v_close = values[2]; - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30445, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 35995, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 30444, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 35994, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -393819,10 +462881,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_high = 0; - PyArrayObject *__pyx_v_a_low = 0; - PyArrayObject *__pyx_v_a_close = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; @@ -393831,8 +462891,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_WILLR_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_stream = 0; + TA_WMA_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -393854,52 +462914,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30446, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30448, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30449, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_high); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 30449, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_low); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 30449, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_a_close); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 30449, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 35997, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30450, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 35998, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30451, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 35999, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30452, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 36000, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WILLR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30458, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30460, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 36008, __pyx_L1_error) /*try:*/ { @@ -393909,7 +462953,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_WMA_Lookback(__pyx_v_timeperiod)); } /*finally:*/ { @@ -393922,7 +462966,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30464, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36012, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -393933,7 +462977,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_WILLR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_WMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -394037,33 +463081,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WILLR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30475, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30476, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 30476, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 30476, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_close); - __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 30476, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 30476, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 36024, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 36024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30476, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 30476, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 36024, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 30476, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 36024, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -394081,12 +463119,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_high); - __Pyx_XDECREF((PyObject *)__pyx_v_a_low); - __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); __Pyx_XDECREF(__pyx_v_arrays); @@ -394105,29 +463141,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12WILLR_Stream_6update, "WILLR_Stream.update(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WMA_Stream_6update, "WMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -394143,72 +463177,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30478, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 36026, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30478, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30478, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36026, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 30478, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 30478, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 36026, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 36026, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30478, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30478, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36026, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30479, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30479, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30479, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36027, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 30478, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 36026, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -394232,7 +463250,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_6update(struct __pyx_ob __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_WILLR_Update(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WMA_Update(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -394260,13 +463278,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_6update(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30486, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30487, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -394283,7 +463301,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_6update(struct __pyx_ob /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -394295,29 +463313,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_6update(struct __pyx_ob /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12WILLR_Stream_8peek, "WILLR_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WMA_Stream_8peek, "WMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -394333,72 +463349,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30489, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 36037, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30489, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30489, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30489, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36037, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30489, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 30489, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 36037, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 36037, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30489, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30489, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 30489, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36037, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30490, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30490, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30490, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36038, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 30489, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 36037, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, double __pyx_v_real) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -394422,7 +463422,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_8peek(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_WILLR_Peek(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WMA_Peek(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); } /*finally:*/ { @@ -394450,13 +463450,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_8peek(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30497, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30498, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -394473,7 +463473,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_8peek(struct __pyx_obj_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -394485,21 +463485,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_8peek(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5value_1__get__(PyObject *__pyx_v_self) { +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self) { double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; @@ -394523,7 +463523,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_5value___get__(struct _ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_WILLR_Value(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_v_retCode = TA_WMA_Value(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); } /*finally:*/ { @@ -394551,13 +463551,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_5value___get__(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30508, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30509, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -394574,7 +463574,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_5value___get__(struct _ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -394585,12 +463585,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_5value___get__(struct _ } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12WILLR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10WMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_WILLR_OutRange(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_WMA_OutRange(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -394601,12 +463601,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12WILLR_Stream__out_range(struct __pyx } -static TA_RetCode __pyx_f_5talib_7_ta_lib_12WILLR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_10WMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_WILLR_Advance(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_WMA_Advance(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -394618,15 +463618,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_12WILLR_Stream__advance(struct __pyx_o /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12WILLR_Stream_10copy, "WILLR_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WMA_Stream_10copy, "WMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -394652,16 +463652,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self) { - TA_WILLR_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self) { + TA_WMA_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -394678,18 +463678,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(struct __pyx_obj __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30520, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream))))) __PYX_ERR(3, 30520, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream))))) __PYX_ERR(3, 36068, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -394703,7 +463703,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(struct __pyx_obj __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_WILLR_Clone(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_WMA_Clone(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -394746,7 +463746,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(struct __pyx_obj if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30530, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -394768,7 +463768,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(struct __pyx_obj __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -394781,19 +463781,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(struct __pyx_obj /* Python wrapper */ -static void __pyx_pw_5talib_7_ta_lib_10WMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_5talib_7_ta_lib_10WMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { +static void __pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_1__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_pf_5talib_7_ta_lib_10WMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self)); + __pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } -static void __pyx_pf_5talib_7_ta_lib_10WMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self) { +static void __pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self) { int __pyx_t_1; { @@ -394807,7 +463807,7 @@ static void __pyx_pf_5talib_7_ta_lib_10WMA_Stream___dealloc__(struct __pyx_obj_5 if (__pyx_t_1) { - (void)(TA_WMA_Close(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ZIGZAG_Close(((TA_ZIGZAG_Stream *)__pyx_v_self->__pyx_base._handle))); __pyx_v_self->__pyx_base._handle = NULL; @@ -394833,27 +463833,29 @@ static void __pyx_pf_5talib_7_ta_lib_10WMA_Stream___dealloc__(struct __pyx_obj_5 /* Python wrapper */ -static int __pyx_pw_5talib_7_ta_lib_10WMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -static int __pyx_pw_5talib_7_ta_lib_10WMA_Stream_3__init__(PyObject *__pyx_v_self, +static int __pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_3__init__(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + double __pyx_v_sensitivity; + int __pyx_v_mintrendlength; #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -394869,79 +463871,103 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_sensitivity,&__pyx_mstate_global->__pyx_n_u_mintrendlength,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30554, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 36105, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 36105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 36105, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 36105, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36105, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 30554, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 30554, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 36105, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 36105, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 36105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 36105, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30554, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 36105, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30554, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36105, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30554, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_sensitivity = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_sensitivity == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36105, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_sensitivity = ((double)5.0); + } + if (values[3]) { + __pyx_v_mintrendlength = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_mintrendlength == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 36105, __pyx_L3_error) + } else { + __pyx_v_mintrendlength = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 30554, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 36105, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZIGZAG_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_sensitivity, __pyx_v_mintrendlength); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static int __pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_sensitivity, int __pyx_v_mintrendlength) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; - TA_WMA_Stream *__pyx_v_handle; - double __pyx_v_outreal; + TA_ZIGZAG_Stream *__pyx_v_handle; + double __pyx_v_outzigzag; + int __pyx_v_outtrend; + int __pyx_v_outpivotidx; TA_RetCode __pyx_v_retCode; int __pyx_v_need; int __pyx_r; @@ -394956,31 +463982,39 @@ static int __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30555, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30556, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 30556, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 36108, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 36108, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30557, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 36109, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30558, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 36110, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30559, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 36111, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30564, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 36118, __pyx_L1_error) /*try:*/ { @@ -394990,9 +464024,9 @@ static int __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(struct __pyx_obj_5tal __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_need = (TA_WMA_Lookback(__pyx_v_timeperiod) + 1); + __pyx_v_need = (TA_ZIGZAG_Lookback(__pyx_v_sensitivity, __pyx_v_mintrendlength) + 1); - __pyx_v_retCode = TA_WMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ZIGZAG_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_sensitivity, __pyx_v_mintrendlength, (&__pyx_v_outzigzag), (&__pyx_v_outtrend), (&__pyx_v_outpivotidx)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -395009,7 +464043,7 @@ static int __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - (void)(TA_WMA_Close(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle))); + (void)(TA_ZIGZAG_Close(((TA_ZIGZAG_Stream *)__pyx_v_self->__pyx_base._handle))); goto __pyx_L13; } @@ -395077,7 +464111,7 @@ static int __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30581, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ZIGZAG_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -395089,10 +464123,11 @@ static int __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(struct __pyx_obj_5tal goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZIGZAG_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); @@ -395102,35 +464137,39 @@ static int __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(struct __pyx_obj_5tal + + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WMA_Stream_4open_and_fill, "WMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10WMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WMA_Stream_4open_and_fill}; -static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ZIGZAG_Stream_4open_and_fill, "ZIGZAG_Stream.open_and_fill(high, low, double sensitivity=5.0, int mintrendlength=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13ZIGZAG_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13ZIGZAG_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + double __pyx_v_sensitivity; + int __pyx_v_mintrendlength; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -395146,84 +464185,110 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_sensitivity,&__pyx_mstate_global->__pyx_n_u_mintrendlength,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30583, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 36137, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 36137, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 36137, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30583, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 36137, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30583, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36137, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 30583, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 30583, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 36137, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 36137, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 36137, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 36137, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30583, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 36137, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30583, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36137, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = values[0]; - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30584, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_sensitivity = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_sensitivity == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36138, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)-2147483648); + __pyx_v_sensitivity = ((double)5.0); + } + if (values[3]) { + __pyx_v_mintrendlength = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_mintrendlength == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 36138, __pyx_L3_error) + } else { + __pyx_v_mintrendlength = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 30583, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 36137, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZIGZAG_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_sensitivity, __pyx_v_mintrendlength); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { - PyArrayObject *__pyx_v_a_real = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_sensitivity, int __pyx_v_mintrendlength) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outzigzag = 0; + PyArrayObject *__pyx_v_outtrend = 0; + PyArrayObject *__pyx_v_outpivotidx = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - TA_WMA_Stream *__pyx_v_handle; - struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_stream = 0; + TA_ZIGZAG_Stream *__pyx_v_handle; + struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; + npy_intp __pyx_v_i; + int *__pyx_v_outpivotidx_data; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -395238,42 +464303,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(PyObject * PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; + npy_intp __pyx_t_13; + npy_intp __pyx_t_14; + npy_intp __pyx_t_15; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30585, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30586, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_a_real); - __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 30586, __pyx_L1_error); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 36141, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 36141, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30587, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 36142, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30588, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 36143, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30589, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 36144, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30595, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ZIGZAG_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30597, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 36154, __pyx_L1_error) /*try:*/ { @@ -395283,7 +464361,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_lookback = (__pyx_v_begidx + TA_WMA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ZIGZAG_Lookback(__pyx_v_sensitivity, __pyx_v_mintrendlength)); } /*finally:*/ { @@ -395296,9 +464374,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(PyObject * } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30601, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36158, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outzigzag = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36159, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outtrend = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36160, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outpivotidx = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { @@ -395307,7 +464395,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(PyObject * __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_WMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ZIGZAG_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_sensitivity, __pyx_v_mintrendlength, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outzigzag)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outtrend)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outpivotidx)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode == 0); @@ -395411,59 +464499,117 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30612, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ZIGZAG_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30613, __pyx_L1_error) + __pyx_v_outpivotidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outpivotidx)); + + + __pyx_t_2 = __pyx_v_length; + __pyx_t_13 = __pyx_t_2; + + for (__pyx_t_14 = __pyx_v_lookback; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { + __pyx_v_i = __pyx_t_14; + + + __pyx_t_15 = __pyx_v_i; + (__pyx_v_outpivotidx_data[__pyx_t_15]) = ((__pyx_v_outpivotidx_data[__pyx_t_15]) + __pyx_v_begidx); + } + + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_real); - __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 30613, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 30613, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 36176, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 36176, __pyx_L1_error); + __pyx_t_16 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outzigzag)); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 36176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 36176, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 36176, __pyx_L1_error); + __pyx_t_17 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outtrend)); if (unlikely(!__pyx_t_17)) __PYX_ERR(3, 36176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30613, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 36176, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 36176, __pyx_L1_error); + __pyx_t_18 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outpivotidx)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 36176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_16); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16) != (0)) __PYX_ERR(3, 36176, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_17); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_17) != (0)) __PYX_ERR(3, 36176, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_18) != (0)) __PYX_ERR(3, 36176, __pyx_L1_error); + __pyx_t_16 = 0; + __pyx_t_17 = 0; + __pyx_t_18 = 0; + __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 36176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 30613, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 30613, __pyx_L1_error); - __pyx_t_13 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 36176, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 36176, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_18; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_18 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); + __Pyx_AddTraceback("talib._ta_lib.ZIGZAG_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outzigzag); + __Pyx_XDECREF((PyObject *)__pyx_v_outtrend); + __Pyx_XDECREF((PyObject *)__pyx_v_outpivotidx); __Pyx_XDECREF((PyObject *)__pyx_v_stream); + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -395471,27 +464617,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_7update(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WMA_Stream_6update, "WMA_Stream.update(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_7update(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ZIGZAG_Stream_6update, "ZIGZAG_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -395507,63 +464654,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30615, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 36178, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 36178, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 30615, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 30615, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 36178, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 36178, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36178, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 36178, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30616, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36179, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36179, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30615, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 36178, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZIGZAG_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outzigzag; + int __pyx_v_outtrend; + int __pyx_v_outpivotidx; TA_RetCode __pyx_v_retCode; + int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -395580,7 +464742,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_6update(struct __pyx_obj_ __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_WMA_Update(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ZIGZAG_Update(((TA_ZIGZAG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outzigzag), (&__pyx_v_outtrend), (&__pyx_v_outpivotidx)); + + __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_begidx = __pyx_t_2; } /*finally:*/ { @@ -395603,39 +464769,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_6update(struct __pyx_obj_ } } - __pyx_t_2 = (__pyx_v_retCode != 0); + __pyx_t_3 = (__pyx_v_retCode != 0); - if (__pyx_t_2) { + if (__pyx_t_3) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30623, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZIGZAG_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 36190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30624, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outzigzag); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 36191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 36191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_int((__pyx_v_outpivotidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 36191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 36191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4) != (0)) __PYX_ERR(3, 36191, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 36191, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_6) != (0)) __PYX_ERR(3, 36191, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_7 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.ZIGZAG_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -395643,27 +464830,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_6update(struct __pyx_obj_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_9peek(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WMA_Stream_8peek, "WMA_Stream.peek(self, double real)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_9peek(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ZIGZAG_Stream_8peek, "ZIGZAG_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - double __pyx_v_real; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -395679,63 +464867,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30626, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 36193, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 36193, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30626, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36193, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30626, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 30626, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 36193, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 36193, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30626, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36193, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 36193, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30627, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36194, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36194, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30626, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 36193, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZIGZAG_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self), __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, double __pyx_v_real) { - double __pyx_v_outreal; +static PyObject *__pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outzigzag; + int __pyx_v_outtrend; + int __pyx_v_outpivotidx; TA_RetCode __pyx_v_retCode; + int __pyx_v_begidx; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_Locks_PyMutex *__pyx_t_1; int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -395752,7 +464955,144 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_8peek(struct __pyx_obj_5t __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); /*try:*/ { - __pyx_v_retCode = TA_WMA_Peek(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_v_retCode = TA_ZIGZAG_Peek(((TA_ZIGZAG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outzigzag), (&__pyx_v_outtrend), (&__pyx_v_outpivotidx)); + + __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_begidx = __pyx_t_2; + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L5; + } + __pyx_L5:; + } + } + + __pyx_t_3 = (__pyx_v_retCode != 0); + + if (__pyx_t_3) { + + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZIGZAG_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 36205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + } + + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outzigzag); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 36206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 36206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_int((__pyx_v_outpivotidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 36206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 36206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4) != (0)) __PYX_ERR(3, 36206, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 36206, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_6) != (0)) __PYX_ERR(3, 36206, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_7; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_7 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.ZIGZAG_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self) { + double __pyx_v_outzigzag; + int __pyx_v_outtrend; + int __pyx_v_outpivotidx; + TA_RetCode __pyx_v_retCode; + int __pyx_v_begidx; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_Locks_PyMutex *__pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); + /*try:*/ { + + __pyx_v_retCode = TA_ZIGZAG_Value(((TA_ZIGZAG_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outzigzag), (&__pyx_v_outtrend), (&__pyx_v_outpivotidx)); + + __pyx_t_2 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_begidx = __pyx_t_2; } /*finally:*/ { @@ -395775,138 +465115,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_8peek(struct __pyx_obj_5t } } - __pyx_t_2 = (__pyx_v_retCode != 0); + __pyx_t_3 = (__pyx_v_retCode != 0); - if (__pyx_t_2) { + if (__pyx_t_3) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30634, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZIGZAG_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 36220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30635, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outzigzag); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 36221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 36221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_int((__pyx_v_outpivotidx + __pyx_v_begidx)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 36221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 36221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4) != (0)) __PYX_ERR(3, 36221, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 36221, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_6) != (0)) __PYX_ERR(3, 36221, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; + __pyx_t_7 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.ZIGZAG_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self) { - double __pyx_v_outreal; - TA_RetCode __pyx_v_retCode; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_Locks_PyMutex *__pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { - - { - __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; - __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_1); - /*try:*/ { - - __pyx_v_retCode = TA_WMA_Value(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); - goto __pyx_L8; - } - __pyx_L8:; - } - } - } - - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L5; - } - __pyx_L5:; - } - } - - __pyx_t_2 = (__pyx_v_retCode != 0); - - if (__pyx_t_2) { - - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30645, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_3 = 0; - goto __pyx_L0; - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); @@ -395915,12 +465175,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_5value___get__(struct __p } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10WMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13ZIGZAG_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { TA_RetCode __pyx_r; { - __pyx_r = TA_WMA_OutRange(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + __pyx_r = TA_ZIGZAG_OutRange(((TA_ZIGZAG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } goto __pyx_L0; @@ -395931,12 +465191,12 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10WMA_Stream__out_range(struct __pyx_o } -static TA_RetCode __pyx_f_5talib_7_ta_lib_10WMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self) { +static TA_RetCode __pyx_f_5talib_7_ta_lib_13ZIGZAG_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self) { TA_RetCode __pyx_r; { - __pyx_r = TA_WMA_Advance(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle)); + __pyx_r = TA_ZIGZAG_Advance(((TA_ZIGZAG_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; @@ -395948,15 +465208,15 @@ static TA_RetCode __pyx_f_5talib_7_ta_lib_10WMA_Stream__advance(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_11copy(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WMA_Stream_10copy, "WMA_Stream.copy(self)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_11copy(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ZIGZAG_Stream_10copy, "ZIGZAG_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -395982,16 +465242,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self)); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self) { - TA_WMA_Stream *__pyx_v_clone; - struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_stream = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_13ZIGZAG_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_self) { + TA_ZIGZAG_Stream *__pyx_v_clone; + struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *__pyx_v_stream = 0; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -396008,18 +465268,18 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(struct __pyx_obj_5 __pyx_v_clone = NULL; - __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream); + __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30657, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream))))) __PYX_ERR(3, 30657, __pyx_L1_error) - __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream))))) __PYX_ERR(3, 36232, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *)__pyx_t_1); __pyx_t_1 = 0; { @@ -396033,7 +465293,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(struct __pyx_obj_5 __Pyx_Locks_PyMutex_LockNogil(*__pyx_t_4); /*try:*/ { - __pyx_v_retCode = TA_WMA_Clone(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_v_retCode = TA_ZIGZAG_Clone(((TA_ZIGZAG_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); __pyx_t_5 = (__pyx_v_retCode == 0); @@ -396076,7 +465336,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30667, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZIGZAG_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -396098,7 +465358,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(struct __pyx_obj_5 __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZIGZAG_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -396201,48 +465461,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30691, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 36266, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 36266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 30691, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 36266, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 30691, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 36266, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 36266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36266, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30691, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 36266, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 30691, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 36266, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -396286,31 +465546,31 @@ static int __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30692, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30693, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 30693, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 36268, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30694, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 36269, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30695, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 36270, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30696, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 36271, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30701, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 36276, __pyx_L1_error) /*try:*/ { @@ -396407,7 +465667,7 @@ static int __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30718, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Open, __pyx_v_retCode, __pyx_v_historylen, __pyx_v_need); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -396478,48 +465738,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30720, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 36295, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 36295, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36295, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 30720, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 36295, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 30720, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 36295, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 30720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 36295, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36295, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 30721, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 36296, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 30720, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 36295, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -396574,36 +465834,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30722, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30723, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 30723, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 36298, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 30724, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 36299, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 30725, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 36300, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 30726, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 36301, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ZLEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30732, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ZLEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 30734, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 36309, __pyx_L1_error) /*try:*/ { @@ -396626,7 +465886,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_4open_and_fill(PyObject } } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30738, __pyx_L4_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36313, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -396741,27 +466001,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30749, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30750, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 30750, __pyx_L1_error); - __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 30750, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 36325, __pyx_L1_error); + __pyx_t_13 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 36325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30750, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 30750, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 36325, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 30750, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13) != (0)) __PYX_ERR(3, 36325, __pyx_L1_error); __pyx_t_13 = 0; { PyObject *__pyx_temp; @@ -396839,32 +466099,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30752, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 36327, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30752, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36327, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 30752, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 36327, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 30752, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 36327, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30752, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36327, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30753, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36328, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30752, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 36327, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -396938,13 +466198,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_6update(struct __pyx_ob if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30760, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30761, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -397011,32 +466271,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 30763, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 36338, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36338, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 30763, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 36338, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 30763, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 36338, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 30763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 36338, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 30764, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36339, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 30763, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 36338, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -397110,13 +466370,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_8peek(struct __pyx_obj_ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30771, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30772, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -397211,13 +466471,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_5value___get__(struct _ if (__pyx_t_2) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30782, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30783, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; @@ -397345,10 +466605,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_10copy(struct __pyx_obj PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30794, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream))))) __PYX_ERR(3, 30794, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream))))) __PYX_ERR(3, 36369, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -397406,7 +466666,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_10copy(struct __pyx_obj if (__pyx_t_5) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30804, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -397441,16 +466701,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_10copy(struct __pyx_obj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_447__pyx_unpickle__TA_ReadLease(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_521__pyx_unpickle__TA_ReadLease(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_446__pyx_unpickle__TA_ReadLease, "__pyx_unpickle__TA_ReadLease(__pyx_type, long __pyx_checksum, tuple __pyx_state)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_447__pyx_unpickle__TA_ReadLease = {"__pyx_unpickle__TA_ReadLease", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_447__pyx_unpickle__TA_ReadLease, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_446__pyx_unpickle__TA_ReadLease}; -static PyObject *__pyx_pw_5talib_7_ta_lib_447__pyx_unpickle__TA_ReadLease(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_520__pyx_unpickle__TA_ReadLease, "__pyx_unpickle__TA_ReadLease(__pyx_type, long __pyx_checksum, tuple __pyx_state)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_521__pyx_unpickle__TA_ReadLease = {"__pyx_unpickle__TA_ReadLease", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_521__pyx_unpickle__TA_ReadLease, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_520__pyx_unpickle__TA_ReadLease}; +static PyObject *__pyx_pw_5talib_7_ta_lib_521__pyx_unpickle__TA_ReadLease(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -397533,7 +466793,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(5, 4, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_446__pyx_unpickle__TA_ReadLease(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_5talib_7_ta_lib_520__pyx_unpickle__TA_ReadLease(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ goto __pyx_L0; @@ -397553,7 +466813,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_446__pyx_unpickle__TA_ReadLease(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_5talib_7_ta_lib_520__pyx_unpickle__TA_ReadLease(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -397650,16 +466910,16 @@ static PyObject *__pyx_f_5talib_7_ta_lib___pyx_unpickle__TA_ReadLease__set_state /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_449__pyx_unpickle__TA_WriteLease(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_523__pyx_unpickle__TA_WriteLease(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_448__pyx_unpickle__TA_WriteLease, "__pyx_unpickle__TA_WriteLease(__pyx_type, long __pyx_checksum, tuple __pyx_state)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_449__pyx_unpickle__TA_WriteLease = {"__pyx_unpickle__TA_WriteLease", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_449__pyx_unpickle__TA_WriteLease, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_448__pyx_unpickle__TA_WriteLease}; -static PyObject *__pyx_pw_5talib_7_ta_lib_449__pyx_unpickle__TA_WriteLease(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_522__pyx_unpickle__TA_WriteLease, "__pyx_unpickle__TA_WriteLease(__pyx_type, long __pyx_checksum, tuple __pyx_state)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_523__pyx_unpickle__TA_WriteLease = {"__pyx_unpickle__TA_WriteLease", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_523__pyx_unpickle__TA_WriteLease, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_522__pyx_unpickle__TA_WriteLease}; +static PyObject *__pyx_pw_5talib_7_ta_lib_523__pyx_unpickle__TA_WriteLease(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -397742,7 +467002,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(5, 4, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_448__pyx_unpickle__TA_WriteLease(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_5talib_7_ta_lib_522__pyx_unpickle__TA_WriteLease(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ goto __pyx_L0; @@ -397762,7 +467022,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_448__pyx_unpickle__TA_WriteLease(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_5talib_7_ta_lib_522__pyx_unpickle__TA_WriteLease(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -400240,6 +469500,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_ADXR_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ALMA_Stream __pyx_vtable_5talib_7_ta_lib_ALMA_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ALMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ALMA_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ALMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ALMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ALMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ALMA_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ALMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ALMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ALMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_ALMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ALMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11ALMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_11ALMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11ALMA_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ALMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ALMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ALMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ALMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ALMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ALMA_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ALMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11ALMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ALMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ALMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ALMA_Stream(real, int timeperiod=-0x80000000, double sigma=6.0, double offset=0.85)\n\nALMA(real[, timeperiod=?, sigma=?, offset=?])\n\nArnaud Legoux Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 9\n sigma: 6.0\n offset: 0.85\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ALMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ALMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ALMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ALMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ALMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ALMA_Stream_spec = { + "talib._ta_lib.ALMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ALMA_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_ALMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ALMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ALMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ALMA_Stream(real, int timeperiod=-0x80000000, double sigma=6.0, double offset=0.85)\n\nALMA(real[, timeperiod=?, sigma=?, offset=?])\n\nArnaud Legoux Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 9\n sigma: 6.0\n offset: 0.85\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ALMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ALMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ALMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ALMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ALMA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_AO_Stream __pyx_vtable_5talib_7_ta_lib_AO_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AO_Stream(PyObject *o, @@ -401052,6 +470515,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_AROONOSC_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ASI_Stream __pyx_vtable_5talib_7_ta_lib_ASI_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ASI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ASI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ASI_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ASI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ASI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ASI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ASI_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ASI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ASI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10ASI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ASI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10ASI_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_ASI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ASI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10ASI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10ASI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10ASI_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ASI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ASI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ASI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ASI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ASI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ASI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ASI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ASI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ASI_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ASI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10ASI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ASI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ASI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ASI_Stream(open, high, low, close, double limitmove=-4e37)\n\nASI(open, high, low, close[, limitmove=?])\n\nWilder Accumulative Swing Index (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n limitmove: 3.0\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ASI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ASI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ASI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ASI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ASI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ASI_Stream_spec = { + "talib._ta_lib.ASI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ASI_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_ASI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ASI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ASI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ASI_Stream(open, high, low, close, double limitmove=-4e37)\n\nASI(open, high, low, close[, limitmove=?])\n\nWilder Accumulative Swing Index (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n limitmove: 3.0\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ASI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ASI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ASI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ASI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ASI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_ASIN_Stream __pyx_vtable_5talib_7_ta_lib_ASIN_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ASIN_Stream(PyObject *o, @@ -402270,6 +471936,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_BBANDS_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_BBW_Stream __pyx_vtable_5talib_7_ta_lib_BBW_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_BBW_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_BBW_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_BBW_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_BBW_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_BBW_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_BBW_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_BBW_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_BBW_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBW_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_BBW_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10BBW_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_BBW_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10BBW_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_BBW_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_BBW_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10BBW_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10BBW_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10BBW_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_BBW_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10BBW_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10BBW_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10BBW_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10BBW_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10BBW_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10BBW_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10BBW_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10BBW_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_BBW_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10BBW_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_BBW_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_BBW_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("BBW_Stream(real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBW(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger BandWidth (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_BBW_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_BBW_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_BBW_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_BBW_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_BBW_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_BBW_Stream_spec = { + "talib._ta_lib.BBW_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_BBW_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_BBW_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""BBW_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_BBW_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("BBW_Stream(real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBW(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger BandWidth (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_BBW_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_BBW_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_BBW_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_BBW_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_BBW_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_BETA_Stream __pyx_vtable_5talib_7_ta_lib_BETA_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_BETA_Stream(PyObject *o, @@ -415465,6 +485334,818 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_CEIL_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CG_Stream __pyx_vtable_5talib_7_ta_lib_CG_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CG_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CG_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CG_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CG_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CG_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CG_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CG_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CG_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CG_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CG_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CG_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_9CG_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CG_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_9CG_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_CG_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CG_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_9CG_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_9CG_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_9CG_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CG_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9CG_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9CG_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9CG_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9CG_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9CG_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9CG_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9CG_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9CG_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CG_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_9CG_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CG_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CG_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CG_Stream(real, int timeperiod=-0x80000000)\n\nCG(real[, timeperiod=?])\n\nCenter of Gravity Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CG_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CG_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CG_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CG_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CG_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CG_Stream_spec = { + "talib._ta_lib.CG_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CG_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CG_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CG_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CG_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CG_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CG_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CG_Stream(real, int timeperiod=-0x80000000)\n\nCG(real[, timeperiod=?])\n\nCenter of Gravity Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CG_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CG_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CG_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CG_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CG_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CHOP_Stream __pyx_vtable_5talib_7_ta_lib_CHOP_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CHOP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CHOP_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CHOP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CHOP_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CHOP_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CHOP_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CHOP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CHOP_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CHOP_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_CHOP_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CHOP_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11CHOP_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_11CHOP_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11CHOP_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CHOP_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CHOP_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CHOP_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CHOP_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CHOP_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CHOP_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CHOP_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11CHOP_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CHOP_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CHOP_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CHOP_Stream(high, low, close, int timeperiod=-0x80000000)\n\nCHOP(high, low, close[, timeperiod=?])\n\nChoppiness Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CHOP_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CHOP_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CHOP_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CHOP_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CHOP_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CHOP_Stream_spec = { + "talib._ta_lib.CHOP_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CHOP_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CHOP_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CHOP_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CHOP_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CHOP_Stream(high, low, close, int timeperiod=-0x80000000)\n\nCHOP(high, low, close[, timeperiod=?])\n\nChoppiness Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CHOP_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CHOP_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CHOP_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CHOP_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CHOP_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CHOPTR_Stream __pyx_vtable_5talib_7_ta_lib_CHOPTR_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CHOPTR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CHOPTR_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CHOPTR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CHOPTR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CHOPTR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CHOPTR_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CHOPTR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CHOPTR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CHOPTR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_CHOPTR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CHOPTR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_13CHOPTR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CHOPTR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CHOPTR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CHOPTR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CHOPTR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CHOPTR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CHOPTR_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CHOPTR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13CHOPTR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CHOPTR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CHOPTR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CHOPTR_Stream(high, low, close, int timeperiod=-0x80000000)\n\nCHOPTR(high, low, close[, timeperiod=?])\n\nChoppiness Index (True Range Box) (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CHOPTR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CHOPTR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CHOPTR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CHOPTR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CHOPTR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CHOPTR_Stream_spec = { + "talib._ta_lib.CHOPTR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CHOPTR_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CHOPTR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CHOPTR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CHOPTR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CHOPTR_Stream(high, low, close, int timeperiod=-0x80000000)\n\nCHOPTR(high, low, close[, timeperiod=?])\n\nChoppiness Index (True Range Box) (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CHOPTR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CHOPTR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CHOPTR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CHOPTR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CHOPTR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CKSP_Stream __pyx_vtable_5talib_7_ta_lib_CKSP_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CKSP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CKSP_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CKSP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CKSP_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CKSP_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CKSP_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CKSP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CKSP_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CKSP_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_CKSP_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CKSP_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11CKSP_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_11CKSP_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11CKSP_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CKSP_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CKSP_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CKSP_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CKSP_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CKSP_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CKSP_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CKSP_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11CKSP_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CKSP_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CKSP_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CKSP_Stream(high, low, close, int timeperiod=-0x80000000, double multiplier=1.0, int stopperiod=-0x80000000)\n\nCKSP(high, low, close[, timeperiod=?, multiplier=?, stopperiod=?])\n\nChande Kroll Stop (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 1.0\n stopperiod: 9\nOutputs:\n highstop\n lowstop")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CKSP_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CKSP_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CKSP_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CKSP_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CKSP_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CKSP_Stream_spec = { + "talib._ta_lib.CKSP_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CKSP_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CKSP_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CKSP_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CKSP_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CKSP_Stream(high, low, close, int timeperiod=-0x80000000, double multiplier=1.0, int stopperiod=-0x80000000)\n\nCKSP(high, low, close[, timeperiod=?, multiplier=?, stopperiod=?])\n\nChande Kroll Stop (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 1.0\n stopperiod: 9\nOutputs:\n highstop\n lowstop"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CKSP_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CKSP_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CKSP_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CKSP_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CKSP_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_CMF_Stream __pyx_vtable_5talib_7_ta_lib_CMF_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CMF_Stream(PyObject *o, @@ -416886,6 +487567,412 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_COSH_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CRSI_Stream __pyx_vtable_5talib_7_ta_lib_CRSI_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CRSI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CRSI_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CRSI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CRSI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CRSI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CRSI_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CRSI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CRSI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CRSI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_CRSI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CRSI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11CRSI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_11CRSI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11CRSI_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CRSI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CRSI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CRSI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CRSI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CRSI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CRSI_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CRSI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11CRSI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CRSI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CRSI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CRSI_Stream(real, int timeperiod=-0x80000000, int streakperiod=-0x80000000, int rankperiod=-0x80000000)\n\nCRSI(real[, timeperiod=?, streakperiod=?, rankperiod=?])\n\nConnors Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 3\n streakperiod: 2\n rankperiod: 100\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CRSI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CRSI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CRSI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CRSI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CRSI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CRSI_Stream_spec = { + "talib._ta_lib.CRSI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CRSI_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CRSI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CRSI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CRSI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CRSI_Stream(real, int timeperiod=-0x80000000, int streakperiod=-0x80000000, int rankperiod=-0x80000000)\n\nCRSI(real[, timeperiod=?, streakperiod=?, rankperiod=?])\n\nConnors Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 3\n streakperiod: 2\n rankperiod: 100\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CRSI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CRSI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CRSI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CRSI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CRSI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CTI_Stream __pyx_vtable_5talib_7_ta_lib_CTI_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CTI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CTI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CTI_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CTI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CTI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CTI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CTI_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CTI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CTI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CTI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10CTI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CTI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10CTI_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_CTI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CTI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10CTI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10CTI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10CTI_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CTI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CTI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CTI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CTI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CTI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CTI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CTI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CTI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CTI_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CTI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10CTI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CTI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CTI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CTI_Stream(real, int timeperiod=-0x80000000)\n\nCTI(real[, timeperiod=?])\n\nCorrelation Trend Indicator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CTI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CTI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CTI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CTI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CTI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CTI_Stream_spec = { + "talib._ta_lib.CTI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CTI_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CTI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CTI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CTI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CTI_Stream(real, int timeperiod=-0x80000000)\n\nCTI(real[, timeperiod=?])\n\nCorrelation Trend Indicator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CTI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CTI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CTI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CTI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CTI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_CUMSUM_Stream __pyx_vtable_5talib_7_ta_lib_CUMSUM_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CUMSUM_Stream(PyObject *o, @@ -417901,6 +488988,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_DONCHIAN_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_DOSC_Stream __pyx_vtable_5talib_7_ta_lib_DOSC_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DOSC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_DOSC_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_DOSC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_DOSC_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_DOSC_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_DOSC_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_DOSC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_DOSC_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_DOSC_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_DOSC_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_DOSC_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11DOSC_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_11DOSC_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11DOSC_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_DOSC_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11DOSC_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11DOSC_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11DOSC_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11DOSC_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11DOSC_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_DOSC_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11DOSC_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_DOSC_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_DOSC_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("DOSC_Stream(real, int timeperiod=-0x80000000, int firstperiod=-0x80000000, int secondperiod=-0x80000000, int signalperiod=-0x80000000)\n\nDOSC(real[, timeperiod=?, firstperiod=?, secondperiod=?, signalperiod=?])\n\nDerivative Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n firstperiod: 5\n secondperiod: 3\n signalperiod: 9\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_DOSC_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_DOSC_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_DOSC_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_DOSC_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_DOSC_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_DOSC_Stream_spec = { + "talib._ta_lib.DOSC_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_DOSC_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_DOSC_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""DOSC_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_DOSC_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("DOSC_Stream(real, int timeperiod=-0x80000000, int firstperiod=-0x80000000, int secondperiod=-0x80000000, int signalperiod=-0x80000000)\n\nDOSC(real[, timeperiod=?, firstperiod=?, secondperiod=?, signalperiod=?])\n\nDerivative Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n firstperiod: 5\n secondperiod: 3\n signalperiod: 9\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_DOSC_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_DOSC_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_DOSC_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_DOSC_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_DOSC_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_DPO_Stream __pyx_vtable_5talib_7_ta_lib_DPO_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DPO_Stream(PyObject *o, @@ -418713,6 +490003,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_EMA_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_EMV_Stream __pyx_vtable_5talib_7_ta_lib_EMV_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_EMV_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_EMV_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_EMV_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_EMV_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_EMV_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_EMV_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_EMV_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_EMV_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMV_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_EMV_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10EMV_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_EMV_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10EMV_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_EMV_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_EMV_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10EMV_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10EMV_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10EMV_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_EMV_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EMV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EMV_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EMV_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EMV_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EMV_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EMV_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EMV_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EMV_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_EMV_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10EMV_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_EMV_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_EMV_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("EMV_Stream(high, low, volume, int timeperiod=-0x80000000, double volumedivisor=-4e37)\n\nEMV(high, low, volume[, timeperiod=?, volumedivisor=?])\n\nArms Ease of Movement (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047volume\047]\nParameters:\n timeperiod: 14\n volumedivisor: 10000.0\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_EMV_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_EMV_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_EMV_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_EMV_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_EMV_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_EMV_Stream_spec = { + "talib._ta_lib.EMV_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_EMV_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_EMV_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""EMV_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_EMV_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("EMV_Stream(high, low, volume, int timeperiod=-0x80000000, double volumedivisor=-4e37)\n\nEMV(high, low, volume[, timeperiod=?, volumedivisor=?])\n\nArms Ease of Movement (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047volume\047]\nParameters:\n timeperiod: 14\n volumedivisor: 10000.0\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_EMV_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_EMV_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_EMV_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_EMV_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_EMV_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_ER_Stream __pyx_vtable_5talib_7_ta_lib_ER_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ER_Stream(PyObject *o, @@ -419322,6 +490815,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_EXP_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_FISHER_Stream __pyx_vtable_5talib_7_ta_lib_FISHER_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_FISHER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_FISHER_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_FISHER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_FISHER_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_FISHER_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_FISHER_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_FISHER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_FISHER_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_FISHER_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_FISHER_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_FISHER_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13FISHER_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_13FISHER_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13FISHER_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_FISHER_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13FISHER_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13FISHER_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13FISHER_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13FISHER_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13FISHER_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_FISHER_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13FISHER_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_FISHER_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_FISHER_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("FISHER_Stream(high, low, int timeperiod=-0x80000000)\n\nFISHER(high, low[, timeperiod=?])\n\nFisher Transform (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 10\nOutputs:\n fisher\n trigger")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_FISHER_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_FISHER_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_FISHER_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_FISHER_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_FISHER_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_FISHER_Stream_spec = { + "talib._ta_lib.FISHER_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_FISHER_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_FISHER_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""FISHER_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_FISHER_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("FISHER_Stream(high, low, int timeperiod=-0x80000000)\n\nFISHER(high, low[, timeperiod=?])\n\nFisher Transform (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 10\nOutputs:\n fisher\n trigger"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_FISHER_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_FISHER_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_FISHER_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_FISHER_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_FISHER_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_FLOOR_Stream __pyx_vtable_5talib_7_ta_lib_FLOOR_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_FLOOR_Stream(PyObject *o, @@ -419931,6 +491627,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_FRACTAL_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_FRAMA_Stream __pyx_vtable_5talib_7_ta_lib_FRAMA_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_FRAMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_FRAMA_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_FRAMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_FRAMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_FRAMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_FRAMA_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_FRAMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_FRAMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_FRAMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_FRAMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_FRAMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_12FRAMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_FRAMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12FRAMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12FRAMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12FRAMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12FRAMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12FRAMA_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_FRAMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_12FRAMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_FRAMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_FRAMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("FRAMA_Stream(high, low, int timeperiod=-0x80000000)\n\nFRAMA(high, low[, timeperiod=?])\n\nFractal Adaptive Moving Average (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 16\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_FRAMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_FRAMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_FRAMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_FRAMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_FRAMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_FRAMA_Stream_spec = { + "talib._ta_lib.FRAMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_FRAMA_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_FRAMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""FRAMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_FRAMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("FRAMA_Stream(high, low, int timeperiod=-0x80000000)\n\nFRAMA(high, low[, timeperiod=?])\n\nFractal Adaptive Moving Average (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 16\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_FRAMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_FRAMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_FRAMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_FRAMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_FRAMA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_HA_Stream __pyx_vtable_5talib_7_ta_lib_HA_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HA_Stream(PyObject *o, @@ -421555,6 +493454,412 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_IBS_Stream __pyx_vtable_5talib_7_ta_lib_IBS_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_IBS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_IBS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_IBS_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_IBS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_IBS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_IBS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_IBS_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_IBS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IBS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_IBS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10IBS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_IBS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10IBS_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_IBS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_IBS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10IBS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10IBS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10IBS_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_IBS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10IBS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10IBS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10IBS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10IBS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10IBS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10IBS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10IBS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10IBS_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_IBS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10IBS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_IBS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_IBS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("IBS_Stream(high, low, close)\n\nIBS(high, low, close)\n\nInternal Bar Strength (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_IBS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_IBS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_IBS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_IBS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_IBS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_IBS_Stream_spec = { + "talib._ta_lib.IBS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_IBS_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_IBS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""IBS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_IBS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("IBS_Stream(high, low, close)\n\nIBS(high, low, close)\n\nInternal Bar Strength (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_IBS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_IBS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_IBS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_IBS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_IBS_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ICHIMOKU_Stream __pyx_vtable_5talib_7_ta_lib_ICHIMOKU_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ICHIMOKU_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ICHIMOKU_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ICHIMOKU_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ICHIMOKU_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ICHIMOKU_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ICHIMOKU_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ICHIMOKU_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ICHIMOKU_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ICHIMOKU_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_ICHIMOKU_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ICHIMOKU_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_15ICHIMOKU_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ICHIMOKU_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15ICHIMOKU_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15ICHIMOKU_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15ICHIMOKU_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15ICHIMOKU_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15ICHIMOKU_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ICHIMOKU_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15ICHIMOKU_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ICHIMOKU_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ICHIMOKU_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ICHIMOKU_Stream(high, low, int tenkanperiod=-0x80000000, int kijunperiod=-0x80000000, int senkoubperiod=-0x80000000)\n\nICHIMOKU(high, low[, tenkanperiod=?, kijunperiod=?, senkoubperiod=?])\n\nIchimoku Kinko Hyo (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n tenkanperiod: 9\n kijunperiod: 26\n senkoubperiod: 52\nOutputs:\n tenkansen\n kijunsen\n senkouspana\n senkouspanb")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ICHIMOKU_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ICHIMOKU_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ICHIMOKU_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ICHIMOKU_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ICHIMOKU_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ICHIMOKU_Stream_spec = { + "talib._ta_lib.ICHIMOKU_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ICHIMOKU_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_ICHIMOKU_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ICHIMOKU_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ICHIMOKU_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ICHIMOKU_Stream(high, low, int tenkanperiod=-0x80000000, int kijunperiod=-0x80000000, int senkoubperiod=-0x80000000)\n\nICHIMOKU(high, low[, tenkanperiod=?, kijunperiod=?, senkoubperiod=?])\n\nIchimoku Kinko Hyo (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n tenkanperiod: 9\n kijunperiod: 26\n senkoubperiod: 52\nOutputs:\n tenkansen\n kijunsen\n senkouspana\n senkouspanb"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ICHIMOKU_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ICHIMOKU_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ICHIMOKU_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ICHIMOKU_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ICHIMOKU_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_IMI_Stream __pyx_vtable_5talib_7_ta_lib_IMI_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_IMI_Stream(PyObject *o, @@ -422367,6 +494672,818 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_KDJ_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_KST_Stream __pyx_vtable_5talib_7_ta_lib_KST_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KST_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_KST_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_KST_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_KST_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KST_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_KST_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KST_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_KST_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KST_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KST_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_KST_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10KST_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KST_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10KST_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_KST_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_KST_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10KST_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10KST_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10KST_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_KST_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KST_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KST_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KST_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KST_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KST_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KST_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KST_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KST_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_KST_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10KST_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_KST_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_KST_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("KST_Stream(real, int roc1period=-0x80000000, int roc2period=-0x80000000, int roc3period=-0x80000000, int roc4period=-0x80000000, int sma1period=-0x80000000, int sma2period=-0x80000000, int sma3period=-0x80000000, int sma4period=-0x80000000, int signalperiod=-0x80000000)\n\nKST(real[, roc1period=?, roc2period=?, roc3period=?, roc4period=?, sma1period=?, sma2period=?, sma3period=?, sma4period=?, signalperiod=?])\n\nKnow Sure Thing (Pring) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n roc1period: 10\n roc2period: 15\n roc3period: 20\n roc4period: 30\n sma1period: 10\n sma2period: 10\n sma3period: 10\n sma4period: 15\n signalperiod: 9\nOutputs:\n kst\n kstsignal")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_KST_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_KST_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_KST_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_KST_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_KST_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_KST_Stream_spec = { + "talib._ta_lib.KST_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_KST_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_KST_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_KST_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""KST_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_KST_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_KST_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("KST_Stream(real, int roc1period=-0x80000000, int roc2period=-0x80000000, int roc3period=-0x80000000, int roc4period=-0x80000000, int sma1period=-0x80000000, int sma2period=-0x80000000, int sma3period=-0x80000000, int sma4period=-0x80000000, int signalperiod=-0x80000000)\n\nKST(real[, roc1period=?, roc2period=?, roc3period=?, roc4period=?, sma1period=?, sma2period=?, sma3period=?, sma4period=?, signalperiod=?])\n\nKnow Sure Thing (Pring) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n roc1period: 10\n roc2period: 15\n roc3period: 20\n roc4period: 30\n sma1period: 10\n sma2period: 10\n sma3period: 10\n sma4period: 15\n signalperiod: 9\nOutputs:\n kst\n kstsignal"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_KST_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_KST_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_KST_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_KST_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_KST_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_KSTEXT_Stream __pyx_vtable_5talib_7_ta_lib_KSTEXT_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KSTEXT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_KSTEXT_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KSTEXT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_KSTEXT_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KSTEXT_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_KSTEXT_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KSTEXT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_KSTEXT_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KSTEXT_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_KSTEXT_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_KSTEXT_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_13KSTEXT_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_KSTEXT_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13KSTEXT_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13KSTEXT_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13KSTEXT_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13KSTEXT_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13KSTEXT_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_KSTEXT_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13KSTEXT_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_KSTEXT_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_KSTEXT_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("KSTEXT_Stream(real, int roc1period=-0x80000000, int roc2period=-0x80000000, int roc3period=-0x80000000, int roc4period=-0x80000000, int ma1period=-0x80000000, int ma2period=-0x80000000, int ma3period=-0x80000000, int ma4period=-0x80000000, int signalperiod=-0x80000000, int rocmatype=0, int signalmatype=0)\n\nKSTEXT(real[, roc1period=?, roc2period=?, roc3period=?, roc4period=?, ma1period=?, ma2period=?, ma3period=?, ma4period=?, signalperiod=?, rocmatype=?, signalmatype=?])\n\nKnow Sure Thing with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n roc1period: 10\n roc2period: 15\n roc3period: 20\n roc4period: 30\n ma1period: 10\n ma2period: 10\n ma3period: 10\n ma4period: 15\n signalperiod: 9\n rocmatype: 0 (Simple Moving Average)\n signalmatype: 0 (Simple Moving Average)\nOutputs:\n kst\n kstsignal")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_KSTEXT_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_KSTEXT_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_KSTEXT_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_KSTEXT_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_KSTEXT_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_KSTEXT_Stream_spec = { + "talib._ta_lib.KSTEXT_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_KSTEXT_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_KSTEXT_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""KSTEXT_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_KSTEXT_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("KSTEXT_Stream(real, int roc1period=-0x80000000, int roc2period=-0x80000000, int roc3period=-0x80000000, int roc4period=-0x80000000, int ma1period=-0x80000000, int ma2period=-0x80000000, int ma3period=-0x80000000, int ma4period=-0x80000000, int signalperiod=-0x80000000, int rocmatype=0, int signalmatype=0)\n\nKSTEXT(real[, roc1period=?, roc2period=?, roc3period=?, roc4period=?, ma1period=?, ma2period=?, ma3period=?, ma4period=?, signalperiod=?, rocmatype=?, signalmatype=?])\n\nKnow Sure Thing with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n roc1period: 10\n roc2period: 15\n roc3period: 20\n roc4period: 30\n ma1period: 10\n ma2period: 10\n ma3period: 10\n ma4period: 15\n signalperiod: 9\n rocmatype: 0 (Simple Moving Average)\n signalmatype: 0 (Simple Moving Average)\nOutputs:\n kst\n kstsignal"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_KSTEXT_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_KSTEXT_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_KSTEXT_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_KSTEXT_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_KSTEXT_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_KURTOSIS_Stream __pyx_vtable_5talib_7_ta_lib_KURTOSIS_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KURTOSIS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_KURTOSIS_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KURTOSIS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_KURTOSIS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KURTOSIS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_KURTOSIS_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KURTOSIS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_KURTOSIS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KURTOSIS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_KURTOSIS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_KURTOSIS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_15KURTOSIS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_KURTOSIS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15KURTOSIS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15KURTOSIS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15KURTOSIS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15KURTOSIS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15KURTOSIS_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_KURTOSIS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15KURTOSIS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_KURTOSIS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_KURTOSIS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("KURTOSIS_Stream(real, int timeperiod=-0x80000000)\n\nKURTOSIS(real[, timeperiod=?])\n\nRolling Excess Kurtosis (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_KURTOSIS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_KURTOSIS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_KURTOSIS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_KURTOSIS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_KURTOSIS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_KURTOSIS_Stream_spec = { + "talib._ta_lib.KURTOSIS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_KURTOSIS_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_KURTOSIS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""KURTOSIS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_KURTOSIS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("KURTOSIS_Stream(real, int timeperiod=-0x80000000)\n\nKURTOSIS(real[, timeperiod=?])\n\nRolling Excess Kurtosis (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_KURTOSIS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_KURTOSIS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_KURTOSIS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_KURTOSIS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_KURTOSIS_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_KVO_Stream __pyx_vtable_5talib_7_ta_lib_KVO_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KVO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_KVO_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_KVO_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KVO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_KVO_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KVO_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_KVO_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KVO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KVO_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_KVO_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10KVO_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KVO_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10KVO_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_KVO_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_KVO_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10KVO_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10KVO_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10KVO_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_KVO_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KVO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KVO_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KVO_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KVO_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KVO_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KVO_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KVO_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KVO_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_KVO_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10KVO_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_KVO_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_KVO_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("KVO_Stream(high, low, close, volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nKVO(high, low, close, volume[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nKlinger Volume Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n fastperiod: 34\n slowperiod: 55\n signalperiod: 13\nOutputs:\n kvo\n kvosignal")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_KVO_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_KVO_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_KVO_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_KVO_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_KVO_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_KVO_Stream_spec = { + "talib._ta_lib.KVO_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_KVO_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_KVO_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""KVO_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_KVO_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("KVO_Stream(high, low, close, volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nKVO(high, low, close, volume[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nKlinger Volume Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n fastperiod: 34\n slowperiod: 55\n signalperiod: 13\nOutputs:\n kvo\n kvosignal"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_KVO_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_KVO_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_KVO_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_KVO_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_KVO_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_Stream __pyx_vtable_5talib_7_ta_lib_LINEARREG_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_Stream(PyObject *o, @@ -425615,6 +498732,412 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_MAXINDEX_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MCGD_Stream __pyx_vtable_5talib_7_ta_lib_MCGD_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MCGD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MCGD_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MCGD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MCGD_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MCGD_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MCGD_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MCGD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MCGD_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MCGD_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_MCGD_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MCGD_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11MCGD_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_11MCGD_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11MCGD_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MCGD_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MCGD_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MCGD_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MCGD_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MCGD_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MCGD_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MCGD_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11MCGD_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MCGD_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MCGD_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MCGD_Stream(real, int timeperiod=-0x80000000)\n\nMCGD(real[, timeperiod=?])\n\nMcGinley Dynamic (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MCGD_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MCGD_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MCGD_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MCGD_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MCGD_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MCGD_Stream_spec = { + "talib._ta_lib.MCGD_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MCGD_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_MCGD_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MCGD_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MCGD_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MCGD_Stream(real, int timeperiod=-0x80000000)\n\nMCGD(real[, timeperiod=?])\n\nMcGinley Dynamic (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MCGD_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MCGD_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MCGD_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MCGD_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MCGD_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MEDIAN_Stream __pyx_vtable_5talib_7_ta_lib_MEDIAN_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MEDIAN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MEDIAN_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MEDIAN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MEDIAN_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MEDIAN_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MEDIAN_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MEDIAN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MEDIAN_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MEDIAN_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_MEDIAN_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MEDIAN_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_13MEDIAN_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MEDIAN_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13MEDIAN_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13MEDIAN_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13MEDIAN_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13MEDIAN_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13MEDIAN_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MEDIAN_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13MEDIAN_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MEDIAN_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MEDIAN_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MEDIAN_Stream(real, int timeperiod=-0x80000000)\n\nMEDIAN(real[, timeperiod=?])\n\nRolling Median (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MEDIAN_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MEDIAN_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MEDIAN_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MEDIAN_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MEDIAN_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MEDIAN_Stream_spec = { + "talib._ta_lib.MEDIAN_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MEDIAN_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_MEDIAN_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MEDIAN_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MEDIAN_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MEDIAN_Stream(real, int timeperiod=-0x80000000)\n\nMEDIAN(real[, timeperiod=?])\n\nRolling Median (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MEDIAN_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MEDIAN_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MEDIAN_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MEDIAN_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MEDIAN_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_MEDPRICE_Stream __pyx_vtable_5talib_7_ta_lib_MEDPRICE_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MEDPRICE_Stream(PyObject *o, @@ -428660,6 +502183,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_OBV_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_PERCENTB_Stream __pyx_vtable_5talib_7_ta_lib_PERCENTB_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PERCENTB_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_PERCENTB_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTB_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_PERCENTB_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PERCENTB_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTB_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PERCENTB_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTB_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PERCENTB_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_PERCENTB_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_PERCENTB_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_15PERCENTB_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_PERCENTB_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15PERCENTB_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15PERCENTB_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15PERCENTB_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15PERCENTB_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15PERCENTB_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_PERCENTB_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15PERCENTB_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_PERCENTB_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_PERCENTB_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("PERCENTB_Stream(real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nPERCENTB(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands %B (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_PERCENTB_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_PERCENTB_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_PERCENTB_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_PERCENTB_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_PERCENTB_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_PERCENTB_Stream_spec = { + "talib._ta_lib.PERCENTB_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_PERCENTB_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_PERCENTB_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""PERCENTB_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_PERCENTB_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("PERCENTB_Stream(real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nPERCENTB(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands %B (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_PERCENTB_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_PERCENTB_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_PERCENTB_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_PERCENTB_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_PERCENTB_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_PERCENTILE_Stream __pyx_vtable_5talib_7_ta_lib_PERCENTILE_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PERCENTILE_Stream(PyObject *o, @@ -428766,7 +502492,7 @@ static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_PERCENTILE_Stream[] = { #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_5talib_7_ta_lib_PERCENTILE_Stream_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_PERCENTILE_Stream}, - {Py_tp_doc, (void *)PyDoc_STR("PERCENTILE_Stream(real, int timeperiod=-0x80000000, double percentile=50.0)\n\nPERCENTILE(real[, timeperiod=?, percentile=?])\n\nPercentile (nearest rank) (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n percentile: 50.0\nOutputs:\n real")}, + {Py_tp_doc, (void *)PyDoc_STR("PERCENTILE_Stream(real, int timeperiod=-0x80000000, double percentile=50.0)\n\nPERCENTILE(real[, timeperiod=?, percentile=?])\n\nPercentile (nearest rank) (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 100\n percentile: 50.0\nOutputs:\n real")}, {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_PERCENTILE_Stream}, {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_PERCENTILE_Stream}, {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_PERCENTILE_Stream}, @@ -428808,7 +502534,7 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_PERCENTILE_Stream = { 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ - PyDoc_STR("PERCENTILE_Stream(real, int timeperiod=-0x80000000, double percentile=50.0)\n\nPERCENTILE(real[, timeperiod=?, percentile=?])\n\nPercentile (nearest rank) (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n percentile: 50.0\nOutputs:\n real"), /*tp_doc*/ + PyDoc_STR("PERCENTILE_Stream(real, int timeperiod=-0x80000000, double percentile=50.0)\n\nPERCENTILE(real[, timeperiod=?, percentile=?])\n\nPercentile (nearest rank) (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 100\n percentile: 50.0\nOutputs:\n real"), /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ @@ -429675,6 +503401,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_PPO_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_PSO_Stream __pyx_vtable_5talib_7_ta_lib_PSO_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PSO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_PSO_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_PSO_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PSO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_PSO_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PSO_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_PSO_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PSO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PSO_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_PSO_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10PSO_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PSO_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10PSO_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_PSO_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_PSO_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10PSO_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10PSO_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10PSO_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_PSO_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PSO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PSO_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PSO_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PSO_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PSO_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PSO_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PSO_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PSO_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_PSO_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10PSO_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_PSO_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_PSO_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("PSO_Stream(high, low, close, int fastk_period=-0x80000000, int emaperiod=-0x80000000)\n\nPSO(high, low, close[, fastk_period=?, emaperiod=?])\n\nPremier Stochastic Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 8\n emaperiod: 5\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_PSO_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_PSO_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_PSO_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_PSO_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_PSO_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_PSO_Stream_spec = { + "talib._ta_lib.PSO_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_PSO_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_PSO_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""PSO_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_PSO_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("PSO_Stream(high, low, close, int fastk_period=-0x80000000, int emaperiod=-0x80000000)\n\nPSO(high, low, close[, fastk_period=?, emaperiod=?])\n\nPremier Stochastic Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 8\n emaperiod: 5\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_PSO_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_PSO_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_PSO_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_PSO_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_PSO_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_PVI_Stream __pyx_vtable_5talib_7_ta_lib_PVI_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PVI_Stream(PyObject *o, @@ -431502,6 +505431,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_ROCR100_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ROGERSSATCHELL_Stream __pyx_vtable_5talib_7_ta_lib_ROGERSSATCHELL_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ROGERSSATCHELL_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ROGERSSATCHELL_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROGERSSATCHELL_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ROGERSSATCHELL_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ROGERSSATCHELL_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROGERSSATCHELL_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ROGERSSATCHELL_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ROGERSSATCHELL_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ROGERSSATCHELL_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_ROGERSSATCHELL_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ROGERSSATCHELL_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ROGERSSATCHELL_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ROGERSSATCHELL_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ROGERSSATCHELL_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ROGERSSATCHELL_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ROGERSSATCHELL_Stream(open, high, low, close, int timeperiod=-0x80000000, double annualization=252.0)\n\nROGERSSATCHELL(open, high, low, close[, timeperiod=?, annualization=?])\n\nRogers-Satchell Volatility (Volatility Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n annualization: 252.0\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ROGERSSATCHELL_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ROGERSSATCHELL_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ROGERSSATCHELL_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ROGERSSATCHELL_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ROGERSSATCHELL_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ROGERSSATCHELL_Stream_spec = { + "talib._ta_lib.ROGERSSATCHELL_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ROGERSSATCHELL_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_ROGERSSATCHELL_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ROGERSSATCHELL_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ROGERSSATCHELL_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ROGERSSATCHELL_Stream(open, high, low, close, int timeperiod=-0x80000000, double annualization=252.0)\n\nROGERSSATCHELL(open, high, low, close[, timeperiod=?, annualization=?])\n\nRogers-Satchell Volatility (Volatility Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n annualization: 252.0\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ROGERSSATCHELL_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ROGERSSATCHELL_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ROGERSSATCHELL_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ROGERSSATCHELL_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ROGERSSATCHELL_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_RSI_Stream __pyx_vtable_5talib_7_ta_lib_RSI_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RSI_Stream(PyObject *o, @@ -431908,6 +506040,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_RVI_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_RVIR_Stream __pyx_vtable_5talib_7_ta_lib_RVIR_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RVIR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_RVIR_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_RVIR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_RVIR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_RVIR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_RVIR_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_RVIR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_RVIR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_RVIR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_RVIR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_RVIR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11RVIR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_11RVIR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11RVIR_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_RVIR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11RVIR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11RVIR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11RVIR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11RVIR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11RVIR_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_RVIR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11RVIR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_RVIR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_RVIR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("RVIR_Stream(high, low, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)\n\nRVIR(high, low[, timeperiod=?, stddevperiod=?])\n\nRelative Volatility Index, refined high/low form (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\n stddevperiod: 10\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_RVIR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_RVIR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_RVIR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_RVIR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_RVIR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_RVIR_Stream_spec = { + "talib._ta_lib.RVIR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_RVIR_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_RVIR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""RVIR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_RVIR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("RVIR_Stream(high, low, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)\n\nRVIR(high, low[, timeperiod=?, stddevperiod=?])\n\nRelative Volatility Index, refined high/low form (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\n stddevperiod: 10\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_RVIR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_RVIR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_RVIR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_RVIR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_RVIR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_RVOL_Stream __pyx_vtable_5talib_7_ta_lib_RVOL_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RVOL_Stream(PyObject *o, @@ -432517,6 +506852,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_SAREXT_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SI_Stream __pyx_vtable_5talib_7_ta_lib_SI_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SI_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SI_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_9SI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_9SI_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_SI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_9SI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_9SI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_9SI_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9SI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9SI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9SI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9SI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9SI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9SI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9SI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9SI_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_9SI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SI_Stream(open, high, low, close, double limitmove=-4e37)\n\nSI(open, high, low, close[, limitmove=?])\n\nWilder Swing Index (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n limitmove: 3.0\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SI_Stream_spec = { + "talib._ta_lib.SI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SI_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_SI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SI_Stream(open, high, low, close, double limitmove=-4e37)\n\nSI(open, high, low, close[, limitmove=?])\n\nWilder Swing Index (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n limitmove: 3.0\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_SIN_Stream __pyx_vtable_5talib_7_ta_lib_SIN_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SIN_Stream(PyObject *o, @@ -433532,6 +508070,412 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_SQRT_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SQZMOM_Stream __pyx_vtable_5talib_7_ta_lib_SQZMOM_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SQZMOM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SQZMOM_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SQZMOM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SQZMOM_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SQZMOM_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SQZMOM_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SQZMOM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SQZMOM_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SQZMOM_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_SQZMOM_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SQZMOM_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_13SQZMOM_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SQZMOM_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13SQZMOM_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13SQZMOM_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13SQZMOM_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13SQZMOM_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13SQZMOM_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SQZMOM_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13SQZMOM_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SQZMOM_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SQZMOM_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SQZMOM_Stream(high, low, close, int bbperiod=-0x80000000, double nbdev=-4e37, int kcperiod=-0x80000000, double factorwide=-4e37, double factornormal=-4e37, double factornarrow=-4e37)\n\nSQZMOM(high, low, close[, bbperiod=?, nbdev=?, kcperiod=?, factorwide=?, factornormal=?, factornarrow=?])\n\nSqueeze Momentum and Level (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n bbperiod: 20\n nbdev: 2.0\n kcperiod: 20\n factorwide: 2.0\n factornormal: 1.5\n factornarrow: 1.0\nOutputs:\n momentum\n squeeze")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SQZMOM_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SQZMOM_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SQZMOM_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SQZMOM_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SQZMOM_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SQZMOM_Stream_spec = { + "talib._ta_lib.SQZMOM_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SQZMOM_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_SQZMOM_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SQZMOM_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SQZMOM_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SQZMOM_Stream(high, low, close, int bbperiod=-0x80000000, double nbdev=-4e37, int kcperiod=-0x80000000, double factorwide=-4e37, double factornormal=-4e37, double factornarrow=-4e37)\n\nSQZMOM(high, low, close[, bbperiod=?, nbdev=?, kcperiod=?, factorwide=?, factornormal=?, factornarrow=?])\n\nSqueeze Momentum and Level (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n bbperiod: 20\n nbdev: 2.0\n kcperiod: 20\n factorwide: 2.0\n factornormal: 1.5\n factornarrow: 1.0\nOutputs:\n momentum\n squeeze"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SQZMOM_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SQZMOM_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SQZMOM_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SQZMOM_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SQZMOM_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_STC_Stream __pyx_vtable_5talib_7_ta_lib_STC_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_STC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_STC_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_STC_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_STC_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_STC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_STC_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_STC_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_STC_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_STC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STC_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_STC_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10STC_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_STC_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10STC_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_STC_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_STC_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10STC_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10STC_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10STC_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_STC_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10STC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10STC_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10STC_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10STC_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10STC_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10STC_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10STC_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10STC_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_STC_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10STC_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_STC_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_STC_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("STC_Stream(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int cycleperiod=-0x80000000)\n\nSTC(real[, fastperiod=?, slowperiod=?, cycleperiod=?])\n\nSchaff Trend Cycle (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 23\n slowperiod: 50\n cycleperiod: 10\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_STC_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_STC_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_STC_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_STC_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_STC_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_STC_Stream_spec = { + "talib._ta_lib.STC_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_STC_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_STC_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_STC_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""STC_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_STC_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_STC_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("STC_Stream(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int cycleperiod=-0x80000000)\n\nSTC(real[, fastperiod=?, slowperiod=?, cycleperiod=?])\n\nSchaff Trend Cycle (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 23\n slowperiod: 50\n cycleperiod: 10\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_STC_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_STC_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_STC_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_STC_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_STC_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_STDDEV_Stream __pyx_vtable_5talib_7_ta_lib_STDDEV_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_STDDEV_Stream(PyObject *o, @@ -434953,6 +509897,1021 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_SUPERTREND_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_2PHP_Stream __pyx_vtable_5talib_7_ta_lib_SWAK_2PHP_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_2PHP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SWAK_2PHP_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_2PHP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_2PHP_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SWAK_2PHP_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_2PHP_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_2PHP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_2PHP_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SWAK_2PHP_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_2PHP_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_2PHP_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_16SWAK_2PHP_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SWAK_2PHP_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16SWAK_2PHP_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16SWAK_2PHP_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16SWAK_2PHP_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16SWAK_2PHP_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16SWAK_2PHP_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SWAK_2PHP_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_16SWAK_2PHP_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SWAK_2PHP_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SWAK_2PHP_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SWAK_2PHP_Stream(real, int timeperiod=-0x80000000)\n\nSWAK_2PHP(real[, timeperiod=?])\n\nSwiss Army Knife - Two-Pole High-Pass Filter (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SWAK_2PHP_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SWAK_2PHP_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SWAK_2PHP_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SWAK_2PHP_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_2PHP_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SWAK_2PHP_Stream_spec = { + "talib._ta_lib.SWAK_2PHP_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SWAK_2PHP_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_SWAK_2PHP_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SWAK_2PHP_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_2PHP_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SWAK_2PHP_Stream(real, int timeperiod=-0x80000000)\n\nSWAK_2PHP(real[, timeperiod=?])\n\nSwiss Army Knife - Two-Pole High-Pass Filter (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SWAK_2PHP_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SWAK_2PHP_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SWAK_2PHP_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SWAK_2PHP_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_2PHP_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_BP_Stream __pyx_vtable_5talib_7_ta_lib_SWAK_BP_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_BP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SWAK_BP_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_BP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_BP_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SWAK_BP_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_BP_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_BP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_BP_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SWAK_BP_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_BP_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_BP_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_14SWAK_BP_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SWAK_BP_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14SWAK_BP_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14SWAK_BP_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14SWAK_BP_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14SWAK_BP_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14SWAK_BP_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SWAK_BP_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_14SWAK_BP_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SWAK_BP_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SWAK_BP_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SWAK_BP_Stream(real, int timeperiod=-0x80000000, double delta=0.1)\n\nSWAK_BP(real[, timeperiod=?, delta=?])\n\nSwiss Army Knife - Band-Pass Filter (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n delta: 0.1\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SWAK_BP_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SWAK_BP_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SWAK_BP_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SWAK_BP_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_BP_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SWAK_BP_Stream_spec = { + "talib._ta_lib.SWAK_BP_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SWAK_BP_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_SWAK_BP_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SWAK_BP_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_BP_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SWAK_BP_Stream(real, int timeperiod=-0x80000000, double delta=0.1)\n\nSWAK_BP(real[, timeperiod=?, delta=?])\n\nSwiss Army Knife - Band-Pass Filter (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n delta: 0.1\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SWAK_BP_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SWAK_BP_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SWAK_BP_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SWAK_BP_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_BP_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_BUTTER_Stream __pyx_vtable_5talib_7_ta_lib_SWAK_BUTTER_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_BUTTER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SWAK_BUTTER_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_BUTTER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_BUTTER_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SWAK_BUTTER_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_BUTTER_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_BUTTER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_BUTTER_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SWAK_BUTTER_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_BUTTER_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_BUTTER_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_18SWAK_BUTTER_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SWAK_BUTTER_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18SWAK_BUTTER_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18SWAK_BUTTER_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18SWAK_BUTTER_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18SWAK_BUTTER_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18SWAK_BUTTER_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SWAK_BUTTER_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_18SWAK_BUTTER_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SWAK_BUTTER_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SWAK_BUTTER_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SWAK_BUTTER_Stream(real, int timeperiod=-0x80000000)\n\nSWAK_BUTTER(real[, timeperiod=?])\n\nSwiss Army Knife - Butterworth Filter (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SWAK_BUTTER_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SWAK_BUTTER_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SWAK_BUTTER_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SWAK_BUTTER_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_BUTTER_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SWAK_BUTTER_Stream_spec = { + "talib._ta_lib.SWAK_BUTTER_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SWAK_BUTTER_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_SWAK_BUTTER_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SWAK_BUTTER_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_BUTTER_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SWAK_BUTTER_Stream(real, int timeperiod=-0x80000000)\n\nSWAK_BUTTER(real[, timeperiod=?])\n\nSwiss Army Knife - Butterworth Filter (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SWAK_BUTTER_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SWAK_BUTTER_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SWAK_BUTTER_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SWAK_BUTTER_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_BUTTER_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_GAUSS_Stream __pyx_vtable_5talib_7_ta_lib_SWAK_GAUSS_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_GAUSS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SWAK_GAUSS_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_GAUSS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_GAUSS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SWAK_GAUSS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_GAUSS_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_GAUSS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_GAUSS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SWAK_GAUSS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_GAUSS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_GAUSS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_17SWAK_GAUSS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SWAK_GAUSS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17SWAK_GAUSS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17SWAK_GAUSS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17SWAK_GAUSS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17SWAK_GAUSS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17SWAK_GAUSS_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SWAK_GAUSS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_17SWAK_GAUSS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SWAK_GAUSS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SWAK_GAUSS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SWAK_GAUSS_Stream(real, int timeperiod=-0x80000000)\n\nSWAK_GAUSS(real[, timeperiod=?])\n\nSwiss Army Knife - Gaussian Filter (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SWAK_GAUSS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SWAK_GAUSS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SWAK_GAUSS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SWAK_GAUSS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_GAUSS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SWAK_GAUSS_Stream_spec = { + "talib._ta_lib.SWAK_GAUSS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SWAK_GAUSS_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_SWAK_GAUSS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SWAK_GAUSS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_GAUSS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SWAK_GAUSS_Stream(real, int timeperiod=-0x80000000)\n\nSWAK_GAUSS(real[, timeperiod=?])\n\nSwiss Army Knife - Gaussian Filter (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SWAK_GAUSS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SWAK_GAUSS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SWAK_GAUSS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SWAK_GAUSS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_GAUSS_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SWAK_HP_Stream __pyx_vtable_5talib_7_ta_lib_SWAK_HP_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_HP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SWAK_HP_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_HP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SWAK_HP_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SWAK_HP_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_HP_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_HP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SWAK_HP_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SWAK_HP_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_HP_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_HP_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_14SWAK_HP_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SWAK_HP_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14SWAK_HP_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14SWAK_HP_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14SWAK_HP_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14SWAK_HP_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14SWAK_HP_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SWAK_HP_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_14SWAK_HP_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SWAK_HP_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SWAK_HP_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SWAK_HP_Stream(real, int timeperiod=-0x80000000)\n\nSWAK_HP(real[, timeperiod=?])\n\nSwiss Army Knife - High-Pass Filter (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SWAK_HP_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SWAK_HP_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SWAK_HP_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SWAK_HP_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_HP_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SWAK_HP_Stream_spec = { + "talib._ta_lib.SWAK_HP_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SWAK_HP_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_SWAK_HP_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SWAK_HP_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SWAK_HP_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SWAK_HP_Stream(real, int timeperiod=-0x80000000)\n\nSWAK_HP(real[, timeperiod=?])\n\nSwiss Army Knife - High-Pass Filter (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SWAK_HP_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SWAK_HP_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SWAK_HP_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SWAK_HP_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SWAK_HP_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_T3_Stream __pyx_vtable_5talib_7_ta_lib_T3_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_T3_Stream(PyObject *o, @@ -437592,6 +513551,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_VHF_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_VIDYA_Stream __pyx_vtable_5talib_7_ta_lib_VIDYA_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VIDYA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_VIDYA_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_VIDYA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_VIDYA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_VIDYA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_VIDYA_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_VIDYA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_VIDYA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_VIDYA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_VIDYA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_VIDYA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_12VIDYA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_VIDYA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12VIDYA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12VIDYA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12VIDYA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12VIDYA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12VIDYA_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_VIDYA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_12VIDYA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_VIDYA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_VIDYA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("VIDYA_Stream(real, int timeperiod=-0x80000000, int cmoperiod=-0x80000000)\n\nVIDYA(real[, timeperiod=?, cmoperiod=?])\n\nVariable Index Dynamic Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 12\n cmoperiod: 9\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_VIDYA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_VIDYA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_VIDYA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_VIDYA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_VIDYA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_VIDYA_Stream_spec = { + "talib._ta_lib.VIDYA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_VIDYA_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_VIDYA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""VIDYA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_VIDYA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("VIDYA_Stream(real, int timeperiod=-0x80000000, int cmoperiod=-0x80000000)\n\nVIDYA(real[, timeperiod=?, cmoperiod=?])\n\nVariable Index Dynamic Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 12\n cmoperiod: 9\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_VIDYA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_VIDYA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_VIDYA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_VIDYA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_VIDYA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_VORTEX_Stream __pyx_vtable_5talib_7_ta_lib_VORTEX_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VORTEX_Stream(PyObject *o, @@ -438404,6 +514566,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_WAD_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_WAVETREND_Stream __pyx_vtable_5talib_7_ta_lib_WAVETREND_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_WAVETREND_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_WAVETREND_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_WAVETREND_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_WAVETREND_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_WAVETREND_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_WAVETREND_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_WAVETREND_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_WAVETREND_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_WAVETREND_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_WAVETREND_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_WAVETREND_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_16WAVETREND_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_WAVETREND_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16WAVETREND_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16WAVETREND_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16WAVETREND_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16WAVETREND_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16WAVETREND_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_WAVETREND_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_16WAVETREND_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_WAVETREND_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_WAVETREND_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("WAVETREND_Stream(high, low, close, int channelperiod=-0x80000000, int averageperiod=-0x80000000, int signalperiod=-0x80000000)\n\nWAVETREND(high, low, close[, channelperiod=?, averageperiod=?, signalperiod=?])\n\nWaveTrend Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n channelperiod: 10\n averageperiod: 21\n signalperiod: 4\nOutputs:\n wt1\n wt2")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_WAVETREND_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_WAVETREND_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_WAVETREND_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_WAVETREND_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_WAVETREND_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_WAVETREND_Stream_spec = { + "talib._ta_lib.WAVETREND_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_WAVETREND_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_WAVETREND_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""WAVETREND_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_WAVETREND_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("WAVETREND_Stream(high, low, close, int channelperiod=-0x80000000, int averageperiod=-0x80000000, int signalperiod=-0x80000000)\n\nWAVETREND(high, low, close[, channelperiod=?, averageperiod=?, signalperiod=?])\n\nWaveTrend Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n channelperiod: 10\n averageperiod: 21\n signalperiod: 4\nOutputs:\n wt1\n wt2"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_WAVETREND_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_WAVETREND_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_WAVETREND_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_WAVETREND_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_WAVETREND_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_WCLPRICE_Stream __pyx_vtable_5talib_7_ta_lib_WCLPRICE_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_WCLPRICE_Stream(PyObject *o, @@ -439013,6 +515378,209 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_WMA_Stream = { #endif }; #endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ZIGZAG_Stream __pyx_vtable_5talib_7_ta_lib_ZIGZAG_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ZIGZAG_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ZIGZAG_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ZIGZAG_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ZIGZAG_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ZIGZAG_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ZIGZAG_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ZIGZAG_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ZIGZAG_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ZIGZAG_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_ZIGZAG_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ZIGZAG_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_13ZIGZAG_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ZIGZAG_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13ZIGZAG_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13ZIGZAG_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13ZIGZAG_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13ZIGZAG_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13ZIGZAG_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ZIGZAG_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13ZIGZAG_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ZIGZAG_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ZIGZAG_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ZIGZAG_Stream(high, low, double sensitivity=5.0, int mintrendlength=-0x80000000)\n\nZIGZAG(high, low[, sensitivity=?, mintrendlength=?])\n\nZig Zag (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n sensitivity: 5.0\n mintrendlength: 1\nOutputs:\n zigzag\n trend\n pivotidx")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ZIGZAG_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ZIGZAG_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ZIGZAG_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ZIGZAG_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ZIGZAG_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ZIGZAG_Stream_spec = { + "talib._ta_lib.ZIGZAG_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ZIGZAG_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_ZIGZAG_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ZIGZAG_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ZIGZAG_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ZIGZAG_Stream(high, low, double sensitivity=5.0, int mintrendlength=-0x80000000)\n\nZIGZAG(high, low[, sensitivity=?, mintrendlength=?])\n\nZig Zag (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n sensitivity: 5.0\n mintrendlength: 1\nOutputs:\n zigzag\n trend\n pivotidx"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ZIGZAG_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ZIGZAG_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ZIGZAG_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ZIGZAG_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ZIGZAG_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif static struct __pyx_vtabstruct_5talib_7_ta_lib_ZLEMA_Stream __pyx_vtable_5talib_7_ta_lib_ZLEMA_Stream; static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ZLEMA_Stream(PyObject *o, @@ -439241,16 +515809,19 @@ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADO static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADXR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ALMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_APO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROON_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROONOSC_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASIN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATAN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGDEV_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBANDS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBW_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BETA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BOP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CCI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ @@ -439316,6 +515887,10 @@ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CEIL_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CG_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CHOP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CHOPTR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CKSP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMF_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMOU_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ @@ -439323,21 +515898,27 @@ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COP static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CORREL_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COSH_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CRSI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CTI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CUMSUM_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CVI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DEMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DIV_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DOSC_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DPO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EFI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMV_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ER_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ERI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EXP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FISHER_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FLOOR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FOSC_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRACTAL_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRAMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ @@ -439346,10 +515927,16 @@ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_SINE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IBS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IMI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KAMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KC_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KDJ_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KST_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KSTEXT_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KVO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ @@ -439366,6 +515953,8 @@ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAS static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAVP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MCGD_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDIAN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MFI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ @@ -439381,11 +515970,13 @@ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MUL static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NATR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NVI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_OBV_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTB_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PPO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PSO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVT_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ @@ -439395,16 +515986,21 @@ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROC static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR100_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RSI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVIR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVOL_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAREXT_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SIN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SINH_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQRT_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQZMOM_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STC_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STDDEV_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCH_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHF_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ @@ -439412,6 +516008,11 @@ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STO static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUB_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUM_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_T3_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TAN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TANH_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ @@ -439425,13 +516026,16 @@ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TYP static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ULTOSC_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VAR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VHF_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VIDYA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VORTEX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWAP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAD_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAVETREND_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WILLR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZLEMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_Variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ @@ -439549,14 +516153,14 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_Stream(__pyx_mstatety __pyx_vtable_5talib_7_ta_lib_Stream._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_6Stream__out_range; __pyx_vtable_5talib_7_ta_lib_Stream._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_6Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_Stream_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream)) __PYX_ERR(3, 2500, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_Stream_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream)) __PYX_ERR(3, 2932, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream = &__pyx_type_5talib_7_ta_lib_Stream; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream) < (0)) __PYX_ERR(3, 2500, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream) < (0)) __PYX_ERR(3, 2932, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream); @@ -439566,8 +516170,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_Stream(__pyx_mstatety __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream, __pyx_vtabptr_5talib_7_ta_lib_Stream) < (0)) __PYX_ERR(3, 2500, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream) < (0)) __PYX_ERR(3, 2500, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream, __pyx_vtabptr_5talib_7_ta_lib_Stream) < (0)) __PYX_ERR(3, 2932, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream) < (0)) __PYX_ERR(3, 2932, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_Stream, __weakref__); #endif @@ -439592,11 +516196,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AC_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_AC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9AC_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_AC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9AC_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2554, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AC_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream)) __PYX_ERR(3, 2554, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream)) __PYX_ERR(3, 2986, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream = &__pyx_type_5talib_7_ta_lib_AC_Stream; #endif @@ -439604,7 +516208,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AC_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream) < (0)) __PYX_ERR(3, 2554, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream) < (0)) __PYX_ERR(3, 2986, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream); @@ -439614,8 +516218,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AC_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream, __pyx_vtabptr_5talib_7_ta_lib_AC_Stream) < (0)) __PYX_ERR(3, 2554, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream) < (0)) __PYX_ERR(3, 2554, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream, __pyx_vtabptr_5talib_7_ta_lib_AC_Stream) < (0)) __PYX_ERR(3, 2986, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream) < (0)) __PYX_ERR(3, 2986, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AC_Stream, __pyx_base.__weakref__); #endif @@ -439641,11 +516245,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_ACCBANDS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ACCBANDS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2695, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ACCBANDS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream)) __PYX_ERR(3, 2695, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream)) __PYX_ERR(3, 3127, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream = &__pyx_type_5talib_7_ta_lib_ACCBANDS_Stream; #endif @@ -439653,7 +516257,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 2695, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 3127, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream); @@ -439663,8 +516267,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_vtabptr_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 2695, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 2695, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_vtabptr_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 3127, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 3127, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_base.__weakref__); #endif @@ -439690,11 +516294,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACOS_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_ACOS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ACOS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ACOS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ACOS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2850, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ACOS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream)) __PYX_ERR(3, 2850, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream)) __PYX_ERR(3, 3282, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream = &__pyx_type_5talib_7_ta_lib_ACOS_Stream; #endif @@ -439702,7 +516306,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACOS_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 2850, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 3282, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream); @@ -439712,8 +516316,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACOS_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_vtabptr_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 2850, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ACOS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 2850, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_vtabptr_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 3282, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ACOS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 3282, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream, __pyx_base.__weakref__); #endif @@ -439739,11 +516343,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AD_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_AD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9AD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_AD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9AD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2985, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream)) __PYX_ERR(3, 2985, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream)) __PYX_ERR(3, 3417, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream = &__pyx_type_5talib_7_ta_lib_AD_Stream; #endif @@ -439751,7 +516355,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AD_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 2985, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 3417, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream); @@ -439761,8 +516365,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AD_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_vtabptr_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 2985, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 2985, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_vtabptr_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 3417, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 3417, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AD_Stream, __pyx_base.__weakref__); #endif @@ -439788,11 +516392,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADD_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_ADD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ADD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ADD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ADD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3126, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream)) __PYX_ERR(3, 3126, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream)) __PYX_ERR(3, 3558, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream = &__pyx_type_5talib_7_ta_lib_ADD_Stream; #endif @@ -439800,7 +516404,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADD_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 3126, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 3558, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream); @@ -439810,8 +516414,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADD_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 3126, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 3126, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 3558, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 3558, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream, __pyx_base.__weakref__); #endif @@ -439837,11 +516441,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADOSC_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_ADOSC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12ADOSC_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ADOSC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12ADOSC_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3264, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADOSC_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream)) __PYX_ERR(3, 3264, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream)) __PYX_ERR(3, 3696, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream = &__pyx_type_5talib_7_ta_lib_ADOSC_Stream; #endif @@ -439849,7 +516453,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADOSC_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3264, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3696, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream); @@ -439859,8 +516463,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADOSC_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3264, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3264, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3696, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3696, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream, __pyx_base.__weakref__); #endif @@ -439886,11 +516490,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADR_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_ADR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ADR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ADR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ADR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3408, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream)) __PYX_ERR(3, 3408, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream)) __PYX_ERR(3, 3840, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream = &__pyx_type_5talib_7_ta_lib_ADR_Stream; #endif @@ -439898,7 +516502,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADR_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3408, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3840, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream); @@ -439908,8 +516512,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADR_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3408, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3408, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3840, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3840, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream, __pyx_base.__weakref__); #endif @@ -439935,11 +516539,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADX_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_ADX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ADX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ADX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ADX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3547, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream)) __PYX_ERR(3, 3547, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream)) __PYX_ERR(3, 3979, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream = &__pyx_type_5talib_7_ta_lib_ADX_Stream; #endif @@ -439947,7 +516551,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADX_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3547, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3979, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream); @@ -439957,8 +516561,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADX_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3547, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3547, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3979, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3979, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream, __pyx_base.__weakref__); #endif @@ -439984,11 +516588,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADXR_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_ADXR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ADXR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ADXR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ADXR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3688, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADXR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream)) __PYX_ERR(3, 3688, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream)) __PYX_ERR(3, 4120, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream = &__pyx_type_5talib_7_ta_lib_ADXR_Stream; #endif @@ -439996,7 +516600,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADXR_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 3688, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 4120, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream); @@ -440006,8 +516610,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADXR_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 3688, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADXR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 3688, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 4120, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADXR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 4120, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream, __pyx_base.__weakref__); #endif @@ -440019,6 +516623,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADXR_Stream(__pyx_mst return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ALMA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ALMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ALMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ALMA_Stream = &__pyx_vtable_5talib_7_ta_lib_ALMA_Stream; + __pyx_vtable_5talib_7_ta_lib_ALMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ALMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ALMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ALMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ALMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ALMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream)) __PYX_ERR(3, 4261, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream = &__pyx_type_5talib_7_ta_lib_ALMA_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream) < (0)) __PYX_ERR(3, 4261, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_ALMA_Stream) < (0)) __PYX_ERR(3, 4261, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ALMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream) < (0)) __PYX_ERR(3, 4261, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ALMA_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AO_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -440033,11 +516686,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AO_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_AO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9AO_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_AO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9AO_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3829, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AO_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream)) __PYX_ERR(3, 3829, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream)) __PYX_ERR(3, 4400, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream = &__pyx_type_5talib_7_ta_lib_AO_Stream; #endif @@ -440045,7 +516698,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AO_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 3829, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 4400, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream); @@ -440055,8 +516708,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AO_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_vtabptr_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 3829, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 3829, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_vtabptr_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 4400, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 4400, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AO_Stream, __pyx_base.__weakref__); #endif @@ -440082,11 +516735,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_APO_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_APO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10APO_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_APO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10APO_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3969, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_APO_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream)) __PYX_ERR(3, 3969, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream)) __PYX_ERR(3, 4540, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream = &__pyx_type_5talib_7_ta_lib_APO_Stream; #endif @@ -440094,7 +516747,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_APO_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 3969, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 4540, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream); @@ -440104,8 +516757,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_APO_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_vtabptr_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 3969, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_APO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 3969, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_vtabptr_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 4540, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_APO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 4540, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_APO_Stream, __pyx_base.__weakref__); #endif @@ -440131,11 +516784,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROON_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_AROON_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12AROON_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_AROON_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12AROON_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4108, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AROON_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream)) __PYX_ERR(3, 4108, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream)) __PYX_ERR(3, 4679, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream = &__pyx_type_5talib_7_ta_lib_AROON_Stream; #endif @@ -440143,7 +516796,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROON_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 4108, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 4679, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream); @@ -440153,8 +516806,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROON_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_vtabptr_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 4108, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AROON_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 4108, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_vtabptr_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 4679, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AROON_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 4679, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream, __pyx_base.__weakref__); #endif @@ -440180,11 +516833,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROONOSC_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_AROONOSC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_AROONOSC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4254, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AROONOSC_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream)) __PYX_ERR(3, 4254, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream)) __PYX_ERR(3, 4825, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream = &__pyx_type_5talib_7_ta_lib_AROONOSC_Stream; #endif @@ -440192,7 +516845,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROONOSC_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 4254, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 4825, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream); @@ -440202,8 +516855,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROONOSC_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 4254, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AROONOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 4254, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 4825, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AROONOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 4825, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream, __pyx_base.__weakref__); #endif @@ -440215,6 +516868,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROONOSC_Stream(__pyx return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASI_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ASI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ASI_Stream = &__pyx_vtable_5talib_7_ta_lib_ASI_Stream; + __pyx_vtable_5talib_7_ta_lib_ASI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ASI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ASI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ASI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ASI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4964, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ASI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASI_Stream)) __PYX_ERR(3, 4964, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASI_Stream = &__pyx_type_5talib_7_ta_lib_ASI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASI_Stream) < (0)) __PYX_ERR(3, 4964, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASI_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASI_Stream, __pyx_vtabptr_5talib_7_ta_lib_ASI_Stream) < (0)) __PYX_ERR(3, 4964, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ASI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASI_Stream) < (0)) __PYX_ERR(3, 4964, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ASI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASIN_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -440229,11 +516931,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASIN_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_ASIN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ASIN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ASIN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ASIN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4393, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ASIN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream)) __PYX_ERR(3, 4393, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream)) __PYX_ERR(3, 5107, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream = &__pyx_type_5talib_7_ta_lib_ASIN_Stream; #endif @@ -440241,7 +516943,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASIN_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 4393, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 5107, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream); @@ -440251,8 +516953,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASIN_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 4393, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ASIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 4393, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 5107, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ASIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 5107, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream, __pyx_base.__weakref__); #endif @@ -440278,11 +516980,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATAN_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_ATAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ATAN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ATAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ATAN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4528, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ATAN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream)) __PYX_ERR(3, 4528, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream)) __PYX_ERR(3, 5242, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream = &__pyx_type_5talib_7_ta_lib_ATAN_Stream; #endif @@ -440290,7 +516992,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATAN_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 4528, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 5242, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream); @@ -440300,8 +517002,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATAN_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 4528, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ATAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 4528, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 5242, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ATAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 5242, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream, __pyx_base.__weakref__); #endif @@ -440327,11 +517029,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATR_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_ATR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ATR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ATR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ATR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4663, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ATR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream)) __PYX_ERR(3, 4663, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream)) __PYX_ERR(3, 5377, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream = &__pyx_type_5talib_7_ta_lib_ATR_Stream; #endif @@ -440339,7 +517041,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATR_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 4663, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 5377, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream); @@ -440349,8 +517051,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATR_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 4663, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ATR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 4663, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 5377, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ATR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 5377, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream, __pyx_base.__weakref__); #endif @@ -440376,11 +517078,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGDEV_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_AVGDEV_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_AVGDEV_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4804, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AVGDEV_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream)) __PYX_ERR(3, 4804, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream)) __PYX_ERR(3, 5518, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream = &__pyx_type_5talib_7_ta_lib_AVGDEV_Stream; #endif @@ -440388,7 +517090,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGDEV_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 4804, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 5518, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream); @@ -440398,8 +517100,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGDEV_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_vtabptr_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 4804, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AVGDEV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 4804, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_vtabptr_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 5518, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AVGDEV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 5518, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream, __pyx_base.__weakref__); #endif @@ -440425,11 +517127,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_AVGPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_AVGPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4941, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AVGPRICE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream)) __PYX_ERR(3, 4941, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream)) __PYX_ERR(3, 5655, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream = &__pyx_type_5talib_7_ta_lib_AVGPRICE_Stream; #endif @@ -440437,7 +517139,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 4941, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 5655, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream); @@ -440447,8 +517149,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 4941, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AVGPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 4941, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 5655, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AVGPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 5655, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_base.__weakref__); #endif @@ -440474,11 +517176,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBANDS_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_BBANDS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13BBANDS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_BBANDS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13BBANDS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5082, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_BBANDS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream)) __PYX_ERR(3, 5082, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream)) __PYX_ERR(3, 5796, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream = &__pyx_type_5talib_7_ta_lib_BBANDS_Stream; #endif @@ -440486,7 +517188,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBANDS_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 5082, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 5796, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream); @@ -440496,8 +517198,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBANDS_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_vtabptr_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 5082, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BBANDS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 5082, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_vtabptr_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 5796, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BBANDS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 5796, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream, __pyx_base.__weakref__); #endif @@ -440509,6 +517211,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBANDS_Stream(__pyx_m return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBW_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBW_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_BBW_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_BBW_Stream = &__pyx_vtable_5talib_7_ta_lib_BBW_Stream; + __pyx_vtable_5talib_7_ta_lib_BBW_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_BBW_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10BBW_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_BBW_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10BBW_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBW_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_BBW_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBW_Stream)) __PYX_ERR(3, 5950, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBW_Stream = &__pyx_type_5talib_7_ta_lib_BBW_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBW_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBW_Stream) < (0)) __PYX_ERR(3, 5950, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBW_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBW_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBW_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBW_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBW_Stream, __pyx_vtabptr_5talib_7_ta_lib_BBW_Stream) < (0)) __PYX_ERR(3, 5950, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BBW_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBW_Stream) < (0)) __PYX_ERR(3, 5950, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBW_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBW_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_BBW_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BETA_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -440523,11 +517274,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BETA_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_BETA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11BETA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_BETA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11BETA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5236, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_BETA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream)) __PYX_ERR(3, 5236, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream)) __PYX_ERR(3, 6090, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream = &__pyx_type_5talib_7_ta_lib_BETA_Stream; #endif @@ -440535,7 +517286,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BETA_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 5236, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 6090, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream); @@ -440545,8 +517296,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BETA_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_vtabptr_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 5236, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BETA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 5236, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_vtabptr_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 6090, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BETA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 6090, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream, __pyx_base.__weakref__); #endif @@ -440572,11 +517323,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BOP_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_BOP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10BOP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_BOP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10BOP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5376, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_BOP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream)) __PYX_ERR(3, 5376, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream)) __PYX_ERR(3, 6230, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream = &__pyx_type_5talib_7_ta_lib_BOP_Stream; #endif @@ -440584,7 +517335,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BOP_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 5376, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 6230, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream); @@ -440594,8 +517345,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BOP_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_vtabptr_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 5376, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BOP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 5376, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_vtabptr_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 6230, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BOP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 6230, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream, __pyx_base.__weakref__); #endif @@ -440621,11 +517372,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CCI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_CCI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10CCI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CCI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10CCI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5517, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CCI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream)) __PYX_ERR(3, 5517, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream)) __PYX_ERR(3, 6371, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream = &__pyx_type_5talib_7_ta_lib_CCI_Stream; #endif @@ -440633,7 +517384,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CCI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 5517, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 6371, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream); @@ -440643,8 +517394,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CCI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 5517, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CCI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 5517, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 6371, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CCI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 6371, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream, __pyx_base.__weakref__); #endif @@ -440670,11 +517421,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream(__py __pyx_vtable_5talib_7_ta_lib_CDL2CROWS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL2CROWS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5658, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL2CROWS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream)) __PYX_ERR(3, 5658, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream)) __PYX_ERR(3, 6512, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream = &__pyx_type_5talib_7_ta_lib_CDL2CROWS_Stream; #endif @@ -440682,7 +517433,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 5658, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 6512, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream); @@ -440692,8 +517443,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 5658, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL2CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 5658, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 6512, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL2CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 6512, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_base.__weakref__); #endif @@ -440719,11 +517470,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream __pyx_vtable_5talib_7_ta_lib_CDL3BLACKCROWS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL3BLACKCROWS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5799, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3BLACKCROWS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream)) __PYX_ERR(3, 5799, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream)) __PYX_ERR(3, 6653, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream = &__pyx_type_5talib_7_ta_lib_CDL3BLACKCROWS_Stream; #endif @@ -440731,7 +517482,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 5799, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 6653, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream); @@ -440741,8 +517492,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 5799, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 5799, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 6653, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 6653, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_base.__weakref__); #endif @@ -440768,11 +517519,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream(__p __pyx_vtable_5talib_7_ta_lib_CDL3INSIDE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL3INSIDE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5940, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3INSIDE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream)) __PYX_ERR(3, 5940, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream)) __PYX_ERR(3, 6794, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream = &__pyx_type_5talib_7_ta_lib_CDL3INSIDE_Stream; #endif @@ -440780,7 +517531,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 5940, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 6794, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream); @@ -440790,8 +517541,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 5940, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 5940, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 6794, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 6794, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_base.__weakref__); #endif @@ -440817,11 +517568,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream __pyx_vtable_5talib_7_ta_lib_CDL3LINESTRIKE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL3LINESTRIKE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6081, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3LINESTRIKE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream)) __PYX_ERR(3, 6081, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream)) __PYX_ERR(3, 6935, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream = &__pyx_type_5talib_7_ta_lib_CDL3LINESTRIKE_Stream; #endif @@ -440829,7 +517580,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 6081, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 6935, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream); @@ -440839,8 +517590,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 6081, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 6081, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 6935, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 6935, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_base.__weakref__); #endif @@ -440866,11 +517617,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDL3OUTSIDE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL3OUTSIDE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6222, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3OUTSIDE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream)) __PYX_ERR(3, 6222, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream)) __PYX_ERR(3, 7076, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream = &__pyx_type_5talib_7_ta_lib_CDL3OUTSIDE_Stream; #endif @@ -440878,7 +517629,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 6222, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 7076, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream); @@ -440888,8 +517639,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 6222, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 6222, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 7076, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 7076, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_base.__weakref__); #endif @@ -440915,11 +517666,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stre __pyx_vtable_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6363, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream)) __PYX_ERR(3, 6363, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream)) __PYX_ERR(3, 7217, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream = &__pyx_type_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream; #endif @@ -440927,7 +517678,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stre __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 6363, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 7217, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream); @@ -440937,8 +517688,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stre __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 6363, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 6363, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 7217, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 7217, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_base.__weakref__); #endif @@ -440964,11 +517715,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Str __pyx_vtable_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6504, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream)) __PYX_ERR(3, 6504, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream)) __PYX_ERR(3, 7358, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream = &__pyx_type_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream; #endif @@ -440976,7 +517727,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Str __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 6504, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 7358, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream); @@ -440986,8 +517737,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Str __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 6504, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 6504, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 7358, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 7358, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_base.__weakref__); #endif @@ -441013,11 +517764,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stre __pyx_vtable_5talib_7_ta_lib_CDLABANDONEDBABY_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLABANDONEDBABY_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6645, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLABANDONEDBABY_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream)) __PYX_ERR(3, 6645, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream)) __PYX_ERR(3, 7499, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream = &__pyx_type_5talib_7_ta_lib_CDLABANDONEDBABY_Stream; #endif @@ -441025,7 +517776,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stre __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 6645, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 7499, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream); @@ -441035,8 +517786,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stre __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 6645, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 6645, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 7499, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 7499, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_base.__weakref__); #endif @@ -441062,11 +517813,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Strea __pyx_vtable_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6788, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream)) __PYX_ERR(3, 6788, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream)) __PYX_ERR(3, 7642, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream = &__pyx_type_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream; #endif @@ -441074,7 +517825,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 6788, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 7642, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream); @@ -441084,8 +517835,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 6788, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 6788, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 7642, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 7642, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_base.__weakref__); #endif @@ -441111,11 +517862,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDLBELTHOLD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLBELTHOLD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6929, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLBELTHOLD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream)) __PYX_ERR(3, 6929, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream)) __PYX_ERR(3, 7783, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream = &__pyx_type_5talib_7_ta_lib_CDLBELTHOLD_Stream; #endif @@ -441123,7 +517874,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 6929, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 7783, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream); @@ -441133,8 +517884,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 6929, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 6929, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 7783, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 7783, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_base.__weakref__); #endif @@ -441160,11 +517911,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream(_ __pyx_vtable_5talib_7_ta_lib_CDLBREAKAWAY_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLBREAKAWAY_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7070, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLBREAKAWAY_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream)) __PYX_ERR(3, 7070, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream)) __PYX_ERR(3, 7924, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream = &__pyx_type_5talib_7_ta_lib_CDLBREAKAWAY_Stream; #endif @@ -441172,7 +517923,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 7070, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 7924, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream); @@ -441182,8 +517933,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 7070, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 7070, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 7924, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 7924, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_base.__weakref__); #endif @@ -441209,11 +517960,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_St __pyx_vtable_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7211, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream)) __PYX_ERR(3, 7211, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream)) __PYX_ERR(3, 8065, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream = &__pyx_type_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream; #endif @@ -441221,7 +517972,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 7211, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 8065, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream); @@ -441231,8 +517982,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 7211, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 7211, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 8065, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 8065, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_base.__weakref__); #endif @@ -441258,11 +518009,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_S __pyx_vtable_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7352, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream)) __PYX_ERR(3, 7352, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream)) __PYX_ERR(3, 8206, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream = &__pyx_type_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream; #endif @@ -441270,7 +518021,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_S __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 7352, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 8206, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream); @@ -441280,8 +518031,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_S __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 7352, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 7352, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 8206, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 8206, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_base.__weakref__); #endif @@ -441307,11 +518058,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stre __pyx_vtable_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7493, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream)) __PYX_ERR(3, 7493, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream)) __PYX_ERR(3, 8347, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream = &__pyx_type_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream; #endif @@ -441319,7 +518070,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stre __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 7493, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 8347, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream); @@ -441329,8 +518080,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stre __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 7493, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 7493, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 8347, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 8347, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_base.__weakref__); #endif @@ -441356,11 +518107,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Str __pyx_vtable_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7634, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream)) __PYX_ERR(3, 7634, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream)) __PYX_ERR(3, 8488, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream = &__pyx_type_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream; #endif @@ -441368,7 +518119,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Str __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 7634, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 8488, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream); @@ -441378,8 +518129,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Str __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 7634, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 7634, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 8488, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 8488, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_base.__weakref__); #endif @@ -441405,11 +518156,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_CDLDOJI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLDOJI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7777, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLDOJI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream)) __PYX_ERR(3, 7777, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream)) __PYX_ERR(3, 8631, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream = &__pyx_type_5talib_7_ta_lib_CDLDOJI_Stream; #endif @@ -441417,7 +518168,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 7777, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 8631, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream); @@ -441427,8 +518178,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 7777, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 7777, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 8631, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 8631, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_base.__weakref__); #endif @@ -441454,11 +518205,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDLDOJISTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLDOJISTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7918, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLDOJISTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream)) __PYX_ERR(3, 7918, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream)) __PYX_ERR(3, 8772, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLDOJISTAR_Stream; #endif @@ -441466,7 +518217,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 7918, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8772, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream); @@ -441476,8 +518227,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 7918, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 7918, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8772, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8772, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_base.__weakref__); #endif @@ -441503,11 +518254,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stre __pyx_vtable_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8059, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream)) __PYX_ERR(3, 8059, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream)) __PYX_ERR(3, 8913, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream = &__pyx_type_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream; #endif @@ -441515,7 +518266,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stre __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 8059, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 8913, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream); @@ -441525,8 +518276,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stre __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 8059, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 8059, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 8913, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 8913, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_base.__weakref__); #endif @@ -441552,11 +518303,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream(_ __pyx_vtable_5talib_7_ta_lib_CDLENGULFING_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLENGULFING_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8200, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLENGULFING_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream)) __PYX_ERR(3, 8200, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream)) __PYX_ERR(3, 9054, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream = &__pyx_type_5talib_7_ta_lib_CDLENGULFING_Stream; #endif @@ -441564,7 +518315,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 8200, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 9054, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream); @@ -441574,8 +518325,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 8200, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLENGULFING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 8200, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 9054, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLENGULFING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 9054, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_base.__weakref__); #endif @@ -441601,11 +518352,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_St __pyx_vtable_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8341, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream)) __PYX_ERR(3, 8341, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream)) __PYX_ERR(3, 9195, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream; #endif @@ -441613,7 +518364,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8341, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 9195, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream); @@ -441623,8 +518374,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8341, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8341, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 9195, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 9195, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_base.__weakref__); #endif @@ -441650,11 +518401,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream __pyx_vtable_5talib_7_ta_lib_CDLEVENINGSTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLEVENINGSTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8484, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLEVENINGSTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream)) __PYX_ERR(3, 8484, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream)) __PYX_ERR(3, 9338, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLEVENINGSTAR_Stream; #endif @@ -441662,7 +518413,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 8484, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 9338, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream); @@ -441672,8 +518423,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 8484, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 8484, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 9338, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 9338, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_base.__weakref__); #endif @@ -441699,11 +518450,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_S __pyx_vtable_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8627, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream)) __PYX_ERR(3, 8627, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream)) __PYX_ERR(3, 9481, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream = &__pyx_type_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream; #endif @@ -441711,7 +518462,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_S __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 8627, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 9481, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream); @@ -441721,8 +518472,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_S __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 8627, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 8627, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 9481, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 9481, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_base.__weakref__); #endif @@ -441748,11 +518499,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Str __pyx_vtable_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8768, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream)) __PYX_ERR(3, 8768, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream)) __PYX_ERR(3, 9622, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream = &__pyx_type_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream; #endif @@ -441760,7 +518511,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Str __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 8768, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 9622, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream); @@ -441770,8 +518521,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Str __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 8768, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 8768, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 9622, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 9622, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_base.__weakref__); #endif @@ -441797,11 +518548,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream(__py __pyx_vtable_5talib_7_ta_lib_CDLHAMMER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHAMMER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8909, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHAMMER_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream)) __PYX_ERR(3, 8909, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream)) __PYX_ERR(3, 9763, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream = &__pyx_type_5talib_7_ta_lib_CDLHAMMER_Stream; #endif @@ -441809,7 +518560,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 8909, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 9763, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream); @@ -441819,8 +518570,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 8909, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHAMMER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 8909, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 9763, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHAMMER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 9763, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_base.__weakref__); #endif @@ -441846,11 +518597,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream( __pyx_vtable_5talib_7_ta_lib_CDLHANGINGMAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHANGINGMAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9050, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHANGINGMAN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream)) __PYX_ERR(3, 9050, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream)) __PYX_ERR(3, 9904, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream = &__pyx_type_5talib_7_ta_lib_CDLHANGINGMAN_Stream; #endif @@ -441858,7 +518609,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream( __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 9050, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 9904, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream); @@ -441868,8 +518619,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream( __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 9050, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 9050, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 9904, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 9904, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_base.__weakref__); #endif @@ -441895,11 +518646,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream(__py __pyx_vtable_5talib_7_ta_lib_CDLHARAMI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHARAMI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9191, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHARAMI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream)) __PYX_ERR(3, 9191, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream)) __PYX_ERR(3, 10045, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream = &__pyx_type_5talib_7_ta_lib_CDLHARAMI_Stream; #endif @@ -441907,7 +518658,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 9191, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 10045, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream); @@ -441917,8 +518668,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 9191, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHARAMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 9191, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 10045, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHARAMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 10045, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_base.__weakref__); #endif @@ -441944,11 +518695,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream __pyx_vtable_5talib_7_ta_lib_CDLHARAMICROSS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHARAMICROSS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9332, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHARAMICROSS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream)) __PYX_ERR(3, 9332, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream)) __PYX_ERR(3, 10186, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream = &__pyx_type_5talib_7_ta_lib_CDLHARAMICROSS_Stream; #endif @@ -441956,7 +518707,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 9332, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 10186, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream); @@ -441966,8 +518717,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 9332, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 9332, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 10186, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 10186, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_base.__weakref__); #endif @@ -441993,11 +518744,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDLHIGHWAVE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHIGHWAVE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9473, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHIGHWAVE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream)) __PYX_ERR(3, 9473, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream)) __PYX_ERR(3, 10327, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream = &__pyx_type_5talib_7_ta_lib_CDLHIGHWAVE_Stream; #endif @@ -442005,7 +518756,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 9473, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 10327, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream); @@ -442015,8 +518766,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 9473, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 9473, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 10327, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 10327, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_base.__weakref__); #endif @@ -442042,11 +518793,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream(__p __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9614, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHIKKAKE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream)) __PYX_ERR(3, 9614, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream)) __PYX_ERR(3, 10468, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream = &__pyx_type_5talib_7_ta_lib_CDLHIKKAKE_Stream; #endif @@ -442054,7 +518805,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 9614, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 10468, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream); @@ -442064,8 +518815,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 9614, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 9614, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 10468, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 10468, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_base.__weakref__); #endif @@ -442091,11 +518842,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream( __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9755, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream)) __PYX_ERR(3, 9755, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream)) __PYX_ERR(3, 10609, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream = &__pyx_type_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream; #endif @@ -442103,7 +518854,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream( __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 9755, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 10609, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream); @@ -442113,8 +518864,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream( __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 9755, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 9755, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 10609, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 10609, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_base.__weakref__); #endif @@ -442140,11 +518891,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Strea __pyx_vtable_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9896, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream)) __PYX_ERR(3, 9896, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream)) __PYX_ERR(3, 10750, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream = &__pyx_type_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream; #endif @@ -442152,7 +518903,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 9896, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 10750, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream); @@ -442162,8 +518913,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 9896, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 9896, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 10750, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 10750, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_base.__weakref__); #endif @@ -442189,11 +518940,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_St __pyx_vtable_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10037, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream)) __PYX_ERR(3, 10037, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream)) __PYX_ERR(3, 10891, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream = &__pyx_type_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream; #endif @@ -442201,7 +518952,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 10037, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 10891, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream); @@ -442211,8 +518962,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 10037, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 10037, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 10891, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 10891, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_base.__weakref__); #endif @@ -442238,11 +518989,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream(__py __pyx_vtable_5talib_7_ta_lib_CDLINNECK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLINNECK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10178, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLINNECK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream)) __PYX_ERR(3, 10178, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream)) __PYX_ERR(3, 11032, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream = &__pyx_type_5talib_7_ta_lib_CDLINNECK_Stream; #endif @@ -442250,7 +519001,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 10178, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 11032, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream); @@ -442260,8 +519011,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 10178, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLINNECK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 10178, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 11032, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLINNECK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 11032, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_base.__weakref__); #endif @@ -442287,11 +519038,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Str __pyx_vtable_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10319, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream)) __PYX_ERR(3, 10319, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream)) __PYX_ERR(3, 11173, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream = &__pyx_type_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream; #endif @@ -442299,7 +519050,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Str __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 10319, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 11173, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream); @@ -442309,8 +519060,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Str __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 10319, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 10319, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 11173, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 11173, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_base.__weakref__); #endif @@ -442336,11 +519087,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream(__p __pyx_vtable_5talib_7_ta_lib_CDLKICKING_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLKICKING_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10460, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLKICKING_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream)) __PYX_ERR(3, 10460, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream)) __PYX_ERR(3, 11314, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream = &__pyx_type_5talib_7_ta_lib_CDLKICKING_Stream; #endif @@ -442348,7 +519099,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 10460, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 11314, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream); @@ -442358,8 +519109,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 10460, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLKICKING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 10460, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 11314, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLKICKING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 11314, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_base.__weakref__); #endif @@ -442385,11 +519136,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_St __pyx_vtable_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10601, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream)) __PYX_ERR(3, 10601, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream)) __PYX_ERR(3, 11455, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream = &__pyx_type_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream; #endif @@ -442397,7 +519148,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 10601, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 11455, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream); @@ -442407,8 +519158,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 10601, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 10601, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 11455, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 11455, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_base.__weakref__); #endif @@ -442434,11 +519185,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Strea __pyx_vtable_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10742, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream)) __PYX_ERR(3, 10742, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream)) __PYX_ERR(3, 11596, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream = &__pyx_type_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream; #endif @@ -442446,7 +519197,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 10742, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 11596, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream); @@ -442456,8 +519207,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 10742, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 10742, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 11596, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 11596, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_base.__weakref__); #endif @@ -442483,11 +519234,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Str __pyx_vtable_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10883, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream)) __PYX_ERR(3, 10883, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream)) __PYX_ERR(3, 11737, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream = &__pyx_type_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream; #endif @@ -442495,7 +519246,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Str __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 10883, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 11737, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream); @@ -442505,8 +519256,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Str __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 10883, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 10883, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 11737, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 11737, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_base.__weakref__); #endif @@ -442532,11 +519283,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDLLONGLINE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLLONGLINE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11024, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLLONGLINE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream)) __PYX_ERR(3, 11024, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream)) __PYX_ERR(3, 11878, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream = &__pyx_type_5talib_7_ta_lib_CDLLONGLINE_Stream; #endif @@ -442544,7 +519295,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 11024, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 11878, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream); @@ -442554,8 +519305,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 11024, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 11024, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 11878, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 11878, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_base.__weakref__); #endif @@ -442581,11 +519332,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDLMARUBOZU_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLMARUBOZU_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11165, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMARUBOZU_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream)) __PYX_ERR(3, 11165, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream)) __PYX_ERR(3, 12019, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream = &__pyx_type_5talib_7_ta_lib_CDLMARUBOZU_Stream; #endif @@ -442593,7 +519344,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 11165, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 12019, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream); @@ -442603,8 +519354,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 11165, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 11165, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 12019, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 12019, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_base.__weakref__); #endif @@ -442630,11 +519381,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream __pyx_vtable_5talib_7_ta_lib_CDLMATCHINGLOW_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLMATCHINGLOW_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11306, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMATCHINGLOW_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream)) __PYX_ERR(3, 11306, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream)) __PYX_ERR(3, 12160, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream = &__pyx_type_5talib_7_ta_lib_CDLMATCHINGLOW_Stream; #endif @@ -442642,7 +519393,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 11306, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 12160, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream); @@ -442652,8 +519403,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 11306, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 11306, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 12160, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 12160, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_base.__weakref__); #endif @@ -442679,11 +519430,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream(__p __pyx_vtable_5talib_7_ta_lib_CDLMATHOLD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLMATHOLD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11447, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMATHOLD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream)) __PYX_ERR(3, 11447, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream)) __PYX_ERR(3, 12301, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream = &__pyx_type_5talib_7_ta_lib_CDLMATHOLD_Stream; #endif @@ -442691,7 +519442,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 11447, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 12301, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream); @@ -442701,8 +519452,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 11447, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 11447, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 12301, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 12301, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_base.__weakref__); #endif @@ -442728,11 +519479,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_St __pyx_vtable_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11590, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream)) __PYX_ERR(3, 11590, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream)) __PYX_ERR(3, 12444, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream; #endif @@ -442740,7 +519491,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 11590, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 12444, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream); @@ -442750,8 +519501,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 11590, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 11590, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 12444, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 12444, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_base.__weakref__); #endif @@ -442777,11 +519528,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream __pyx_vtable_5talib_7_ta_lib_CDLMORNINGSTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLMORNINGSTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11733, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMORNINGSTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream)) __PYX_ERR(3, 11733, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream)) __PYX_ERR(3, 12587, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLMORNINGSTAR_Stream; #endif @@ -442789,7 +519540,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 11733, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 12587, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream); @@ -442799,8 +519550,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 11733, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 11733, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 12587, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 12587, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_base.__weakref__); #endif @@ -442826,11 +519577,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream(__py __pyx_vtable_5talib_7_ta_lib_CDLONNECK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLONNECK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11876, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLONNECK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream)) __PYX_ERR(3, 11876, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream)) __PYX_ERR(3, 12730, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream = &__pyx_type_5talib_7_ta_lib_CDLONNECK_Stream; #endif @@ -442838,7 +519589,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 11876, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 12730, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream); @@ -442848,8 +519599,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 11876, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLONNECK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 11876, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 12730, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLONNECK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 12730, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_base.__weakref__); #endif @@ -442875,11 +519626,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDLPIERCING_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLPIERCING_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12017, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLPIERCING_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream)) __PYX_ERR(3, 12017, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream)) __PYX_ERR(3, 12871, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream = &__pyx_type_5talib_7_ta_lib_CDLPIERCING_Stream; #endif @@ -442887,7 +519638,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 12017, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 12871, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream); @@ -442897,8 +519648,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 12017, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLPIERCING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 12017, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 12871, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLPIERCING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 12871, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_base.__weakref__); #endif @@ -442924,11 +519675,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream __pyx_vtable_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12158, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream)) __PYX_ERR(3, 12158, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream)) __PYX_ERR(3, 13012, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream = &__pyx_type_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream; #endif @@ -442936,7 +519687,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 12158, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 13012, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream); @@ -442946,8 +519697,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 12158, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 12158, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 13012, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 13012, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_base.__weakref__); #endif @@ -442973,11 +519724,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_S __pyx_vtable_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12299, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream)) __PYX_ERR(3, 12299, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream)) __PYX_ERR(3, 13153, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream = &__pyx_type_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream; #endif @@ -442985,7 +519736,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_S __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 12299, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 13153, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream); @@ -442995,8 +519746,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_S __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 12299, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 12299, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 13153, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 13153, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_base.__weakref__); #endif @@ -443022,11 +519773,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_St __pyx_vtable_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12440, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream)) __PYX_ERR(3, 12440, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream)) __PYX_ERR(3, 13294, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream = &__pyx_type_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream; #endif @@ -443034,7 +519785,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 12440, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 13294, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream); @@ -443044,8 +519795,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 12440, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 12440, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 13294, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 13294, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_base.__weakref__); #endif @@ -443071,11 +519822,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Strea __pyx_vtable_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12581, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream)) __PYX_ERR(3, 12581, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream)) __PYX_ERR(3, 13435, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream; #endif @@ -443083,7 +519834,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 12581, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 13435, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream); @@ -443093,8 +519844,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 12581, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 12581, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 13435, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 13435, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_base.__weakref__); #endif @@ -443120,11 +519871,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream(_ __pyx_vtable_5talib_7_ta_lib_CDLSHORTLINE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLSHORTLINE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12722, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSHORTLINE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream)) __PYX_ERR(3, 12722, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream)) __PYX_ERR(3, 13576, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream = &__pyx_type_5talib_7_ta_lib_CDLSHORTLINE_Stream; #endif @@ -443132,7 +519883,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 12722, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 13576, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream); @@ -443142,8 +519893,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 12722, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 12722, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 13576, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 13576, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_base.__weakref__); #endif @@ -443169,11 +519920,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream __pyx_vtable_5talib_7_ta_lib_CDLSPINNINGTOP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLSPINNINGTOP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12863, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSPINNINGTOP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream)) __PYX_ERR(3, 12863, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream)) __PYX_ERR(3, 13717, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream = &__pyx_type_5talib_7_ta_lib_CDLSPINNINGTOP_Stream; #endif @@ -443181,7 +519932,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 12863, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 13717, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream); @@ -443191,8 +519942,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 12863, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 12863, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 13717, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 13717, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_base.__weakref__); #endif @@ -443218,11 +519969,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Str __pyx_vtable_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13004, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream)) __PYX_ERR(3, 13004, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream)) __PYX_ERR(3, 13858, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream = &__pyx_type_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream; #endif @@ -443230,7 +519981,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Str __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 13004, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 13858, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream); @@ -443240,8 +519991,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Str __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 13004, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 13004, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 13858, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 13858, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_base.__weakref__); #endif @@ -443267,11 +520018,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stre __pyx_vtable_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13145, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream)) __PYX_ERR(3, 13145, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream)) __PYX_ERR(3, 13999, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream = &__pyx_type_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream; #endif @@ -443279,7 +520030,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stre __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 13145, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 13999, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream); @@ -443289,8 +520040,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stre __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 13145, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 13145, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 13999, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 13999, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_base.__weakref__); #endif @@ -443316,11 +520067,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream(__py __pyx_vtable_5talib_7_ta_lib_CDLTAKURI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLTAKURI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13286, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLTAKURI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream)) __PYX_ERR(3, 13286, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream)) __PYX_ERR(3, 14140, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream = &__pyx_type_5talib_7_ta_lib_CDLTAKURI_Stream; #endif @@ -443328,7 +520079,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 13286, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 14140, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream); @@ -443338,8 +520089,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 13286, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTAKURI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 13286, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 14140, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTAKURI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 14140, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_base.__weakref__); #endif @@ -443365,11 +520116,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream(_ __pyx_vtable_5talib_7_ta_lib_CDLTASUKIGAP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLTASUKIGAP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13427, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLTASUKIGAP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream)) __PYX_ERR(3, 13427, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream)) __PYX_ERR(3, 14281, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream = &__pyx_type_5talib_7_ta_lib_CDLTASUKIGAP_Stream; #endif @@ -443377,7 +520128,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 13427, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 14281, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream); @@ -443387,8 +520138,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 13427, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 13427, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 14281, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 14281, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_base.__weakref__); #endif @@ -443414,11 +520165,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream(_ __pyx_vtable_5talib_7_ta_lib_CDLTHRUSTING_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLTHRUSTING_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13568, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLTHRUSTING_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream)) __PYX_ERR(3, 13568, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream)) __PYX_ERR(3, 14422, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream = &__pyx_type_5talib_7_ta_lib_CDLTHRUSTING_Stream; #endif @@ -443426,7 +520177,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 13568, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 14422, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream); @@ -443436,8 +520187,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 13568, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 13568, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 14422, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 14422, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_base.__weakref__); #endif @@ -443463,11 +520214,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream(__p __pyx_vtable_5talib_7_ta_lib_CDLTRISTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLTRISTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13709, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLTRISTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream)) __PYX_ERR(3, 13709, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream)) __PYX_ERR(3, 14563, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLTRISTAR_Stream; #endif @@ -443475,7 +520226,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 13709, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 14563, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream); @@ -443485,8 +520236,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 13709, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 13709, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 14563, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 14563, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_base.__weakref__); #endif @@ -443512,11 +520263,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Strea __pyx_vtable_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13850, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream)) __PYX_ERR(3, 13850, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream)) __PYX_ERR(3, 14704, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream = &__pyx_type_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream; #endif @@ -443524,7 +520275,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 13850, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 14704, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream); @@ -443534,8 +520285,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 13850, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 13850, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 14704, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 14704, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_base.__weakref__); #endif @@ -443561,11 +520312,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_St __pyx_vtable_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13991, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream)) __PYX_ERR(3, 13991, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream)) __PYX_ERR(3, 14845, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream = &__pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream; #endif @@ -443573,7 +520324,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 13991, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 14845, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream); @@ -443583,8 +520334,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 13991, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 13991, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 14845, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 14845, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_base.__weakref__); #endif @@ -443610,11 +520361,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_S __pyx_vtable_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14132, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream)) __PYX_ERR(3, 14132, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream)) __PYX_ERR(3, 14986, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream = &__pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream; #endif @@ -443622,7 +520373,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_S __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 14132, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 14986, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream); @@ -443632,8 +520383,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_S __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 14132, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 14132, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 14986, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 14986, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_base.__weakref__); #endif @@ -443659,11 +520410,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CEIL_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_CEIL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11CEIL_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CEIL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11CEIL_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14273, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CEIL_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream)) __PYX_ERR(3, 14273, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream)) __PYX_ERR(3, 15127, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream = &__pyx_type_5talib_7_ta_lib_CEIL_Stream; #endif @@ -443671,7 +520422,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CEIL_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 14273, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 15127, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream); @@ -443681,8 +520432,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CEIL_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 14273, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CEIL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 14273, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 15127, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CEIL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 15127, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream, __pyx_base.__weakref__); #endif @@ -443694,6 +520445,202 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CEIL_Stream(__pyx_mst return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CG_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CG_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CG_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CG_Stream = &__pyx_vtable_5talib_7_ta_lib_CG_Stream; + __pyx_vtable_5talib_7_ta_lib_CG_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CG_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9CG_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CG_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9CG_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15262, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CG_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CG_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CG_Stream)) __PYX_ERR(3, 15262, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CG_Stream = &__pyx_type_5talib_7_ta_lib_CG_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CG_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CG_Stream) < (0)) __PYX_ERR(3, 15262, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CG_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CG_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CG_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CG_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CG_Stream, __pyx_vtabptr_5talib_7_ta_lib_CG_Stream) < (0)) __PYX_ERR(3, 15262, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CG_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CG_Stream) < (0)) __PYX_ERR(3, 15262, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CG_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CG_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CG_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CHOP_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CHOP_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CHOP_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CHOP_Stream = &__pyx_vtable_5talib_7_ta_lib_CHOP_Stream; + __pyx_vtable_5talib_7_ta_lib_CHOP_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CHOP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11CHOP_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CHOP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11CHOP_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CHOP_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream)) __PYX_ERR(3, 15399, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream = &__pyx_type_5talib_7_ta_lib_CHOP_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream) < (0)) __PYX_ERR(3, 15399, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream, __pyx_vtabptr_5talib_7_ta_lib_CHOP_Stream) < (0)) __PYX_ERR(3, 15399, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CHOP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream) < (0)) __PYX_ERR(3, 15399, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CHOP_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CHOPTR_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CHOPTR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CHOPTR_Stream = &__pyx_vtable_5talib_7_ta_lib_CHOPTR_Stream; + __pyx_vtable_5talib_7_ta_lib_CHOPTR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CHOPTR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13CHOPTR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CHOPTR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13CHOPTR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CHOPTR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream)) __PYX_ERR(3, 15540, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream = &__pyx_type_5talib_7_ta_lib_CHOPTR_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream) < (0)) __PYX_ERR(3, 15540, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CHOPTR_Stream) < (0)) __PYX_ERR(3, 15540, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CHOPTR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream) < (0)) __PYX_ERR(3, 15540, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CHOPTR_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CKSP_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CKSP_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CKSP_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CKSP_Stream = &__pyx_vtable_5talib_7_ta_lib_CKSP_Stream; + __pyx_vtable_5talib_7_ta_lib_CKSP_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CKSP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11CKSP_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CKSP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11CKSP_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CKSP_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream)) __PYX_ERR(3, 15681, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream = &__pyx_type_5talib_7_ta_lib_CKSP_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream) < (0)) __PYX_ERR(3, 15681, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream, __pyx_vtabptr_5talib_7_ta_lib_CKSP_Stream) < (0)) __PYX_ERR(3, 15681, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CKSP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream) < (0)) __PYX_ERR(3, 15681, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CKSP_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMF_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -443708,11 +520655,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMF_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_CMF_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10CMF_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CMF_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10CMF_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14408, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CMF_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream)) __PYX_ERR(3, 14408, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream)) __PYX_ERR(3, 15831, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream = &__pyx_type_5talib_7_ta_lib_CMF_Stream; #endif @@ -443720,7 +520667,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMF_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 14408, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 15831, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream); @@ -443730,8 +520677,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMF_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 14408, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 14408, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 15831, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 15831, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream, __pyx_base.__weakref__); #endif @@ -443757,11 +520704,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMO_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_CMO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10CMO_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CMO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10CMO_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14551, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CMO_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream)) __PYX_ERR(3, 14551, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream)) __PYX_ERR(3, 15974, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream = &__pyx_type_5talib_7_ta_lib_CMO_Stream; #endif @@ -443769,7 +520716,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMO_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 14551, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 15974, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream); @@ -443779,8 +520726,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMO_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 14551, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 14551, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 15974, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 15974, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream, __pyx_base.__weakref__); #endif @@ -443806,11 +520753,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMOU_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_CMOU_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11CMOU_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CMOU_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11CMOU_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14688, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CMOU_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream)) __PYX_ERR(3, 14688, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream)) __PYX_ERR(3, 16111, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream = &__pyx_type_5talib_7_ta_lib_CMOU_Stream; #endif @@ -443818,7 +520765,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMOU_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 14688, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 16111, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream); @@ -443828,8 +520775,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMOU_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 14688, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMOU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 14688, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 16111, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMOU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 16111, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream, __pyx_base.__weakref__); #endif @@ -443855,11 +520802,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COPPOCK_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_COPPOCK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_COPPOCK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14825, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_COPPOCK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream)) __PYX_ERR(3, 14825, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream)) __PYX_ERR(3, 16248, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream = &__pyx_type_5talib_7_ta_lib_COPPOCK_Stream; #endif @@ -443867,7 +520814,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COPPOCK_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 14825, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 16248, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream); @@ -443877,8 +520824,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COPPOCK_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_vtabptr_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 14825, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COPPOCK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 14825, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_vtabptr_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 16248, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COPPOCK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 16248, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream, __pyx_base.__weakref__); #endif @@ -443904,11 +520851,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CORREL_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_CORREL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13CORREL_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CORREL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13CORREL_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14964, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CORREL_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream)) __PYX_ERR(3, 14964, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream)) __PYX_ERR(3, 16387, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream = &__pyx_type_5talib_7_ta_lib_CORREL_Stream; #endif @@ -443916,7 +520863,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CORREL_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 14964, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 16387, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream); @@ -443926,8 +520873,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CORREL_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 14964, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CORREL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 14964, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 16387, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CORREL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 16387, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream, __pyx_base.__weakref__); #endif @@ -443953,11 +520900,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COS_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_COS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10COS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_COS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10COS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15104, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_COS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream)) __PYX_ERR(3, 15104, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream)) __PYX_ERR(3, 16527, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream = &__pyx_type_5talib_7_ta_lib_COS_Stream; #endif @@ -443965,7 +520912,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COS_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 15104, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 16527, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream); @@ -443975,8 +520922,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COS_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_vtabptr_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 15104, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 15104, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_vtabptr_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 16527, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 16527, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_COS_Stream, __pyx_base.__weakref__); #endif @@ -444002,11 +520949,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COSH_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_COSH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11COSH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_COSH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11COSH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15239, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_COSH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream)) __PYX_ERR(3, 15239, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream)) __PYX_ERR(3, 16662, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream = &__pyx_type_5talib_7_ta_lib_COSH_Stream; #endif @@ -444014,7 +520961,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COSH_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 15239, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 16662, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream); @@ -444024,8 +520971,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COSH_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_vtabptr_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 15239, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COSH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 15239, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_vtabptr_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 16662, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COSH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 16662, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream, __pyx_base.__weakref__); #endif @@ -444037,6 +520984,104 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COSH_Stream(__pyx_mst return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CRSI_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CRSI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CRSI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CRSI_Stream = &__pyx_vtable_5talib_7_ta_lib_CRSI_Stream; + __pyx_vtable_5talib_7_ta_lib_CRSI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CRSI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11CRSI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CRSI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11CRSI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CRSI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream)) __PYX_ERR(3, 16797, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream = &__pyx_type_5talib_7_ta_lib_CRSI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream) < (0)) __PYX_ERR(3, 16797, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CRSI_Stream) < (0)) __PYX_ERR(3, 16797, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CRSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream) < (0)) __PYX_ERR(3, 16797, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CRSI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CTI_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CTI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CTI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CTI_Stream = &__pyx_vtable_5talib_7_ta_lib_CTI_Stream; + __pyx_vtable_5talib_7_ta_lib_CTI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CTI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10CTI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CTI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10CTI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CTI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CTI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CTI_Stream)) __PYX_ERR(3, 16936, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CTI_Stream = &__pyx_type_5talib_7_ta_lib_CTI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CTI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CTI_Stream) < (0)) __PYX_ERR(3, 16936, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CTI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CTI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CTI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CTI_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CTI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CTI_Stream) < (0)) __PYX_ERR(3, 16936, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CTI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CTI_Stream) < (0)) __PYX_ERR(3, 16936, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CTI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CTI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CTI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CUMSUM_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -444051,11 +521096,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CUMSUM_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_CUMSUM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CUMSUM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15374, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CUMSUM_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream)) __PYX_ERR(3, 15374, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream)) __PYX_ERR(3, 17073, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream = &__pyx_type_5talib_7_ta_lib_CUMSUM_Stream; #endif @@ -444063,7 +521108,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CUMSUM_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 15374, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 17073, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream); @@ -444073,8 +521118,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CUMSUM_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_vtabptr_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 15374, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CUMSUM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 15374, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_vtabptr_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 17073, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CUMSUM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 17073, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream, __pyx_base.__weakref__); #endif @@ -444100,11 +521145,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CVI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_CVI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10CVI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CVI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10CVI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15509, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CVI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream)) __PYX_ERR(3, 15509, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream)) __PYX_ERR(3, 17208, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream = &__pyx_type_5talib_7_ta_lib_CVI_Stream; #endif @@ -444112,7 +521157,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CVI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 15509, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 17208, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream); @@ -444122,8 +521167,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CVI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 15509, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 15509, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 17208, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 17208, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream, __pyx_base.__weakref__); #endif @@ -444149,11 +521194,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DEMA_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_DEMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11DEMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_DEMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11DEMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15649, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DEMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream)) __PYX_ERR(3, 15649, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream)) __PYX_ERR(3, 17348, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream = &__pyx_type_5talib_7_ta_lib_DEMA_Stream; #endif @@ -444161,7 +521206,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DEMA_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 15649, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 17348, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream); @@ -444171,8 +521216,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DEMA_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 15649, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 15649, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 17348, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 17348, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream, __pyx_base.__weakref__); #endif @@ -444198,11 +521243,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DIV_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_DIV_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10DIV_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_DIV_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10DIV_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15786, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DIV_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream)) __PYX_ERR(3, 15786, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream)) __PYX_ERR(3, 17485, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream = &__pyx_type_5talib_7_ta_lib_DIV_Stream; #endif @@ -444210,7 +521255,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DIV_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 15786, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 17485, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream); @@ -444220,8 +521265,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DIV_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_vtabptr_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 15786, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DIV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 15786, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_vtabptr_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 17485, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DIV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 17485, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream, __pyx_base.__weakref__); #endif @@ -444247,11 +521292,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_DONCHIAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_DONCHIAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15924, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DONCHIAN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream)) __PYX_ERR(3, 15924, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream)) __PYX_ERR(3, 17623, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream = &__pyx_type_5talib_7_ta_lib_DONCHIAN_Stream; #endif @@ -444259,7 +521304,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 15924, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 17623, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream); @@ -444269,8 +521314,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 15924, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 15924, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 17623, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 17623, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_base.__weakref__); #endif @@ -444282,6 +521327,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream(__pyx return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DOSC_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DOSC_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_DOSC_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_DOSC_Stream = &__pyx_vtable_5talib_7_ta_lib_DOSC_Stream; + __pyx_vtable_5talib_7_ta_lib_DOSC_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_DOSC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11DOSC_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_DOSC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11DOSC_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DOSC_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream)) __PYX_ERR(3, 17776, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream = &__pyx_type_5talib_7_ta_lib_DOSC_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream) < (0)) __PYX_ERR(3, 17776, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_DOSC_Stream) < (0)) __PYX_ERR(3, 17776, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream) < (0)) __PYX_ERR(3, 17776, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DOSC_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DPO_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -444296,11 +521390,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DPO_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_DPO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10DPO_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_DPO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10DPO_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16077, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DPO_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream)) __PYX_ERR(3, 16077, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream)) __PYX_ERR(3, 17916, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream = &__pyx_type_5talib_7_ta_lib_DPO_Stream; #endif @@ -444308,7 +521402,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DPO_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 16077, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 17916, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream); @@ -444318,8 +521412,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DPO_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_vtabptr_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 16077, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DPO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 16077, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_vtabptr_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 17916, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DPO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 17916, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream, __pyx_base.__weakref__); #endif @@ -444345,11 +521439,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DX_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_DX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9DX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_DX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9DX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16214, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream)) __PYX_ERR(3, 16214, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream)) __PYX_ERR(3, 18053, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream = &__pyx_type_5talib_7_ta_lib_DX_Stream; #endif @@ -444357,7 +521451,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DX_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 16214, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 18053, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream); @@ -444367,8 +521461,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DX_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_vtabptr_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 16214, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 16214, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_vtabptr_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 18053, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 18053, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DX_Stream, __pyx_base.__weakref__); #endif @@ -444394,11 +521488,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EFI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_EFI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10EFI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_EFI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10EFI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16355, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_EFI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream)) __PYX_ERR(3, 16355, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream)) __PYX_ERR(3, 18194, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream = &__pyx_type_5talib_7_ta_lib_EFI_Stream; #endif @@ -444406,7 +521500,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EFI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 16355, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 18194, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream); @@ -444416,8 +521510,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EFI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 16355, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 16355, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 18194, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 18194, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream, __pyx_base.__weakref__); #endif @@ -444443,11 +521537,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMA_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_EMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10EMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_EMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10EMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16494, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_EMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream)) __PYX_ERR(3, 16494, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream)) __PYX_ERR(3, 18333, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream = &__pyx_type_5talib_7_ta_lib_EMA_Stream; #endif @@ -444455,7 +521549,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMA_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 16494, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 18333, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream); @@ -444465,8 +521559,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMA_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 16494, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 16494, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 18333, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 18333, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream, __pyx_base.__weakref__); #endif @@ -444478,6 +521572,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMA_Stream(__pyx_msta return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMV_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMV_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_EMV_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_EMV_Stream = &__pyx_vtable_5talib_7_ta_lib_EMV_Stream; + __pyx_vtable_5talib_7_ta_lib_EMV_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_EMV_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10EMV_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_EMV_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10EMV_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMV_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_EMV_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMV_Stream)) __PYX_ERR(3, 18470, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMV_Stream = &__pyx_type_5talib_7_ta_lib_EMV_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMV_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMV_Stream) < (0)) __PYX_ERR(3, 18470, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMV_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMV_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMV_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMV_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMV_Stream, __pyx_vtabptr_5talib_7_ta_lib_EMV_Stream) < (0)) __PYX_ERR(3, 18470, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EMV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMV_Stream) < (0)) __PYX_ERR(3, 18470, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMV_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMV_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_EMV_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ER_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -444492,11 +521635,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ER_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_ER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9ER_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9ER_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16631, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ER_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream)) __PYX_ERR(3, 16631, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream)) __PYX_ERR(3, 18612, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream = &__pyx_type_5talib_7_ta_lib_ER_Stream; #endif @@ -444504,7 +521647,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ER_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 16631, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 18612, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream); @@ -444514,8 +521657,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ER_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_vtabptr_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 16631, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 16631, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_vtabptr_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 18612, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 18612, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ER_Stream, __pyx_base.__weakref__); #endif @@ -444541,11 +521684,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ERI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_ERI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ERI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ERI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ERI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16768, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ERI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream)) __PYX_ERR(3, 16768, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream)) __PYX_ERR(3, 18749, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream = &__pyx_type_5talib_7_ta_lib_ERI_Stream; #endif @@ -444553,7 +521696,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ERI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 16768, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 18749, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream); @@ -444563,8 +521706,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ERI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_vtabptr_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 16768, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ERI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 16768, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_vtabptr_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 18749, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ERI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 18749, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream, __pyx_base.__weakref__); #endif @@ -444590,11 +521733,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EXP_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_EXP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10EXP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_EXP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10EXP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16916, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_EXP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream)) __PYX_ERR(3, 16916, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream)) __PYX_ERR(3, 18897, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream = &__pyx_type_5talib_7_ta_lib_EXP_Stream; #endif @@ -444602,7 +521745,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EXP_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 16916, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 18897, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream); @@ -444612,8 +521755,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EXP_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_vtabptr_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 16916, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EXP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 16916, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_vtabptr_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 18897, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EXP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 18897, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream, __pyx_base.__weakref__); #endif @@ -444625,6 +521768,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EXP_Stream(__pyx_msta return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FISHER_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FISHER_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_FISHER_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_FISHER_Stream = &__pyx_vtable_5talib_7_ta_lib_FISHER_Stream; + __pyx_vtable_5talib_7_ta_lib_FISHER_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_FISHER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13FISHER_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_FISHER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13FISHER_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_FISHER_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream)) __PYX_ERR(3, 19032, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream = &__pyx_type_5talib_7_ta_lib_FISHER_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream) < (0)) __PYX_ERR(3, 19032, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream, __pyx_vtabptr_5talib_7_ta_lib_FISHER_Stream) < (0)) __PYX_ERR(3, 19032, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FISHER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream) < (0)) __PYX_ERR(3, 19032, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_FISHER_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FLOOR_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -444639,11 +521831,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FLOOR_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_FLOOR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12FLOOR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_FLOOR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12FLOOR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17051, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_FLOOR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream)) __PYX_ERR(3, 17051, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream)) __PYX_ERR(3, 19178, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream = &__pyx_type_5talib_7_ta_lib_FLOOR_Stream; #endif @@ -444651,7 +521843,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FLOOR_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 17051, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 19178, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream); @@ -444661,8 +521853,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FLOOR_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_vtabptr_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 17051, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FLOOR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 17051, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_vtabptr_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 19178, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FLOOR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 19178, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream, __pyx_base.__weakref__); #endif @@ -444688,11 +521880,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FOSC_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_FOSC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11FOSC_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_FOSC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11FOSC_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17186, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_FOSC_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream)) __PYX_ERR(3, 17186, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream)) __PYX_ERR(3, 19313, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream = &__pyx_type_5talib_7_ta_lib_FOSC_Stream; #endif @@ -444700,7 +521892,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FOSC_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 17186, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 19313, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream); @@ -444710,8 +521902,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FOSC_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 17186, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 17186, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 19313, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 19313, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream, __pyx_base.__weakref__); #endif @@ -444737,11 +521929,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRACTAL_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_FRACTAL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_FRACTAL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17323, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_FRACTAL_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream)) __PYX_ERR(3, 17323, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream)) __PYX_ERR(3, 19450, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream = &__pyx_type_5talib_7_ta_lib_FRACTAL_Stream; #endif @@ -444749,7 +521941,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRACTAL_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 17323, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 19450, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream); @@ -444759,8 +521951,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRACTAL_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_vtabptr_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 17323, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FRACTAL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 17323, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_vtabptr_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 19450, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FRACTAL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 19450, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream, __pyx_base.__weakref__); #endif @@ -444772,6 +521964,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRACTAL_Stream(__pyx_ return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRAMA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRAMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_FRAMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_FRAMA_Stream = &__pyx_vtable_5talib_7_ta_lib_FRAMA_Stream; + __pyx_vtable_5talib_7_ta_lib_FRAMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_FRAMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12FRAMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_FRAMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12FRAMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_FRAMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream)) __PYX_ERR(3, 19597, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream = &__pyx_type_5talib_7_ta_lib_FRAMA_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream) < (0)) __PYX_ERR(3, 19597, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_FRAMA_Stream) < (0)) __PYX_ERR(3, 19597, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FRAMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream) < (0)) __PYX_ERR(3, 19597, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_FRAMA_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HA_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -444786,11 +522027,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HA_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_HA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9HA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9HA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17470, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream)) __PYX_ERR(3, 17470, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream)) __PYX_ERR(3, 19736, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream = &__pyx_type_5talib_7_ta_lib_HA_Stream; #endif @@ -444798,7 +522039,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HA_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 17470, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 19736, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream); @@ -444808,8 +522049,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HA_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_vtabptr_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 17470, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 17470, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_vtabptr_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 19736, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 19736, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HA_Stream, __pyx_base.__weakref__); #endif @@ -444835,11 +522076,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HMA_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_HMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10HMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10HMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17632, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream)) __PYX_ERR(3, 17632, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream)) __PYX_ERR(3, 19898, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream = &__pyx_type_5talib_7_ta_lib_HMA_Stream; #endif @@ -444847,7 +522088,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HMA_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 17632, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 19898, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream); @@ -444857,8 +522098,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HMA_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 17632, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 17632, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 19898, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 19898, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream, __pyx_base.__weakref__); #endif @@ -444884,11 +522125,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream(__ __pyx_vtable_5talib_7_ta_lib_HT_DCPERIOD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HT_DCPERIOD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17769, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream)) __PYX_ERR(3, 17769, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream)) __PYX_ERR(3, 20035, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream = &__pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream; #endif @@ -444896,7 +522137,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 17769, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 20035, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream); @@ -444906,8 +522147,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 17769, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 17769, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 20035, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 20035, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_base.__weakref__); #endif @@ -444933,11 +522174,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream(__p __pyx_vtable_5talib_7_ta_lib_HT_DCPHASE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HT_DCPHASE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17904, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_DCPHASE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream)) __PYX_ERR(3, 17904, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream)) __PYX_ERR(3, 20170, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream = &__pyx_type_5talib_7_ta_lib_HT_DCPHASE_Stream; #endif @@ -444945,7 +522186,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 17904, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 20170, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream); @@ -444955,8 +522196,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 17904, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 17904, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 20170, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 20170, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_base.__weakref__); #endif @@ -444982,11 +522223,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream(__py __pyx_vtable_5talib_7_ta_lib_HT_PHASOR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HT_PHASOR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18039, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_PHASOR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream)) __PYX_ERR(3, 18039, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream)) __PYX_ERR(3, 20305, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream = &__pyx_type_5talib_7_ta_lib_HT_PHASOR_Stream; #endif @@ -444994,7 +522235,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 18039, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 20305, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream); @@ -445004,8 +522245,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 18039, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 18039, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 20305, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 20305, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_base.__weakref__); #endif @@ -445031,11 +522272,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_SINE_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_HT_SINE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HT_SINE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18181, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_SINE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream)) __PYX_ERR(3, 18181, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream)) __PYX_ERR(3, 20447, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream = &__pyx_type_5talib_7_ta_lib_HT_SINE_Stream; #endif @@ -445043,7 +522284,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_SINE_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 18181, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 20447, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream); @@ -445053,8 +522294,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_SINE_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 18181, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_SINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 18181, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 20447, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_SINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 20447, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream, __pyx_base.__weakref__); #endif @@ -445080,11 +522321,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream(_ __pyx_vtable_5talib_7_ta_lib_HT_TRENDLINE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HT_TRENDLINE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18323, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream)) __PYX_ERR(3, 18323, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream)) __PYX_ERR(3, 20589, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream = &__pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream; #endif @@ -445092,7 +522333,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 18323, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 20589, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream); @@ -445102,8 +522343,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 18323, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 18323, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 20589, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 20589, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_base.__weakref__); #endif @@ -445129,11 +522370,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream(_ __pyx_vtable_5talib_7_ta_lib_HT_TRENDMODE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HT_TRENDMODE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18458, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream)) __PYX_ERR(3, 18458, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream)) __PYX_ERR(3, 20724, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream = &__pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream; #endif @@ -445141,7 +522382,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 18458, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 20724, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream); @@ -445151,8 +522392,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 18458, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 18458, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 20724, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 20724, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_base.__weakref__); #endif @@ -445164,6 +522405,104 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream(_ return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IBS_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IBS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_IBS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_IBS_Stream = &__pyx_vtable_5talib_7_ta_lib_IBS_Stream; + __pyx_vtable_5talib_7_ta_lib_IBS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_IBS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10IBS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_IBS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10IBS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IBS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_IBS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IBS_Stream)) __PYX_ERR(3, 20859, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IBS_Stream = &__pyx_type_5talib_7_ta_lib_IBS_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IBS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IBS_Stream) < (0)) __PYX_ERR(3, 20859, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IBS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IBS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IBS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IBS_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IBS_Stream, __pyx_vtabptr_5talib_7_ta_lib_IBS_Stream) < (0)) __PYX_ERR(3, 20859, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_IBS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IBS_Stream) < (0)) __PYX_ERR(3, 20859, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IBS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IBS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_IBS_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ICHIMOKU_Stream = &__pyx_vtable_5talib_7_ta_lib_ICHIMOKU_Stream; + __pyx_vtable_5talib_7_ta_lib_ICHIMOKU_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ICHIMOKU_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15ICHIMOKU_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ICHIMOKU_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15ICHIMOKU_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ICHIMOKU_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream)) __PYX_ERR(3, 20998, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream = &__pyx_type_5talib_7_ta_lib_ICHIMOKU_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream) < (0)) __PYX_ERR(3, 20998, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream, __pyx_vtabptr_5talib_7_ta_lib_ICHIMOKU_Stream) < (0)) __PYX_ERR(3, 20998, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ICHIMOKU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream) < (0)) __PYX_ERR(3, 20998, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IMI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -445178,11 +522517,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IMI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_IMI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10IMI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_IMI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10IMI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18593, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_IMI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream)) __PYX_ERR(3, 18593, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream)) __PYX_ERR(3, 21160, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream = &__pyx_type_5talib_7_ta_lib_IMI_Stream; #endif @@ -445190,7 +522529,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IMI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 18593, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 21160, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream); @@ -445200,8 +522539,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IMI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 18593, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_IMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 18593, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 21160, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_IMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 21160, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream, __pyx_base.__weakref__); #endif @@ -445227,11 +522566,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KAMA_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_KAMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11KAMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_KAMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11KAMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18732, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_KAMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream)) __PYX_ERR(3, 18732, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream)) __PYX_ERR(3, 21299, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream = &__pyx_type_5talib_7_ta_lib_KAMA_Stream; #endif @@ -445239,7 +522578,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KAMA_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 18732, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 21299, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream); @@ -445249,8 +522588,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KAMA_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 18732, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KAMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 18732, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 21299, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KAMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 21299, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream, __pyx_base.__weakref__); #endif @@ -445276,11 +522615,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KC_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_KC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9KC_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_KC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9KC_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18869, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_KC_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream)) __PYX_ERR(3, 18869, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream)) __PYX_ERR(3, 21436, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream = &__pyx_type_5talib_7_ta_lib_KC_Stream; #endif @@ -445288,7 +522627,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KC_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 18869, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 21436, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream); @@ -445298,8 +522637,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KC_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_vtabptr_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 18869, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 18869, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_vtabptr_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 21436, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 21436, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_KC_Stream, __pyx_base.__weakref__); #endif @@ -445325,11 +522664,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KDJ_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_KDJ_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10KDJ_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_KDJ_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10KDJ_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19026, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_KDJ_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream)) __PYX_ERR(3, 19026, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream)) __PYX_ERR(3, 21593, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream = &__pyx_type_5talib_7_ta_lib_KDJ_Stream; #endif @@ -445337,7 +522676,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KDJ_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 19026, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 21593, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream); @@ -445347,8 +522686,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KDJ_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_vtabptr_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 19026, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KDJ_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 19026, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_vtabptr_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 21593, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KDJ_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 21593, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream, __pyx_base.__weakref__); #endif @@ -445360,6 +522699,202 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KDJ_Stream(__pyx_msta return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KST_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KST_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_KST_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_KST_Stream = &__pyx_vtable_5talib_7_ta_lib_KST_Stream; + __pyx_vtable_5talib_7_ta_lib_KST_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_KST_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10KST_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_KST_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10KST_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KST_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_KST_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KST_Stream)) __PYX_ERR(3, 21752, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KST_Stream = &__pyx_type_5talib_7_ta_lib_KST_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KST_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KST_Stream) < (0)) __PYX_ERR(3, 21752, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KST_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KST_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KST_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KST_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KST_Stream, __pyx_vtabptr_5talib_7_ta_lib_KST_Stream) < (0)) __PYX_ERR(3, 21752, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KST_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KST_Stream) < (0)) __PYX_ERR(3, 21752, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KST_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KST_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_KST_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KSTEXT_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KSTEXT_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_KSTEXT_Stream = &__pyx_vtable_5talib_7_ta_lib_KSTEXT_Stream; + __pyx_vtable_5talib_7_ta_lib_KSTEXT_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_KSTEXT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13KSTEXT_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_KSTEXT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13KSTEXT_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21904, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_KSTEXT_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream)) __PYX_ERR(3, 21904, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream = &__pyx_type_5talib_7_ta_lib_KSTEXT_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream) < (0)) __PYX_ERR(3, 21904, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream, __pyx_vtabptr_5talib_7_ta_lib_KSTEXT_Stream) < (0)) __PYX_ERR(3, 21904, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KSTEXT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream) < (0)) __PYX_ERR(3, 21904, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_KSTEXT_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_KURTOSIS_Stream = &__pyx_vtable_5talib_7_ta_lib_KURTOSIS_Stream; + __pyx_vtable_5talib_7_ta_lib_KURTOSIS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_KURTOSIS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15KURTOSIS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_KURTOSIS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15KURTOSIS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_KURTOSIS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream)) __PYX_ERR(3, 22058, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream = &__pyx_type_5talib_7_ta_lib_KURTOSIS_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream) < (0)) __PYX_ERR(3, 22058, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream, __pyx_vtabptr_5talib_7_ta_lib_KURTOSIS_Stream) < (0)) __PYX_ERR(3, 22058, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KURTOSIS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream) < (0)) __PYX_ERR(3, 22058, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KVO_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KVO_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_KVO_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_KVO_Stream = &__pyx_vtable_5talib_7_ta_lib_KVO_Stream; + __pyx_vtable_5talib_7_ta_lib_KVO_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_KVO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10KVO_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_KVO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10KVO_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KVO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_KVO_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KVO_Stream)) __PYX_ERR(3, 22195, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KVO_Stream = &__pyx_type_5talib_7_ta_lib_KVO_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KVO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KVO_Stream) < (0)) __PYX_ERR(3, 22195, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KVO_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KVO_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KVO_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KVO_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KVO_Stream, __pyx_vtabptr_5talib_7_ta_lib_KVO_Stream) < (0)) __PYX_ERR(3, 22195, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KVO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KVO_Stream) < (0)) __PYX_ERR(3, 22195, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KVO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KVO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_KVO_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -445374,11 +522909,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_Stream(__py __pyx_vtable_5talib_7_ta_lib_LINEARREG_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_LINEARREG_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19185, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LINEARREG_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream)) __PYX_ERR(3, 19185, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream)) __PYX_ERR(3, 22347, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream = &__pyx_type_5talib_7_ta_lib_LINEARREG_Stream; #endif @@ -445386,7 +522921,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 19185, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 22347, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream); @@ -445396,8 +522931,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 19185, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 19185, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 22347, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 22347, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream, __pyx_base.__weakref__); #endif @@ -445423,11 +522958,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Strea __pyx_vtable_5talib_7_ta_lib_LINEARREG_ANGLE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_LINEARREG_ANGLE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19322, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream)) __PYX_ERR(3, 19322, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream)) __PYX_ERR(3, 22484, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream = &__pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream; #endif @@ -445435,7 +522970,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 19322, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 22484, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream); @@ -445445,8 +522980,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 19322, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 19322, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 22484, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 22484, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_base.__weakref__); #endif @@ -445472,11 +523007,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_S __pyx_vtable_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19459, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream)) __PYX_ERR(3, 19459, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream)) __PYX_ERR(3, 22621, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream = &__pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream; #endif @@ -445484,7 +523019,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_S __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 19459, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 22621, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream); @@ -445494,8 +523029,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_S __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 19459, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 19459, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 22621, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 22621, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_base.__weakref__); #endif @@ -445521,11 +523056,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Strea __pyx_vtable_5talib_7_ta_lib_LINEARREG_SLOPE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_LINEARREG_SLOPE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19596, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LINEARREG_SLOPE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream)) __PYX_ERR(3, 19596, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream)) __PYX_ERR(3, 22758, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream = &__pyx_type_5talib_7_ta_lib_LINEARREG_SLOPE_Stream; #endif @@ -445533,7 +523068,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 19596, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 22758, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream); @@ -445543,8 +523078,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 19596, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 19596, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 22758, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 22758, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_base.__weakref__); #endif @@ -445570,11 +523105,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LN_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_LN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9LN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_LN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9LN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19733, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream)) __PYX_ERR(3, 19733, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream)) __PYX_ERR(3, 22895, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream = &__pyx_type_5talib_7_ta_lib_LN_Stream; #endif @@ -445582,7 +523117,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LN_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 19733, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 22895, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream); @@ -445592,8 +523127,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LN_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_vtabptr_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 19733, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 19733, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_vtabptr_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 22895, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 22895, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LN_Stream, __pyx_base.__weakref__); #endif @@ -445619,11 +523154,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LOG10_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_LOG10_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12LOG10_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_LOG10_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12LOG10_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19868, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LOG10_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream)) __PYX_ERR(3, 19868, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream)) __PYX_ERR(3, 23030, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream = &__pyx_type_5talib_7_ta_lib_LOG10_Stream; #endif @@ -445631,7 +523166,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LOG10_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 19868, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 23030, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream); @@ -445641,8 +523176,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LOG10_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_vtabptr_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 19868, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LOG10_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 19868, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_vtabptr_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 23030, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LOG10_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 23030, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream, __pyx_base.__weakref__); #endif @@ -445668,11 +523203,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MA_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_MA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9MA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9MA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20003, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream)) __PYX_ERR(3, 20003, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream)) __PYX_ERR(3, 23165, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream = &__pyx_type_5talib_7_ta_lib_MA_Stream; #endif @@ -445680,7 +523215,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MA_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 20003, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 23165, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream); @@ -445690,8 +523225,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MA_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_vtabptr_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 20003, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 20003, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_vtabptr_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 23165, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 23165, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MA_Stream, __pyx_base.__weakref__); #endif @@ -445717,11 +523252,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACD_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_MACD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11MACD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MACD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11MACD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20141, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MACD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream)) __PYX_ERR(3, 20141, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream)) __PYX_ERR(3, 23303, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream = &__pyx_type_5talib_7_ta_lib_MACD_Stream; #endif @@ -445729,7 +523264,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACD_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 20141, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 23303, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream); @@ -445739,8 +523274,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACD_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 20141, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 20141, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 23303, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 23303, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream, __pyx_base.__weakref__); #endif @@ -445766,11 +523301,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDEXT_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_MACDEXT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MACDEXT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20294, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MACDEXT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream)) __PYX_ERR(3, 20294, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream)) __PYX_ERR(3, 23456, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream = &__pyx_type_5talib_7_ta_lib_MACDEXT_Stream; #endif @@ -445778,7 +523313,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDEXT_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 20294, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 23456, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream); @@ -445788,8 +523323,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDEXT_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 20294, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACDEXT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 20294, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 23456, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACDEXT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 23456, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream, __pyx_base.__weakref__); #endif @@ -445815,11 +523350,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDFIX_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_MACDFIX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MACDFIX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20450, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MACDFIX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream)) __PYX_ERR(3, 20450, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream)) __PYX_ERR(3, 23612, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream = &__pyx_type_5talib_7_ta_lib_MACDFIX_Stream; #endif @@ -445827,7 +523362,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDFIX_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 20450, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 23612, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream); @@ -445837,8 +523372,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDFIX_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 20450, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACDFIX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 20450, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 23612, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACDFIX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 23612, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream, __pyx_base.__weakref__); #endif @@ -445864,11 +523399,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAMA_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_MAMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11MAMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MAMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11MAMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20601, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MAMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream)) __PYX_ERR(3, 20601, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream)) __PYX_ERR(3, 23763, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream = &__pyx_type_5talib_7_ta_lib_MAMA_Stream; #endif @@ -445876,7 +523411,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAMA_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 20601, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 23763, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream); @@ -445886,8 +523421,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAMA_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 20601, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 20601, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 23763, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 23763, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream, __pyx_base.__weakref__); #endif @@ -445913,11 +523448,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MARKETFI_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MARKETFI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MARKETFI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20746, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MARKETFI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream)) __PYX_ERR(3, 20746, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream)) __PYX_ERR(3, 23908, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream = &__pyx_type_5talib_7_ta_lib_MARKETFI_Stream; #endif @@ -445925,7 +523460,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MARKETFI_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 20746, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 23908, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream); @@ -445935,8 +523470,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MARKETFI_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 20746, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MARKETFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 20746, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 23908, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MARKETFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 23908, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream, __pyx_base.__weakref__); #endif @@ -445962,11 +523497,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MASSI_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_MASSI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12MASSI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MASSI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12MASSI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20885, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MASSI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream)) __PYX_ERR(3, 20885, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream)) __PYX_ERR(3, 24047, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream = &__pyx_type_5talib_7_ta_lib_MASSI_Stream; #endif @@ -445974,7 +523509,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MASSI_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 20885, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 24047, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream); @@ -445984,8 +523519,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MASSI_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 20885, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MASSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 20885, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 24047, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MASSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 24047, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream, __pyx_base.__weakref__); #endif @@ -446011,11 +523546,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAVP_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_MAVP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11MAVP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MAVP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11MAVP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21025, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MAVP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream)) __PYX_ERR(3, 21025, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream)) __PYX_ERR(3, 24187, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream = &__pyx_type_5talib_7_ta_lib_MAVP_Stream; #endif @@ -446023,7 +523558,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAVP_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 21025, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 24187, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream); @@ -446033,8 +523568,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAVP_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 21025, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAVP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 21025, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 24187, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAVP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 24187, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream, __pyx_base.__weakref__); #endif @@ -446060,11 +523595,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAX_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_MAX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10MAX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MAX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10MAX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21167, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MAX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream)) __PYX_ERR(3, 21167, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream)) __PYX_ERR(3, 24329, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream = &__pyx_type_5talib_7_ta_lib_MAX_Stream; #endif @@ -446072,7 +523607,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAX_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 21167, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 24329, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream); @@ -446082,8 +523617,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAX_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 21167, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 21167, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 24329, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 24329, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream, __pyx_base.__weakref__); #endif @@ -446109,11 +523644,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MAXINDEX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MAXINDEX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21304, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MAXINDEX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream)) __PYX_ERR(3, 21304, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream)) __PYX_ERR(3, 24466, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream = &__pyx_type_5talib_7_ta_lib_MAXINDEX_Stream; #endif @@ -446121,7 +523656,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 21304, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 24466, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream); @@ -446131,8 +523666,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 21304, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAXINDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 21304, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 24466, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAXINDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 24466, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_base.__weakref__); #endif @@ -446144,6 +523679,104 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream(__pyx return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MCGD_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MCGD_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MCGD_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MCGD_Stream = &__pyx_vtable_5talib_7_ta_lib_MCGD_Stream; + __pyx_vtable_5talib_7_ta_lib_MCGD_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MCGD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11MCGD_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MCGD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11MCGD_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MCGD_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream)) __PYX_ERR(3, 24613, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream = &__pyx_type_5talib_7_ta_lib_MCGD_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream) < (0)) __PYX_ERR(3, 24613, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream, __pyx_vtabptr_5talib_7_ta_lib_MCGD_Stream) < (0)) __PYX_ERR(3, 24613, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MCGD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream) < (0)) __PYX_ERR(3, 24613, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MCGD_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDIAN_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDIAN_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MEDIAN_Stream = &__pyx_vtable_5talib_7_ta_lib_MEDIAN_Stream; + __pyx_vtable_5talib_7_ta_lib_MEDIAN_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MEDIAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13MEDIAN_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MEDIAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13MEDIAN_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MEDIAN_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream)) __PYX_ERR(3, 24750, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream = &__pyx_type_5talib_7_ta_lib_MEDIAN_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream) < (0)) __PYX_ERR(3, 24750, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_MEDIAN_Stream) < (0)) __PYX_ERR(3, 24750, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MEDIAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream) < (0)) __PYX_ERR(3, 24750, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MEDIAN_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -446158,11 +523791,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MEDPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MEDPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21451, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MEDPRICE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream)) __PYX_ERR(3, 21451, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream)) __PYX_ERR(3, 24887, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream = &__pyx_type_5talib_7_ta_lib_MEDPRICE_Stream; #endif @@ -446170,7 +523803,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 21451, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 24887, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream); @@ -446180,8 +523813,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 21451, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MEDPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 21451, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 24887, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MEDPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 24887, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_base.__weakref__); #endif @@ -446207,11 +523840,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MFI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_MFI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10MFI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MFI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10MFI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21588, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MFI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream)) __PYX_ERR(3, 21588, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream)) __PYX_ERR(3, 25024, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream = &__pyx_type_5talib_7_ta_lib_MFI_Stream; #endif @@ -446219,7 +523852,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MFI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 21588, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 25024, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream); @@ -446229,8 +523862,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MFI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 21588, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 21588, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 25024, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 25024, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream, __pyx_base.__weakref__); #endif @@ -446256,11 +523889,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MIDPOINT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MIDPOINT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21731, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MIDPOINT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream)) __PYX_ERR(3, 21731, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream)) __PYX_ERR(3, 25167, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream = &__pyx_type_5talib_7_ta_lib_MIDPOINT_Stream; #endif @@ -446268,7 +523901,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 21731, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 25167, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream); @@ -446278,8 +523911,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 21731, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIDPOINT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 21731, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 25167, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIDPOINT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 25167, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_base.__weakref__); #endif @@ -446305,11 +523938,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MIDPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MIDPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21868, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MIDPRICE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream)) __PYX_ERR(3, 21868, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream)) __PYX_ERR(3, 25304, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream = &__pyx_type_5talib_7_ta_lib_MIDPRICE_Stream; #endif @@ -446317,7 +523950,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 21868, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 25304, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream); @@ -446327,8 +523960,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 21868, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIDPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 21868, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 25304, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIDPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 25304, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_base.__weakref__); #endif @@ -446354,11 +523987,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIN_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_MIN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10MIN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MIN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10MIN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22007, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MIN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream)) __PYX_ERR(3, 22007, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream)) __PYX_ERR(3, 25443, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream = &__pyx_type_5talib_7_ta_lib_MIN_Stream; #endif @@ -446366,7 +523999,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIN_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 22007, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 25443, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream); @@ -446376,8 +524009,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIN_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 22007, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 22007, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 25443, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 25443, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream, __pyx_base.__weakref__); #endif @@ -446403,11 +524036,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MININDEX_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MININDEX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MININDEX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MININDEX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MININDEX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22144, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MININDEX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream)) __PYX_ERR(3, 22144, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream)) __PYX_ERR(3, 25580, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream = &__pyx_type_5talib_7_ta_lib_MININDEX_Stream; #endif @@ -446415,7 +524048,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MININDEX_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 22144, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 25580, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream); @@ -446425,8 +524058,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MININDEX_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 22144, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MININDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 22144, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 25580, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MININDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 25580, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream, __pyx_base.__weakref__); #endif @@ -446452,11 +524085,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAX_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_MINMAX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13MINMAX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MINMAX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13MINMAX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22291, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MINMAX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream)) __PYX_ERR(3, 22291, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream)) __PYX_ERR(3, 25727, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream = &__pyx_type_5talib_7_ta_lib_MINMAX_Stream; #endif @@ -446464,7 +524097,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAX_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 22291, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 25727, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream); @@ -446474,8 +524107,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAX_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 22291, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINMAX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 22291, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 25727, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINMAX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 25727, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream, __pyx_base.__weakref__); #endif @@ -446501,11 +524134,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream(__ __pyx_vtable_5talib_7_ta_lib_MINMAXINDEX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MINMAXINDEX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22435, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MINMAXINDEX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream)) __PYX_ERR(3, 22435, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream)) __PYX_ERR(3, 25871, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream = &__pyx_type_5talib_7_ta_lib_MINMAXINDEX_Stream; #endif @@ -446513,7 +524146,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 22435, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 25871, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream); @@ -446523,8 +524156,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 22435, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 22435, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 25871, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 25871, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_base.__weakref__); #endif @@ -446550,11 +524183,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MINUS_DI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MINUS_DI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22592, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MINUS_DI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream)) __PYX_ERR(3, 22592, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream)) __PYX_ERR(3, 26028, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream = &__pyx_type_5talib_7_ta_lib_MINUS_DI_Stream; #endif @@ -446562,7 +524195,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 22592, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 26028, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream); @@ -446572,8 +524205,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 22592, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINUS_DI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 22592, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 26028, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINUS_DI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 26028, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_base.__weakref__); #endif @@ -446599,11 +524232,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MINUS_DM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MINUS_DM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22733, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MINUS_DM_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream)) __PYX_ERR(3, 22733, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream)) __PYX_ERR(3, 26169, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream = &__pyx_type_5talib_7_ta_lib_MINUS_DM_Stream; #endif @@ -446611,7 +524244,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 22733, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 26169, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream); @@ -446621,8 +524254,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 22733, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINUS_DM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 22733, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 26169, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINUS_DM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 26169, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_base.__weakref__); #endif @@ -446648,11 +524281,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MOM_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_MOM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10MOM_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MOM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10MOM_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22872, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MOM_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream)) __PYX_ERR(3, 22872, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream)) __PYX_ERR(3, 26308, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream = &__pyx_type_5talib_7_ta_lib_MOM_Stream; #endif @@ -446660,7 +524293,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MOM_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 22872, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 26308, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream); @@ -446670,8 +524303,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MOM_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_vtabptr_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 22872, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MOM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 22872, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_vtabptr_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 26308, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MOM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 26308, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream, __pyx_base.__weakref__); #endif @@ -446697,11 +524330,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MULT_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_MULT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11MULT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MULT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11MULT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23009, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MULT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream)) __PYX_ERR(3, 23009, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream)) __PYX_ERR(3, 26445, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream = &__pyx_type_5talib_7_ta_lib_MULT_Stream; #endif @@ -446709,7 +524342,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MULT_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 23009, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 26445, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream); @@ -446719,8 +524352,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MULT_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 23009, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MULT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 23009, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 26445, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MULT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 26445, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream, __pyx_base.__weakref__); #endif @@ -446746,11 +524379,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NATR_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_NATR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11NATR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_NATR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11NATR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23147, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_NATR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream)) __PYX_ERR(3, 23147, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream)) __PYX_ERR(3, 26583, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream = &__pyx_type_5talib_7_ta_lib_NATR_Stream; #endif @@ -446758,7 +524391,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NATR_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 23147, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 26583, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream); @@ -446768,8 +524401,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NATR_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_vtabptr_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 23147, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NATR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 23147, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_vtabptr_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 26583, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NATR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 26583, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream, __pyx_base.__weakref__); #endif @@ -446795,11 +524428,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NVI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_NVI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10NVI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_NVI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10NVI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23288, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_NVI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream)) __PYX_ERR(3, 23288, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream)) __PYX_ERR(3, 26724, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream = &__pyx_type_5talib_7_ta_lib_NVI_Stream; #endif @@ -446807,7 +524440,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NVI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 23288, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 26724, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream); @@ -446817,8 +524450,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NVI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 23288, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 23288, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 26724, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 26724, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream, __pyx_base.__weakref__); #endif @@ -446844,11 +524477,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_OBV_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_OBV_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10OBV_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_OBV_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10OBV_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23425, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_OBV_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream)) __PYX_ERR(3, 23425, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream)) __PYX_ERR(3, 26861, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream = &__pyx_type_5talib_7_ta_lib_OBV_Stream; #endif @@ -446856,7 +524489,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_OBV_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 23425, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 26861, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream); @@ -446866,8 +524499,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_OBV_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_vtabptr_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 23425, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_OBV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 23425, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_vtabptr_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 26861, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_OBV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 26861, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream, __pyx_base.__weakref__); #endif @@ -446879,6 +524512,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_OBV_Stream(__pyx_msta return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTB_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTB_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_PERCENTB_Stream = &__pyx_vtable_5talib_7_ta_lib_PERCENTB_Stream; + __pyx_vtable_5talib_7_ta_lib_PERCENTB_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_PERCENTB_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15PERCENTB_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_PERCENTB_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15PERCENTB_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PERCENTB_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream)) __PYX_ERR(3, 26999, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream = &__pyx_type_5talib_7_ta_lib_PERCENTB_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream) < (0)) __PYX_ERR(3, 26999, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream, __pyx_vtabptr_5talib_7_ta_lib_PERCENTB_Stream) < (0)) __PYX_ERR(3, 26999, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PERCENTB_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream) < (0)) __PYX_ERR(3, 26999, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PERCENTB_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -446893,11 +524575,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream(__p __pyx_vtable_5talib_7_ta_lib_PERCENTILE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PERCENTILE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23563, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PERCENTILE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream)) __PYX_ERR(3, 23563, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream)) __PYX_ERR(3, 27139, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream = &__pyx_type_5talib_7_ta_lib_PERCENTILE_Stream; #endif @@ -446905,7 +524587,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 23563, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 27139, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream); @@ -446915,8 +524597,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_vtabptr_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 23563, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PERCENTILE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 23563, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_vtabptr_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 27139, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PERCENTILE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 27139, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_base.__weakref__); #endif @@ -446942,11 +524624,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream(__ __pyx_vtable_5talib_7_ta_lib_PERCENTRANK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PERCENTRANK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23701, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream)) __PYX_ERR(3, 23701, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream)) __PYX_ERR(3, 27277, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream = &__pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream; #endif @@ -446954,7 +524636,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 23701, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 27277, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream); @@ -446964,8 +524646,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_vtabptr_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 23701, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PERCENTRANK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 23701, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_vtabptr_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 27277, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PERCENTRANK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 27277, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_base.__weakref__); #endif @@ -446991,11 +524673,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_PLUS_DI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PLUS_DI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23838, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PLUS_DI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream)) __PYX_ERR(3, 23838, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream)) __PYX_ERR(3, 27414, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream = &__pyx_type_5talib_7_ta_lib_PLUS_DI_Stream; #endif @@ -447003,7 +524685,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 23838, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 27414, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream); @@ -447013,8 +524695,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_vtabptr_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 23838, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PLUS_DI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 23838, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_vtabptr_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 27414, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PLUS_DI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 27414, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_base.__weakref__); #endif @@ -447040,11 +524722,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_PLUS_DM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PLUS_DM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23979, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PLUS_DM_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream)) __PYX_ERR(3, 23979, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream)) __PYX_ERR(3, 27555, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream = &__pyx_type_5talib_7_ta_lib_PLUS_DM_Stream; #endif @@ -447052,7 +524734,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 23979, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 27555, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream); @@ -447062,8 +524744,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_vtabptr_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 23979, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PLUS_DM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 23979, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_vtabptr_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 27555, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PLUS_DM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 27555, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_base.__weakref__); #endif @@ -447089,11 +524771,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PPO_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_PPO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10PPO_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PPO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10PPO_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24118, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PPO_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream)) __PYX_ERR(3, 24118, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream)) __PYX_ERR(3, 27694, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream = &__pyx_type_5talib_7_ta_lib_PPO_Stream; #endif @@ -447101,7 +524783,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PPO_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 24118, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 27694, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream); @@ -447111,8 +524793,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PPO_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_vtabptr_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 24118, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PPO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 24118, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_vtabptr_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 27694, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PPO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 27694, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream, __pyx_base.__weakref__); #endif @@ -447124,6 +524806,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PPO_Stream(__pyx_msta return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PSO_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PSO_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_PSO_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_PSO_Stream = &__pyx_vtable_5talib_7_ta_lib_PSO_Stream; + __pyx_vtable_5talib_7_ta_lib_PSO_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_PSO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10PSO_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_PSO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10PSO_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PSO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PSO_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PSO_Stream)) __PYX_ERR(3, 27833, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PSO_Stream = &__pyx_type_5talib_7_ta_lib_PSO_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PSO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PSO_Stream) < (0)) __PYX_ERR(3, 27833, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PSO_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PSO_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PSO_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PSO_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PSO_Stream, __pyx_vtabptr_5talib_7_ta_lib_PSO_Stream) < (0)) __PYX_ERR(3, 27833, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PSO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PSO_Stream) < (0)) __PYX_ERR(3, 27833, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PSO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PSO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PSO_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -447138,11 +524869,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_PVI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10PVI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PVI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10PVI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24257, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PVI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream)) __PYX_ERR(3, 24257, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream)) __PYX_ERR(3, 27975, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream = &__pyx_type_5talib_7_ta_lib_PVI_Stream; #endif @@ -447150,7 +524881,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 24257, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 27975, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream); @@ -447160,8 +524891,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 24257, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 24257, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 27975, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 27975, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream, __pyx_base.__weakref__); #endif @@ -447187,11 +524918,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVO_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_PVO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10PVO_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PVO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10PVO_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24394, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PVO_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream)) __PYX_ERR(3, 24394, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream)) __PYX_ERR(3, 28112, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream = &__pyx_type_5talib_7_ta_lib_PVO_Stream; #endif @@ -447199,7 +524930,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVO_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 24394, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 28112, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream); @@ -447209,8 +524940,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVO_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 24394, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 24394, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 28112, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 28112, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream, __pyx_base.__weakref__); #endif @@ -447236,11 +524967,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVT_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_PVT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10PVT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PVT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10PVT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24533, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PVT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream)) __PYX_ERR(3, 24533, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream)) __PYX_ERR(3, 28251, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream = &__pyx_type_5talib_7_ta_lib_PVT_Stream; #endif @@ -447248,7 +524979,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVT_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 24533, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 28251, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream); @@ -447258,8 +524989,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVT_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 24533, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 24533, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 28251, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 28251, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream, __pyx_base.__weakref__); #endif @@ -447285,11 +525016,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_QSTICK_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_QSTICK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13QSTICK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_QSTICK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13QSTICK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24670, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_QSTICK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream)) __PYX_ERR(3, 24670, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream)) __PYX_ERR(3, 28388, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream = &__pyx_type_5talib_7_ta_lib_QSTICK_Stream; #endif @@ -447297,7 +525028,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_QSTICK_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 24670, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 28388, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream); @@ -447307,8 +525038,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_QSTICK_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_vtabptr_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 24670, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_QSTICK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 24670, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_vtabptr_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 28388, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_QSTICK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 28388, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream, __pyx_base.__weakref__); #endif @@ -447334,11 +525065,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RMA_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_RMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10RMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_RMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10RMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24809, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_RMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream)) __PYX_ERR(3, 24809, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream)) __PYX_ERR(3, 28527, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream = &__pyx_type_5talib_7_ta_lib_RMA_Stream; #endif @@ -447346,7 +525077,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RMA_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 24809, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 28527, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream); @@ -447356,8 +525087,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RMA_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 24809, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 24809, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 28527, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 28527, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream, __pyx_base.__weakref__); #endif @@ -447383,11 +525114,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROC_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_ROC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ROC_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ROC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ROC_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24946, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ROC_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream)) __PYX_ERR(3, 24946, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream)) __PYX_ERR(3, 28664, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream = &__pyx_type_5talib_7_ta_lib_ROC_Stream; #endif @@ -447395,7 +525126,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROC_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 24946, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 28664, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream); @@ -447405,8 +525136,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROC_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 24946, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 24946, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 28664, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 28664, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream, __pyx_base.__weakref__); #endif @@ -447432,11 +525163,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCP_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_ROCP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ROCP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ROCP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ROCP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25083, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ROCP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream)) __PYX_ERR(3, 25083, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream)) __PYX_ERR(3, 28801, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream = &__pyx_type_5talib_7_ta_lib_ROCP_Stream; #endif @@ -447444,7 +525175,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCP_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 25083, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 28801, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream); @@ -447454,8 +525185,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCP_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 25083, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 25083, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 28801, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 28801, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream, __pyx_base.__weakref__); #endif @@ -447481,11 +525212,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_ROCR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ROCR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ROCR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ROCR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25220, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ROCR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream)) __PYX_ERR(3, 25220, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream)) __PYX_ERR(3, 28938, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream = &__pyx_type_5talib_7_ta_lib_ROCR_Stream; #endif @@ -447493,7 +525224,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 25220, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 28938, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream); @@ -447503,8 +525234,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 25220, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 25220, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 28938, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 28938, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream, __pyx_base.__weakref__); #endif @@ -447530,11 +525261,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR100_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_ROCR100_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14ROCR100_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ROCR100_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14ROCR100_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25357, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ROCR100_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream)) __PYX_ERR(3, 25357, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream)) __PYX_ERR(3, 29075, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream = &__pyx_type_5talib_7_ta_lib_ROCR100_Stream; #endif @@ -447542,7 +525273,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR100_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 25357, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 29075, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream); @@ -447552,8 +525283,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR100_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 25357, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCR100_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 25357, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 29075, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCR100_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 29075, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream, __pyx_base.__weakref__); #endif @@ -447565,6 +525296,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR100_Stream(__pyx_ return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ROGERSSATCHELL_Stream = &__pyx_vtable_5talib_7_ta_lib_ROGERSSATCHELL_Stream; + __pyx_vtable_5talib_7_ta_lib_ROGERSSATCHELL_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ROGERSSATCHELL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21ROGERSSATCHELL_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ROGERSSATCHELL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21ROGERSSATCHELL_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ROGERSSATCHELL_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream)) __PYX_ERR(3, 29212, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream = &__pyx_type_5talib_7_ta_lib_ROGERSSATCHELL_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream) < (0)) __PYX_ERR(3, 29212, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROGERSSATCHELL_Stream) < (0)) __PYX_ERR(3, 29212, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROGERSSATCHELL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream) < (0)) __PYX_ERR(3, 29212, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RSI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -447579,11 +525359,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RSI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_RSI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10RSI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_RSI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10RSI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25494, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_RSI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream)) __PYX_ERR(3, 25494, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream)) __PYX_ERR(3, 29356, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream = &__pyx_type_5talib_7_ta_lib_RSI_Stream; #endif @@ -447591,7 +525371,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RSI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 25494, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 29356, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream); @@ -447601,8 +525381,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RSI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 25494, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 25494, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 29356, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 29356, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream, __pyx_base.__weakref__); #endif @@ -447628,11 +525408,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_RVI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10RVI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_RVI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10RVI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25631, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_RVI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream)) __PYX_ERR(3, 25631, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream)) __PYX_ERR(3, 29493, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream = &__pyx_type_5talib_7_ta_lib_RVI_Stream; #endif @@ -447640,7 +525420,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 25631, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 29493, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream); @@ -447650,8 +525430,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 25631, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 25631, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 29493, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 29493, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream, __pyx_base.__weakref__); #endif @@ -447663,6 +525443,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVI_Stream(__pyx_msta return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVIR_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVIR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_RVIR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_RVIR_Stream = &__pyx_vtable_5talib_7_ta_lib_RVIR_Stream; + __pyx_vtable_5talib_7_ta_lib_RVIR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_RVIR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11RVIR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_RVIR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11RVIR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_RVIR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream)) __PYX_ERR(3, 29631, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream = &__pyx_type_5talib_7_ta_lib_RVIR_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream) < (0)) __PYX_ERR(3, 29631, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream, __pyx_vtabptr_5talib_7_ta_lib_RVIR_Stream) < (0)) __PYX_ERR(3, 29631, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RVIR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream) < (0)) __PYX_ERR(3, 29631, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_RVIR_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVOL_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -447677,11 +525506,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVOL_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_RVOL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11RVOL_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_RVOL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11RVOL_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25769, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_RVOL_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream)) __PYX_ERR(3, 25769, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream)) __PYX_ERR(3, 29771, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream = &__pyx_type_5talib_7_ta_lib_RVOL_Stream; #endif @@ -447689,7 +525518,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVOL_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 25769, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 29771, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream); @@ -447699,8 +525528,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVOL_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_vtabptr_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 25769, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RVOL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 25769, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_vtabptr_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 29771, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RVOL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 29771, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream, __pyx_base.__weakref__); #endif @@ -447726,11 +525555,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAR_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_SAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 25906, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream)) __PYX_ERR(3, 25906, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream)) __PYX_ERR(3, 29908, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream = &__pyx_type_5talib_7_ta_lib_SAR_Stream; #endif @@ -447738,7 +525567,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAR_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 25906, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 29908, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream); @@ -447748,8 +525577,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAR_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 25906, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 25906, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 29908, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 29908, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream, __pyx_base.__weakref__); #endif @@ -447775,11 +525604,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAREXT_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_SAREXT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13SAREXT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SAREXT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13SAREXT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26046, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SAREXT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream)) __PYX_ERR(3, 26046, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream)) __PYX_ERR(3, 30048, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream = &__pyx_type_5talib_7_ta_lib_SAREXT_Stream; #endif @@ -447787,7 +525616,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAREXT_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 26046, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 30048, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream); @@ -447797,8 +525626,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAREXT_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_vtabptr_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 26046, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SAREXT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 26046, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_vtabptr_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 30048, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SAREXT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 30048, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream, __pyx_base.__weakref__); #endif @@ -447810,6 +525639,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAREXT_Stream(__pyx_m return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SI_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SI_Stream = &__pyx_vtable_5talib_7_ta_lib_SI_Stream; + __pyx_vtable_5talib_7_ta_lib_SI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9SI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9SI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SI_Stream)) __PYX_ERR(3, 30194, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SI_Stream = &__pyx_type_5talib_7_ta_lib_SI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SI_Stream) < (0)) __PYX_ERR(3, 30194, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SI_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SI_Stream, __pyx_vtabptr_5talib_7_ta_lib_SI_Stream) < (0)) __PYX_ERR(3, 30194, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SI_Stream) < (0)) __PYX_ERR(3, 30194, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SIN_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -447824,11 +525702,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SIN_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_SIN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SIN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SIN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SIN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26192, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SIN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream)) __PYX_ERR(3, 26192, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream)) __PYX_ERR(3, 30337, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream = &__pyx_type_5talib_7_ta_lib_SIN_Stream; #endif @@ -447836,7 +525714,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SIN_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 26192, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 30337, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream); @@ -447846,8 +525724,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SIN_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 26192, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 26192, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 30337, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 30337, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream, __pyx_base.__weakref__); #endif @@ -447873,11 +525751,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SINH_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_SINH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11SINH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SINH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11SINH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26327, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SINH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream)) __PYX_ERR(3, 26327, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream)) __PYX_ERR(3, 30472, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream = &__pyx_type_5talib_7_ta_lib_SINH_Stream; #endif @@ -447885,7 +525763,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SINH_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 26327, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 30472, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream); @@ -447895,8 +525773,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SINH_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_vtabptr_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 26327, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SINH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 26327, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_vtabptr_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 30472, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SINH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 30472, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream, __pyx_base.__weakref__); #endif @@ -447922,11 +525800,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMA_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_SMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26462, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream)) __PYX_ERR(3, 26462, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream)) __PYX_ERR(3, 30607, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream = &__pyx_type_5talib_7_ta_lib_SMA_Stream; #endif @@ -447934,7 +525812,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMA_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 26462, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 30607, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream); @@ -447944,8 +525822,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMA_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 26462, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 26462, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 30607, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 30607, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream, __pyx_base.__weakref__); #endif @@ -447971,11 +525849,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_SMI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SMI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SMI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SMI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26599, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SMI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream)) __PYX_ERR(3, 26599, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream)) __PYX_ERR(3, 30744, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream = &__pyx_type_5talib_7_ta_lib_SMI_Stream; #endif @@ -447983,7 +525861,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 26599, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 30744, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream); @@ -447993,8 +525871,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 26599, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 26599, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 30744, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 30744, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream, __pyx_base.__weakref__); #endif @@ -448020,11 +525898,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQRT_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_SQRT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11SQRT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SQRT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11SQRT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26750, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SQRT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream)) __PYX_ERR(3, 26750, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream)) __PYX_ERR(3, 30895, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream = &__pyx_type_5talib_7_ta_lib_SQRT_Stream; #endif @@ -448032,7 +525910,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQRT_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 26750, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 30895, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream); @@ -448042,8 +525920,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQRT_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_vtabptr_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 26750, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SQRT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 26750, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_vtabptr_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 30895, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SQRT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 30895, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream, __pyx_base.__weakref__); #endif @@ -448055,6 +525933,104 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQRT_Stream(__pyx_mst return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQZMOM_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQZMOM_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SQZMOM_Stream = &__pyx_vtable_5talib_7_ta_lib_SQZMOM_Stream; + __pyx_vtable_5talib_7_ta_lib_SQZMOM_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SQZMOM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13SQZMOM_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SQZMOM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13SQZMOM_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SQZMOM_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream)) __PYX_ERR(3, 31030, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream = &__pyx_type_5talib_7_ta_lib_SQZMOM_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream) < (0)) __PYX_ERR(3, 31030, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream, __pyx_vtabptr_5talib_7_ta_lib_SQZMOM_Stream) < (0)) __PYX_ERR(3, 31030, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SQZMOM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream) < (0)) __PYX_ERR(3, 31030, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SQZMOM_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STC_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STC_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_STC_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_STC_Stream = &__pyx_vtable_5talib_7_ta_lib_STC_Stream; + __pyx_vtable_5talib_7_ta_lib_STC_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_STC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10STC_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_STC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10STC_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_STC_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STC_Stream)) __PYX_ERR(3, 31183, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STC_Stream = &__pyx_type_5talib_7_ta_lib_STC_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STC_Stream) < (0)) __PYX_ERR(3, 31183, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STC_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STC_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STC_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STC_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STC_Stream, __pyx_vtabptr_5talib_7_ta_lib_STC_Stream) < (0)) __PYX_ERR(3, 31183, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STC_Stream) < (0)) __PYX_ERR(3, 31183, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_STC_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STDDEV_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -448069,11 +526045,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STDDEV_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_STDDEV_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13STDDEV_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_STDDEV_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13STDDEV_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 26885, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_STDDEV_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream)) __PYX_ERR(3, 26885, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream)) __PYX_ERR(3, 31322, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream = &__pyx_type_5talib_7_ta_lib_STDDEV_Stream; #endif @@ -448081,7 +526057,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STDDEV_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 26885, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 31322, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream); @@ -448091,8 +526067,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STDDEV_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_vtabptr_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 26885, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STDDEV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 26885, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_vtabptr_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 31322, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STDDEV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 31322, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream, __pyx_base.__weakref__); #endif @@ -448118,11 +526094,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCH_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_STOCH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12STOCH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_STOCH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12STOCH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27023, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_STOCH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream)) __PYX_ERR(3, 27023, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream)) __PYX_ERR(3, 31460, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream = &__pyx_type_5talib_7_ta_lib_STOCH_Stream; #endif @@ -448130,7 +526106,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCH_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 27023, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 31460, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream); @@ -448140,8 +526116,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCH_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 27023, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 27023, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 31460, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 31460, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream, __pyx_base.__weakref__); #endif @@ -448167,11 +526143,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHF_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_STOCHF_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13STOCHF_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_STOCHF_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13STOCHF_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27175, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_STOCHF_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream)) __PYX_ERR(3, 27175, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream)) __PYX_ERR(3, 31612, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream = &__pyx_type_5talib_7_ta_lib_STOCHF_Stream; #endif @@ -448179,7 +526155,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHF_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 27175, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 31612, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream); @@ -448189,8 +526165,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHF_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 27175, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCHF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 27175, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 31612, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCHF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 31612, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream, __pyx_base.__weakref__); #endif @@ -448216,11 +526192,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_STOCHRSI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_STOCHRSI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27325, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_STOCHRSI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream)) __PYX_ERR(3, 27325, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream)) __PYX_ERR(3, 31762, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream = &__pyx_type_5talib_7_ta_lib_STOCHRSI_Stream; #endif @@ -448228,7 +526204,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 27325, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 31762, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream); @@ -448238,8 +526214,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 27325, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 27325, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 31762, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 31762, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_base.__weakref__); #endif @@ -448265,11 +526241,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUB_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_SUB_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SUB_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SUB_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SUB_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27472, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SUB_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream)) __PYX_ERR(3, 27472, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream)) __PYX_ERR(3, 31909, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream = &__pyx_type_5talib_7_ta_lib_SUB_Stream; #endif @@ -448277,7 +526253,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUB_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 27472, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 31909, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream); @@ -448287,8 +526263,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUB_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 27472, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUB_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 27472, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 31909, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUB_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 31909, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream, __pyx_base.__weakref__); #endif @@ -448314,11 +526290,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUM_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_SUM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SUM_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SUM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SUM_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27610, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SUM_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream)) __PYX_ERR(3, 27610, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream)) __PYX_ERR(3, 32047, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream = &__pyx_type_5talib_7_ta_lib_SUM_Stream; #endif @@ -448326,7 +526302,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUM_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 27610, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 32047, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream); @@ -448336,8 +526312,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUM_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 27610, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 27610, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 32047, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 32047, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream, __pyx_base.__weakref__); #endif @@ -448363,11 +526339,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream(__p __pyx_vtable_5talib_7_ta_lib_SUPERTREND_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SUPERTREND_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27747, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SUPERTREND_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream)) __PYX_ERR(3, 27747, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream)) __PYX_ERR(3, 32184, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream = &__pyx_type_5talib_7_ta_lib_SUPERTREND_Stream; #endif @@ -448375,7 +526351,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 27747, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 32184, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream); @@ -448385,8 +526361,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 27747, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 27747, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 32184, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 32184, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_base.__weakref__); #endif @@ -448398,6 +526374,251 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream(__p return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SWAK_2PHP_Stream = &__pyx_vtable_5talib_7_ta_lib_SWAK_2PHP_Stream; + __pyx_vtable_5talib_7_ta_lib_SWAK_2PHP_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SWAK_2PHP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16SWAK_2PHP_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SWAK_2PHP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16SWAK_2PHP_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SWAK_2PHP_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream)) __PYX_ERR(3, 32333, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream = &__pyx_type_5talib_7_ta_lib_SWAK_2PHP_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream) < (0)) __PYX_ERR(3, 32333, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream, __pyx_vtabptr_5talib_7_ta_lib_SWAK_2PHP_Stream) < (0)) __PYX_ERR(3, 32333, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SWAK_2PHP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream) < (0)) __PYX_ERR(3, 32333, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SWAK_BP_Stream = &__pyx_vtable_5talib_7_ta_lib_SWAK_BP_Stream; + __pyx_vtable_5talib_7_ta_lib_SWAK_BP_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SWAK_BP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14SWAK_BP_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SWAK_BP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14SWAK_BP_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SWAK_BP_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream)) __PYX_ERR(3, 32470, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream = &__pyx_type_5talib_7_ta_lib_SWAK_BP_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream) < (0)) __PYX_ERR(3, 32470, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream, __pyx_vtabptr_5talib_7_ta_lib_SWAK_BP_Stream) < (0)) __PYX_ERR(3, 32470, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SWAK_BP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream) < (0)) __PYX_ERR(3, 32470, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SWAK_BUTTER_Stream = &__pyx_vtable_5talib_7_ta_lib_SWAK_BUTTER_Stream; + __pyx_vtable_5talib_7_ta_lib_SWAK_BUTTER_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SWAK_BUTTER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18SWAK_BUTTER_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SWAK_BUTTER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18SWAK_BUTTER_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32608, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SWAK_BUTTER_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream)) __PYX_ERR(3, 32608, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream = &__pyx_type_5talib_7_ta_lib_SWAK_BUTTER_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream) < (0)) __PYX_ERR(3, 32608, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream, __pyx_vtabptr_5talib_7_ta_lib_SWAK_BUTTER_Stream) < (0)) __PYX_ERR(3, 32608, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SWAK_BUTTER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream) < (0)) __PYX_ERR(3, 32608, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SWAK_GAUSS_Stream = &__pyx_vtable_5talib_7_ta_lib_SWAK_GAUSS_Stream; + __pyx_vtable_5talib_7_ta_lib_SWAK_GAUSS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SWAK_GAUSS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17SWAK_GAUSS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SWAK_GAUSS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17SWAK_GAUSS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32745, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SWAK_GAUSS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream)) __PYX_ERR(3, 32745, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream = &__pyx_type_5talib_7_ta_lib_SWAK_GAUSS_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream) < (0)) __PYX_ERR(3, 32745, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream, __pyx_vtabptr_5talib_7_ta_lib_SWAK_GAUSS_Stream) < (0)) __PYX_ERR(3, 32745, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SWAK_GAUSS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream) < (0)) __PYX_ERR(3, 32745, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SWAK_HP_Stream = &__pyx_vtable_5talib_7_ta_lib_SWAK_HP_Stream; + __pyx_vtable_5talib_7_ta_lib_SWAK_HP_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SWAK_HP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14SWAK_HP_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SWAK_HP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14SWAK_HP_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32882, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SWAK_HP_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream)) __PYX_ERR(3, 32882, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream = &__pyx_type_5talib_7_ta_lib_SWAK_HP_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream) < (0)) __PYX_ERR(3, 32882, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream, __pyx_vtabptr_5talib_7_ta_lib_SWAK_HP_Stream) < (0)) __PYX_ERR(3, 32882, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SWAK_HP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream) < (0)) __PYX_ERR(3, 32882, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_T3_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -448412,11 +526633,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_T3_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_T3_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9T3_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_T3_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9T3_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 27896, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_T3_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream)) __PYX_ERR(3, 27896, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream)) __PYX_ERR(3, 33019, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream = &__pyx_type_5talib_7_ta_lib_T3_Stream; #endif @@ -448424,7 +526645,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_T3_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 27896, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 33019, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream); @@ -448434,8 +526655,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_T3_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_vtabptr_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 27896, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_T3_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 27896, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_vtabptr_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 33019, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_T3_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 33019, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_T3_Stream, __pyx_base.__weakref__); #endif @@ -448461,11 +526682,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TAN_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_TAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10TAN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10TAN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28034, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TAN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream)) __PYX_ERR(3, 28034, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream)) __PYX_ERR(3, 33157, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream = &__pyx_type_5talib_7_ta_lib_TAN_Stream; #endif @@ -448473,7 +526694,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TAN_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 28034, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 33157, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream); @@ -448483,8 +526704,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TAN_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 28034, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 28034, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 33157, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 33157, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream, __pyx_base.__weakref__); #endif @@ -448510,11 +526731,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TANH_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_TANH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11TANH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TANH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11TANH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28169, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TANH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream)) __PYX_ERR(3, 28169, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream)) __PYX_ERR(3, 33292, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream = &__pyx_type_5talib_7_ta_lib_TANH_Stream; #endif @@ -448522,7 +526743,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TANH_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 28169, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 33292, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream); @@ -448532,8 +526753,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TANH_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_vtabptr_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 28169, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TANH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 28169, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_vtabptr_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 33292, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TANH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 33292, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream, __pyx_base.__weakref__); #endif @@ -448559,11 +526780,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TEMA_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_TEMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11TEMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TEMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11TEMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28304, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TEMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream)) __PYX_ERR(3, 28304, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream)) __PYX_ERR(3, 33427, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream = &__pyx_type_5talib_7_ta_lib_TEMA_Stream; #endif @@ -448571,7 +526792,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TEMA_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 28304, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 33427, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream); @@ -448581,8 +526802,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TEMA_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 28304, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 28304, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 33427, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 33427, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream, __pyx_base.__weakref__); #endif @@ -448608,11 +526829,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRANGE_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_TRANGE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13TRANGE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TRANGE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13TRANGE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28441, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TRANGE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream)) __PYX_ERR(3, 28441, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream)) __PYX_ERR(3, 33564, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream = &__pyx_type_5talib_7_ta_lib_TRANGE_Stream; #endif @@ -448620,7 +526841,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRANGE_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 28441, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 33564, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream); @@ -448630,8 +526851,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRANGE_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 28441, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRANGE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 28441, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 33564, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRANGE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 33564, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream, __pyx_base.__weakref__); #endif @@ -448657,11 +526878,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIMA_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_TRIMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12TRIMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TRIMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12TRIMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28580, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TRIMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream)) __PYX_ERR(3, 28580, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream)) __PYX_ERR(3, 33703, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream = &__pyx_type_5talib_7_ta_lib_TRIMA_Stream; #endif @@ -448669,7 +526890,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIMA_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 28580, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 33703, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream); @@ -448679,8 +526900,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIMA_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 28580, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRIMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 28580, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 33703, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRIMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 33703, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream, __pyx_base.__weakref__); #endif @@ -448706,11 +526927,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIX_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_TRIX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11TRIX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TRIX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11TRIX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28717, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TRIX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream)) __PYX_ERR(3, 28717, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream)) __PYX_ERR(3, 33840, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream = &__pyx_type_5talib_7_ta_lib_TRIX_Stream; #endif @@ -448718,7 +526939,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIX_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 28717, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 33840, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream); @@ -448728,8 +526949,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIX_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 28717, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRIX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 28717, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 33840, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRIX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 33840, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream, __pyx_base.__weakref__); #endif @@ -448755,11 +526976,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSF_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_TSF_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10TSF_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TSF_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10TSF_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28854, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TSF_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream)) __PYX_ERR(3, 28854, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream)) __PYX_ERR(3, 33977, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream = &__pyx_type_5talib_7_ta_lib_TSF_Stream; #endif @@ -448767,7 +526988,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSF_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 28854, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 33977, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream); @@ -448777,8 +526998,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSF_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_vtabptr_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 28854, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TSF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 28854, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_vtabptr_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 33977, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TSF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 33977, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream, __pyx_base.__weakref__); #endif @@ -448804,11 +527025,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_TSI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10TSI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TSI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10TSI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28991, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TSI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream)) __PYX_ERR(3, 28991, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream)) __PYX_ERR(3, 34114, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream = &__pyx_type_5talib_7_ta_lib_TSI_Stream; #endif @@ -448816,7 +527037,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 28991, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 34114, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream); @@ -448826,8 +527047,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 28991, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 28991, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 34114, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 34114, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream, __pyx_base.__weakref__); #endif @@ -448853,11 +527074,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_TYPPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TYPPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29129, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TYPPRICE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream)) __PYX_ERR(3, 29129, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream)) __PYX_ERR(3, 34252, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream = &__pyx_type_5talib_7_ta_lib_TYPPRICE_Stream; #endif @@ -448865,7 +527086,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 29129, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 34252, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream); @@ -448875,8 +527096,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 29129, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TYPPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 29129, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 34252, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TYPPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 34252, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_base.__weakref__); #endif @@ -448902,11 +527123,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ULTOSC_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_ULTOSC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ULTOSC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29268, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ULTOSC_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream)) __PYX_ERR(3, 29268, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream)) __PYX_ERR(3, 34391, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream = &__pyx_type_5talib_7_ta_lib_ULTOSC_Stream; #endif @@ -448914,7 +527135,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ULTOSC_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 29268, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 34391, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream); @@ -448924,8 +527145,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ULTOSC_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 29268, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ULTOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 29268, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 34391, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ULTOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 34391, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream, __pyx_base.__weakref__); #endif @@ -448951,11 +527172,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VAR_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_VAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10VAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_VAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10VAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29411, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream)) __PYX_ERR(3, 29411, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream)) __PYX_ERR(3, 34534, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream = &__pyx_type_5talib_7_ta_lib_VAR_Stream; #endif @@ -448963,7 +527184,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VAR_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 29411, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 34534, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream); @@ -448973,8 +527194,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VAR_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 29411, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 29411, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 34534, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 34534, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream, __pyx_base.__weakref__); #endif @@ -449000,11 +527221,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VHF_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_VHF_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10VHF_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_VHF_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10VHF_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29549, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VHF_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream)) __PYX_ERR(3, 29549, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream)) __PYX_ERR(3, 34672, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream = &__pyx_type_5talib_7_ta_lib_VHF_Stream; #endif @@ -449012,7 +527233,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VHF_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 29549, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 34672, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream); @@ -449022,8 +527243,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VHF_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_vtabptr_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 29549, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VHF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 29549, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_vtabptr_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 34672, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VHF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 34672, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream, __pyx_base.__weakref__); #endif @@ -449035,6 +527256,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VHF_Stream(__pyx_msta return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VIDYA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VIDYA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_VIDYA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_VIDYA_Stream = &__pyx_vtable_5talib_7_ta_lib_VIDYA_Stream; + __pyx_vtable_5talib_7_ta_lib_VIDYA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_VIDYA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12VIDYA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_VIDYA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12VIDYA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34809, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VIDYA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream)) __PYX_ERR(3, 34809, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream = &__pyx_type_5talib_7_ta_lib_VIDYA_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream) < (0)) __PYX_ERR(3, 34809, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream, __pyx_vtabptr_5talib_7_ta_lib_VIDYA_Stream) < (0)) __PYX_ERR(3, 34809, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VIDYA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream) < (0)) __PYX_ERR(3, 34809, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VIDYA_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VORTEX_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -449049,11 +527319,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VORTEX_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_VORTEX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13VORTEX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_VORTEX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13VORTEX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29686, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VORTEX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream)) __PYX_ERR(3, 29686, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream)) __PYX_ERR(3, 34947, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream = &__pyx_type_5talib_7_ta_lib_VORTEX_Stream; #endif @@ -449061,7 +527331,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VORTEX_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 29686, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 34947, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream); @@ -449071,8 +527341,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VORTEX_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 29686, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VORTEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 29686, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 34947, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VORTEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 34947, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream, __pyx_base.__weakref__); #endif @@ -449098,11 +527368,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWAP_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_VWAP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11VWAP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_VWAP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11VWAP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29834, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VWAP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream)) __PYX_ERR(3, 29834, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream)) __PYX_ERR(3, 35095, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream = &__pyx_type_5talib_7_ta_lib_VWAP_Stream; #endif @@ -449110,7 +527380,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWAP_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 29834, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 35095, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream); @@ -449120,8 +527390,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWAP_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_vtabptr_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 29834, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VWAP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 29834, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_vtabptr_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 35095, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VWAP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 35095, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream, __pyx_base.__weakref__); #endif @@ -449147,11 +527417,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWMA_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_VWMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11VWMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_VWMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11VWMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 29975, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VWMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream)) __PYX_ERR(3, 29975, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream)) __PYX_ERR(3, 35236, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream = &__pyx_type_5talib_7_ta_lib_VWMA_Stream; #endif @@ -449159,7 +527429,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWMA_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 29975, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 35236, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream); @@ -449169,8 +527439,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWMA_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 29975, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VWMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 29975, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 35236, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VWMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 35236, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream, __pyx_base.__weakref__); #endif @@ -449196,11 +527466,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAD_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_WAD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10WAD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_WAD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10WAD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30115, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_WAD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream)) __PYX_ERR(3, 30115, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream)) __PYX_ERR(3, 35376, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream = &__pyx_type_5talib_7_ta_lib_WAD_Stream; #endif @@ -449208,7 +527478,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAD_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 30115, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 35376, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream); @@ -449218,8 +527488,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAD_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_vtabptr_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 30115, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WAD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 30115, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_vtabptr_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 35376, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WAD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 35376, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream, __pyx_base.__weakref__); #endif @@ -449231,6 +527501,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAD_Stream(__pyx_msta return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAVETREND_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAVETREND_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_WAVETREND_Stream = &__pyx_vtable_5talib_7_ta_lib_WAVETREND_Stream; + __pyx_vtable_5talib_7_ta_lib_WAVETREND_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_WAVETREND_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16WAVETREND_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_WAVETREND_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16WAVETREND_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_WAVETREND_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream)) __PYX_ERR(3, 35515, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream = &__pyx_type_5talib_7_ta_lib_WAVETREND_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream) < (0)) __PYX_ERR(3, 35515, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream, __pyx_vtabptr_5talib_7_ta_lib_WAVETREND_Stream) < (0)) __PYX_ERR(3, 35515, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WAVETREND_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream) < (0)) __PYX_ERR(3, 35515, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_WAVETREND_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -449245,11 +527564,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_WCLPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_WCLPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30254, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_WCLPRICE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream)) __PYX_ERR(3, 30254, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream)) __PYX_ERR(3, 35665, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream = &__pyx_type_5talib_7_ta_lib_WCLPRICE_Stream; #endif @@ -449257,7 +527576,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 30254, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 35665, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream); @@ -449267,8 +527586,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 30254, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WCLPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 30254, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 35665, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WCLPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 35665, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_base.__weakref__); #endif @@ -449294,11 +527613,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WILLR_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_WILLR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12WILLR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_WILLR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12WILLR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30393, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_WILLR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream)) __PYX_ERR(3, 30393, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream)) __PYX_ERR(3, 35804, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream = &__pyx_type_5talib_7_ta_lib_WILLR_Stream; #endif @@ -449306,7 +527625,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WILLR_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 30393, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 35804, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream); @@ -449316,8 +527635,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WILLR_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_vtabptr_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 30393, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WILLR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 30393, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_vtabptr_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 35804, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WILLR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 35804, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream, __pyx_base.__weakref__); #endif @@ -449343,11 +527662,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WMA_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_WMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10WMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_WMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10WMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30534, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_WMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream)) __PYX_ERR(3, 30534, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream)) __PYX_ERR(3, 35945, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream = &__pyx_type_5talib_7_ta_lib_WMA_Stream; #endif @@ -449355,7 +527674,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WMA_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 30534, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 35945, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream); @@ -449365,8 +527684,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WMA_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 30534, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 30534, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 35945, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 35945, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream, __pyx_base.__weakref__); #endif @@ -449378,6 +527697,55 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WMA_Stream(__pyx_msta return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ZIGZAG_Stream = &__pyx_vtable_5talib_7_ta_lib_ZIGZAG_Stream; + __pyx_vtable_5talib_7_ta_lib_ZIGZAG_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ZIGZAG_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13ZIGZAG_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ZIGZAG_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13ZIGZAG_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ZIGZAG_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream)) __PYX_ERR(3, 36082, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream = &__pyx_type_5talib_7_ta_lib_ZIGZAG_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream) < (0)) __PYX_ERR(3, 36082, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream, __pyx_vtabptr_5talib_7_ta_lib_ZIGZAG_Stream) < (0)) __PYX_ERR(3, 36082, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ZIGZAG_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream) < (0)) __PYX_ERR(3, 36082, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZLEMA_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -449392,11 +527760,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZLEMA_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_ZLEMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12ZLEMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ZLEMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12ZLEMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30671, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ZLEMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream)) __PYX_ERR(3, 30671, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream)) __PYX_ERR(3, 36246, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream = &__pyx_type_5talib_7_ta_lib_ZLEMA_Stream; #endif @@ -449404,7 +527772,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZLEMA_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 30671, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 36246, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream); @@ -449414,8 +527782,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZLEMA_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 30671, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ZLEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 30671, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 36246, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ZLEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 36246, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream, __pyx_base.__weakref__); #endif @@ -449814,19 +528182,21 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec__ta_lib(PyObject *__pyx_pyinit_mod PyObject *__pyx_t_19 = NULL; PyObject *__pyx_t_20 = NULL; PyObject *__pyx_t_21 = NULL; - PyObject *(*__pyx_t_22)(PyObject *); - Py_ssize_t __pyx_t_23; - double __pyx_t_24; - int __pyx_t_25; - PyObject *__pyx_t_26 = NULL; - PyObject *__pyx_t_27 = NULL; + PyObject *__pyx_t_22 = NULL; + PyObject *__pyx_t_23 = NULL; + PyObject *(*__pyx_t_24)(PyObject *); + Py_ssize_t __pyx_t_25; + double __pyx_t_26; + int __pyx_t_27; PyObject *__pyx_t_28 = NULL; - int __pyx_t_29; + PyObject *__pyx_t_29 = NULL; PyObject *__pyx_t_30 = NULL; - PyObject *__pyx_t_31 = NULL; - int __pyx_t_32; - int __pyx_t_33; + int __pyx_t_31; + PyObject *__pyx_t_32 = NULL; + PyObject *__pyx_t_33 = NULL; int __pyx_t_34; + int __pyx_t_35; + int __pyx_t_36; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -449922,16 +528292,19 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADXR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ALMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_APO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROON_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROONOSC_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASIN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATAN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGDEV_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBANDS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBW_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BETA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BOP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CCI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) @@ -449997,6 +528370,10 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CEIL_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CG_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CHOP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CHOPTR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CKSP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMF_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMOU_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) @@ -450004,21 +528381,27 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CORREL_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COSH_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CRSI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CTI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CUMSUM_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CVI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DEMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DIV_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DOSC_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DPO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EFI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMV_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ER_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ERI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EXP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FISHER_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FLOOR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FOSC_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRACTAL_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRAMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) @@ -450027,10 +528410,16 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_SINE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IBS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ICHIMOKU_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IMI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KAMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KC_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KDJ_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KST_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KSTEXT_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KURTOSIS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KVO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) @@ -450047,6 +528436,8 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAVP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MCGD_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDIAN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MFI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) @@ -450062,11 +528453,13 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NATR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NVI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_OBV_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTB_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PPO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PSO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVT_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) @@ -450076,16 +528469,21 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR100_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROGERSSATCHELL_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RSI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVIR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVOL_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAREXT_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SIN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SINH_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQRT_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQZMOM_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STC_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STDDEV_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCH_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHF_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) @@ -450093,6 +528491,11 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUB_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUM_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_2PHP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_BP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_BUTTER_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_GAUSS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SWAK_HP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_T3_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TAN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TANH_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) @@ -450106,13 +528509,16 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ULTOSC_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VAR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VHF_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VIDYA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VORTEX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWAP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAD_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAVETREND_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WILLR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZIGZAG_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZLEMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Type_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) (void)__Pyx_modinit_Variable_import_code(__pyx_mstate); @@ -450276,7 +528682,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_6 = NULL; __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_mstate_global->__pyx_int_14}; + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_mstate_global->__pyx_int_16}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 169, __pyx_L1_error) @@ -450284,23 +528690,23 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); } { Py_ssize_t index = -1; - PyObject** temps[14] = {&__pyx_t_6,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14,&__pyx_t_15,&__pyx_t_16,&__pyx_t_17,&__pyx_t_18,&__pyx_t_19,&__pyx_t_20}; - __pyx_t_21 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 168, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_21); + PyObject** temps[16] = {&__pyx_t_6,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14,&__pyx_t_15,&__pyx_t_16,&__pyx_t_17,&__pyx_t_18,&__pyx_t_19,&__pyx_t_20,&__pyx_t_21,&__pyx_t_22}; + __pyx_t_23 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_23)) __PYX_ERR(1, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_22 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_21); - for (index=0; index < 14; index++) { - PyObject* item = __pyx_t_22(__pyx_t_21); if (unlikely(!item)) goto __pyx_L2_unpacking_failed; + __pyx_t_24 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_23); + for (index=0; index < 16; index++) { + PyObject* item = __pyx_t_24(__pyx_t_23); if (unlikely(!item)) goto __pyx_L2_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_22(__pyx_t_21), 14) < (0)) __PYX_ERR(1, 168, __pyx_L1_error) - __pyx_t_22 = NULL; - __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; + if (__Pyx_IternextUnpackEndCheck(__pyx_t_24(__pyx_t_23), 16) < (0)) __PYX_ERR(1, 168, __pyx_L1_error) + __pyx_t_24 = NULL; + __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; goto __pyx_L3_unpacking_done; __pyx_L2_unpacking_failed:; - __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; - __pyx_t_22 = NULL; + __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; + __pyx_t_24 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(1, 168, __pyx_L1_error) __pyx_L3_unpacking_done:; @@ -450334,6 +528740,10 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_20) < (0)) __PYX_ERR(1, 169, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_VIDYA, __pyx_t_21) < (0)) __PYX_ERR(1, 169, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ALMA, __pyx_t_22) < (0)) __PYX_ERR(1, 169, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__, 0, __pyx_mstate_global->__pyx_n_u_MA_Type___init, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); @@ -450343,12 +528753,12 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(1, 171, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__, 0, __pyx_mstate_global->__pyx_n_u_MA_Type___getitem, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 189, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__, 0, __pyx_mstate_global->__pyx_n_u_MA_Type___getitem, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_getitem, __pyx_t_2) < (0)) __PYX_ERR(1, 189, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_getitem, __pyx_t_2) < (0)) __PYX_ERR(1, 191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_3, __pyx_t_5, NULL, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 167, __pyx_L1_error) @@ -450362,276 +528772,344 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 192, __pyx_L1_error) + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_3) < (0)) __PYX_ERR(1, 194, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_PyDict_NewPresized(35); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_NONE, __pyx_mstate_global->__pyx_int_neg_1) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) + + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ADX); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ATR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_CMO); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_DX); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_EMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_DCPERIOD); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_DCPHASE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_PHASOR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_SINE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 192, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_3) < (0)) __PYX_ERR(1, 192, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_PyDict_NewPresized(25); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_NONE, __pyx_mstate_global->__pyx_int_neg_1) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_TRENDLINE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ADX); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 201, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_TRENDMODE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ATR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 202, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_KAMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_CMO); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 203, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MAMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_DX); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 204, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MINUS_DI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_EMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 205, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MINUS_DM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_DCPERIOD); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 206, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_NATR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_DCPHASE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 207, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_PLUS_DI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_PHASOR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 208, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_PLUS_DM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_SINE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 209, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RSI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_TRENDLINE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 210, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_T3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_TRENDMODE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 211, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_KAMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 212, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HA, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MAMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 213, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RVI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MINUS_DI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 214, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_FRAMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_FRAMA, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MINUS_DM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 215, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MCGD); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MCGD, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_NATR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 216, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_VIDYA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_VIDYA, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_PLUS_DI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 217, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_STC); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_STC, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_PLUS_DM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 218, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_SWAK_GAUSS); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_SWAK_GAUSS, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RSI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 219, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_SWAK_BUTTER); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_SWAK_BUTTER, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_T3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 220, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_SWAK_HP); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_SWAK_HP, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 221, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_SWAK_2PHP); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_SWAK_2PHP, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 222, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_SWAK_BP); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HA, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_SWAK_BP, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RVI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 223, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_FISHER); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_FISHER, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ALL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 224, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ALL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ALL, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ALL, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids, __pyx_t_3) < (0)) __PYX_ERR(1, 197, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids, __pyx_t_3) < (0)) __PYX_ERR(1, 199, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_kp_u_ADXR_has_no_unstable_period_of_i) < (0)) __PYX_ERR(1, 245, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_kp_u_MFI_s_unstable_period_was_retire) < (0)) __PYX_ERR(1, 245, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_kp_u_STOCHRSI_has_no_unstable_period) < (0)) __PYX_ERR(1, 245, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired, __pyx_t_3) < (0)) __PYX_ERR(1, 244, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_PyLong_From_unsigned_int(TA_UNSTABLE_AUTO_PREC_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_UNSTABLE_AUTO_PREC_4, __pyx_t_3) < (0)) __PYX_ERR(1, 250, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 233, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_unsigned_int(TA_UNSTABLE_AUTO_PREC_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_kp_u_ADXR_has_no_unstable_period_of_i) < (0)) __PYX_ERR(1, 233, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_kp_u_MFI_s_unstable_period_was_retire) < (0)) __PYX_ERR(1, 233, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_kp_u_STOCHRSI_has_no_unstable_period) < (0)) __PYX_ERR(1, 233, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired, __pyx_t_3) < (0)) __PYX_ERR(1, 232, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_UNSTABLE_AUTO_PREC_8, __pyx_t_3) < (0)) __PYX_ERR(1, 251, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7_ta_func_unst_id, 0, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id, __pyx_t_3) < (0)) __PYX_ERR(1, 253, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7_ta_func_unst_id, 0, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 238, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9_ta_set_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id, __pyx_t_3) < (0)) __PYX_ERR(1, 238, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, __pyx_t_3) < (0)) __PYX_ERR(1, 262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9_ta_set_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 247, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11_ta_get_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, __pyx_t_3) < (0)) __PYX_ERR(1, 247, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, __pyx_t_3) < (0)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11_ta_get_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 261, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13_ta_set_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, __pyx_t_3) < (0)) __PYX_ERR(1, 261, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, __pyx_t_3) < (0)) __PYX_ERR(1, 288, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13_ta_set_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 273, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15_ta_get_runtime_info, 0, __pyx_mstate_global->__pyx_n_u_ta_get_runtime_info, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, __pyx_t_3) < (0)) __PYX_ERR(1, 273, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_runtime_info, __pyx_t_3) < (0)) __PYX_ERR(1, 296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15_ta_get_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 281, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17_ta_get_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, __pyx_t_3) < (0)) __PYX_ERR(1, 281, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, __pyx_t_3) < (0)) __PYX_ERR(1, 307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[9]); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 288, __pyx_L1_error) + __pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[9]); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 288, __pyx_L1_error) + __pyx_t_5 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_mstate_global->__pyx_n_u_CandleSettingType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 288, __pyx_L1_error) + __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_mstate_global->__pyx_n_u_CandleSettingType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_3 != __pyx_mstate_global->__pyx_tuple[9]) { - if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[9]) < 0))) __PYX_ERR(1, 288, __pyx_L1_error) + if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[9]) < 0))) __PYX_ERR(1, 314, __pyx_L1_error) } - __pyx_t_20 = NULL; + __pyx_t_22 = NULL; __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_20, __pyx_mstate_global->__pyx_int_12}; + PyObject *__pyx_callargs[2] = {__pyx_t_22, __pyx_mstate_global->__pyx_int_12}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 291, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } { Py_ssize_t index = -1; - PyObject** temps[12] = {&__pyx_t_20,&__pyx_t_19,&__pyx_t_18,&__pyx_t_17,&__pyx_t_16,&__pyx_t_15,&__pyx_t_14,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9}; - __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); + PyObject** temps[12] = {&__pyx_t_22,&__pyx_t_21,&__pyx_t_20,&__pyx_t_19,&__pyx_t_18,&__pyx_t_17,&__pyx_t_16,&__pyx_t_15,&__pyx_t_14,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11}; + __pyx_t_10 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_22 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); + __pyx_t_24 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_10); for (index=0; index < 12; index++) { - PyObject* item = __pyx_t_22(__pyx_t_8); if (unlikely(!item)) goto __pyx_L4_unpacking_failed; + PyObject* item = __pyx_t_24(__pyx_t_10); if (unlikely(!item)) goto __pyx_L4_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_22(__pyx_t_8), 12) < (0)) __PYX_ERR(1, 289, __pyx_L1_error) - __pyx_t_22 = NULL; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (__Pyx_IternextUnpackEndCheck(__pyx_t_24(__pyx_t_10), 12) < (0)) __PYX_ERR(1, 315, __pyx_L1_error) + __pyx_t_24 = NULL; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L5_unpacking_done; __pyx_L4_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_22 = NULL; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_24 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(1, 289, __pyx_L1_error) + __PYX_ERR(1, 315, __pyx_L1_error) __pyx_L5_unpacking_done:; } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyLong, __pyx_t_20) < (0)) __PYX_ERR(1, 289, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyLong, __pyx_t_22) < (0)) __PYX_ERR(1, 315, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyVeryLong, __pyx_t_21) < (0)) __PYX_ERR(1, 315, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyShort, __pyx_t_20) < (0)) __PYX_ERR(1, 315, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyVeryLong, __pyx_t_19) < (0)) __PYX_ERR(1, 289, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyDoji, __pyx_t_19) < (0)) __PYX_ERR(1, 315, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyShort, __pyx_t_18) < (0)) __PYX_ERR(1, 289, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowLong, __pyx_t_18) < (0)) __PYX_ERR(1, 315, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyDoji, __pyx_t_17) < (0)) __PYX_ERR(1, 289, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowVeryLong, __pyx_t_17) < (0)) __PYX_ERR(1, 315, __pyx_L1_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowLong, __pyx_t_16) < (0)) __PYX_ERR(1, 289, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowShort, __pyx_t_16) < (0)) __PYX_ERR(1, 316, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowVeryLong, __pyx_t_15) < (0)) __PYX_ERR(1, 289, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowVeryShort, __pyx_t_15) < (0)) __PYX_ERR(1, 316, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowShort, __pyx_t_14) < (0)) __PYX_ERR(1, 290, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Near, __pyx_t_14) < (0)) __PYX_ERR(1, 316, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowVeryShort, __pyx_t_13) < (0)) __PYX_ERR(1, 290, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Far, __pyx_t_13) < (0)) __PYX_ERR(1, 316, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Near, __pyx_t_12) < (0)) __PYX_ERR(1, 290, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Equal, __pyx_t_12) < (0)) __PYX_ERR(1, 316, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Far, __pyx_t_11) < (0)) __PYX_ERR(1, 290, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_AllCandleSettings, __pyx_t_11) < (0)) __PYX_ERR(1, 316, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Equal, __pyx_t_10) < (0)) __PYX_ERR(1, 290, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_AllCandleSettings, __pyx_t_9) < (0)) __PYX_ERR(1, 290, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_3, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 288, __pyx_L1_error) + __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_3, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_2) < (0)) __PYX_ERR(1, 288, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_2) < (0)) __PYX_ERR(1, 314, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_CandleSettingType); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 293, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_CandleSettingType); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { @@ -450639,74 +529117,74 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 293, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_3) < (0)) __PYX_ERR(1, 293, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_3) < (0)) __PYX_ERR(1, 319, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[11]); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 295, __pyx_L1_error) + __pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[11]); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 295, __pyx_L1_error) + __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_mstate_global->__pyx_n_u_RangeType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 295, __pyx_L1_error) + __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_mstate_global->__pyx_n_u_RangeType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3 != __pyx_mstate_global->__pyx_tuple[11]) { - if (unlikely((PyDict_SetItemString(__pyx_t_5, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[11]) < 0))) __PYX_ERR(1, 295, __pyx_L1_error) + if (unlikely((PyDict_SetItemString(__pyx_t_5, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[11]) < 0))) __PYX_ERR(1, 321, __pyx_L1_error) } - __pyx_t_9 = NULL; + __pyx_t_11 = NULL; __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_int_3}; + PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_mstate_global->__pyx_int_3}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 296, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } { Py_ssize_t index = -1; - __pyx_t_12 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_14 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_22 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_12); - index = 0; __pyx_t_9 = __pyx_t_22(__pyx_t_12); if (unlikely(!__pyx_t_9)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_9); - index = 1; __pyx_t_10 = __pyx_t_22(__pyx_t_12); if (unlikely(!__pyx_t_10)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_10); - index = 2; __pyx_t_11 = __pyx_t_22(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L6_unpacking_failed; + __pyx_t_24 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_14); + index = 0; __pyx_t_11 = __pyx_t_24(__pyx_t_14); if (unlikely(!__pyx_t_11)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_11); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_22(__pyx_t_12), 3) < (0)) __PYX_ERR(1, 296, __pyx_L1_error) - __pyx_t_22 = NULL; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + index = 1; __pyx_t_12 = __pyx_t_24(__pyx_t_14); if (unlikely(!__pyx_t_12)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_12); + index = 2; __pyx_t_13 = __pyx_t_24(__pyx_t_14); if (unlikely(!__pyx_t_13)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_24(__pyx_t_14), 3) < (0)) __PYX_ERR(1, 322, __pyx_L1_error) + __pyx_t_24 = NULL; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; goto __pyx_L7_unpacking_done; __pyx_L6_unpacking_failed:; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_22 = NULL; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_24 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(1, 296, __pyx_L1_error) + __PYX_ERR(1, 322, __pyx_L1_error) __pyx_L7_unpacking_done:; } - if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_RealBody, __pyx_t_9) < (0)) __PYX_ERR(1, 296, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_HighLow, __pyx_t_10) < (0)) __PYX_ERR(1, 296, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Shadows, __pyx_t_11) < (0)) __PYX_ERR(1, 296, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_RealBody, __pyx_t_11) < (0)) __PYX_ERR(1, 322, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_HighLow, __pyx_t_12) < (0)) __PYX_ERR(1, 322, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Shadows, __pyx_t_13) < (0)) __PYX_ERR(1, 322, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_3, __pyx_t_5, NULL, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 295, __pyx_L1_error) + __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_3, __pyx_t_5, NULL, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_2) < (0)) __PYX_ERR(1, 295, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_2) < (0)) __PYX_ERR(1, 321, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_RangeType); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 298, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_RangeType); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { @@ -450714,26 +529192,26 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 298, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_3) < (0)) __PYX_ERR(1, 298, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_3) < (0)) __PYX_ERR(1, 324, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17_ta_set_candle_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 300, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19_ta_set_candle_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, __pyx_t_3) < (0)) __PYX_ERR(1, 300, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, __pyx_t_3) < (0)) __PYX_ERR(1, 326, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19_ta_restore_candle_default_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 307, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21_ta_restore_candle_default_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, __pyx_t_3) < (0)) __PYX_ERR(1, 307, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, __pyx_t_3) < (0)) __PYX_ERR(1, 333, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; { @@ -450744,10 +529222,10 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_GOTREF(__pyx_t_3); { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_nan}; - __pyx_t_23 = 0; { - __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_3, __pyx_imported_names[__pyx_t_23]); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2, __pyx_L1_error) + __pyx_t_25 = 0; { + __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_3, __pyx_imported_names[__pyx_t_25]); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_23], __pyx_t_5) < (0)) __PYX_ERR(6, 2, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_25], __pyx_t_5) < (0)) __PYX_ERR(6, 2, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } @@ -450755,11 +529233,11 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_nan); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_24 = __Pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7, __pyx_L1_error) + __pyx_t_26 = __Pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_26 == (double)-1) && PyErr_Occurred())) __PYX_ERR(6, 7, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_5talib_7_ta_lib_NaN = __pyx_t_24; + __pyx_v_5talib_7_ta_lib_NaN = __pyx_t_26; - __pyx_t_25 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(6, 15, __pyx_L1_error) + __pyx_t_27 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_27 == ((int)-1))) __PYX_ERR(6, 15, __pyx_L1_error) __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 146, __pyx_L1_error) @@ -450777,7 +529255,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21AC, 0, __pyx_mstate_global->__pyx_n_u_AC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 144, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23AC, 0, __pyx_mstate_global->__pyx_n_u_AC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); @@ -450796,7 +529274,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23ACCBANDS, 0, __pyx_mstate_global->__pyx_n_u_ACCBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 188, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25ACCBANDS, 0, __pyx_mstate_global->__pyx_n_u_ACCBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); @@ -450806,7 +529284,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_t_4) < (0)) __PYX_ERR(6, 188, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25ACOS, 0, __pyx_mstate_global->__pyx_n_u_ACOS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 237, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_27ACOS, 0, __pyx_mstate_global->__pyx_n_u_ACOS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); @@ -450814,7 +529292,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_t_4) < (0)) __PYX_ERR(6, 237, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_27AD, 0, __pyx_mstate_global->__pyx_n_u_AD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 276, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_29AD, 0, __pyx_mstate_global->__pyx_n_u_AD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); @@ -450822,7 +529300,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AD, __pyx_t_4) < (0)) __PYX_ERR(6, 276, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_29ADD, 0, __pyx_mstate_global->__pyx_n_u_ADD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 318, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_31ADD, 0, __pyx_mstate_global->__pyx_n_u_ADD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); @@ -450842,7 +529320,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_31ADOSC, 0, __pyx_mstate_global->__pyx_n_u_ADOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 359, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_33ADOSC, 0, __pyx_mstate_global->__pyx_n_u_ADOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); @@ -450861,7 +529339,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_33ADR, 0, __pyx_mstate_global->__pyx_n_u_ADR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 404, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_35ADR, 0, __pyx_mstate_global->__pyx_n_u_ADR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); @@ -450880,7 +529358,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_35ADX, 0, __pyx_mstate_global->__pyx_n_u_ADX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 446, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_37ADX, 0, __pyx_mstate_global->__pyx_n_u_ADX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); @@ -450899,7 +529377,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_37ADXR, 0, __pyx_mstate_global->__pyx_n_u_ADXR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 489, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_39ADXR, 0, __pyx_mstate_global->__pyx_n_u_ADXR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); @@ -450911,2867 +529389,3699 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 534, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(((double)6.0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = PyFloat_FromDouble(((double)0.85)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_5}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[3] = {__pyx_t_2, __pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_39AO, 0, __pyx_mstate_global->__pyx_n_u_AO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_41ALMA, 0, __pyx_mstate_global->__pyx_n_u_ALMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ALMA, __pyx_t_4) < (0)) __PYX_ERR(6, 532, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + { + PyObject* __pyx_temp[2] = {__pyx_t_4, __pyx_t_3}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AO, __pyx_t_5) < (0)) __PYX_ERR(6, 532, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_43AO, 0, __pyx_mstate_global->__pyx_n_u_AO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AO, __pyx_t_3) < (0)) __PYX_ERR(6, 575, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 577, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 577, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[3] = {__pyx_t_5, __pyx_t_4, __pyx_t_2}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject* __pyx_temp[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_45APO, 0, __pyx_mstate_global->__pyx_n_u_APO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_APO, __pyx_t_4) < (0)) __PYX_ERR(6, 618, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + { + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_47AROON, 0, __pyx_mstate_global->__pyx_n_u_AROON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_t_4) < (0)) __PYX_ERR(6, 661, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + { + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_49AROONOSC, 0, __pyx_mstate_global->__pyx_n_u_AROONOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_t_4) < (0)) __PYX_ERR(6, 706, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + { + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_51ASI, 0, __pyx_mstate_global->__pyx_n_u_ASI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ASI, __pyx_t_4) < (0)) __PYX_ERR(6, 748, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_53ASIN, 0, __pyx_mstate_global->__pyx_n_u_ASIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_t_4) < (0)) __PYX_ERR(6, 792, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_55ATAN, 0, __pyx_mstate_global->__pyx_n_u_ATAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_t_4) < (0)) __PYX_ERR(6, 831, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 872, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + { + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_57ATR, 0, __pyx_mstate_global->__pyx_n_u_ATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_4) < (0)) __PYX_ERR(6, 870, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + { + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_59AVGDEV, 0, __pyx_mstate_global->__pyx_n_u_AVGDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_t_4) < (0)) __PYX_ERR(6, 913, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_61AVGPRICE, 0, __pyx_mstate_global->__pyx_n_u_AVGPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 954, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_t_4) < (0)) __PYX_ERR(6, 954, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + { + PyObject* __pyx_temp[4] = {__pyx_t_4, __pyx_t_2, __pyx_t_5, __pyx_t_3}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_63BBANDS, 0, __pyx_mstate_global->__pyx_n_u_BBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_t_3) < (0)) __PYX_ERR(6, 996, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 1048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_13 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 1048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + { + PyObject* __pyx_temp[4] = {__pyx_t_3, __pyx_t_13, __pyx_t_5, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 1046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_41APO, 0, __pyx_mstate_global->__pyx_n_u_APO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 575, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_65BBW, 0, __pyx_mstate_global->__pyx_n_u_BBW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_APO, __pyx_t_2) < (0)) __PYX_ERR(6, 575, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BBW, __pyx_t_2) < (0)) __PYX_ERR(6, 1046, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 620, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 1090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_43AROON, 0, __pyx_mstate_global->__pyx_n_u_AROON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 618, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_67BETA, 0, __pyx_mstate_global->__pyx_n_u_BETA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_t_2) < (0)) __PYX_ERR(6, 618, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_t_2) < (0)) __PYX_ERR(6, 1090, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_69BOP, 0, __pyx_mstate_global->__pyx_n_u_BOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_t_2) < (0)) __PYX_ERR(6, 1133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 665, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 1175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_45AROONOSC, 0, __pyx_mstate_global->__pyx_n_u_AROONOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 663, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_71CCI, 0, __pyx_mstate_global->__pyx_n_u_CCI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_t_2) < (0)) __PYX_ERR(6, 663, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_t_2) < (0)) __PYX_ERR(6, 1175, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_47ASIN, 0, __pyx_mstate_global->__pyx_n_u_ASIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 705, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_73CDL2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_t_2) < (0)) __PYX_ERR(6, 705, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_t_2) < (0)) __PYX_ERR(6, 1218, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_49ATAN, 0, __pyx_mstate_global->__pyx_n_u_ATAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 744, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_75CDL3BLACKCROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_t_2) < (0)) __PYX_ERR(6, 744, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_t_2) < (0)) __PYX_ERR(6, 1260, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 785, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_77CDL3INSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_t_2) < (0)) __PYX_ERR(6, 1302, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 783, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_79CDL3LINESTRIKE, 0, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_t_2) < (0)) __PYX_ERR(6, 1344, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_51ATR, 0, __pyx_mstate_global->__pyx_n_u_ATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 783, __pyx_L1_error) + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_81CDL3OUTSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_2) < (0)) __PYX_ERR(6, 783, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_t_2) < (0)) __PYX_ERR(6, 1386, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_83CDL3STARSINSOUTH, 0, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_t_2) < (0)) __PYX_ERR(6, 1428, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_85CDL3WHITESOLDIERS, 0, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_t_2) < (0)) __PYX_ERR(6, 1470, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 828, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 826, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 1512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_53AVGDEV, 0, __pyx_mstate_global->__pyx_n_u_AVGDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 826, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_87CDLABANDONEDBABY, 0, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_t_2) < (0)) __PYX_ERR(6, 826, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_t_2) < (0)) __PYX_ERR(6, 1512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_55AVGPRICE, 0, __pyx_mstate_global->__pyx_n_u_AVGPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 867, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_89CDLADVANCEBLOCK, 0, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_t_2) < (0)) __PYX_ERR(6, 867, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_t_2) < (0)) __PYX_ERR(6, 1556, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 911, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_91CDLBELTHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_t_2) < (0)) __PYX_ERR(6, 1598, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_93CDLBREAKAWAY, 0, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_t_2) < (0)) __PYX_ERR(6, 1640, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_95CDLCLOSINGMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_t_2) < (0)) __PYX_ERR(6, 1682, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_97CDLCONCEALBABYSWALL, 0, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_t_2) < (0)) __PYX_ERR(6, 1724, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_99CDLCOUNTERATTACK, 0, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_t_2) < (0)) __PYX_ERR(6, 1766, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 911, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 911, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 911, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[4] = {__pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 909, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 1808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_101CDLDARKCLOUDCOVER, 0, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_57BBANDS, 0, __pyx_mstate_global->__pyx_n_u_BBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 909, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_t_2) < (0)) __PYX_ERR(6, 1808, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_103CDLDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_t_5) < (0)) __PYX_ERR(6, 909, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_t_2) < (0)) __PYX_ERR(6, 1852, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 961, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_105CDLDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_t_2) < (0)) __PYX_ERR(6, 1894, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 959, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_59BETA, 0, __pyx_mstate_global->__pyx_n_u_BETA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 959, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_107CDLDRAGONFLYDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_t_5) < (0)) __PYX_ERR(6, 959, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_t_2) < (0)) __PYX_ERR(6, 1936, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_61BOP, 0, __pyx_mstate_global->__pyx_n_u_BOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1002, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_109CDLENGULFING, 0, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_t_5) < (0)) __PYX_ERR(6, 1002, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_t_2) < (0)) __PYX_ERR(6, 1978, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1046, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 1044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 2020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_63CCI, 0, __pyx_mstate_global->__pyx_n_u_CCI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_111CDLEVENINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_t_5) < (0)) __PYX_ERR(6, 1044, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_t_2) < (0)) __PYX_ERR(6, 2020, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_65CDL2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2066, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + { + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 2064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_113CDLEVENINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_t_5) < (0)) __PYX_ERR(6, 1087, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_t_2) < (0)) __PYX_ERR(6, 2064, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_67CDL3BLACKCROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_115CDLGAPSIDESIDEWHITE, 0, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_t_5) < (0)) __PYX_ERR(6, 1129, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_t_2) < (0)) __PYX_ERR(6, 2108, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_69CDL3INSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1171, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_117CDLGRAVESTONEDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_t_5) < (0)) __PYX_ERR(6, 1171, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_t_2) < (0)) __PYX_ERR(6, 2150, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_71CDL3LINESTRIKE, 0, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1213, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_119CDLHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_t_5) < (0)) __PYX_ERR(6, 1213, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_t_2) < (0)) __PYX_ERR(6, 2192, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_73CDL3OUTSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_121CDLHANGINGMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_t_5) < (0)) __PYX_ERR(6, 1255, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_t_2) < (0)) __PYX_ERR(6, 2234, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_75CDL3STARSINSOUTH, 0, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_123CDLHARAMI, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_t_5) < (0)) __PYX_ERR(6, 1297, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_t_2) < (0)) __PYX_ERR(6, 2276, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_77CDL3WHITESOLDIERS, 0, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1339, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_125CDLHARAMICROSS, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_t_5) < (0)) __PYX_ERR(6, 1339, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_t_2) < (0)) __PYX_ERR(6, 2318, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1383, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_127CDLHIGHWAVE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_t_2) < (0)) __PYX_ERR(6, 2360, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 1381, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_79CDLABANDONEDBABY, 0, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1381, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_129CDLHIKKAKE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_t_5) < (0)) __PYX_ERR(6, 1381, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_t_2) < (0)) __PYX_ERR(6, 2402, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_81CDLADVANCEBLOCK, 0, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_131CDLHIKKAKEMOD, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_t_5) < (0)) __PYX_ERR(6, 1425, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_t_2) < (0)) __PYX_ERR(6, 2444, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_83CDLBELTHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1467, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_133CDLHOMINGPIGEON, 0, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_t_5) < (0)) __PYX_ERR(6, 1467, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_t_2) < (0)) __PYX_ERR(6, 2486, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_85CDLBREAKAWAY, 0, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1509, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_135CDLIDENTICAL3CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[77])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2528, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_t_5) < (0)) __PYX_ERR(6, 1509, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_t_2) < (0)) __PYX_ERR(6, 2528, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1551, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_137CDLINNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLINNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[78])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_t_5) < (0)) __PYX_ERR(6, 1551, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_t_2) < (0)) __PYX_ERR(6, 2570, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_89CDLCONCEALBABYSWALL, 0, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1593, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_139CDLINVERTEDHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[79])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_t_5) < (0)) __PYX_ERR(6, 1593, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_t_2) < (0)) __PYX_ERR(6, 2612, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_91CDLCOUNTERATTACK, 0, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1635, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_141CDLKICKING, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[80])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_t_5) < (0)) __PYX_ERR(6, 1635, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_t_2) < (0)) __PYX_ERR(6, 2654, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_143CDLKICKINGBYLENGTH, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[81])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_t_2) < (0)) __PYX_ERR(6, 2696, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 1677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_93CDLDARKCLOUDCOVER, 0, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_145CDLLADDERBOTTOM, 0, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[82])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_t_5) < (0)) __PYX_ERR(6, 1677, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_t_2) < (0)) __PYX_ERR(6, 2738, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_95CDLDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1721, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_147CDLLONGLEGGEDDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[83])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_t_5) < (0)) __PYX_ERR(6, 1721, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_t_2) < (0)) __PYX_ERR(6, 2780, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_97CDLDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1763, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_149CDLLONGLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[84])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2822, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(6, 1763, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_t_2) < (0)) __PYX_ERR(6, 2822, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_99CDLDRAGONFLYDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1805, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_151CDLMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[85])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2864, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_t_5) < (0)) __PYX_ERR(6, 1805, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_t_2) < (0)) __PYX_ERR(6, 2864, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_101CDLENGULFING, 0, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1847, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_153CDLMATCHINGLOW, 0, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[86])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2906, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_t_5) < (0)) __PYX_ERR(6, 1847, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_t_2) < (0)) __PYX_ERR(6, 2906, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1891, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 1889, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 2948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_103CDLEVENINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1889, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_155CDLMATHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[87])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(6, 1889, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_t_2) < (0)) __PYX_ERR(6, 2948, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1935, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 1933, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 2992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_105CDLEVENINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1933, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_157CDLMORNINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[88])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 2992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(6, 1933, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_t_2) < (0)) __PYX_ERR(6, 2992, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE, 0, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 1977, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + { + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 3036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_159CDLMORNINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[89])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_t_5) < (0)) __PYX_ERR(6, 1977, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_t_2) < (0)) __PYX_ERR(6, 3036, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_109CDLGRAVESTONEDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2019, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_161CDLONNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLONNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[90])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_t_5) < (0)) __PYX_ERR(6, 2019, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_t_2) < (0)) __PYX_ERR(6, 3080, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_111CDLHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2061, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_163CDLPIERCING, 0, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[91])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_t_5) < (0)) __PYX_ERR(6, 2061, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_t_2) < (0)) __PYX_ERR(6, 3122, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_113CDLHANGINGMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_165CDLRICKSHAWMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[92])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_t_5) < (0)) __PYX_ERR(6, 2103, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_t_2) < (0)) __PYX_ERR(6, 3164, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_115CDLHARAMI, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2145, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_167CDLRISEFALL3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[93])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_t_5) < (0)) __PYX_ERR(6, 2145, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_t_2) < (0)) __PYX_ERR(6, 3206, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_117CDLHARAMICROSS, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_169CDLSEPARATINGLINES, 0, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[94])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_t_5) < (0)) __PYX_ERR(6, 2187, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_t_2) < (0)) __PYX_ERR(6, 3248, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_119CDLHIGHWAVE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_171CDLSHOOTINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[95])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_t_5) < (0)) __PYX_ERR(6, 2229, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_t_2) < (0)) __PYX_ERR(6, 3290, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_121CDLHIKKAKE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2271, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_173CDLSHORTLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[96])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_t_5) < (0)) __PYX_ERR(6, 2271, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_t_2) < (0)) __PYX_ERR(6, 3332, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_123CDLHIKKAKEMOD, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2313, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_175CDLSPINNINGTOP, 0, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[97])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_t_5) < (0)) __PYX_ERR(6, 2313, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_t_2) < (0)) __PYX_ERR(6, 3374, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_125CDLHOMINGPIGEON, 0, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2355, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_177CDLSTALLEDPATTERN, 0, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[98])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_t_5) < (0)) __PYX_ERR(6, 2355, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_t_2) < (0)) __PYX_ERR(6, 3416, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_127CDLIDENTICAL3CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2397, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_179CDLSTICKSANDWICH, 0, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[99])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_t_5) < (0)) __PYX_ERR(6, 2397, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_t_2) < (0)) __PYX_ERR(6, 3458, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_129CDLINNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLINNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2439, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_181CDLTAKURI, 0, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[100])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_t_5) < (0)) __PYX_ERR(6, 2439, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_t_2) < (0)) __PYX_ERR(6, 3500, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_131CDLINVERTEDHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2481, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_183CDLTASUKIGAP, 0, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[101])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_t_5) < (0)) __PYX_ERR(6, 2481, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_t_2) < (0)) __PYX_ERR(6, 3542, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_133CDLKICKING, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2523, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_185CDLTHRUSTING, 0, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[102])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_t_5) < (0)) __PYX_ERR(6, 2523, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_t_2) < (0)) __PYX_ERR(6, 3584, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_135CDLKICKINGBYLENGTH, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[77])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_187CDLTRISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[103])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_t_5) < (0)) __PYX_ERR(6, 2565, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_t_2) < (0)) __PYX_ERR(6, 3626, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_137CDLLADDERBOTTOM, 0, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[78])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_189CDLUNIQUE3RIVER, 0, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[104])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_t_5) < (0)) __PYX_ERR(6, 2607, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_t_2) < (0)) __PYX_ERR(6, 3668, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[79])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_191CDLUPSIDEGAP2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[105])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_t_5) < (0)) __PYX_ERR(6, 2649, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_t_2) < (0)) __PYX_ERR(6, 3710, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_141CDLLONGLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[80])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2691, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_193CDLXSIDEGAP3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[106])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_t_5) < (0)) __PYX_ERR(6, 2691, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_t_2) < (0)) __PYX_ERR(6, 3752, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_143CDLMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[81])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2733, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_195CEIL, 0, __pyx_mstate_global->__pyx_n_u_CEIL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[107])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_t_5) < (0)) __PYX_ERR(6, 2733, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_t_2) < (0)) __PYX_ERR(6, 3794, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_145CDLMATCHINGLOW, 0, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[82])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2775, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + { + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 3833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_197CG, 0, __pyx_mstate_global->__pyx_n_u_CG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[108])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_t_5) < (0)) __PYX_ERR(6, 2775, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CG, __pyx_t_2) < (0)) __PYX_ERR(6, 3833, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2819, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 2817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 3874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_147CDLMATHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[83])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_199CHOP, 0, __pyx_mstate_global->__pyx_n_u_CHOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[109])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_t_5) < (0)) __PYX_ERR(6, 2817, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CHOP, __pyx_t_2) < (0)) __PYX_ERR(6, 3874, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2863, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 2861, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 3917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_149CDLMORNINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[84])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2861, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_201CHOPTR, 0, __pyx_mstate_global->__pyx_n_u_CHOPTR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[110])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(6, 2861, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CHOPTR, __pyx_t_2) < (0)) __PYX_ERR(6, 3917, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2907, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 3962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = PyFloat_FromDouble(((double)1.0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 3962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 2905, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject* __pyx_temp[3] = {__pyx_t_2, __pyx_t_4, __pyx_t_5}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 3960, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_151CDLMORNINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[85])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2905, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_203CKSP, 0, __pyx_mstate_global->__pyx_n_u_CKSP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[111])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(6, 2905, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CKSP, __pyx_t_5) < (0)) __PYX_ERR(6, 3960, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_153CDLONNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLONNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[86])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2949, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_t_5) < (0)) __PYX_ERR(6, 2949, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_155CDLPIERCING, 0, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[87])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2991, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_t_5) < (0)) __PYX_ERR(6, 2991, __pyx_L1_error) + { + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_157CDLRICKSHAWMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[88])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3033, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_205CMF, 0, __pyx_mstate_global->__pyx_n_u_CMF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[112])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_t_5) < (0)) __PYX_ERR(6, 3033, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMF, __pyx_t_5) < (0)) __PYX_ERR(6, 4008, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_159CDLRISEFALL3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[89])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3075, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_t_5) < (0)) __PYX_ERR(6, 3075, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_161CDLSEPARATINGLINES, 0, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[90])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_t_5) < (0)) __PYX_ERR(6, 3117, __pyx_L1_error) + { + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_163CDLSHOOTINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[91])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3159, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_207CMO, 0, __pyx_mstate_global->__pyx_n_u_CMO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[113])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(6, 3159, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_5) < (0)) __PYX_ERR(6, 4052, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_165CDLSHORTLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[92])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3201, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_t_5) < (0)) __PYX_ERR(6, 3201, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_167CDLSPINNINGTOP, 0, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[93])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3243, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_t_5) < (0)) __PYX_ERR(6, 3243, __pyx_L1_error) + { + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_169CDLSTALLEDPATTERN, 0, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[94])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3285, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_209CMOU, 0, __pyx_mstate_global->__pyx_n_u_CMOU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[114])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_t_5) < (0)) __PYX_ERR(6, 3285, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMOU, __pyx_t_5) < (0)) __PYX_ERR(6, 4093, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_171CDLSTICKSANDWICH, 0, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[95])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3327, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + { + PyObject* __pyx_temp[3] = {__pyx_t_5, __pyx_t_13, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 4134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_211COPPOCK, 0, __pyx_mstate_global->__pyx_n_u_COPPOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[115])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_t_5) < (0)) __PYX_ERR(6, 3327, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COPPOCK, __pyx_t_4) < (0)) __PYX_ERR(6, 4134, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_173CDLTAKURI, 0, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[96])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3369, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + { + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 4177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_213CORREL, 0, __pyx_mstate_global->__pyx_n_u_CORREL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[116])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_t_5) < (0)) __PYX_ERR(6, 3369, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_t_4) < (0)) __PYX_ERR(6, 4177, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_175CDLTASUKIGAP, 0, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[97])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_215COS, 0, __pyx_mstate_global->__pyx_n_u_COS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[117])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_t_5) < (0)) __PYX_ERR(6, 3411, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COS, __pyx_t_4) < (0)) __PYX_ERR(6, 4220, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_177CDLTHRUSTING, 0, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[98])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3453, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_217COSH, 0, __pyx_mstate_global->__pyx_n_u_COSH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[118])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_t_5) < (0)) __PYX_ERR(6, 3453, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_t_4) < (0)) __PYX_ERR(6, 4259, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_179CDLTRISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[99])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3495, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 4300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + + { + PyObject* __pyx_temp[3] = {__pyx_t_4, __pyx_t_2, __pyx_t_13}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_219CRSI, 0, __pyx_mstate_global->__pyx_n_u_CRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[119])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_t_5) < (0)) __PYX_ERR(6, 3495, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CRSI, __pyx_t_13) < (0)) __PYX_ERR(6, 4298, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_181CDLUNIQUE3RIVER, 0, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[100])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + + { + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_221CTI, 0, __pyx_mstate_global->__pyx_n_u_CTI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[120])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_t_5) < (0)) __PYX_ERR(6, 3537, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CTI, __pyx_t_13) < (0)) __PYX_ERR(6, 4341, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[101])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_223CUMSUM, 0, __pyx_mstate_global->__pyx_n_u_CUMSUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[121])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_t_5) < (0)) __PYX_ERR(6, 3579, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CUMSUM, __pyx_t_13) < (0)) __PYX_ERR(6, 4382, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[102])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3621, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_t_5) < (0)) __PYX_ERR(6, 3621, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_187CEIL, 0, __pyx_mstate_global->__pyx_n_u_CEIL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[103])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3663, __pyx_L1_error) + { + PyObject* __pyx_temp[2] = {__pyx_t_13, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 4421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_225CVI, 0, __pyx_mstate_global->__pyx_n_u_CVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[122])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_t_5) < (0)) __PYX_ERR(6, 3663, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CVI, __pyx_t_5) < (0)) __PYX_ERR(6, 4421, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3704, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 3702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 4464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_189CMF, 0, __pyx_mstate_global->__pyx_n_u_CMF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[104])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3702, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_227DEMA, 0, __pyx_mstate_global->__pyx_n_u_DEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[123])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMF, __pyx_t_5) < (0)) __PYX_ERR(6, 3702, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_5) < (0)) __PYX_ERR(6, 4464, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - - { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 3746, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_191CMO, 0, __pyx_mstate_global->__pyx_n_u_CMO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[105])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3746, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_229DIV, 0, __pyx_mstate_global->__pyx_n_u_DIV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[124])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_5) < (0)) __PYX_ERR(6, 3746, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_t_5) < (0)) __PYX_ERR(6, 4505, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3789, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 3787, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 4546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_193CMOU, 0, __pyx_mstate_global->__pyx_n_u_CMOU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[106])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3787, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_231DONCHIAN, 0, __pyx_mstate_global->__pyx_n_u_DONCHIAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[125])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMOU, __pyx_t_5) < (0)) __PYX_ERR(6, 3787, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DONCHIAN, __pyx_t_5) < (0)) __PYX_ERR(6, 4546, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 3830, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 4596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 3830, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 3830, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 4596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[3] = {__pyx_t_5, __pyx_t_11, __pyx_t_4}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 3828, __pyx_L1_error) + PyObject* __pyx_temp[4] = {__pyx_t_5, __pyx_t_2, __pyx_t_13, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_195COPPOCK, 0, __pyx_mstate_global->__pyx_n_u_COPPOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[107])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 3828, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_233DOSC, 0, __pyx_mstate_global->__pyx_n_u_DOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[126])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COPPOCK, __pyx_t_4) < (0)) __PYX_ERR(6, 3828, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DOSC, __pyx_t_4) < (0)) __PYX_ERR(6, 4594, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 3873, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 3871, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_197CORREL, 0, __pyx_mstate_global->__pyx_n_u_CORREL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[108])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 3871, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_235DPO, 0, __pyx_mstate_global->__pyx_n_u_DPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[127])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_t_4) < (0)) __PYX_ERR(6, 3871, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DPO, __pyx_t_4) < (0)) __PYX_ERR(6, 4638, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_199COS, 0, __pyx_mstate_global->__pyx_n_u_COS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[109])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 3914, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + { + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_237DX, 0, __pyx_mstate_global->__pyx_n_u_DX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[128])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COS, __pyx_t_4) < (0)) __PYX_ERR(6, 3914, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_4) < (0)) __PYX_ERR(6, 4679, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_201COSH, 0, __pyx_mstate_global->__pyx_n_u_COSH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[110])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 3953, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + { + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_239EFI, 0, __pyx_mstate_global->__pyx_n_u_EFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[129])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_t_4) < (0)) __PYX_ERR(6, 3953, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EFI, __pyx_t_4) < (0)) __PYX_ERR(6, 4722, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_203CUMSUM, 0, __pyx_mstate_global->__pyx_n_u_CUMSUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[111])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 3992, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + { + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_241EMA, 0, __pyx_mstate_global->__pyx_n_u_EMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[130])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CUMSUM, __pyx_t_4) < (0)) __PYX_ERR(6, 3992, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_4) < (0)) __PYX_ERR(6, 4764, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4033, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4033, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[2] = {__pyx_t_4, __pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4031, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_205CVI, 0, __pyx_mstate_global->__pyx_n_u_CVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[112])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4031, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_243EMV, 0, __pyx_mstate_global->__pyx_n_u_EMV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[131])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CVI, __pyx_t_3) < (0)) __PYX_ERR(6, 4031, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EMV, __pyx_t_3) < (0)) __PYX_ERR(6, 4805, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4076, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4074, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_207DEMA, 0, __pyx_mstate_global->__pyx_n_u_DEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[113])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4074, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_245ER, 0, __pyx_mstate_global->__pyx_n_u_ER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[132])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_3) < (0)) __PYX_ERR(6, 4074, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ER, __pyx_t_3) < (0)) __PYX_ERR(6, 4849, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_209DIV, 0, __pyx_mstate_global->__pyx_n_u_DIV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[114])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4115, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4892, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + { + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_247ERI, 0, __pyx_mstate_global->__pyx_n_u_ERI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[133])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ERI, __pyx_t_3) < (0)) __PYX_ERR(6, 4890, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_249EXP, 0, __pyx_mstate_global->__pyx_n_u_EXP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[134])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_t_3) < (0)) __PYX_ERR(6, 4115, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_t_3) < (0)) __PYX_ERR(6, 4936, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4158, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 4975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_211DONCHIAN, 0, __pyx_mstate_global->__pyx_n_u_DONCHIAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[115])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4156, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_251FISHER, 0, __pyx_mstate_global->__pyx_n_u_FISHER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[135])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DONCHIAN, __pyx_t_3) < (0)) __PYX_ERR(6, 4156, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FISHER, __pyx_t_3) < (0)) __PYX_ERR(6, 4975, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_253FLOOR, 0, __pyx_mstate_global->__pyx_n_u_FLOOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[136])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_t_3) < (0)) __PYX_ERR(6, 5020, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4206, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_213DPO, 0, __pyx_mstate_global->__pyx_n_u_DPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[116])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4204, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_255FOSC, 0, __pyx_mstate_global->__pyx_n_u_FOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[137])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DPO, __pyx_t_3) < (0)) __PYX_ERR(6, 4204, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FOSC, __pyx_t_3) < (0)) __PYX_ERR(6, 5059, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4247, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + + { + PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_13}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_257FRACTAL, 0, __pyx_mstate_global->__pyx_n_u_FRACTAL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[138])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FRACTAL, __pyx_t_13) < (0)) __PYX_ERR(6, 5100, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + + { + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_259FRAMA, 0, __pyx_mstate_global->__pyx_n_u_FRAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[139])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FRAMA, __pyx_t_13) < (0)) __PYX_ERR(6, 5146, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_261HA, 0, __pyx_mstate_global->__pyx_n_u_HA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[140])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HA, __pyx_t_13) < (0)) __PYX_ERR(6, 5188, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + + { + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_263HMA, 0, __pyx_mstate_global->__pyx_n_u_HMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[141])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_t_13) < (0)) __PYX_ERR(6, 5239, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_265HT_DCPERIOD, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[142])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_13) < (0)) __PYX_ERR(6, 5280, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_267HT_DCPHASE, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[143])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_13) < (0)) __PYX_ERR(6, 5319, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_269HT_PHASOR, 0, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[144])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_13) < (0)) __PYX_ERR(6, 5358, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_271HT_SINE, 0, __pyx_mstate_global->__pyx_n_u_HT_SINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[145])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_13) < (0)) __PYX_ERR(6, 5400, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_273HT_TRENDLINE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[146])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_13) < (0)) __PYX_ERR(6, 5442, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_275HT_TRENDMODE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[147])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_13) < (0)) __PYX_ERR(6, 5481, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4245, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_215DX, 0, __pyx_mstate_global->__pyx_n_u_DX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[117])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4245, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_277IBS, 0, __pyx_mstate_global->__pyx_n_u_IBS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[148])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_3) < (0)) __PYX_ERR(6, 4245, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IBS, __pyx_t_13) < (0)) __PYX_ERR(6, 5520, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4290, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5563, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5563, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4288, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject* __pyx_temp[3] = {__pyx_t_13, __pyx_t_4, __pyx_t_3}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_217EFI, 0, __pyx_mstate_global->__pyx_n_u_EFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[118])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4288, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_279ICHIMOKU, 0, __pyx_mstate_global->__pyx_n_u_ICHIMOKU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[149])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EFI, __pyx_t_3) < (0)) __PYX_ERR(6, 4288, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ICHIMOKU, __pyx_t_3) < (0)) __PYX_ERR(6, 5561, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4332, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4330, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_219EMA, 0, __pyx_mstate_global->__pyx_n_u_EMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[119])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4330, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_281IMI, 0, __pyx_mstate_global->__pyx_n_u_IMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[150])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_3) < (0)) __PYX_ERR(6, 4330, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_t_3) < (0)) __PYX_ERR(6, 5614, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4373, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4371, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_221ER, 0, __pyx_mstate_global->__pyx_n_u_ER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[120])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4371, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_283KAMA, 0, __pyx_mstate_global->__pyx_n_u_KAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[151])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ER, __pyx_t_3) < (0)) __PYX_ERR(6, 4371, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_3) < (0)) __PYX_ERR(6, 5656, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4414, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4412, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject* __pyx_temp[3] = {__pyx_t_3, __pyx_t_2, __pyx_t_4}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_223ERI, 0, __pyx_mstate_global->__pyx_n_u_ERI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[121])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4412, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ERI, __pyx_t_3) < (0)) __PYX_ERR(6, 4412, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_225EXP, 0, __pyx_mstate_global->__pyx_n_u_EXP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[122])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4458, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_t_3) < (0)) __PYX_ERR(6, 4458, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_227FLOOR, 0, __pyx_mstate_global->__pyx_n_u_FLOOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[123])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4497, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_285KC, 0, __pyx_mstate_global->__pyx_n_u_KC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[152])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_t_3) < (0)) __PYX_ERR(6, 4497, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KC, __pyx_t_4) < (0)) __PYX_ERR(6, 5697, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4538, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject* __pyx_temp[5] = {__pyx_t_4, __pyx_t_13, __pyx_t_2, __pyx_t_3, __pyx_t_5}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 5748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_229FOSC, 0, __pyx_mstate_global->__pyx_n_u_FOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[124])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_287KDJ, 0, __pyx_mstate_global->__pyx_n_u_KDJ, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[153])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FOSC, __pyx_t_3) < (0)) __PYX_ERR(6, 4536, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KDJ, __pyx_t_5) < (0)) __PYX_ERR(6, 5748, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4579, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 5803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4579, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 5803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); + __pyx_t_14 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(6, 5803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_15 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(6, 5803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); { - PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_11}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[9] = {__pyx_t_5, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_13, __pyx_t_4, __pyx_t_11, __pyx_t_14, __pyx_t_15}; + __pyx_t_16 = __Pyx_PyTuple_FromArray(__pyx_temp, 9); if (unlikely(!__pyx_t_16)) __PYX_ERR(6, 5801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_231FRACTAL, 0, __pyx_mstate_global->__pyx_n_u_FRACTAL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[125])); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FRACTAL, __pyx_t_11) < (0)) __PYX_ERR(6, 4577, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_233HA, 0, __pyx_mstate_global->__pyx_n_u_HA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[126])); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4623, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_289KST, 0, __pyx_mstate_global->__pyx_n_u_KST, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[154])); if (unlikely(!__pyx_t_15)) __PYX_ERR(6, 5801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HA, __pyx_t_11) < (0)) __PYX_ERR(6, 4623, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_16); + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KST, __pyx_t_15) < (0)) __PYX_ERR(6, 5801, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4676, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(6, 5855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(6, 5855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __pyx_t_14 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(6, 5855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 5855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 5855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 5855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_17 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_17)) __PYX_ERR(6, 5855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); { - PyObject* __pyx_temp[1] = {__pyx_t_11}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4674, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[11] = {__pyx_t_15, __pyx_t_16, __pyx_t_14, __pyx_t_11, __pyx_t_4, __pyx_t_13, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_5, __pyx_t_17}; + __pyx_t_18 = __Pyx_PyTuple_FromArray(__pyx_temp, 11); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 5853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); } + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_235HMA, 0, __pyx_mstate_global->__pyx_n_u_HMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[127])); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4674, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_t_11) < (0)) __PYX_ERR(6, 4674, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_237HT_DCPERIOD, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[128])); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_11) < (0)) __PYX_ERR(6, 4715, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_239HT_DCPHASE, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[129])); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_291KSTEXT, 0, __pyx_mstate_global->__pyx_n_u_KSTEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[155])); if (unlikely(!__pyx_t_17)) __PYX_ERR(6, 5853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_11) < (0)) __PYX_ERR(6, 4754, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_17, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KSTEXT, __pyx_t_17) < (0)) __PYX_ERR(6, 5853, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_241HT_PHASOR, 0, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[130])); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4793, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_11) < (0)) __PYX_ERR(6, 4793, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_17 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_17)) __PYX_ERR(6, 5909, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_243HT_SINE, 0, __pyx_mstate_global->__pyx_n_u_HT_SINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[131])); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4835, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + { + PyObject* __pyx_temp[1] = {__pyx_t_17}; + __pyx_t_18 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 5907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + } + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_293KURTOSIS, 0, __pyx_mstate_global->__pyx_n_u_KURTOSIS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[156])); if (unlikely(!__pyx_t_17)) __PYX_ERR(6, 5907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_11) < (0)) __PYX_ERR(6, 4835, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_17, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KURTOSIS, __pyx_t_17) < (0)) __PYX_ERR(6, 5907, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_245HT_TRENDLINE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[132])); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4877, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_11) < (0)) __PYX_ERR(6, 4877, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_17 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_17)) __PYX_ERR(6, 5950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + __pyx_t_18 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 5950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_247HT_TRENDMODE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[133])); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4916, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + { + PyObject* __pyx_temp[3] = {__pyx_t_17, __pyx_t_18, __pyx_t_5}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 5948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + } + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_295KVO, 0, __pyx_mstate_global->__pyx_n_u_KVO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[157])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_11) < (0)) __PYX_ERR(6, 4916, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KVO, __pyx_t_5) < (0)) __PYX_ERR(6, 5948, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4957, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_11}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4955, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 5997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_249IMI, 0, __pyx_mstate_global->__pyx_n_u_IMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[134])); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4955, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_297LINEARREG, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[158])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_t_11) < (0)) __PYX_ERR(6, 4955, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_t_5) < (0)) __PYX_ERR(6, 5997, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4999, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6040, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_11}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 4997, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_251KAMA, 0, __pyx_mstate_global->__pyx_n_u_KAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[135])); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4997, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_299LINEARREG_ANGLE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[159])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_11) < (0)) __PYX_ERR(6, 4997, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_t_5) < (0)) __PYX_ERR(6, 6038, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 5040, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5040, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5040, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[3] = {__pyx_t_11, __pyx_t_4, __pyx_t_3}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5038, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_253KC, 0, __pyx_mstate_global->__pyx_n_u_KC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[136])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5038, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_301LINEARREG_INTERCEPT, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[160])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_t_5) < (0)) __PYX_ERR(6, 6079, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KC, __pyx_t_3) < (0)) __PYX_ERR(6, 5038, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5091, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5091, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5091, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 5091, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5091, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[5] = {__pyx_t_3, __pyx_t_5, __pyx_t_4, __pyx_t_11, __pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5089, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_255KDJ, 0, __pyx_mstate_global->__pyx_n_u_KDJ, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[137])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5089, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_303LINEARREG_SLOPE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[161])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KDJ, __pyx_t_2) < (0)) __PYX_ERR(6, 5089, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_t_5) < (0)) __PYX_ERR(6, 6120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_305LN, 0, __pyx_mstate_global->__pyx_n_u_LN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[162])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LN, __pyx_t_5) < (0)) __PYX_ERR(6, 6161, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_257LINEARREG, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[138])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_307LOG10, 0, __pyx_mstate_global->__pyx_n_u_LOG10, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[163])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_t_2) < (0)) __PYX_ERR(6, 5142, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_t_5) < (0)) __PYX_ERR(6, 6200, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[2] = {__pyx_t_5, __pyx_t_12}; + __pyx_t_18 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 6239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_259LINEARREG_ANGLE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[139])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_309MA, 0, __pyx_mstate_global->__pyx_n_u_MA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[164])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_t_2) < (0)) __PYX_ERR(6, 5183, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA, __pyx_t_12) < (0)) __PYX_ERR(6, 6239, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5226, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_18 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 6283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[3] = {__pyx_t_12, __pyx_t_18, __pyx_t_5}; + __pyx_t_17 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_17)) __PYX_ERR(6, 6281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_261LINEARREG_INTERCEPT, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[140])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_311MACD, 0, __pyx_mstate_global->__pyx_n_u_MACD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[165])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_t_2) < (0)) __PYX_ERR(6, 5224, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_17); + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_t_5) < (0)) __PYX_ERR(6, 6281, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5267, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_17 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_17)) __PYX_ERR(6, 6332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + __pyx_t_18 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 6332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5265, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[6] = {__pyx_t_5, __pyx_t_17, __pyx_t_18, __pyx_t_12, __pyx_t_3, __pyx_t_2}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6330, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_263LINEARREG_SLOPE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[141])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5265, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_t_2) < (0)) __PYX_ERR(6, 5265, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_265LN, 0, __pyx_mstate_global->__pyx_n_u_LN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[142])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5306, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LN, __pyx_t_2) < (0)) __PYX_ERR(6, 5306, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_267LOG10, 0, __pyx_mstate_global->__pyx_n_u_LOG10, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[143])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5345, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_313MACDEXT, 0, __pyx_mstate_global->__pyx_n_u_MACDEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[166])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_t_2) < (0)) __PYX_ERR(6, 5345, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - - { - PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_10}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 5384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - } + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_t_2) < (0)) __PYX_ERR(6, 6330, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_269MA, 0, __pyx_mstate_global->__pyx_n_u_MA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[144])); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA, __pyx_t_10) < (0)) __PYX_ERR(6, 5384, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 5428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5428, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[3] = {__pyx_t_10, __pyx_t_11, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5426, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_271MACD, 0, __pyx_mstate_global->__pyx_n_u_MACD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[145])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5426, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_315MACDFIX, 0, __pyx_mstate_global->__pyx_n_u_MACDFIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[167])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_t_2) < (0)) __PYX_ERR(6, 5426, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_t_2) < (0)) __PYX_ERR(6, 6382, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5477, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 5477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_13 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[6] = {__pyx_t_2, __pyx_t_4, __pyx_t_11, __pyx_t_10, __pyx_t_5, __pyx_t_3}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_13}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_273MACDEXT, 0, __pyx_mstate_global->__pyx_n_u_MACDEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[146])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_317MAMA, 0, __pyx_mstate_global->__pyx_n_u_MAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[168])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_t_3) < (0)) __PYX_ERR(6, 5475, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_13) < (0)) __PYX_ERR(6, 6429, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_319MARKETFI, 0, __pyx_mstate_global->__pyx_n_u_MARKETFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[169])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MARKETFI, __pyx_t_13) < (0)) __PYX_ERR(6, 6474, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5529, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5527, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + PyObject* __pyx_temp[2] = {__pyx_t_13, __pyx_t_3}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_275MACDFIX, 0, __pyx_mstate_global->__pyx_n_u_MACDFIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[147])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5527, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_321MASSI, 0, __pyx_mstate_global->__pyx_n_u_MASSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[170])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_t_3) < (0)) __PYX_ERR(6, 5527, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MASSI, __pyx_t_3) < (0)) __PYX_ERR(6, 6515, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5576, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5576, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_9}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5574, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[3] = {__pyx_t_3, __pyx_t_2, __pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_277MAMA, 0, __pyx_mstate_global->__pyx_n_u_MAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[148])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5574, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_9) < (0)) __PYX_ERR(6, 5574, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_279MARKETFI, 0, __pyx_mstate_global->__pyx_n_u_MARKETFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[149])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5619, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_323MAVP, 0, __pyx_mstate_global->__pyx_n_u_MAVP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[171])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MARKETFI, __pyx_t_9) < (0)) __PYX_ERR(6, 5619, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_t_13) < (0)) __PYX_ERR(6, 6558, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_5}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5660, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_281MASSI, 0, __pyx_mstate_global->__pyx_n_u_MASSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[150])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5660, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_325MAX, 0, __pyx_mstate_global->__pyx_n_u_MAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[172])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MASSI, __pyx_t_5) < (0)) __PYX_ERR(6, 5660, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_t_13) < (0)) __PYX_ERR(6, 6603, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5703, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_283MAVP, 0, __pyx_mstate_global->__pyx_n_u_MAVP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[151])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5703, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_327MAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[173])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_t_9) < (0)) __PYX_ERR(6, 5703, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_t_13) < (0)) __PYX_ERR(6, 6644, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_285MAX, 0, __pyx_mstate_global->__pyx_n_u_MAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[152])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_329MCGD, 0, __pyx_mstate_global->__pyx_n_u_MCGD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[174])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_t_9) < (0)) __PYX_ERR(6, 5748, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MCGD, __pyx_t_13) < (0)) __PYX_ERR(6, 6689, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5791, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6730, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_287MAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[153])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_331MEDIAN, 0, __pyx_mstate_global->__pyx_n_u_MEDIAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[175])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6730, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_t_9) < (0)) __PYX_ERR(6, 5789, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MEDIAN, __pyx_t_13) < (0)) __PYX_ERR(6, 6730, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_289MEDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MEDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[154])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_333MEDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MEDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[176])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_t_9) < (0)) __PYX_ERR(6, 5834, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_t_13) < (0)) __PYX_ERR(6, 6771, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5874, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_291MFI, 0, __pyx_mstate_global->__pyx_n_u_MFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[155])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5874, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_335MFI, 0, __pyx_mstate_global->__pyx_n_u_MFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[177])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_t_9) < (0)) __PYX_ERR(6, 5874, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_t_13) < (0)) __PYX_ERR(6, 6811, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6857, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5918, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_293MIDPOINT, 0, __pyx_mstate_global->__pyx_n_u_MIDPOINT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[156])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5918, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_337MIDPOINT, 0, __pyx_mstate_global->__pyx_n_u_MIDPOINT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[178])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_t_9) < (0)) __PYX_ERR(6, 5918, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_t_13) < (0)) __PYX_ERR(6, 6855, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5961, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 5959, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_295MIDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MIDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[157])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5959, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_339MIDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MIDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[179])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_t_9) < (0)) __PYX_ERR(6, 5959, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_t_13) < (0)) __PYX_ERR(6, 6896, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6003, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6001, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6938, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_297MIN, 0, __pyx_mstate_global->__pyx_n_u_MIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[158])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6001, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_341MIN, 0, __pyx_mstate_global->__pyx_n_u_MIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[180])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6938, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_t_9) < (0)) __PYX_ERR(6, 6001, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_t_13) < (0)) __PYX_ERR(6, 6938, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6042, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 6979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_299MININDEX, 0, __pyx_mstate_global->__pyx_n_u_MININDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[159])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6042, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_343MININDEX, 0, __pyx_mstate_global->__pyx_n_u_MININDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[181])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 6979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_t_9) < (0)) __PYX_ERR(6, 6042, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_t_13) < (0)) __PYX_ERR(6, 6979, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6089, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7024, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_301MINMAX, 0, __pyx_mstate_global->__pyx_n_u_MINMAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[160])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_345MINMAX, 0, __pyx_mstate_global->__pyx_n_u_MINMAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[182])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7024, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_t_9) < (0)) __PYX_ERR(6, 6087, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_t_13) < (0)) __PYX_ERR(6, 7024, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6133, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_303MINMAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[161])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_347MINMAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[183])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_t_9) < (0)) __PYX_ERR(6, 6131, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_t_13) < (0)) __PYX_ERR(6, 7068, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_305MINUS_DI, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[162])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_349MINUS_DI, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[184])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_9) < (0)) __PYX_ERR(6, 6183, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_13) < (0)) __PYX_ERR(6, 7120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6228, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6226, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_307MINUS_DM, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[163])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6226, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_351MINUS_DM, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[185])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_9) < (0)) __PYX_ERR(6, 6226, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_13) < (0)) __PYX_ERR(6, 7163, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6270, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6268, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_309MOM, 0, __pyx_mstate_global->__pyx_n_u_MOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[164])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6268, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_353MOM, 0, __pyx_mstate_global->__pyx_n_u_MOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[186])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_t_9) < (0)) __PYX_ERR(6, 6268, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_t_13) < (0)) __PYX_ERR(6, 7205, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_311MULT, 0, __pyx_mstate_global->__pyx_n_u_MULT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[165])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6309, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_355MULT, 0, __pyx_mstate_global->__pyx_n_u_MULT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[187])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_t_9) < (0)) __PYX_ERR(6, 6309, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_t_13) < (0)) __PYX_ERR(6, 7246, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6352, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6350, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_313NATR, 0, __pyx_mstate_global->__pyx_n_u_NATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[166])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6350, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_357NATR, 0, __pyx_mstate_global->__pyx_n_u_NATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[188])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_9) < (0)) __PYX_ERR(6, 6350, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_13) < (0)) __PYX_ERR(6, 7287, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_315NVI, 0, __pyx_mstate_global->__pyx_n_u_NVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[167])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_359NVI, 0, __pyx_mstate_global->__pyx_n_u_NVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[189])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7330, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NVI, __pyx_t_9) < (0)) __PYX_ERR(6, 6393, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NVI, __pyx_t_13) < (0)) __PYX_ERR(6, 7330, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_317OBV, 0, __pyx_mstate_global->__pyx_n_u_OBV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[168])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6433, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_361OBV, 0, __pyx_mstate_global->__pyx_n_u_OBV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[190])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_t_9) < (0)) __PYX_ERR(6, 6433, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_t_13) < (0)) __PYX_ERR(6, 7370, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6476, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = PyFloat_FromDouble(((double)50.0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6476, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_12 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_10}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject* __pyx_temp[4] = {__pyx_t_13, __pyx_t_12, __pyx_t_2, __pyx_t_3}; + __pyx_t_18 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_319PERCENTILE, 0, __pyx_mstate_global->__pyx_n_u_PERCENTILE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[169])); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_363PERCENTB, 0, __pyx_mstate_global->__pyx_n_u_PERCENTB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[191])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTB, __pyx_t_3) < (0)) __PYX_ERR(6, 7411, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTILE, __pyx_t_10) < (0)) __PYX_ERR(6, 6474, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6518, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_18 = PyFloat_FromDouble(((double)50.0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); { - PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6516, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_18}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_321PERCENTRANK, 0, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[170])); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6516, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_365PERCENTILE, 0, __pyx_mstate_global->__pyx_n_u_PERCENTILE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[192])); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_18); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, __pyx_t_10) < (0)) __PYX_ERR(6, 6516, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTILE, __pyx_t_18) < (0)) __PYX_ERR(6, 7455, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6559, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_18 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); { - PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6557, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject* __pyx_temp[1] = {__pyx_t_18}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_323PLUS_DI, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[171])); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6557, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_367PERCENTRANK, 0, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[193])); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_18); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_10) < (0)) __PYX_ERR(6, 6557, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, __pyx_t_18) < (0)) __PYX_ERR(6, 7497, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6602, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_18 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); { - PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject* __pyx_temp[1] = {__pyx_t_18}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_325PLUS_DM, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[172])); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_369PLUS_DI, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[194])); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_18); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_18) < (0)) __PYX_ERR(6, 7538, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + __pyx_t_18 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + { + PyObject* __pyx_temp[1] = {__pyx_t_18}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_371PLUS_DM, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[195])); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_18); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_18) < (0)) __PYX_ERR(6, 7581, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + __pyx_t_18 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + { + PyObject* __pyx_temp[3] = {__pyx_t_18, __pyx_t_2, __pyx_t_3}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + } + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_373PPO, 0, __pyx_mstate_global->__pyx_n_u_PPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[196])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_t_3) < (0)) __PYX_ERR(6, 7623, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_10) < (0)) __PYX_ERR(6, 6600, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6644, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); { - PyObject* __pyx_temp[3] = {__pyx_t_10, __pyx_t_3, __pyx_t_9}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_12}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_327PPO, 0, __pyx_mstate_global->__pyx_n_u_PPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[173])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_375PSO, 0, __pyx_mstate_global->__pyx_n_u_PSO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[197])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_t_9) < (0)) __PYX_ERR(6, 6642, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PSO, __pyx_t_12) < (0)) __PYX_ERR(6, 7666, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_329PVI, 0, __pyx_mstate_global->__pyx_n_u_PVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[174])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_377PVI, 0, __pyx_mstate_global->__pyx_n_u_PVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[198])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVI, __pyx_t_9) < (0)) __PYX_ERR(6, 6685, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVI, __pyx_t_12) < (0)) __PYX_ERR(6, 7710, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6727, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 6727, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6727, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[3] = {__pyx_t_9, __pyx_t_5, __pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6725, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject* __pyx_temp[3] = {__pyx_t_12, __pyx_t_2, __pyx_t_3}; + __pyx_t_18 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_331PVO, 0, __pyx_mstate_global->__pyx_n_u_PVO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[175])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6725, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_379PVO, 0, __pyx_mstate_global->__pyx_n_u_PVO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[199])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVO, __pyx_t_3) < (0)) __PYX_ERR(6, 6725, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVO, __pyx_t_3) < (0)) __PYX_ERR(6, 7750, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_333PVT, 0, __pyx_mstate_global->__pyx_n_u_PVT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[176])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6768, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_381PVT, 0, __pyx_mstate_global->__pyx_n_u_PVT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[200])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVT, __pyx_t_3) < (0)) __PYX_ERR(6, 6768, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVT, __pyx_t_3) < (0)) __PYX_ERR(6, 7793, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6810, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6808, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_18 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_335QSTICK, 0, __pyx_mstate_global->__pyx_n_u_QSTICK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[177])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6808, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_383QSTICK, 0, __pyx_mstate_global->__pyx_n_u_QSTICK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[201])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_QSTICK, __pyx_t_3) < (0)) __PYX_ERR(6, 6808, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_QSTICK, __pyx_t_3) < (0)) __PYX_ERR(6, 7833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6852, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6850, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_18 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_337RMA, 0, __pyx_mstate_global->__pyx_n_u_RMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[178])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6850, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_385RMA, 0, __pyx_mstate_global->__pyx_n_u_RMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[202])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_3) < (0)) __PYX_ERR(6, 6850, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_3) < (0)) __PYX_ERR(6, 7875, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6893, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6891, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_18 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_339ROC, 0, __pyx_mstate_global->__pyx_n_u_ROC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[179])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6891, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_387ROC, 0, __pyx_mstate_global->__pyx_n_u_ROC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[203])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_t_3) < (0)) __PYX_ERR(6, 6891, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_t_3) < (0)) __PYX_ERR(6, 7916, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6934, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6932, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_18 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_341ROCP, 0, __pyx_mstate_global->__pyx_n_u_ROCP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[180])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6932, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_389ROCP, 0, __pyx_mstate_global->__pyx_n_u_ROCP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[204])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_t_3) < (0)) __PYX_ERR(6, 6932, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_t_3) < (0)) __PYX_ERR(6, 7957, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6975, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 6973, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_18 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 7998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_343ROCR, 0, __pyx_mstate_global->__pyx_n_u_ROCR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[181])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6973, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_391ROCR, 0, __pyx_mstate_global->__pyx_n_u_ROCR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[205])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_t_3) < (0)) __PYX_ERR(6, 6973, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_t_3) < (0)) __PYX_ERR(6, 7998, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7016, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 7014, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_18 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 8039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_345ROCR100, 0, __pyx_mstate_global->__pyx_n_u_ROCR100, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[182])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7014, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_393ROCR100, 0, __pyx_mstate_global->__pyx_n_u_ROCR100, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[206])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_t_3) < (0)) __PYX_ERR(6, 7014, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_t_3) < (0)) __PYX_ERR(6, 8039, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_18 = PyFloat_FromDouble(((double)252.0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 8082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + { + PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_18}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_395ROGERSSATCHELL, 0, __pyx_mstate_global->__pyx_n_u_ROGERSSATCHELL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[207])); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 8080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_18); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROGERSSATCHELL, __pyx_t_18) < (0)) __PYX_ERR(6, 8080, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + __pyx_t_18 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 8127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + { + PyObject* __pyx_temp[1] = {__pyx_t_18}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_397RSI, 0, __pyx_mstate_global->__pyx_n_u_RSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[208])); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 8125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_18); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_18) < (0)) __PYX_ERR(6, 8125, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + __pyx_t_18 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 8168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + { + PyObject* __pyx_temp[2] = {__pyx_t_18, __pyx_t_2}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_399RVI, 0, __pyx_mstate_global->__pyx_n_u_RVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[209])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_t_2) < (0)) __PYX_ERR(6, 8166, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + { + PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_3}; + __pyx_t_18 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 8208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_401RVIR, 0, __pyx_mstate_global->__pyx_n_u_RVIR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[210])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVIR, __pyx_t_3) < (0)) __PYX_ERR(6, 8208, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7057, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 7055, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_18 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 8251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_347RSI, 0, __pyx_mstate_global->__pyx_n_u_RSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[183])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7055, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_403RVOL, 0, __pyx_mstate_global->__pyx_n_u_RVOL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[211])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_3) < (0)) __PYX_ERR(6, 7055, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVOL, __pyx_t_3) < (0)) __PYX_ERR(6, 8251, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7098, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 7098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_18 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 8294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); { - PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_10}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_18}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_349RVI, 0, __pyx_mstate_global->__pyx_n_u_RVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[184])); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 7096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_405SAR, 0, __pyx_mstate_global->__pyx_n_u_SAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[212])); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 8292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_18); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_5); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_t_18) < (0)) __PYX_ERR(6, 8292, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + __pyx_t_18 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_18)) __PYX_ERR(6, 8337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 8337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_17 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_17)) __PYX_ERR(6, 8337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + { + PyObject* __pyx_temp[8] = {__pyx_t_18, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_t_17, __pyx_t_5, __pyx_t_4}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 8); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 8335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + } + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_t_10) < (0)) __PYX_ERR(6, 7096, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_407SAREXT, 0, __pyx_mstate_global->__pyx_n_u_SAREXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[213])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_t_4) < (0)) __PYX_ERR(6, 8335, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 7140, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 8384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_351RVOL, 0, __pyx_mstate_global->__pyx_n_u_RVOL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[185])); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 7138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_409SI, 0, __pyx_mstate_global->__pyx_n_u_SI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[214])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVOL, __pyx_t_10) < (0)) __PYX_ERR(6, 7138, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SI, __pyx_t_4) < (0)) __PYX_ERR(6, 8384, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_10 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 7181, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_5 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7181, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_411SIN, 0, __pyx_mstate_global->__pyx_n_u_SIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[215])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_t_4) < (0)) __PYX_ERR(6, 8428, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_413SINH, 0, __pyx_mstate_global->__pyx_n_u_SINH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[216])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_t_4) < (0)) __PYX_ERR(6, 8467, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + { + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 8506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_415SMA, 0, __pyx_mstate_global->__pyx_n_u_SMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[217])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_4) < (0)) __PYX_ERR(6, 8506, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 8549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); + __pyx_t_17 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_17)) __PYX_ERR(6, 8549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); { - PyObject* __pyx_temp[2] = {__pyx_t_10, __pyx_t_5}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject* __pyx_temp[4] = {__pyx_t_4, __pyx_t_11, __pyx_t_5, __pyx_t_17}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 8547, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_353SAR, 0, __pyx_mstate_global->__pyx_n_u_SAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[186])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_417SMI, 0, __pyx_mstate_global->__pyx_n_u_SMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[218])); if (unlikely(!__pyx_t_17)) __PYX_ERR(6, 8547, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_t_5) < (0)) __PYX_ERR(6, 7179, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_17, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMI, __pyx_t_17) < (0)) __PYX_ERR(6, 8547, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + + __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_419SQRT, 0, __pyx_mstate_global->__pyx_n_u_SQRT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[219])); if (unlikely(!__pyx_t_17)) __PYX_ERR(6, 8596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_t_17) < (0)) __PYX_ERR(6, 8596, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7224, __pyx_L1_error) + __pyx_t_17 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_17)) __PYX_ERR(6, 8637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + __pyx_t_13 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 8637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_10 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 7224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 7224, __pyx_L1_error) + __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 8637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7224, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_12 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7224, __pyx_L1_error) + __pyx_t_12 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); { - PyObject* __pyx_temp[8] = {__pyx_t_5, __pyx_t_3, __pyx_t_10, __pyx_t_9, __pyx_t_11, __pyx_t_4, __pyx_t_2, __pyx_t_12}; - __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 8); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + PyObject* __pyx_temp[6] = {__pyx_t_17, __pyx_t_13, __pyx_t_5, __pyx_t_11, __pyx_t_4, __pyx_t_12}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8635, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_355SAREXT, 0, __pyx_mstate_global->__pyx_n_u_SAREXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[187])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7222, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_421SQZMOM, 0, __pyx_mstate_global->__pyx_n_u_SQZMOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[220])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_13); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_t_12) < (0)) __PYX_ERR(6, 7222, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SQZMOM, __pyx_t_12) < (0)) __PYX_ERR(6, 8635, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_357SIN, 0, __pyx_mstate_global->__pyx_n_u_SIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[188])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7271, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + { + PyObject* __pyx_temp[3] = {__pyx_t_12, __pyx_t_3, __pyx_t_4}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 8686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + } + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_423STC, 0, __pyx_mstate_global->__pyx_n_u_STC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[221])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_t_12) < (0)) __PYX_ERR(6, 7271, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STC, __pyx_t_4) < (0)) __PYX_ERR(6, 8686, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_359SINH, 0, __pyx_mstate_global->__pyx_n_u_SINH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[189])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8731, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 8731, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + + { + PyObject* __pyx_temp[2] = {__pyx_t_4, __pyx_t_11}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_425STDDEV, 0, __pyx_mstate_global->__pyx_n_u_STDDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[222])); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 8729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_t_12) < (0)) __PYX_ERR(6, 7310, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_t_11) < (0)) __PYX_ERR(6, 8729, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7351, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 8773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7349, __pyx_L1_error) + PyObject* __pyx_temp[5] = {__pyx_t_11, __pyx_t_3, __pyx_t_4, __pyx_t_12, __pyx_t_5}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 8771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); } + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_427STOCH, 0, __pyx_mstate_global->__pyx_n_u_STOCH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[223])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_t_5) < (0)) __PYX_ERR(6, 8771, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8823, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 8823, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8823, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + + { + PyObject* __pyx_temp[3] = {__pyx_t_5, __pyx_t_13, __pyx_t_12}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_361SMA, 0, __pyx_mstate_global->__pyx_n_u_SMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[190])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7349, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_429STOCHF, 0, __pyx_mstate_global->__pyx_n_u_STOCHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[224])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_13); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_12) < (0)) __PYX_ERR(6, 7349, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_t_12) < (0)) __PYX_ERR(6, 8821, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7392, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7392, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7392, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7392, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 8871, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8871, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[4] = {__pyx_t_12, __pyx_t_13, __pyx_t_2, __pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 7390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject* __pyx_temp[4] = {__pyx_t_12, __pyx_t_4, __pyx_t_13, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_363SMI, 0, __pyx_mstate_global->__pyx_n_u_SMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[191])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_431STOCHRSI, 0, __pyx_mstate_global->__pyx_n_u_STOCHRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[225])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMI, __pyx_t_4) < (0)) __PYX_ERR(6, 7390, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_t_5) < (0)) __PYX_ERR(6, 8869, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_365SQRT, 0, __pyx_mstate_global->__pyx_n_u_SQRT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[192])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7439, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_433SUB, 0, __pyx_mstate_global->__pyx_n_u_SUB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[226])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_t_4) < (0)) __PYX_ERR(6, 7439, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_t_5) < (0)) __PYX_ERR(6, 8916, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 7480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8959, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[2] = {__pyx_t_4, __pyx_t_11}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_367STDDEV, 0, __pyx_mstate_global->__pyx_n_u_STDDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[193])); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 7478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_435SUM, 0, __pyx_mstate_global->__pyx_n_u_SUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[227])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 8957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_t_5) < (0)) __PYX_ERR(6, 8957, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = PyFloat_FromDouble(((double)3.0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + { + PyObject* __pyx_temp[2] = {__pyx_t_5, __pyx_t_3}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 8998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_437SUPERTREND, 0, __pyx_mstate_global->__pyx_n_u_SUPERTREND, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[228])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_t_11) < (0)) __PYX_ERR(6, 7478, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUPERTREND, __pyx_t_3) < (0)) __PYX_ERR(6, 8998, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 7522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[5] = {__pyx_t_11, __pyx_t_2, __pyx_t_4, __pyx_t_13, __pyx_t_12}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9045, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_369STOCH, 0, __pyx_mstate_global->__pyx_n_u_STOCH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[194])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_439SWAK_2PHP, 0, __pyx_mstate_global->__pyx_n_u_SWAK_2PHP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[229])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9045, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_t_12) < (0)) __PYX_ERR(6, 7520, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SWAK_2PHP, __pyx_t_3) < (0)) __PYX_ERR(6, 9045, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7572, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_13 = PyFloat_FromDouble(((double)0.1)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[3] = {__pyx_t_12, __pyx_t_9, __pyx_t_13}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7570, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_13}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_371STOCHF, 0, __pyx_mstate_global->__pyx_n_u_STOCHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[195])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7570, __pyx_L1_error) + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_441SWAK_BP, 0, __pyx_mstate_global->__pyx_n_u_SWAK_BP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[230])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_t_13) < (0)) __PYX_ERR(6, 7570, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SWAK_BP, __pyx_t_13) < (0)) __PYX_ERR(6, 9086, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7620, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7620, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7620, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7620, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); { - PyObject* __pyx_temp[4] = {__pyx_t_13, __pyx_t_4, __pyx_t_9, __pyx_t_12}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_373STOCHRSI, 0, __pyx_mstate_global->__pyx_n_u_STOCHRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[196])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_t_12) < (0)) __PYX_ERR(6, 7618, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_375SUB, 0, __pyx_mstate_global->__pyx_n_u_SUB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[197])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7665, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_443SWAK_BUTTER, 0, __pyx_mstate_global->__pyx_n_u_SWAK_BUTTER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[231])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_t_12) < (0)) __PYX_ERR(6, 7665, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SWAK_BUTTER, __pyx_t_13) < (0)) __PYX_ERR(6, 9128, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_377SUM, 0, __pyx_mstate_global->__pyx_n_u_SUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[198])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_445SWAK_GAUSS, 0, __pyx_mstate_global->__pyx_n_u_SWAK_GAUSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[232])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_t_12) < (0)) __PYX_ERR(6, 7706, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SWAK_GAUSS, __pyx_t_13) < (0)) __PYX_ERR(6, 9169, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7749, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_2 = PyFloat_FromDouble(((double)3.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7749, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[2] = {__pyx_t_12, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_379SUPERTREND, 0, __pyx_mstate_global->__pyx_n_u_SUPERTREND, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[199])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_447SWAK_HP, 0, __pyx_mstate_global->__pyx_n_u_SWAK_HP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[233])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUPERTREND, __pyx_t_2) < (0)) __PYX_ERR(6, 7747, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SWAK_HP, __pyx_t_13) < (0)) __PYX_ERR(6, 9210, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7794, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject* __pyx_temp[2] = {__pyx_t_13, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_381T3, 0, __pyx_mstate_global->__pyx_n_u_T3, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[200])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7794, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_449T3, 0, __pyx_mstate_global->__pyx_n_u_T3, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[234])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_9) < (0)) __PYX_ERR(6, 7794, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_5) < (0)) __PYX_ERR(6, 9251, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_383TAN, 0, __pyx_mstate_global->__pyx_n_u_TAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[201])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7836, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_451TAN, 0, __pyx_mstate_global->__pyx_n_u_TAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[235])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_t_9) < (0)) __PYX_ERR(6, 7836, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_t_5) < (0)) __PYX_ERR(6, 9293, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_385TANH, 0, __pyx_mstate_global->__pyx_n_u_TANH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[202])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_453TANH, 0, __pyx_mstate_global->__pyx_n_u_TANH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[236])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_t_9) < (0)) __PYX_ERR(6, 7875, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_t_5) < (0)) __PYX_ERR(6, 9332, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7916, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7914, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_387TEMA, 0, __pyx_mstate_global->__pyx_n_u_TEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[203])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7914, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_455TEMA, 0, __pyx_mstate_global->__pyx_n_u_TEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[237])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_9) < (0)) __PYX_ERR(6, 7914, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_5) < (0)) __PYX_ERR(6, 9371, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_389TRANGE, 0, __pyx_mstate_global->__pyx_n_u_TRANGE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[204])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7955, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_457TRANGE, 0, __pyx_mstate_global->__pyx_n_u_TRANGE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[238])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_t_9) < (0)) __PYX_ERR(6, 7955, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_t_5) < (0)) __PYX_ERR(6, 9412, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7998, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7996, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_391TRIMA, 0, __pyx_mstate_global->__pyx_n_u_TRIMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[205])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 7996, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_459TRIMA, 0, __pyx_mstate_global->__pyx_n_u_TRIMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[239])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_9) < (0)) __PYX_ERR(6, 7996, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_5) < (0)) __PYX_ERR(6, 9453, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 8039, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8037, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_393TRIX, 0, __pyx_mstate_global->__pyx_n_u_TRIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[206])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 8037, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_461TRIX, 0, __pyx_mstate_global->__pyx_n_u_TRIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[240])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_t_9) < (0)) __PYX_ERR(6, 8037, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_t_5) < (0)) __PYX_ERR(6, 9494, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 8080, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_395TSF, 0, __pyx_mstate_global->__pyx_n_u_TSF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[207])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 8078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_463TSF, 0, __pyx_mstate_global->__pyx_n_u_TSF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[241])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_t_9) < (0)) __PYX_ERR(6, 8078, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_t_5) < (0)) __PYX_ERR(6, 9535, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 8121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_12}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[2] = {__pyx_t_5, __pyx_t_3}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_397TSI, 0, __pyx_mstate_global->__pyx_n_u_TSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[208])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_465TSI, 0, __pyx_mstate_global->__pyx_n_u_TSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[242])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSI, __pyx_t_12) < (0)) __PYX_ERR(6, 8119, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSI, __pyx_t_3) < (0)) __PYX_ERR(6, 9576, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_399TYPPRICE, 0, __pyx_mstate_global->__pyx_n_u_TYPPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[209])); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8161, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_467TYPPRICE, 0, __pyx_mstate_global->__pyx_n_u_TYPPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[243])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_t_12) < (0)) __PYX_ERR(6, 8161, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_t_3) < (0)) __PYX_ERR(6, 9618, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 8204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 8204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[3] = {__pyx_t_12, __pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8202, __pyx_L1_error) + PyObject* __pyx_temp[3] = {__pyx_t_3, __pyx_t_13, __pyx_t_5}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 9659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_401ULTOSC, 0, __pyx_mstate_global->__pyx_n_u_ULTOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[210])); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 8202, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_469ULTOSC, 0, __pyx_mstate_global->__pyx_n_u_ULTOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[244])); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_t_9) < (0)) __PYX_ERR(6, 8202, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_t_5) < (0)) __PYX_ERR(6, 9659, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 8249, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8249, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 9706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8247, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9704, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_403VAR, 0, __pyx_mstate_global->__pyx_n_u_VAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[211])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8247, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_471VAR, 0, __pyx_mstate_global->__pyx_n_u_VAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[245])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 9704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_t_4) < (0)) __PYX_ERR(6, 8247, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_t_4) < (0)) __PYX_ERR(6, 9704, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8291, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 9748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_405VHF, 0, __pyx_mstate_global->__pyx_n_u_VHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[212])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8289, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_473VHF, 0, __pyx_mstate_global->__pyx_n_u_VHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[246])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 9746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VHF, __pyx_t_4) < (0)) __PYX_ERR(6, 8289, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VHF, __pyx_t_4) < (0)) __PYX_ERR(6, 9746, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8332, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 9789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8330, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[2] = {__pyx_t_4, __pyx_t_13}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_407VORTEX, 0, __pyx_mstate_global->__pyx_n_u_VORTEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[213])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8330, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_475VIDYA, 0, __pyx_mstate_global->__pyx_n_u_VIDYA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[247])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VORTEX, __pyx_t_4) < (0)) __PYX_ERR(6, 8330, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VIDYA, __pyx_t_13) < (0)) __PYX_ERR(6, 9787, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_409VWAP, 0, __pyx_mstate_global->__pyx_n_u_VWAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[214])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + + { + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_477VORTEX, 0, __pyx_mstate_global->__pyx_n_u_VORTEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[248])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWAP, __pyx_t_4) < (0)) __PYX_ERR(6, 8376, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VORTEX, __pyx_t_13) < (0)) __PYX_ERR(6, 9829, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_479VWAP, 0, __pyx_mstate_global->__pyx_n_u_VWAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[249])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWAP, __pyx_t_13) < (0)) __PYX_ERR(6, 9875, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[1] = {__pyx_t_13}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 9917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_411VWMA, 0, __pyx_mstate_global->__pyx_n_u_VWMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[215])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_481VWMA, 0, __pyx_mstate_global->__pyx_n_u_VWMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[250])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWMA, __pyx_t_4) < (0)) __PYX_ERR(6, 8418, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWMA, __pyx_t_13) < (0)) __PYX_ERR(6, 9917, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_483WAD, 0, __pyx_mstate_global->__pyx_n_u_WAD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[251])); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9960, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WAD, __pyx_t_13) < (0)) __PYX_ERR(6, 9960, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 10003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 10003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 10003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_413WAD, 0, __pyx_mstate_global->__pyx_n_u_WAD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[216])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8461, __pyx_L1_error) + { + PyObject* __pyx_temp[3] = {__pyx_t_13, __pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 10001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_485WAVETREND, 0, __pyx_mstate_global->__pyx_n_u_WAVETREND, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[252])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 10001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WAD, __pyx_t_4) < (0)) __PYX_ERR(6, 8461, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WAVETREND, __pyx_t_4) < (0)) __PYX_ERR(6, 10001, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_415WCLPRICE, 0, __pyx_mstate_global->__pyx_n_u_WCLPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[217])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8502, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_487WCLPRICE, 0, __pyx_mstate_global->__pyx_n_u_WCLPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[253])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 10049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_t_4) < (0)) __PYX_ERR(6, 8502, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_t_4) < (0)) __PYX_ERR(6, 10049, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8545, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 10092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 10090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_417WILLR, 0, __pyx_mstate_global->__pyx_n_u_WILLR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[218])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8543, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_489WILLR, 0, __pyx_mstate_global->__pyx_n_u_WILLR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[254])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 10090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_t_4) < (0)) __PYX_ERR(6, 8543, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_t_4) < (0)) __PYX_ERR(6, 10090, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8588, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 10135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8586, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 10133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_419WMA, 0, __pyx_mstate_global->__pyx_n_u_WMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[219])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8586, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_491WMA, 0, __pyx_mstate_global->__pyx_n_u_WMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[255])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 10133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_4) < (0)) __PYX_ERR(6, 8586, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_4) < (0)) __PYX_ERR(6, 10133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8629, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(((double)5.0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 10176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 10176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8627, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[2] = {__pyx_t_4, __pyx_t_3}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 10174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_421ZLEMA, 0, __pyx_mstate_global->__pyx_n_u_ZLEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[220])); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8627, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_493ZIGZAG, 0, __pyx_mstate_global->__pyx_n_u_ZIGZAG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[256])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 10174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ZLEMA, __pyx_t_4) < (0)) __PYX_ERR(6, 8627, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ZIGZAG, __pyx_t_3) < (0)) __PYX_ERR(6, 10174, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 10229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[201] = {__pyx_mstate_global->__pyx_n_u_AC, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_mstate_global->__pyx_n_u_AD, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_mstate_global->__pyx_n_u_ADR, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_n_u_AO, __pyx_mstate_global->__pyx_n_u_APO, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_mstate_global->__pyx_n_u_CMF, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_mstate_global->__pyx_n_u_CMOU, __pyx_mstate_global->__pyx_n_u_COPPOCK, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_mstate_global->__pyx_n_u_COS, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_mstate_global->__pyx_n_u_CUMSUM, __pyx_mstate_global->__pyx_n_u_CVI, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_mstate_global->__pyx_n_u_DONCHIAN, __pyx_mstate_global->__pyx_n_u_DPO, __pyx_mstate_global->__pyx_n_u_DX, __pyx_mstate_global->__pyx_n_u_EFI, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_mstate_global->__pyx_n_u_ER, __pyx_mstate_global->__pyx_n_u_ERI, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_mstate_global->__pyx_n_u_FOSC, __pyx_mstate_global->__pyx_n_u_FRACTAL, __pyx_mstate_global->__pyx_n_u_HA, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_mstate_global->__pyx_n_u_KC, __pyx_mstate_global->__pyx_n_u_KDJ, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate_global->__pyx_n_u_LN, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_mstate_global->__pyx_n_u_MA, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_mstate_global->__pyx_n_u_MARKETFI, __pyx_mstate_global->__pyx_n_u_MASSI, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_mstate_global->__pyx_n_u_NVI, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_mstate_global->__pyx_n_u_PERCENTILE, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_mstate_global->__pyx_n_u_PVI, __pyx_mstate_global->__pyx_n_u_PVO, __pyx_mstate_global->__pyx_n_u_PVT, __pyx_mstate_global->__pyx_n_u_QSTICK, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_mstate_global->__pyx_n_u_RVOL, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_mstate_global->__pyx_n_u_SMI, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_mstate_global->__pyx_n_u_SUPERTREND, __pyx_mstate_global->__pyx_n_u_T3, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_mstate_global->__pyx_n_u_TSI, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_mstate_global->__pyx_n_u_VHF, __pyx_mstate_global->__pyx_n_u_VORTEX, __pyx_mstate_global->__pyx_n_u_VWAP, __pyx_mstate_global->__pyx_n_u_VWMA, __pyx_mstate_global->__pyx_n_u_WAD, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_mstate_global->__pyx_n_u_ZLEMA}; - __pyx_t_4 = __Pyx_PyList_FromArray(__pyx_temp, 201); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8668, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 10227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES, __pyx_t_4) < (0)) __PYX_ERR(6, 8668, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_495ZLEMA, 0, __pyx_mstate_global->__pyx_n_u_ZLEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[257])); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 10227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ZLEMA, __pyx_t_3) < (0)) __PYX_ERR(6, 10227, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + { + PyObject* __pyx_temp[237] = {__pyx_mstate_global->__pyx_n_u_AC, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_mstate_global->__pyx_n_u_AD, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_mstate_global->__pyx_n_u_ADR, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_n_u_ALMA, __pyx_mstate_global->__pyx_n_u_AO, __pyx_mstate_global->__pyx_n_u_APO, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_mstate_global->__pyx_n_u_ASI, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_mstate_global->__pyx_n_u_BBW, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_mstate_global->__pyx_n_u_CG, __pyx_mstate_global->__pyx_n_u_CHOP, __pyx_mstate_global->__pyx_n_u_CHOPTR, __pyx_mstate_global->__pyx_n_u_CKSP, __pyx_mstate_global->__pyx_n_u_CMF, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_mstate_global->__pyx_n_u_CMOU, __pyx_mstate_global->__pyx_n_u_COPPOCK, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_mstate_global->__pyx_n_u_COS, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_mstate_global->__pyx_n_u_CRSI, __pyx_mstate_global->__pyx_n_u_CTI, __pyx_mstate_global->__pyx_n_u_CUMSUM, __pyx_mstate_global->__pyx_n_u_CVI, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_mstate_global->__pyx_n_u_DONCHIAN, __pyx_mstate_global->__pyx_n_u_DOSC, __pyx_mstate_global->__pyx_n_u_DPO, __pyx_mstate_global->__pyx_n_u_DX, __pyx_mstate_global->__pyx_n_u_EFI, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_mstate_global->__pyx_n_u_EMV, __pyx_mstate_global->__pyx_n_u_ER, __pyx_mstate_global->__pyx_n_u_ERI, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_mstate_global->__pyx_n_u_FISHER, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_mstate_global->__pyx_n_u_FOSC, __pyx_mstate_global->__pyx_n_u_FRACTAL, __pyx_mstate_global->__pyx_n_u_FRAMA, __pyx_mstate_global->__pyx_n_u_HA, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_mstate_global->__pyx_n_u_IBS, __pyx_mstate_global->__pyx_n_u_ICHIMOKU, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_mstate_global->__pyx_n_u_KC, __pyx_mstate_global->__pyx_n_u_KDJ, __pyx_mstate_global->__pyx_n_u_KST, __pyx_mstate_global->__pyx_n_u_KSTEXT, __pyx_mstate_global->__pyx_n_u_KURTOSIS, __pyx_mstate_global->__pyx_n_u_KVO, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate_global->__pyx_n_u_LN, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_mstate_global->__pyx_n_u_MA, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_mstate_global->__pyx_n_u_MARKETFI, __pyx_mstate_global->__pyx_n_u_MASSI, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_mstate_global->__pyx_n_u_MCGD, __pyx_mstate_global->__pyx_n_u_MEDIAN, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_mstate_global->__pyx_n_u_NVI, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_mstate_global->__pyx_n_u_PERCENTB, __pyx_mstate_global->__pyx_n_u_PERCENTILE, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_mstate_global->__pyx_n_u_PSO, __pyx_mstate_global->__pyx_n_u_PVI, __pyx_mstate_global->__pyx_n_u_PVO, __pyx_mstate_global->__pyx_n_u_PVT, __pyx_mstate_global->__pyx_n_u_QSTICK, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_mstate_global->__pyx_n_u_ROGERSSATCHELL, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_mstate_global->__pyx_n_u_RVIR, __pyx_mstate_global->__pyx_n_u_RVOL, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_mstate_global->__pyx_n_u_SI, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_mstate_global->__pyx_n_u_SMI, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_mstate_global->__pyx_n_u_SQZMOM, __pyx_mstate_global->__pyx_n_u_STC, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_mstate_global->__pyx_n_u_SUPERTREND, __pyx_mstate_global->__pyx_n_u_SWAK_2PHP, __pyx_mstate_global->__pyx_n_u_SWAK_BP, __pyx_mstate_global->__pyx_n_u_SWAK_BUTTER, __pyx_mstate_global->__pyx_n_u_SWAK_GAUSS, __pyx_mstate_global->__pyx_n_u_SWAK_HP, __pyx_mstate_global->__pyx_n_u_T3, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_mstate_global->__pyx_n_u_TSI, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_mstate_global->__pyx_n_u_VHF, __pyx_mstate_global->__pyx_n_u_VIDYA, __pyx_mstate_global->__pyx_n_u_VORTEX, __pyx_mstate_global->__pyx_n_u_VWAP, __pyx_mstate_global->__pyx_n_u_VWMA, __pyx_mstate_global->__pyx_n_u_WAD, __pyx_mstate_global->__pyx_n_u_WAVETREND, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_mstate_global->__pyx_n_u_ZIGZAG, __pyx_mstate_global->__pyx_n_u_ZLEMA}; + __pyx_t_3 = __Pyx_PyList_FromArray(__pyx_temp, 237); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 10268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES, __pyx_t_3) < (0)) __PYX_ERR(6, 10268, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_threading, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_threading, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) - __pyx_t_4 = __pyx_t_1; - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_threading, __pyx_t_4) < (0)) __PYX_ERR(2, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __pyx_t_1; + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_threading, __pyx_t_3) < (0)) __PYX_ERR(2, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_26, &__pyx_t_27); + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_28, &__pyx_t_29); __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_26); - __Pyx_XGOTREF(__pyx_t_27); + __Pyx_XGOTREF(__pyx_t_28); + __Pyx_XGOTREF(__pyx_t_29); /*try:*/ { { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; - __pyx_t_28 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_collections, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_collections, -1); if (unlikely(!__pyx_t_28)) __PYX_ERR(2, 6, __pyx_L8_error) + __pyx_t_30 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_collections, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_collections, -1); if (unlikely(!__pyx_t_30)) __PYX_ERR(2, 6, __pyx_L8_error) } - __pyx_t_4 = __pyx_t_28; - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_30; + __Pyx_GOTREF(__pyx_t_3); { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; - __pyx_t_23 = 0; { - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_4, __pyx_imported_names[__pyx_t_23]); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 6, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_23], __pyx_t_2) < (0)) __PYX_ERR(2, 6, __pyx_L8_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_25 = 0; { + __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_3, __pyx_imported_names[__pyx_t_25]); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 6, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_25], __pyx_t_5) < (0)) __PYX_ERR(2, 6, __pyx_L8_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; - __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; + __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; + __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0; goto __pyx_L13_try_end; __pyx_L8_error:; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; @@ -453787,6 +533097,8 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; + __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; + __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -453794,149 +533106,149 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); - if (__pyx_t_25) { + __pyx_t_27 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); + if (__pyx_t_27) { __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_2, &__pyx_t_9) < 0) __PYX_ERR(2, 7, __pyx_L10_except_error) + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_4) < 0) __PYX_ERR(2, 7, __pyx_L10_except_error) + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_4); - __Pyx_XGOTREF(__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_9); { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; - __pyx_t_28 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_ordereddict, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_ordereddict, -1); if (unlikely(!__pyx_t_28)) __PYX_ERR(2, 8, __pyx_L10_except_error) + __pyx_t_30 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_ordereddict, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_ordereddict, -1); if (unlikely(!__pyx_t_30)) __PYX_ERR(2, 8, __pyx_L10_except_error) } - __pyx_t_12 = __pyx_t_28; - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = __pyx_t_30; + __Pyx_GOTREF(__pyx_t_13); { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; - __pyx_t_23 = 0; { - __pyx_t_13 = __Pyx_ImportFrom(__pyx_t_12, __pyx_imported_names[__pyx_t_23]); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 8, __pyx_L10_except_error) - __Pyx_GOTREF(__pyx_t_13); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_23], __pyx_t_13) < (0)) __PYX_ERR(2, 8, __pyx_L10_except_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_25 = 0; { + __pyx_t_12 = __Pyx_ImportFrom(__pyx_t_13, __pyx_imported_names[__pyx_t_25]); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 8, __pyx_L10_except_error) + __Pyx_GOTREF(__pyx_t_12); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_25], __pyx_t_12) < (0)) __PYX_ERR(2, 8, __pyx_L10_except_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L9_exception_handled; } goto __pyx_L10_except_error; __pyx_L10_except_error:; __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_26, __pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_XGIVEREF(__pyx_t_29); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_28, __pyx_t_29); goto __pyx_L1_error; __pyx_L9_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_26, __pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_XGIVEREF(__pyx_t_29); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_28, __pyx_t_29); __pyx_L13_try_end:; } - __pyx_t_27 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -1); if (unlikely(!__pyx_t_27)) __PYX_ERR(2, 10, __pyx_L1_error) - __pyx_t_9 = __pyx_t_27; - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_numpy, __pyx_t_9) < (0)) __PYX_ERR(2, 10, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_29 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -1); if (unlikely(!__pyx_t_29)) __PYX_ERR(2, 10, __pyx_L1_error) + __pyx_t_4 = __pyx_t_29; + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_numpy, __pyx_t_4) < (0)) __PYX_ERR(2, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_27 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_sys, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_sys, -1); if (unlikely(!__pyx_t_27)) __PYX_ERR(2, 11, __pyx_L1_error) - __pyx_t_9 = __pyx_t_27; - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_sys, __pyx_t_9) < (0)) __PYX_ERR(2, 11, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_29 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_sys, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_sys, -1); if (unlikely(!__pyx_t_29)) __PYX_ERR(2, 11, __pyx_L1_error) + __pyx_t_4 = __pyx_t_29; + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_sys, __pyx_t_4) < (0)) __PYX_ERR(2, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_25 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(2, 17, __pyx_L1_error) + __pyx_t_27 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_27 == ((int)-1))) __PYX_ERR(2, 17, __pyx_L1_error) - __pyx_t_9 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 20, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_price, __pyx_mstate_global->__pyx_n_u_close) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_price0, __pyx_mstate_global->__pyx_n_u_high) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_price1, __pyx_mstate_global->__pyx_n_u_low) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_periods, __pyx_mstate_global->__pyx_n_u_periods) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS, __pyx_t_9) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_price, __pyx_mstate_global->__pyx_n_u_close) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_price0, __pyx_mstate_global->__pyx_n_u_high) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_price1, __pyx_mstate_global->__pyx_n_u_low) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_periods, __pyx_mstate_global->__pyx_n_u_periods) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS, __pyx_t_4) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; { PyObject* __pyx_temp[1] = {((PyObject *)(&PyDict_Type))}; - __pyx_t_9 = __Pyx_PyList_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 26, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_PyList_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES, __pyx_t_9) < (0)) __PYX_ERR(2, 26, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES, __pyx_t_4) < (0)) __PYX_ERR(2, 26, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; { PyObject* __pyx_temp[1] = {((PyObject *)__pyx_mstate_global->__pyx_ptype_5numpy_ndarray)}; - __pyx_t_9 = __Pyx_PyList_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 27, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_PyList_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES, __pyx_t_9) < (0)) __PYX_ERR(2, 27, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES, __pyx_t_4) < (0)) __PYX_ERR(2, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_27, &__pyx_t_26, &__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_27); - __Pyx_XGOTREF(__pyx_t_26); + __Pyx_ExceptionSave(&__pyx_t_29, &__pyx_t_28, &__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_29); + __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_1); /*try:*/ { - __pyx_t_28 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pandas, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_pandas, -1); if (unlikely(!__pyx_t_28)) __PYX_ERR(2, 31, __pyx_L16_error) - __pyx_t_9 = __pyx_t_28; - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pandas, __pyx_t_9) < (0)) __PYX_ERR(2, 31, __pyx_L16_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 32, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 32, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 32, __pyx_L16_error) + __pyx_t_30 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pandas, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_pandas, -1); if (unlikely(!__pyx_t_30)) __PYX_ERR(2, 31, __pyx_L16_error) + __pyx_t_4 = __pyx_t_30; __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_9, __pyx_t_4); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 32, __pyx_L16_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pandas, __pyx_t_4) < (0)) __PYX_ERR(2, 31, __pyx_L16_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 33, __pyx_L16_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 32, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 33, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 33, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_2); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 33, __pyx_L16_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 32, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 32, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_31 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_3); if (unlikely(__pyx_t_31 == ((int)-1))) __PYX_ERR(2, 32, __pyx_L16_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 34, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 34, __pyx_L16_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 33, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 33, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME, __pyx_t_4) < (0)) __PYX_ERR(2, 34, __pyx_L16_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 33, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_31 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_t_5); if (unlikely(__pyx_t_31 == ((int)-1))) __PYX_ERR(2, 33, __pyx_L16_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 35, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 35, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES, __pyx_t_2) < (0)) __PYX_ERR(2, 35, __pyx_L16_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 34, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 34, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME, __pyx_t_3) < (0)) __PYX_ERR(2, 34, __pyx_L16_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 35, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 35, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES, __pyx_t_5) < (0)) __PYX_ERR(2, 35, __pyx_L16_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; - __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; + __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0; + __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L21_try_end; __pyx_L16_error:; @@ -453953,6 +533265,8 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; + __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; + __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -453960,65 +533274,65 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); - if (__pyx_t_25) { + __pyx_t_27 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); + if (__pyx_t_27) { __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_9) < 0) __PYX_ERR(2, 36, __pyx_L18_except_error) - __Pyx_XGOTREF(__pyx_t_2); + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(2, 36, __pyx_L18_except_error) + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); - __Pyx_XGOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_4) < (0)) __PYX_ERR(2, 36, __pyx_L18_except_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_3) < (0)) __PYX_ERR(2, 36, __pyx_L18_except_error) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_28, &__pyx_t_30, &__pyx_t_31); - __Pyx_XGOTREF(__pyx_t_28); + __Pyx_ExceptionSave(&__pyx_t_30, &__pyx_t_32, &__pyx_t_33); __Pyx_XGOTREF(__pyx_t_30); - __Pyx_XGOTREF(__pyx_t_31); + __Pyx_XGOTREF(__pyx_t_32); + __Pyx_XGOTREF(__pyx_t_33); /*try:*/ { - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 38, __pyx_L24_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_33 = __Pyx_PyExc_ModuleNotFoundError_Check(__pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_34 = (!__pyx_t_33); + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 38, __pyx_L24_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_35 = __Pyx_PyExc_ModuleNotFoundError_Check(__pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_36 = (!__pyx_t_35); - if (!__pyx_t_34) { + if (!__pyx_t_36) { } else { - __pyx_t_32 = __pyx_t_34; + __pyx_t_34 = __pyx_t_36; goto __pyx_L33_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 38, __pyx_L24_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 38, __pyx_L24_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 38, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_34 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_pandas, Py_NE); if (unlikely((__pyx_t_34 < 0))) __PYX_ERR(2, 38, __pyx_L24_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 38, __pyx_L24_error) + __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_36 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_pandas, Py_NE); if (unlikely((__pyx_t_36 < 0))) __PYX_ERR(2, 38, __pyx_L24_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_32 = __pyx_t_34; + __pyx_t_34 = __pyx_t_36; __pyx_L33_bool_binop_done:; - if (unlikely(__pyx_t_32)) { + if (unlikely(__pyx_t_34)) { - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 40, __pyx_L24_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_Raise(__pyx_t_13, 0, 0, 0); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 40, __pyx_L24_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_Raise(__pyx_t_12, 0, 0, 0); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __PYX_ERR(2, 40, __pyx_L24_error) } } - __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; - __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0; + __Pyx_XDECREF(__pyx_t_32); __pyx_t_32 = 0; + __Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0; goto __pyx_L31_try_end; __pyx_L24_error:; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; @@ -454031,117 +533345,119 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; + __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_NameError)))); - if (__pyx_t_25) { + __pyx_t_27 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_NameError)))); + if (__pyx_t_27) { __Pyx_ErrRestore(0,0,0); goto __pyx_L25_exception_handled; } goto __pyx_L26_except_error; __pyx_L26_except_error:; - __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_30); - __Pyx_XGIVEREF(__pyx_t_31); - __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_30, __pyx_t_31); + __Pyx_XGIVEREF(__pyx_t_32); + __Pyx_XGIVEREF(__pyx_t_33); + __Pyx_ExceptionReset(__pyx_t_30, __pyx_t_32, __pyx_t_33); goto __pyx_L18_except_error; __pyx_L25_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_30); - __Pyx_XGIVEREF(__pyx_t_31); - __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_30, __pyx_t_31); + __Pyx_XGIVEREF(__pyx_t_32); + __Pyx_XGIVEREF(__pyx_t_33); + __Pyx_ExceptionReset(__pyx_t_30, __pyx_t_32, __pyx_t_33); __pyx_L31_try_end:; } if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME, Py_None) < (0)) __PYX_ERR(2, 45, __pyx_L18_except_error) if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES, Py_None) < (0)) __PYX_ERR(2, 46, __pyx_L18_except_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L17_exception_handled; } goto __pyx_L18_except_error; __pyx_L18_except_error:; - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_XGIVEREF(__pyx_t_29); + __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_ExceptionReset(__pyx_t_27, __pyx_t_26, __pyx_t_1); + __Pyx_ExceptionReset(__pyx_t_29, __pyx_t_28, __pyx_t_1); goto __pyx_L1_error; __pyx_L17_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_XGIVEREF(__pyx_t_29); + __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_ExceptionReset(__pyx_t_27, __pyx_t_26, __pyx_t_1); + __Pyx_ExceptionReset(__pyx_t_29, __pyx_t_28, __pyx_t_1); __pyx_L21_try_end:; } { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_26, &__pyx_t_27); + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_28, &__pyx_t_29); __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_26); - __Pyx_XGOTREF(__pyx_t_27); + __Pyx_XGOTREF(__pyx_t_28); + __Pyx_XGOTREF(__pyx_t_29); /*try:*/ { - __pyx_t_31 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_polars, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_polars, -1); if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 50, __pyx_L37_error) - __pyx_t_9 = __pyx_t_31; - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_polars, __pyx_t_9) < (0)) __PYX_ERR(2, 50, __pyx_L37_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 51, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 51, __pyx_L37_error) + __pyx_t_33 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_polars, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_polars, -1); if (unlikely(!__pyx_t_33)) __PYX_ERR(2, 50, __pyx_L37_error) + __pyx_t_4 = __pyx_t_33; __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 51, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_polars, __pyx_t_4) < (0)) __PYX_ERR(2, 50, __pyx_L37_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_9, __pyx_t_2); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 51, __pyx_L37_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 52, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 52, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 52, __pyx_L37_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 51, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_2, __pyx_t_4); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 52, __pyx_L37_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 51, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 51, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_31 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_5); if (unlikely(__pyx_t_31 == ((int)-1))) __PYX_ERR(2, 51, __pyx_L37_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 53, __pyx_L37_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 52, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 52, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 53, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 52, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME, __pyx_t_2) < (0)) __PYX_ERR(2, 53, __pyx_L37_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_31 = __Pyx_PyObject_Append(__pyx_t_5, __pyx_t_3); if (unlikely(__pyx_t_31 == ((int)-1))) __PYX_ERR(2, 52, __pyx_L37_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 54, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 54, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES, __pyx_t_4) < (0)) __PYX_ERR(2, 54, __pyx_L37_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 53, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 53, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME, __pyx_t_5) < (0)) __PYX_ERR(2, 53, __pyx_L37_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 54, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 54, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES, __pyx_t_3) < (0)) __PYX_ERR(2, 54, __pyx_L37_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; - __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; + __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; + __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0; goto __pyx_L42_try_end; __pyx_L37_error:; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; @@ -454157,6 +533473,8 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; + __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; + __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -454164,65 +533482,65 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); - if (__pyx_t_25) { + __pyx_t_27 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); + if (__pyx_t_27) { __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_2, &__pyx_t_9) < 0) __PYX_ERR(2, 55, __pyx_L39_except_error) + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_4) < 0) __PYX_ERR(2, 55, __pyx_L39_except_error) + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_4); - __Pyx_XGOTREF(__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_2) < (0)) __PYX_ERR(2, 55, __pyx_L39_except_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_5) < (0)) __PYX_ERR(2, 55, __pyx_L39_except_error) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_31, &__pyx_t_30, &__pyx_t_28); - __Pyx_XGOTREF(__pyx_t_31); + __Pyx_ExceptionSave(&__pyx_t_33, &__pyx_t_32, &__pyx_t_30); + __Pyx_XGOTREF(__pyx_t_33); + __Pyx_XGOTREF(__pyx_t_32); __Pyx_XGOTREF(__pyx_t_30); - __Pyx_XGOTREF(__pyx_t_28); /*try:*/ { - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 57, __pyx_L45_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_34 = __Pyx_PyExc_ModuleNotFoundError_Check(__pyx_t_13); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_33 = (!__pyx_t_34); + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 57, __pyx_L45_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_36 = __Pyx_PyExc_ModuleNotFoundError_Check(__pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_35 = (!__pyx_t_36); - if (!__pyx_t_33) { + if (!__pyx_t_35) { } else { - __pyx_t_32 = __pyx_t_33; + __pyx_t_34 = __pyx_t_35; goto __pyx_L54_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 57, __pyx_L45_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 57, __pyx_L45_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 57, __pyx_L45_error) __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_33 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_polars, Py_NE); if (unlikely((__pyx_t_33 < 0))) __PYX_ERR(2, 57, __pyx_L45_error) + __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 57, __pyx_L45_error) + __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_35 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_polars, Py_NE); if (unlikely((__pyx_t_35 < 0))) __PYX_ERR(2, 57, __pyx_L45_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_32 = __pyx_t_33; + __pyx_t_34 = __pyx_t_35; __pyx_L54_bool_binop_done:; - if (unlikely(__pyx_t_32)) { + if (unlikely(__pyx_t_34)) { - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 59, __pyx_L45_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_Raise(__pyx_t_12, 0, 0, 0); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 59, __pyx_L45_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_Raise(__pyx_t_13, 0, 0, 0); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __PYX_ERR(2, 59, __pyx_L45_error) } } - __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0; + __Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0; + __Pyx_XDECREF(__pyx_t_32); __pyx_t_32 = 0; __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; - __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; goto __pyx_L52_try_end; __pyx_L45_error:; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; @@ -454235,5222 +533553,6051 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; + __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_NameError)))); - if (__pyx_t_25) { + __pyx_t_27 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_NameError)))); + if (__pyx_t_27) { __Pyx_ErrRestore(0,0,0); goto __pyx_L46_exception_handled; } goto __pyx_L47_except_error; __pyx_L47_except_error:; - __Pyx_XGIVEREF(__pyx_t_31); + __Pyx_XGIVEREF(__pyx_t_33); + __Pyx_XGIVEREF(__pyx_t_32); __Pyx_XGIVEREF(__pyx_t_30); - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_ExceptionReset(__pyx_t_31, __pyx_t_30, __pyx_t_28); + __Pyx_ExceptionReset(__pyx_t_33, __pyx_t_32, __pyx_t_30); goto __pyx_L39_except_error; __pyx_L46_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_31); + __Pyx_XGIVEREF(__pyx_t_33); + __Pyx_XGIVEREF(__pyx_t_32); __Pyx_XGIVEREF(__pyx_t_30); - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_ExceptionReset(__pyx_t_31, __pyx_t_30, __pyx_t_28); + __Pyx_ExceptionReset(__pyx_t_33, __pyx_t_32, __pyx_t_30); __pyx_L52_try_end:; } if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME, Py_None) < (0)) __PYX_ERR(2, 64, __pyx_L39_except_error) if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES, Py_None) < (0)) __PYX_ERR(2, 65, __pyx_L39_except_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L38_exception_handled; } goto __pyx_L39_except_error; __pyx_L39_except_error:; __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_26, __pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_XGIVEREF(__pyx_t_29); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_28, __pyx_t_29); goto __pyx_L1_error; __pyx_L38_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_26, __pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_XGIVEREF(__pyx_t_29); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_28, __pyx_t_29); __pyx_L42_try_end:; } - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 67, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 67, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES, __pyx_t_2) < (0)) __PYX_ERR(2, 67, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES, __pyx_t_5) < (0)) __PYX_ERR(2, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PySequence_Tuple(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES, __pyx_t_9) < (0)) __PYX_ERR(2, 68, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES, __pyx_t_4) < (0)) __PYX_ERR(2, 68, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 71, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_version); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 71, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_32 = __Pyx_PyObject_CompareBoolGe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_3, Py_GE); if (unlikely((__pyx_t_32 < 0))) __PYX_ERR(2, 71, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_32) { + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_version); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_34 = __Pyx_PyObject_CompareBoolGe_object_str(__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_3, Py_GE); if (unlikely((__pyx_t_34 < 0))) __PYX_ERR(2, 71, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_34) { - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_423str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[221])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 73, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_497str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[258])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_2) < (0)) __PYX_ERR(2, 73, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_5) < (0)) __PYX_ERR(2, 73, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_425bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[222])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_499bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[259])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_2) < (0)) __PYX_ERR(2, 76, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_5) < (0)) __PYX_ERR(2, 76, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L58; } /*else*/ { - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_427str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[223])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 81, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_501str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[260])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_2) < (0)) __PYX_ERR(2, 81, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_5) < (0)) __PYX_ERR(2, 81, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_429bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[224])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 84, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_503bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[261])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_2) < (0)) __PYX_ERR(2, 84, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_5) < (0)) __PYX_ERR(2, 84, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_L58:; - __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[13]); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 87, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 87, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_Function, __pyx_mstate_global->__pyx_n_u_Function, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_kp_u_This_is_a_pythonic_wrapper_arou); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 87, __pyx_L1_error) + __pyx_t_5 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[13]); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[13]) { - if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[13]) < 0))) __PYX_ERR(2, 87, __pyx_L1_error) + __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_5, __pyx_mstate_global->__pyx_n_u_Function, __pyx_mstate_global->__pyx_n_u_Function, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_kp_u_This_is_a_pythonic_wrapper_arou); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_5 != __pyx_mstate_global->__pyx_tuple[13]) { + if (unlikely((PyDict_SetItemString(__pyx_t_3, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[13]) < 0))) __PYX_ERR(2, 87, __pyx_L1_error) } - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_1__init__, 0, __pyx_mstate_global->__pyx_n_u_Function___init, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[225])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 116, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_1__init__, 0, __pyx_mstate_global->__pyx_n_u_Function___init, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[262])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_12) < (0)) __PYX_ERR(2, 116, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_13) < (0)) __PYX_ERR(2, 116, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = NULL; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_3__local, 0, __pyx_mstate_global->__pyx_n_u_Function___local, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[226])); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 129, __pyx_L1_error) + __pyx_t_12 = NULL; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_3__local, 0, __pyx_mstate_global->__pyx_n_u_Function___local, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[263])); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_11}; - __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_11}; + __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Function__local, __pyx_t_12) < (0)) __PYX_ERR(2, 129, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__local, __pyx_t_13) < (0)) __PYX_ERR(2, 129, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_11 = NULL; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_5info, 0, __pyx_mstate_global->__pyx_n_u_Function_info, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[227])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 171, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_5info, 0, __pyx_mstate_global->__pyx_n_u_Function_info, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[264])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_13}; - __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_12}; + __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 171, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_12) < (0)) __PYX_ERR(2, 171, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_13) < (0)) __PYX_ERR(2, 171, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = NULL; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_7function_flags, 0, __pyx_mstate_global->__pyx_n_u_Function_function_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[228])); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 178, __pyx_L1_error) + __pyx_t_12 = NULL; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_7function_flags, 0, __pyx_mstate_global->__pyx_n_u_Function_function_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[265])); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_11}; - __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_11}; + __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_12) < (0)) __PYX_ERR(2, 178, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_13) < (0)) __PYX_ERR(2, 178, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_11 = NULL; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_9output_flags, 0, __pyx_mstate_global->__pyx_n_u_Function_output_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[229])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_9output_flags, 0, __pyx_mstate_global->__pyx_n_u_Function_output_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[266])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_13}; - __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_12}; + __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_12) < (0)) __PYX_ERR(2, 185, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_13) < (0)) __PYX_ERR(2, 185, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names, 0, __pyx_mstate_global->__pyx_n_u_Function_get_input_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[230])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 192, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names, 0, __pyx_mstate_global->__pyx_n_u_Function_get_input_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[267])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_input_names, __pyx_t_12) < (0)) __PYX_ERR(2, 192, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_input_names, __pyx_t_13) < (0)) __PYX_ERR(2, 192, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names, 0, __pyx_mstate_global->__pyx_n_u_Function_set_input_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[231])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names, 0, __pyx_mstate_global->__pyx_n_u_Function_set_input_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[268])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_input_names, __pyx_t_12) < (0)) __PYX_ERR(2, 203, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_input_names, __pyx_t_13) < (0)) __PYX_ERR(2, 203, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = NULL; - __pyx_t_11 = PyObject_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_input_names); + __pyx_t_12 = NULL; + __pyx_t_11 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_input_names); if (unlikely(!__pyx_t_11)) { PyErr_Clear(); __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_get_input_names); } if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_10 = PyObject_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_input_names); - if (unlikely(!__pyx_t_10)) { + __pyx_t_17 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_input_names); + if (unlikely(!__pyx_t_17)) { PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_set_input_names); + __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_set_input_names); } - if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 213, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + if (unlikely(!__pyx_t_17)) __PYX_ERR(2, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[3] = {__pyx_t_13, __pyx_t_11, __pyx_t_10}; - __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_t_11, __pyx_t_17}; + __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 213, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_12) < (0)) __PYX_ERR(2, 213, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_13) < (0)) __PYX_ERR(2, 213, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays, 0, __pyx_mstate_global->__pyx_n_u_Function_get_input_arrays, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[232])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 215, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays, 0, __pyx_mstate_global->__pyx_n_u_Function_get_input_arrays, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[269])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_input_arrays, __pyx_t_12) < (0)) __PYX_ERR(2, 215, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_input_arrays, __pyx_t_13) < (0)) __PYX_ERR(2, 215, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays, 0, __pyx_mstate_global->__pyx_n_u_Function_set_input_arrays, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[233])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 226, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays, 0, __pyx_mstate_global->__pyx_n_u_Function_set_input_arrays, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[270])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_t_12) < (0)) __PYX_ERR(2, 226, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_t_13) < (0)) __PYX_ERR(2, 226, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_10 = NULL; - __pyx_t_11 = PyObject_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_input_arrays); + __pyx_t_17 = NULL; + __pyx_t_11 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_input_arrays); if (unlikely(!__pyx_t_11)) { PyErr_Clear(); __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_get_input_arrays); } if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_13 = PyObject_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_input_arrays); - if (unlikely(!__pyx_t_13)) { + __pyx_t_12 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_input_arrays); + if (unlikely(!__pyx_t_12)) { PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_set_input_arrays); + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_set_input_arrays); } - if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 273, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[3] = {__pyx_t_10, __pyx_t_11, __pyx_t_13}; - __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + PyObject *__pyx_callargs[3] = {__pyx_t_17, __pyx_t_11, __pyx_t_12}; + __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 273, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_12) < (0)) __PYX_ERR(2, 273, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_13) < (0)) __PYX_ERR(2, 273, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters, 0, __pyx_mstate_global->__pyx_n_u_Function_get_parameters, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[234])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 275, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters, 0, __pyx_mstate_global->__pyx_n_u_Function_get_parameters, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[271])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_parameters, __pyx_t_12) < (0)) __PYX_ERR(2, 275, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_parameters, __pyx_t_13) < (0)) __PYX_ERR(2, 275, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters, 0, __pyx_mstate_global->__pyx_n_u_Function_set_parameters, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[235])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 285, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters, 0, __pyx_mstate_global->__pyx_n_u_Function_set_parameters, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[272])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[14]); - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_parameters, __pyx_t_12) < (0)) __PYX_ERR(2, 285, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_mstate_global->__pyx_tuple[14]); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_parameters, __pyx_t_13) < (0)) __PYX_ERR(2, 285, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = NULL; - __pyx_t_11 = PyObject_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_parameters); + __pyx_t_12 = NULL; + __pyx_t_11 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_parameters); if (unlikely(!__pyx_t_11)) { PyErr_Clear(); __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_get_parameters); } if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_10 = PyObject_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_parameters); - if (unlikely(!__pyx_t_10)) { + __pyx_t_17 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_parameters); + if (unlikely(!__pyx_t_17)) { PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_set_parameters); + __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_set_parameters); } - if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + if (unlikely(!__pyx_t_17)) __PYX_ERR(2, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[3] = {__pyx_t_13, __pyx_t_11, __pyx_t_10}; - __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_t_11, __pyx_t_17}; + __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_13) < (0)) __PYX_ERR(2, 299, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args, 0, __pyx_mstate_global->__pyx_n_u_Function_set_function_args, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[273])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_function_args, __pyx_t_13) < (0)) __PYX_ERR(2, 301, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_17 = NULL; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_25lookback, 0, __pyx_mstate_global->__pyx_n_u_Function_lookback, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[274])); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + #endif + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_17, __pyx_t_11}; + __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_lookback, __pyx_t_13) < (0)) __PYX_ERR(2, 336, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_11 = NULL; + __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_27output_names, 0, __pyx_mstate_global->__pyx_n_u_Function_output_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[275])); if (unlikely(!__pyx_t_17)) __PYX_ERR(2, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17); + #endif + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_17}; + __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_13) < (0)) __PYX_ERR(2, 359, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_17 = NULL; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_29outputs, 0, __pyx_mstate_global->__pyx_n_u_Function_outputs, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[276])); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + #endif + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_17, __pyx_t_11}; + __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_13) < (0)) __PYX_ERR(2, 369, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_31run, 0, __pyx_mstate_global->__pyx_n_u_Function_run, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[277])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_mstate_global->__pyx_tuple[14]); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_run, __pyx_t_13) < (0)) __PYX_ERR(2, 401, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_33__call__, 0, __pyx_mstate_global->__pyx_n_u_Function___call, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[278])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_call, __pyx_t_13) < (0)) __PYX_ERR(2, 413, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names, 0, __pyx_mstate_global->__pyx_n_u_Function___input_price_series_na, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[279])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_t_13) < (0)) __PYX_ERR(2, 480, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_37__call_function, 0, __pyx_mstate_global->__pyx_n_u_Function___call_function, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[280])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_t_13) < (0)) __PYX_ERR(2, 492, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value, 0, __pyx_mstate_global->__pyx_n_u_Function___check_opt_input_value, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[281])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_t_13) < (0)) __PYX_ERR(2, 523, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value, 0, __pyx_mstate_global->__pyx_n_u_Function___get_opt_input_value, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[282])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_t_13) < (0)) __PYX_ERR(2, 538, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_43__repr__, 0, __pyx_mstate_global->__pyx_n_u_Function___repr, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[283])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_repr, __pyx_t_13) < (0)) __PYX_ERR(2, 548, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__, 0, __pyx_mstate_global->__pyx_n_u_Function___unicode, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[284])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_unicode, __pyx_t_13) < (0)) __PYX_ERR(2, 551, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_47__str__, 0, __pyx_mstate_global->__pyx_n_u_Function___str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[285])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_13) < (0)) __PYX_ERR(2, 554, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Function, __pyx_t_5, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_Function, __pyx_t_13) < (0)) __PYX_ERR(2, 87, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_505_ta_getGroupTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[286])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, __pyx_t_5) < (0)) __PYX_ERR(2, 568, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_507_ta_getFuncTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[287])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, __pyx_t_5) < (0)) __PYX_ERR(2, 588, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_509__get_flags, 0, __pyx_mstate_global->__pyx_n_u_get_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[288])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 608, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_flags, __pyx_t_5) < (0)) __PYX_ERR(2, 608, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyDict_NewPresized(11); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_kp_u_A_period_of_1_performs_no_smooth) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_kp_u_An_output_is_display_shifted) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_kp_u_Uses_a_transcendental_math_funct) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_kp_u_Input_must_be_positive) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_16777216, __pyx_mstate_global->__pyx_kp_u_Output_scale_same_as_input) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_33554432, __pyx_mstate_global->__pyx_kp_u_Function_has_a_streaming_API) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_67108864, __pyx_mstate_global->__pyx_kp_u_Output_is_over_volume) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_134217728, __pyx_mstate_global->__pyx_kp_u_Function_has_an_unstable_period) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_268435456, __pyx_mstate_global->__pyx_kp_u_Output_is_a_candlestick) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_536870912, __pyx_mstate_global->__pyx_kp_u_Output_is_path_dependent) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_1073741824, __pyx_mstate_global->__pyx_kp_u_Output_can_be_NaN_or_infinite) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS, __pyx_t_5) < (0)) __PYX_ERR(2, 622, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_open) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_n_u_high) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_n_u_low) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_close) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_volume) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_n_u_openInterest) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_n_u_timeStamp) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS, __pyx_t_5) < (0)) __PYX_ERR(2, 637, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyDict_NewPresized(16); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_Line) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_kp_u_Dotted_Line) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_kp_u_Dashed_Line) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_Dot) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_Histogram) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_kp_u_Pattern_Bool) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_128, __pyx_mstate_global->__pyx_kp_u_Confirmation_Pattern_200_this_ba) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_256, __pyx_mstate_global->__pyx_kp_u_Output_can_be_positive) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_512, __pyx_mstate_global->__pyx_kp_u_Output_can_be_negative) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_1024, __pyx_mstate_global->__pyx_kp_u_Output_can_be_zero) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_2048, __pyx_mstate_global->__pyx_kp_u_Values_represent_an_upper_limit) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_4096, __pyx_mstate_global->__pyx_kp_u_Values_represent_a_lower_limit) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_8192, __pyx_mstate_global->__pyx_kp_u_Output_is_optional_nullable) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_16384, __pyx_mstate_global->__pyx_kp_u_Output_is_display_shifted) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_32768, __pyx_mstate_global->__pyx_kp_u_Weak_Pattern_80_a_weaker_form_of) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS, __pyx_t_5) < (0)) __PYX_ERR(2, 647, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_511_ta_getFuncInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[289])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, __pyx_t_5) < (0)) __PYX_ERR(2, 666, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_513_ta_getInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[290])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, __pyx_t_5) < (0)) __PYX_ERR(2, 689, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_515_ta_getOptInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[291])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, __pyx_t_5) < (0)) __PYX_ERR(2, 714, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_517_ta_getOutputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[292])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 740, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, __pyx_t_5) < (0)) __PYX_ERR(2, 740, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_519_get_defaults_and_docs, 0, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[293])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, __pyx_t_5) < (0)) __PYX_ERR(2, 764, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_29 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -1); if (unlikely(!__pyx_t_29)) __PYX_ERR(3, 3, __pyx_L1_error) + __pyx_t_5 = __pyx_t_29; + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_numpy, __pyx_t_5) < (0)) __PYX_ERR(3, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + { + PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_namedtuple}; + __pyx_t_29 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_collections, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_collections, -1); if (unlikely(!__pyx_t_29)) __PYX_ERR(3, 4, __pyx_L1_error) + } + __pyx_t_5 = __pyx_t_29; + __Pyx_GOTREF(__pyx_t_5); + { + PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_namedtuple}; + __pyx_t_25 = 0; { + __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_5, __pyx_imported_names[__pyx_t_25]); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_25], __pyx_t_4) < (0)) __PYX_ERR(3, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_27 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_27 == ((int)-1))) __PYX_ERR(3, 12, __pyx_L1_error) + + + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_3) < (0)) __PYX_ERR(3, 2888, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[15], __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OutRange, __pyx_t_3) < (0)) __PYX_ERR(3, 2888, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_6Stream_5__copy__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Stream___copy, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[294])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream, __pyx_mstate_global->__pyx_n_u_copy_2, __pyx_t_3) < (0)) __PYX_ERR(3, 2974, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_6Stream_7__deepcopy__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Stream___deepcopy, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[295])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2977, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream, __pyx_mstate_global->__pyx_n_u_deepcopy, __pyx_t_3) < (0)) __PYX_ERR(3, 2977, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_6Stream_9__reduce__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Stream___reduce, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[296])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream, __pyx_mstate_global->__pyx_n_u_reduce, __pyx_t_3) < (0)) __PYX_ERR(3, 2980, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9AC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[297])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3038, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3038, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[298])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3182, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3182, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ACOS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[299])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3329, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3329, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9AD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[300])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3467, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3467, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[301])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3607, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3607, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[302])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3749, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3749, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[303])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3890, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 3890, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[304])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4030, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4030, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADXR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[305])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4171, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4171, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ALMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ALMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[306])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[19]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4312, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_12) < (0)) __PYX_ERR(2, 299, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ALMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4312, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args, 0, __pyx_mstate_global->__pyx_n_u_Function_set_function_args, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[236])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9AO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[307])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_function_args, __pyx_t_12) < (0)) __PYX_ERR(2, 301, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4451, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4451, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_10 = NULL; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_25lookback, 0, __pyx_mstate_global->__pyx_n_u_Function_lookback, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[237])); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10APO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_APO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[308])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[20]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4591, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_11}; - __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_lookback, __pyx_t_12) < (0)) __PYX_ERR(2, 336, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4591, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_11 = NULL; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_27output_names, 0, __pyx_mstate_global->__pyx_n_u_Function_output_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[238])); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12AROON_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AROON_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[309])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4731, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4731, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4731, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_10}; - __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4731, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_12) < (0)) __PYX_ERR(2, 359, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4731, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_10 = NULL; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_29outputs, 0, __pyx_mstate_global->__pyx_n_u_Function_outputs, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[239])); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 369, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AROONOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[310])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4875, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_11}; - __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 369, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_12) < (0)) __PYX_ERR(2, 369, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 4875, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_31run, 0, __pyx_mstate_global->__pyx_n_u_Function_run, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[240])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 401, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ASI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ASI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[311])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5016, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[14]); - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_run, __pyx_t_12) < (0)) __PYX_ERR(2, 401, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[21]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5016, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5016, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5016, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5016, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_33__call__, 0, __pyx_mstate_global->__pyx_n_u_Function___call, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[241])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 413, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ASIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[312])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_call, __pyx_t_12) < (0)) __PYX_ERR(2, 413, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5154, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5154, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names, 0, __pyx_mstate_global->__pyx_n_u_Function___input_price_series_na, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[242])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ATAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[313])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_t_12) < (0)) __PYX_ERR(2, 480, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5289, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5289, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_37__call_function, 0, __pyx_mstate_global->__pyx_n_u_Function___call_function, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[243])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 492, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ATR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ATR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[314])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_t_12) < (0)) __PYX_ERR(2, 492, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5428, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5428, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value, 0, __pyx_mstate_global->__pyx_n_u_Function___check_opt_input_value, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[244])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 523, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVGDEV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[315])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_t_12) < (0)) __PYX_ERR(2, 523, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5567, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5567, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value, 0, __pyx_mstate_global->__pyx_n_u_Function___get_opt_input_value, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[245])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 538, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVGPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[316])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_t_12) < (0)) __PYX_ERR(2, 538, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5705, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5705, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_43__repr__, 0, __pyx_mstate_global->__pyx_n_u_Function___repr, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[246])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BBANDS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[317])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_repr, __pyx_t_12) < (0)) __PYX_ERR(2, 548, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[22]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5852, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 5852, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__, 0, __pyx_mstate_global->__pyx_n_u_Function___unicode, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[247])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 551, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10BBW_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BBW_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[318])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_unicode, __pyx_t_12) < (0)) __PYX_ERR(2, 551, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[22]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6002, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6002, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_47__str__, 0, __pyx_mstate_global->__pyx_n_u_Function___str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[248])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 554, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11BETA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BETA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[319])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_12) < (0)) __PYX_ERR(2, 554, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6141, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6141, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Function, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 87, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10BOP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BOP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[320])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_Function, __pyx_t_12) < (0)) __PYX_ERR(2, 87, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6280, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6280, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_431_ta_getGroupTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[249])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 568, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CCI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CCI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[321])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, __pyx_t_2) < (0)) __PYX_ERR(2, 568, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6422, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6422, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_433_ta_getFuncTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[250])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 588, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL2CROWS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[322])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6562, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, __pyx_t_2) < (0)) __PYX_ERR(2, 588, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6562, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6562, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6562, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6562, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_435__get_flags, 0, __pyx_mstate_global->__pyx_n_u_get_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[251])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 608, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[323])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_flags, __pyx_t_2) < (0)) __PYX_ERR(2, 608, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyDict_NewPresized(11); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 623, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_kp_u_A_period_of_1_performs_no_smooth) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_kp_u_An_output_is_display_shifted) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_kp_u_Uses_a_transcendental_math_funct) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_kp_u_Input_must_be_positive) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_16777216, __pyx_mstate_global->__pyx_kp_u_Output_scale_same_as_input) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_33554432, __pyx_mstate_global->__pyx_kp_u_Function_has_a_streaming_API) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_67108864, __pyx_mstate_global->__pyx_kp_u_Output_is_over_volume) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_134217728, __pyx_mstate_global->__pyx_kp_u_Function_has_an_unstable_period) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_268435456, __pyx_mstate_global->__pyx_kp_u_Output_is_a_candlestick) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_536870912, __pyx_mstate_global->__pyx_kp_u_Output_is_path_dependent) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_1073741824, __pyx_mstate_global->__pyx_kp_u_Output_can_be_NaN_or_infinite) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS, __pyx_t_2) < (0)) __PYX_ERR(2, 622, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 638, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_open) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_n_u_high) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_n_u_low) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_close) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_volume) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_n_u_openInterest) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_n_u_timeStamp) < (0)) __PYX_ERR(2, 638, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS, __pyx_t_2) < (0)) __PYX_ERR(2, 637, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyDict_NewPresized(16); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 648, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_Line) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_kp_u_Dotted_Line) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_kp_u_Dashed_Line) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_Dot) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_Histogram) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_kp_u_Pattern_Bool) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_128, __pyx_mstate_global->__pyx_kp_u_Confirmation_Pattern_200_this_ba) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_256, __pyx_mstate_global->__pyx_kp_u_Output_can_be_positive) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_512, __pyx_mstate_global->__pyx_kp_u_Output_can_be_negative) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_1024, __pyx_mstate_global->__pyx_kp_u_Output_can_be_zero) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_2048, __pyx_mstate_global->__pyx_kp_u_Values_represent_an_upper_limit) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_4096, __pyx_mstate_global->__pyx_kp_u_Values_represent_a_lower_limit) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_8192, __pyx_mstate_global->__pyx_kp_u_Output_is_optional_nullable) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_16384, __pyx_mstate_global->__pyx_kp_u_Output_is_display_shifted) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_32768, __pyx_mstate_global->__pyx_kp_u_Weak_Pattern_80_a_weaker_form_of) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS, __pyx_t_2) < (0)) __PYX_ERR(2, 647, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6703, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6703, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_437_ta_getFuncInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[252])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 666, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[324])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6844, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, __pyx_t_2) < (0)) __PYX_ERR(2, 666, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6844, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6844, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6844, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6844, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_439_ta_getInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[253])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 689, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[325])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, __pyx_t_2) < (0)) __PYX_ERR(2, 689, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6985, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 6985, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_441_ta_getOptInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[254])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[326])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, __pyx_t_2) < (0)) __PYX_ERR(2, 714, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7126, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7126, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_443_ta_getOutputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[255])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 740, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[327])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, __pyx_t_2) < (0)) __PYX_ERR(2, 740, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7267, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7267, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_445_get_defaults_and_docs, 0, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[256])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[328])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, __pyx_t_2) < (0)) __PYX_ERR(2, 764, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_27 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -1); if (unlikely(!__pyx_t_27)) __PYX_ERR(3, 3, __pyx_L1_error) - __pyx_t_2 = __pyx_t_27; - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_numpy, __pyx_t_2) < (0)) __PYX_ERR(3, 3, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7408, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_namedtuple}; - __pyx_t_27 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_collections, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_collections, -1); if (unlikely(!__pyx_t_27)) __PYX_ERR(3, 4, __pyx_L1_error) + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __pyx_t_2 = __pyx_t_27; - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7408, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[329])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[23]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7551, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; { - PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_namedtuple}; - __pyx_t_23 = 0; { - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_23]); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_23], __pyx_t_9) < (0)) __PYX_ERR(3, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_25 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(3, 12, __pyx_L1_error) - - - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 2456, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[15], __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OutRange, __pyx_t_4) < (0)) __PYX_ERR(3, 2456, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7551, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_6Stream_5__copy__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Stream___copy, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[257])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[330])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream, __pyx_mstate_global->__pyx_n_u_copy_2, __pyx_t_4) < (0)) __PYX_ERR(3, 2542, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_6Stream_7__deepcopy__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Stream___deepcopy, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[258])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2545, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7692, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7692, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[331])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream, __pyx_mstate_global->__pyx_n_u_deepcopy, __pyx_t_4) < (0)) __PYX_ERR(3, 2545, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7833, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7833, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_6Stream_9__reduce__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Stream___reduce, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[259])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[332])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream, __pyx_mstate_global->__pyx_n_u_reduce, __pyx_t_4) < (0)) __PYX_ERR(3, 2548, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9AC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[260])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2606, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7974, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 7974, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[333])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2606, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2606, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8115, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2606, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2606, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8115, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[261])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[334])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2750, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8256, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2750, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8256, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ACOS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[262])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2897, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[335])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2897, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2897, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8397, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2897, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2897, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8397, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9AD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[263])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3035, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[336])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3035, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3035, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[24]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8540, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3035, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3035, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8540, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[264])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDOJI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[337])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3175, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8681, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3175, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8681, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[265])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[338])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8822, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3317, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8822, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8822, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8822, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3317, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8822, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[266])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3458, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[339])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3458, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3458, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8963, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3458, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3458, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 8963, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[267])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLENGULFING_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[340])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3598, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9104, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3598, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9104, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADXR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[268])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3739, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[341])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3739, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3739, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[23]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9247, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3739, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3739, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9247, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9AO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[269])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3880, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[342])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3880, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3880, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[23]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9390, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3880, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3880, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9390, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10APO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_APO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[270])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4020, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[343])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[19]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4020, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4020, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9531, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4020, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4020, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9531, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12AROON_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AROON_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[271])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[344])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4160, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9672, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4160, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9672, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AROONOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[272])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4304, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHAMMER_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[345])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4304, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4304, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9813, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4304, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4304, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9813, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ASIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[273])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN_Stream_open_and_fi, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[346])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9954, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4440, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9954, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9954, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 9954, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4440, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 9954, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ATAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[274])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHARAMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[347])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4575, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10095, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4575, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10095, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ATR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ATR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[275])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[348])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4714, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10236, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4714, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10236, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVGDEV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[276])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4853, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[349])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4853, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4853, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10377, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4853, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4853, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10377, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVGPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[277])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4991, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[350])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10518, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4991, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4991, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10518, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10518, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4991, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10518, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4991, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10518, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BBANDS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[278])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD_Stream_open_and_fi, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[351])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[20]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5138, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10659, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5138, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10659, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11BETA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BETA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[279])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5287, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[352])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5287, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5287, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10800, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5287, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5287, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10800, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10BOP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BOP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[280])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5426, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[353])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5426, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5426, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10941, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5426, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 10941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5426, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 10941, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CCI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CCI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[281])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5568, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLINNECK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[354])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5568, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5568, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11082, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5568, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5568, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11082, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL2CROWS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[282])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[355])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5708, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11223, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5708, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11223, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[283])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5849, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLKICKING_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[356])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5849, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5849, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11364, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5849, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5849, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11364, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[284])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[357])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5990, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11505, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5990, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11505, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[285])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[358])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6131, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11646, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6131, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11646, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[286])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6272, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[359])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6272, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6272, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11787, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6272, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6272, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11787, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[287])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6413, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[360])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6413, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6413, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11928, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6413, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 11928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6413, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 11928, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[288])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6554, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[361])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6554, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6554, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12069, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6554, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6554, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12069, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[289])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[362])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[21]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6697, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12210, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6697, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12210, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[290])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[363])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6838, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[24]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12353, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6838, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12353, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[291])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[364])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6979, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[23]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12496, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6979, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12496, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[292])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[365])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[23]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12639, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12639, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[293])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7261, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLONNECK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[366])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7261, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7261, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12780, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7261, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7261, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12780, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[294])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7402, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLPIERCING_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[367])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7402, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7402, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12921, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7402, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7402, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 12921, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[295])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[368])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7543, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13062, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7543, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13062, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[296])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7686, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[369])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[22]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7686, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7686, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13203, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7686, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7686, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13203, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDOJI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[297])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7827, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[370])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7827, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13344, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7827, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13344, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[298])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[371])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7968, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13485, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7968, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13485, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[299])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8109, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[372])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8109, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8109, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13626, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8109, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8109, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13626, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLENGULFING_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[300])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[373])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8250, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13767, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8250, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13767, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[301])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[374])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[21]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8393, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13908, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8393, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 13908, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[302])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[375])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[21]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8536, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14049, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8536, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14049, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[303])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTAKURI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[376])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8677, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14190, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8677, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14190, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[304])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[377])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8818, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14331, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8818, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14331, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHAMMER_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[305])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8959, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[378])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8959, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8959, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14472, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8959, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8959, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14472, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN_Stream_open_and_fi, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[306])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9100, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[379])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9100, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9100, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14613, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9100, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9100, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14613, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHARAMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[307])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9241, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[380])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9241, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9241, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14754, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9241, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9241, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14754, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[308])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[381])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9382, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14895, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9382, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 14895, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[309])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9523, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[382])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9523, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9523, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15036, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9523, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9523, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15036, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[310])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9664, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CEIL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[383])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9664, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9664, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15174, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9664, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9664, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15174, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD_Stream_open_and_fi, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[311])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9805, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9CG_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CG_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[384])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9805, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9805, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15311, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9805, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9805, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15311, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[312])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11CHOP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CHOP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[385])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9946, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15450, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9946, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15450, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[313])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13CHOPTR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CHOPTR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[386])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10087, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15591, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10087, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CHOPTR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15591, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLINNECK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[314])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10228, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11CKSP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CKSP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[387])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10228, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10228, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[25]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15736, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10228, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10228, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CKSP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15736, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[315])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10369, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CMF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[388])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10369, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10369, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15883, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10369, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10369, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 15883, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLKICKING_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[316])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10510, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CMO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[389])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10510, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10510, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16023, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10510, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10510, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16023, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[317])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10651, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMOU_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[390])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10651, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10651, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16160, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10651, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10651, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16160, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[318])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COPPOCK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[391])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10792, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16299, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10792, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16299, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[319])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10933, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CORREL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[392])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10933, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10933, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16438, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10933, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10933, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16438, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[320])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11074, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10COS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[393])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11074, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11074, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16574, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11074, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11074, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16574, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[321])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11215, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11COSH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COSH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[394])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11215, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11215, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16709, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11215, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11215, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16709, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[322])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11CRSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CRSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[395])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11356, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16848, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11356, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16848, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[323])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CTI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CTI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[396])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[22]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11499, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CTI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16985, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CTI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11499, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CTI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 16985, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[324])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CUMSUM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[397])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[21]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11642, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11642, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[325])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[398])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[21]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11785, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17259, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11785, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17259, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLONNECK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[326])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11926, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[399])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11926, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11926, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17397, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11926, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11926, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17397, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLPIERCING_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[327])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12067, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10DIV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DIV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[400])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12067, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12067, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17534, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12067, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12067, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17534, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[328])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[401])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12208, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17677, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12208, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17677, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[329])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12349, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11DOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[402])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12349, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12349, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[26]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17828, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12349, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12349, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17828, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[330])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10DPO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DPO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[403])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12490, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17965, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 17965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12490, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 17965, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[331])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9DX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[404])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12631, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18104, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12631, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18104, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[332])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12772, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[405])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12772, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12772, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18244, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12772, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12772, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18244, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[333])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12913, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[406])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12913, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12913, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18382, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12913, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12913, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18382, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[334])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13054, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EMV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EMV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[407])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13054, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13054, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[27]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18522, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13054, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13054, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18522, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[335])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13195, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9ER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ER_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[408])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13195, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13195, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18661, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13195, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13195, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18661, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTAKURI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[336])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ERI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ERI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[409])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13336, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18802, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13336, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18802, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[337])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EXP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EXP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[410])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13477, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18944, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 18944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13477, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 18944, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[338])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13FISHER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FISHER_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[411])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13618, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19084, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13618, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FISHER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19084, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[339])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13759, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FLOOR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[412])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13759, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13759, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19225, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13759, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13759, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19225, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[340])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13900, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[413])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13900, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13900, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19362, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13900, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13900, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19362, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[341])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14041, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FRACTAL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[414])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14041, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14041, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19503, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14041, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14041, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19503, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[342])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12FRAMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FRAMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[415])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14182, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19647, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14182, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19647, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CEIL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[343])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14320, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9HA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[416])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14320, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14320, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19792, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14320, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14320, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19792, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CMF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[344])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10HMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[417])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19947, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14460, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19947, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19947, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19947, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14460, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 19947, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CMO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[345])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[418])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14600, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20082, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14600, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20082, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMOU_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[346])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[419])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14737, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20217, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14737, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20217, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COPPOCK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[347])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[420])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14876, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20354, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14876, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20354, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CORREL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[348])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15015, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_SINE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[421])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15015, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15015, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20496, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15015, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15015, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20496, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10COS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[349])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[422])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20636, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15151, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20636, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20636, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20636, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15151, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20636, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11COSH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COSH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[350])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[423])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15286, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20771, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15286, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20771, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CUMSUM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[351])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10IBS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IBS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[424])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15421, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IBS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20908, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IBS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15421, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IBS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 20908, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[352])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15ICHIMOKU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ICHIMOKU_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[425])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21056, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15560, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21056, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21056, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21056, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15560, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ICHIMOKU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21056, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[353])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15698, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10IMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[426])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15698, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15698, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21210, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15698, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15698, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21210, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10DIV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DIV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[354])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15835, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KAMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[427])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15835, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15835, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21348, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15835, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15835, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21348, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[355])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15978, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9KC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[428])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15978, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15978, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[28]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21493, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15978, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15978, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21493, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10DPO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DPO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[356])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16126, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KDJ_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[429])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16126, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16126, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[29]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21652, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16126, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16126, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21652, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9DX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[357])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16265, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10KST_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KST_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[430])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16265, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16265, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[30]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KST_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21811, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KST_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16265, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16265, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KST_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21811, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[358])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13KSTEXT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KSTEXT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[431])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16405, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[31]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21965, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16405, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KSTEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 21965, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[359])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15KURTOSIS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KURTOSIS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[432])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16543, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22107, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16543, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KURTOSIS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22107, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9ER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ER_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[360])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16680, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10KVO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KVO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[433])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16680, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16680, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22251, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16680, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16680, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22251, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ERI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ERI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[361])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[434])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16821, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22396, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16821, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22396, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EXP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EXP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[362])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16963, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[435])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16963, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16963, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22533, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16963, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16963, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22533, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FLOOR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[363])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[436])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17098, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22670, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17098, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22670, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[364])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17235, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[437])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17235, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17235, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22807, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17235, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17235, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22807, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FRACTAL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[365])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9LN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[438])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17376, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22942, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 22942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17376, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 22942, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9HA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[366])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LOG10_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[439])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17526, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23077, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17526, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23077, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10HMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[367])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17681, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9MA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[440])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17681, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17681, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[32]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23215, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17681, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17681, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23215, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[368])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17816, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MACD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[441])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17816, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17816, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23358, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17816, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17816, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23358, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[369])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACDEXT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[442])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17951, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[33]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23514, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17951, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23514, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[370])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACDFIX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[443])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18088, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23665, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18088, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23665, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_SINE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[371])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[444])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18230, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[34]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23815, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18230, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23815, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[372])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MARKETFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[445])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18370, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23957, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 23957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 23957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18370, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 23957, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[373])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MASSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[446])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24098, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18505, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24098, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24098, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24098, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18505, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24098, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10IMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[374])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAVP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[447])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18643, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[35]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24240, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 24240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18643, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24240, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KAMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[375])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18781, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MAX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[448])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18781, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18781, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24378, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18781, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18781, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24378, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9KC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[376])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18926, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAXINDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[449])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[23]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18926, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18926, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24515, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 24515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18926, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18926, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24515, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KDJ_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[377])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19085, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MCGD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MCGD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[450])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[24]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19085, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19085, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24662, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19085, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19085, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MCGD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24662, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[378])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13MEDIAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MEDIAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[451])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19234, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24799, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 24799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19234, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24799, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[379])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19371, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MEDPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[452])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19371, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19371, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24935, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19371, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 24935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19371, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 24935, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[380])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[453])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19508, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25076, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 25076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19508, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25076, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[381])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19645, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIDPOINT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[454])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19645, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19645, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25216, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19645, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19645, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25216, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9LN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[382])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19780, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIDPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[455])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19780, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19780, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25354, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 25354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19780, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19780, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25354, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LOG10_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[383])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[456])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19915, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25492, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19915, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25492, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9MA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[384])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20053, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MININDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[457])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[25]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20053, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20053, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25629, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 25629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20053, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20053, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25629, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MACD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[385])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINMAX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[458])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20196, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25778, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20196, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25778, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACDEXT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[386])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20352, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[459])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[26]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20352, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20352, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25922, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 25922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20352, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 25922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20352, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 25922, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACDFIX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[387])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINUS_DI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[460])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20503, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26079, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20503, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26079, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[388])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20653, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINUS_DM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[461])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[27]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20653, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20653, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26219, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 26219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20653, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20653, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26219, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MARKETFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[389])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20795, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MOM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MOM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[462])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20795, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20795, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26357, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20795, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20795, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26357, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MASSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[390])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MULT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MULT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[463])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20936, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26494, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 26494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20936, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26494, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAVP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[391])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11NATR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NATR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[464])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[28]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21078, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26634, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21078, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26634, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MAX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[392])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10NVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[465])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21216, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26772, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 26772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21216, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26772, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAXINDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[393])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10OBV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_OBV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[466])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21353, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26910, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 26910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21353, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 26910, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MEDPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[394])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15PERCENTB_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PERCENTB_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[467])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21499, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[22]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27051, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21499, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27051, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[395])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21640, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PERCENTILE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[468])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21640, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21640, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[36]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27189, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21640, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21640, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27189, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIDPOINT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[396])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21780, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PERCENTRANK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[469])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21780, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21780, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27326, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21780, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21780, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27326, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIDPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[397])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21918, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PLUS_DI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[470])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21918, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21918, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27465, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21918, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21918, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27465, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[398])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22056, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PLUS_DM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[471])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22056, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22056, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27605, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22056, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22056, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27605, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MININDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[399])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PPO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PPO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[472])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27745, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22193, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[20]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27745, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27745, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27745, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22193, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27745, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINMAX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[400])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PSO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PSO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[473])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22342, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PSO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27885, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PSO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 27885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 27885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22342, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PSO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 27885, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[401])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[474])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22486, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28023, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22486, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28023, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINUS_DI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[402])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[475])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22643, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[20]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28163, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 28163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22643, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28163, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINUS_DM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[403])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22783, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[476])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22783, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22783, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28299, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22783, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22783, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28299, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MOM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MOM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[404])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22921, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_QSTICK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[477])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22921, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22921, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28438, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 28438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22921, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22921, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28438, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MULT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MULT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[405])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23058, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[478])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23058, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 23058, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28576, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23058, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23058, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28576, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11NATR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NATR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[406])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ROC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[479])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23198, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 23198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28713, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 28713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23198, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28713, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10NVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[407])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[480])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23336, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 23336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28850, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23336, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28850, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10OBV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_OBV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[408])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[481])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23474, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 23474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28987, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 28987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 28987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23474, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 28987, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PERCENTILE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[409])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23613, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCR100_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[482])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[29]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23613, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 23613, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29124, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23613, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23613, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29124, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PERCENTRANK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[410])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21ROGERSSATCHELL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROGERSSATCHELL_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[483])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23750, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 23750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[37]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29265, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 29265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23750, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROGERSSATCHELL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29265, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PLUS_DI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[411])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23889, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[484])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23889, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 23889, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29405, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 23889, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 23889, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29405, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PLUS_DM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[412])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24029, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[485])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24029, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 24029, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29543, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 29543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24029, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24029, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29543, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PPO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PPO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[413])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11RVIR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RVIR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[486])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[19]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24169, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 24169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29682, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24169, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVIR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29682, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[414])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RVOL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[487])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24305, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 24305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29820, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 29820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24305, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29820, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[415])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[488])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29959, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[19]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24445, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 24445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[38]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29959, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29959, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 29959, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24445, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 29959, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[416])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24581, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SAREXT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[489])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24581, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 24581, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[39]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 30105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24581, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24581, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_QSTICK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[417])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9SI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[490])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24720, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 24720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[21]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30246, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24720, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30246, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[418])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24858, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[491])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24858, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 24858, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30384, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 30384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24858, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24858, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30384, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ROC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[419])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24995, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11SINH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SINH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[492])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24995, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 24995, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30519, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 24995, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 24995, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30519, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[420])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[493])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25132, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 25132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30656, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 30656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25132, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30656, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[421])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[494])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25269, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 25269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[26]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30800, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25269, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30800, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCR100_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[422])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25406, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SQRT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[495])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25406, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 25406, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30942, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 30942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25406, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 30942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25406, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 30942, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[423])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13SQZMOM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SQZMOM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[496])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25543, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 25543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[40]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31088, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25543, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQZMOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31088, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[424])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25681, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10STC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[497])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25681, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 25681, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31234, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25681, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25681, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31234, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RVOL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[425])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STDDEV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[498])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25818, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 25818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[27]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31372, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25818, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31372, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[426])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25957, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[499])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[30]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25957, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 25957, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[41]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31517, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 25957, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 25957, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31517, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SAREXT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[427])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCHF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[500])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[31]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26103, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 26103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[35]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31667, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26103, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31667, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[428])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26239, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[501])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26239, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 26239, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[42]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31816, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 31816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26239, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26239, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31816, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11SINH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SINH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[429])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SUB_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUB_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[502])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26374, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 26374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31958, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 31958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 31958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26374, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 31958, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[430])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26511, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SUM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[503])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26511, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 26511, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32096, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 32096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26511, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26511, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32096, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[431])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26655, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[504])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[32]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26655, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 26655, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[43]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32238, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 32238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26655, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26655, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32238, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SQRT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[432])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16SWAK_2PHP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SWAK_2PHP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[505])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26797, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 26797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32382, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 32382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26797, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_2PHP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32382, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STDDEV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[433])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26935, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14SWAK_BP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SWAK_BP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[506])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[33]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26935, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 26935, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[44]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32520, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 32520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 26935, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 26935, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32520, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[434])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27080, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18SWAK_BUTTER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SWAK_BUTTER_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[507])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[34]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27080, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 27080, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32657, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 32657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27080, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27080, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_BUTTER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32657, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCHF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[435])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17SWAK_GAUSS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SWAK_GAUSS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[508])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[28]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27230, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 27230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32794, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 32794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27230, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_GAUSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32794, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[436])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27379, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14SWAK_HP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SWAK_HP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[509])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32931, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[35]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27379, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 27379, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32931, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 32931, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27379, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 32931, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27379, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SWAK_HP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 32931, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SUB_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUB_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[437])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9T3_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_T3_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[510])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27521, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 27521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[27]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33069, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 33069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27521, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33069, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SUM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[438])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27659, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[511])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27659, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 27659, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33204, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 33204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27659, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27659, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33204, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[439])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27801, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TANH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TANH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[512])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[36]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27801, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 27801, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33339, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 33339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27801, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27801, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33339, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9T3_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_T3_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[440])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[513])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[33]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27946, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 27946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33476, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 33476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 27946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 27946, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33476, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[441])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28081, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRANGE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[514])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28081, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 28081, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33613, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 33613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28081, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28081, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33613, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TANH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TANH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[442])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRIMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[515])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28216, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 28216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33752, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 33752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28216, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33752, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[443])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRIX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[516])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28353, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 28353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33889, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 33889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 33889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28353, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 33889, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRANGE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[444])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TSF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TSF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[517])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28490, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 28490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34026, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 34026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28490, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34026, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRIMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[445])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28629, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[518])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28629, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 28629, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34164, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 34164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28629, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28629, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34164, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRIX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[446])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28766, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TYPPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[519])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28766, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 28766, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34301, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 34301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28766, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28766, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34301, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TSF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TSF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[447])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ULTOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[520])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28903, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 28903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34444, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 34444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 28903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 28903, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34444, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[448])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29041, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10VAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[521])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29041, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 29041, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[27]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34584, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 34584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29041, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29041, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34584, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TYPPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[449])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10VHF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VHF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[522])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34721, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29178, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 29178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34721, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 34721, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34721, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29178, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34721, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ULTOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[450])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29321, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12VIDYA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VIDYA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[523])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29321, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 29321, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34859, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 34859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29321, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29321, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VIDYA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 34859, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10VAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[451])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VORTEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[524])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[33]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29461, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 29461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35000, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 35000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29461, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35000, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10VHF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VHF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[452])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VWAP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[525])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29598, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 29598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35145, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 35145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29598, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35145, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VORTEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[453])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29739, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VWMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[526])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29739, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 29739, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35287, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 35287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29739, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29739, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35287, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VWAP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[454])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10WAD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WAD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[527])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29884, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 29884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35425, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 35425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 29884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 29884, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35425, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VWMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[455])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30026, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16WAVETREND_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WAVETREND_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[528])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 30026, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 30026, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35570, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 35570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30026, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 30026, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAVETREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35570, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10WAD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WAD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[456])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WCLPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[529])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 30164, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 30164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35714, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 35714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 30164, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35714, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WCLPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[457])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30303, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WILLR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[530])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 30303, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 30303, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35855, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 35855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30303, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 30303, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35855, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WILLR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[458])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10WMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[531])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 30444, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 30444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35994, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 35994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 30444, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 35994, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10WMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[459])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30583, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13ZIGZAG_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ZIGZAG_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[532])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 30583, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 30583, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[45]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 36137, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 36137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30583, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 30583, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZIGZAG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 36137, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12ZLEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ZLEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[460])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12ZLEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ZLEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[533])); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 30720, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 30720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 36295, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_5, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 36295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 30720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 36295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 30720, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_3) < (0)) __PYX_ERR(3, 36295, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_all, __pyx_t_4) < (0)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_all, __pyx_t_3) < (0)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_447__pyx_unpickle__TA_ReadLease, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__TA_ReadLease, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[461])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_521__pyx_unpickle__TA_ReadLease, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__TA_ReadLease, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[534])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__TA_ReadLease, __pyx_t_4) < (0)) __PYX_ERR(5, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__TA_ReadLease, __pyx_t_3) < (0)) __PYX_ERR(5, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_449__pyx_unpickle__TA_WriteLease, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__TA_WriteLease, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[462])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_523__pyx_unpickle__TA_WriteLease, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__TA_WriteLease, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[535])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__TA_WriteLease, __pyx_t_4) < (0)) __PYX_ERR(5, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__TA_WriteLease, __pyx_t_3) < (0)) __PYX_ERR(5, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_4) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_3) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /*--- Wrapped vars code ---*/ @@ -459475,6 +539622,8 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_XDECREF(__pyx_t_19); __Pyx_XDECREF(__pyx_t_20); __Pyx_XDECREF(__pyx_t_21); + __Pyx_XDECREF(__pyx_t_22); + __Pyx_XDECREF(__pyx_t_23); if (__pyx_m) { if (__pyx_mstate->__pyx_d && stringtab_initialized) { __Pyx_AddTraceback("init talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); @@ -459511,7 +539660,7 @@ static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_object); if (!__pyx_builtin_object) __PYX_ERR(1, 167, __pyx_L1_error) __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_property); if (!__pyx_builtin_property) __PYX_ERR(2, 129, __pyx_L1_error) - __pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_staticmethod); if (!__pyx_builtin_staticmethod) __PYX_ERR(3, 2606, __pyx_L1_error) + __pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_staticmethod); if (!__pyx_builtin_staticmethod) __PYX_ERR(3, 3038, __pyx_L1_error) __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(2, 323, __pyx_L1_error) /* Cached unbound methods */ @@ -459544,7 +539693,7 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { { PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_stacklevel}; - __pyx_mstate_global->__pyx_tuple[1] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(1, 240, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[1] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(1, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[1]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[1]); @@ -459592,26 +539741,26 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { { PyObject* __pyx_temp[1] = {__pyx_builtin_object}; - __pyx_mstate_global->__pyx_tuple[8] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[8])) __PYX_ERR(1, 288, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[8] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[8])) __PYX_ERR(1, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[8]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[8]); { PyObject* __pyx_temp[1] = {__pyx_builtin_object}; - __pyx_mstate_global->__pyx_tuple[9] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[9])) __PYX_ERR(1, 288, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[9] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[9])) __PYX_ERR(1, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[9]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[9]); { PyObject* __pyx_temp[1] = {__pyx_builtin_object}; - __pyx_mstate_global->__pyx_tuple[10] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[10])) __PYX_ERR(1, 295, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[10] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[10])) __PYX_ERR(1, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[10]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[10]); { PyObject* __pyx_temp[1] = {__pyx_builtin_object}; - __pyx_mstate_global->__pyx_tuple[11] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[11])) __PYX_ERR(1, 295, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[11] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[11])) __PYX_ERR(1, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[11]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[11]); @@ -459638,161 +539787,224 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { { PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_OutRange, __pyx_mstate_global->__pyx_kp_u_begidx_nbelement}; - __pyx_mstate_global->__pyx_tuple[15] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[15])) __PYX_ERR(3, 2456, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[15] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[15])) __PYX_ERR(3, 2888, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[15]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[15]); { PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648}; - __pyx_mstate_global->__pyx_tuple[16] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[16])) __PYX_ERR(3, 2606, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[16] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[16])) __PYX_ERR(3, 3038, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[16]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[16]); { PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_int_neg_2147483648}; - __pyx_mstate_global->__pyx_tuple[17] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[17])) __PYX_ERR(3, 2750, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[17] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[17])) __PYX_ERR(3, 3182, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[17]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[17]); { PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648}; - __pyx_mstate_global->__pyx_tuple[18] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[18])) __PYX_ERR(3, 3317, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[18] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[18])) __PYX_ERR(3, 3749, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[18]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[18]); { - PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_1}; - __pyx_mstate_global->__pyx_tuple[19] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[19])) __PYX_ERR(3, 4020, __pyx_L1_error) + PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_6_0, __pyx_mstate_global->__pyx_float_0_85}; + __pyx_mstate_global->__pyx_tuple[19] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[19])) __PYX_ERR(3, 4312, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[19]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[19]); { - PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_int_0}; - __pyx_mstate_global->__pyx_tuple[20] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[20])) __PYX_ERR(3, 5138, __pyx_L1_error) + PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_1}; + __pyx_mstate_global->__pyx_tuple[20] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[20])) __PYX_ERR(3, 4591, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[20]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[20]); { - PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_float_0_3}; - __pyx_mstate_global->__pyx_tuple[21] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[21])) __PYX_ERR(3, 6697, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[21] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[21])) __PYX_ERR(3, 5016, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[21]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[21]); { - PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_float_0_5}; - __pyx_mstate_global->__pyx_tuple[22] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[22])) __PYX_ERR(3, 7686, __pyx_L1_error) + PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[22] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[22])) __PYX_ERR(3, 5852, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[22]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[22]); { - PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37}; - __pyx_mstate_global->__pyx_tuple[23] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[23])) __PYX_ERR(3, 18926, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_float_0_3}; + __pyx_mstate_global->__pyx_tuple[23] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[23])) __PYX_ERR(3, 7551, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[23]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[23]); { - PyObject* __pyx_temp[5] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_13, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_13}; - __pyx_mstate_global->__pyx_tuple[24] = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_mstate_global->__pyx_tuple[24])) __PYX_ERR(3, 19085, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_float_0_5}; + __pyx_mstate_global->__pyx_tuple[24] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[24])) __PYX_ERR(3, 8540, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[24]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[24]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; - __pyx_mstate_global->__pyx_tuple[25] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[25])) __PYX_ERR(3, 20053, __pyx_L1_error) + PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_1_0, __pyx_mstate_global->__pyx_int_neg_2147483648}; + __pyx_mstate_global->__pyx_tuple[25] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[25])) __PYX_ERR(3, 15736, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[25]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[25]); { - PyObject* __pyx_temp[6] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; - __pyx_mstate_global->__pyx_tuple[26] = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_mstate_global->__pyx_tuple[26])) __PYX_ERR(3, 20352, __pyx_L1_error) + PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648}; + __pyx_mstate_global->__pyx_tuple[26] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[26])) __PYX_ERR(3, 17828, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[26]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[26]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37}; - __pyx_mstate_global->__pyx_tuple[27] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[27])) __PYX_ERR(3, 20653, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[27] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[27])) __PYX_ERR(3, 18522, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[27]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[27]); { - PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; - __pyx_mstate_global->__pyx_tuple[28] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[28])) __PYX_ERR(3, 21078, __pyx_L1_error) + PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[28] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[28])) __PYX_ERR(3, 21493, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[28]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[28]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_50_0}; - __pyx_mstate_global->__pyx_tuple[29] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[29])) __PYX_ERR(3, 23613, __pyx_L1_error) + PyObject* __pyx_temp[5] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_13, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_13}; + __pyx_mstate_global->__pyx_tuple[29] = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_mstate_global->__pyx_tuple[29])) __PYX_ERR(3, 21652, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[29]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[29]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_float_0_02, __pyx_mstate_global->__pyx_float_0_2}; - __pyx_mstate_global->__pyx_tuple[30] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[30])) __PYX_ERR(3, 25957, __pyx_L1_error) + PyObject* __pyx_temp[9] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648}; + __pyx_mstate_global->__pyx_tuple[30] = __Pyx_PyTuple_FromArray(__pyx_temp, 9); if (unlikely(!__pyx_mstate_global->__pyx_tuple[30])) __PYX_ERR(3, 21811, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[30]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[30]); { - PyObject* __pyx_temp[8] = {__pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37}; - __pyx_mstate_global->__pyx_tuple[31] = __Pyx_PyTuple_FromArray(__pyx_temp, 8); if (unlikely(!__pyx_mstate_global->__pyx_tuple[31])) __PYX_ERR(3, 26103, __pyx_L1_error) + PyObject* __pyx_temp[11] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[31] = __Pyx_PyTuple_FromArray(__pyx_temp, 11); if (unlikely(!__pyx_mstate_global->__pyx_tuple[31])) __PYX_ERR(3, 21965, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[31]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[31]); { - PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648}; - __pyx_mstate_global->__pyx_tuple[32] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[32])) __PYX_ERR(3, 26655, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[32] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[32])) __PYX_ERR(3, 23215, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[32]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[32]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37}; - __pyx_mstate_global->__pyx_tuple[33] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[33])) __PYX_ERR(3, 26935, __pyx_L1_error) + PyObject* __pyx_temp[6] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[33] = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_mstate_global->__pyx_tuple[33])) __PYX_ERR(3, 23514, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[33]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[33]); { - PyObject* __pyx_temp[5] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; - __pyx_mstate_global->__pyx_tuple[34] = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_mstate_global->__pyx_tuple[34])) __PYX_ERR(3, 27080, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[34] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[34])) __PYX_ERR(3, 23815, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[34]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[34]); { - PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; - __pyx_mstate_global->__pyx_tuple[35] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[35])) __PYX_ERR(3, 27379, __pyx_L1_error) + PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[35] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[35])) __PYX_ERR(3, 24240, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[35]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[35]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_3_0}; - __pyx_mstate_global->__pyx_tuple[36] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[36])) __PYX_ERR(3, 27801, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_50_0}; + __pyx_mstate_global->__pyx_tuple[36] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[36])) __PYX_ERR(3, 27189, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[36]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[36]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_252_0}; + __pyx_mstate_global->__pyx_tuple[37] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[37])) __PYX_ERR(3, 29265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[37]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[37]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_float_0_02, __pyx_mstate_global->__pyx_float_0_2}; + __pyx_mstate_global->__pyx_tuple[38] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[38])) __PYX_ERR(3, 29959, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[38]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[38]); + + { + PyObject* __pyx_temp[8] = {__pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[39] = __Pyx_PyTuple_FromArray(__pyx_temp, 8); if (unlikely(!__pyx_mstate_global->__pyx_tuple[39])) __PYX_ERR(3, 30105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[39]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[39]); + + { + PyObject* __pyx_temp[6] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[40] = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_mstate_global->__pyx_tuple[40])) __PYX_ERR(3, 31088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[40]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[40]); + + { + PyObject* __pyx_temp[5] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[41] = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_mstate_global->__pyx_tuple[41])) __PYX_ERR(3, 31517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[41]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[41]); + + { + PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[42] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[42])) __PYX_ERR(3, 31816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[42]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[42]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_3_0}; + __pyx_mstate_global->__pyx_tuple[43] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[43])) __PYX_ERR(3, 32238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[43]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[43]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_0_1}; + __pyx_mstate_global->__pyx_tuple[44] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[44])) __PYX_ERR(3, 32520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[44]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[44]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_float_5_0, __pyx_mstate_global->__pyx_int_neg_2147483648}; + __pyx_mstate_global->__pyx_tuple[45] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[45])) __PYX_ERR(3, 36137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[45]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[45]); #if CYTHON_IMMORTAL_CONSTANTS { PyObject **table = __pyx_mstate->__pyx_tuple; - for (Py_ssize_t i=0; i<37; ++i) { + for (Py_ssize_t i=0; i<46; ++i) { #if PY_VERSION_HEX >= 0x030F0000 PyUnstable_SetImmortal(table[i]); #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING @@ -459826,43 +540038,43 @@ static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { int __pyx_clineno = 0; CYTHON_UNUSED_VAR(__pyx_mstate); { - const struct { const unsigned int length: 11; } str_length_index[] = {{0},{1},{1467},{1},{4},{6},{2},{11},{27},{33},{63},{29},{2},{10},{12},{35},{1},{4},{13},{15},{1},{2},{2},{6},{1},{1},{2},{1},{1},{35},{84},{31},{28},{26},{28},{57},{28},{68},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{22},{7},{46},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{46},{28},{4},{32},{113},{37},{179},{50},{54},{57},{29},{22},{22},{18},{23},{25},{29},{21},{24},{26},{8},{11},{14},{88},{21},{61},{41},{35},{25},{33},{52},{13},{30},{35},{30},{31},{51},{23},{32},{35},{1},{14},{1},{8},{16},{76},{105},{57},{7},{6},{2},{32},{33},{30},{64},{48},{35},{9},{36},{39},{34},{17},{11},{17},{12},{12},{9},{15},{14},{19},{17},{15},{17},{21},{17},{2},{8},{15},{29},{4},{11},{25},{9},{23},{2},{3},{10},{24},{5},{12},{26},{3},{10},{24},{3},{4},{11},{25},{10},{24},{9},{23},{3},{2},{9},{23},{3},{10},{24},{5},{8},{15},{29},{12},{26},{4},{11},{25},{4},{11},{25},{3},{10},{24},{6},{13},{27},{8},{15},{29},{17},{6},{13},{27},{4},{11},{25},{3},{10},{24},{8},{8},{9},{12},{3},{10},{24},{9},{16},{30},{14},{21},{35},{10},{17},{31},{14},{21},{35},{11},{18},{32},{16},{23},{37},{17},{24},{38},{16},{23},{37},{15},{22},{36},{11},{18},{32},{12},{19},{33},{18},{25},{39},{19},{26},{40},{16},{23},{37},{17},{24},{38},{7},{11},{18},{32},{14},{28},{16},{23},{37},{12},{19},{33},{18},{25},{39},{14},{21},{35},{19},{26},{40},{17},{24},{38},{9},{16},{30},{13},{20},{34},{9},{14},{21},{35},{16},{30},{11},{18},{32},{10},{13},{20},{34},{17},{31},{15},{22},{36},{18},{25},{39},{9},{16},{30},{17},{24},{38},{10},{18},{25},{39},{17},{31},{15},{22},{36},{17},{24},{38},{11},{18},{32},{11},{18},{32},{14},{21},{35},{10},{17},{31},{18},{25},{39},{14},{21},{35},{9},{16},{30},{11},{18},{32},{14},{21},{35},{19},{26},{40},{18},{25},{39},{15},{22},{36},{12},{19},{33},{14},{21},{35},{17},{24},{38},{16},{23},{37},{9},{16},{30},{12},{19},{33},{12},{19},{33},{10},{17},{31},{15},{22},{36},{18},{25},{39},{19},{26},{40},{4},{11},{25},{3},{10},{24},{3},{4},{11},{25},{10},{24},{7},{14},{28},{6},{13},{27},{3},{4},{11},{25},{10},{24},{6},{13},{27},{3},{10},{24},{17},{7},{4},{11},{25},{8},{3},{10},{24},{8},{15},{29},{3},{10},{24},{2},{9},{23},{9},{3},{3},{10},{24},{3},{10},{24},{2},{3},{10},{24},{9},{23},{3},{10},{24},{5},{5},{12},{26},{4},{11},{25},{7},{14},{28},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{2},{9},{23},{3},{10},{24},{11},{18},{32},{10},{17},{31},{9},{16},{30},{7},{14},{28},{12},{19},{33},{12},{19},{33},{7},{9},{3},{10},{24},{19},{4},{11},{25},{2},{9},{23},{3},{10},{24},{9},{15},{22},{36},{19},{26},{40},{15},{22},{36},{16},{30},{2},{9},{23},{5},{12},{26},{4},{2},{4},{7},{14},{28},{7},{14},{28},{11},{25},{4},{11},{25},{8},{15},{29},{5},{12},{26},{4},{11},{25},{3},{8},{15},{29},{10},{24},{9},{23},{7},{19},{16},{8},{15},{29},{3},{10},{24},{8},{15},{29},{8},{15},{29},{3},{8},{15},{29},{6},{11},{18},{32},{13},{27},{8},{15},{29},{8},{15},{29},{10},{24},{3},{10},{24},{4},{11},{25},{4},{11},{25},{4},{3},{10},{24},{4},{3},{10},{24},{11},{8},{10},{17},{31},{11},{18},{32},{7},{14},{28},{7},{14},{28},{3},{10},{24},{3},{10},{24},{3},{10},{24},{3},{10},{24},{6},{13},{27},{3},{10},{24},{3},{4},{11},{25},{4},{7},{14},{28},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{9},{8},{3},{6},{13},{27},{10},{24},{3},{4},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{6},{13},{27},{5},{6},{13},{27},{8},{15},{29},{12},{26},{3},{10},{24},{3},{10},{24},{10},{17},{31},{6},{10},{11},{14},{15},{7},{6},{15},{19},{17},{2},{9},{23},{3},{4},{11},{25},{10},{24},{5},{11},{17},{16},{23},{16},{18},{17},{7},{13},{12},{19},{12},{14},{13},{11},{10},{17},{10},{12},{11},{5},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{12},{18},{17},{24},{17},{19},{18},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{17},{23},{22},{29},{22},{24},{23},{14},{20},{19},{26},{19},{21},{20},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{18},{24},{23},{30},{23},{25},{24},{14},{20},{19},{26},{19},{21},{20},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{10},{14},{20},{19},{26},{19},{21},{20},{16},{15},{22},{15},{17},{16},{19},{25},{24},{31},{24},{26},{25},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{20},{26},{25},{32},{25},{27},{26},{12},{18},{17},{24},{17},{19},{18},{16},{22},{21},{28},{21},{23},{22},{12},{17},{23},{22},{29},{22},{24},{23},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{13},{16},{22},{21},{28},{21},{23},{22},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{12},{18},{17},{24},{17},{19},{18},{20},{26},{25},{32},{25},{27},{26},{13},{21},{27},{26},{33},{26},{28},{27},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{20},{26},{25},{32},{25},{27},{26},{14},{20},{19},{26},{19},{21},{20},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{12},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{21},{27},{26},{33},{26},{28},{27},{18},{24},{23},{30},{23},{25},{24},{15},{21},{20},{27},{20},{22},{21},{17},{23},{22},{29},{22},{24},{23},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{12},{18},{17},{24},{17},{19},{18},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{13},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{10},{16},{15},{22},{15},{17},{16},{9},{15},{14},{21},{14},{16},{15},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{5},{6},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{10},{16},{15},{22},{15},{17},{16},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{14},{20},{19},{26},{19},{21},{20},{13},{19},{18},{25},{18},{20},{19},{12},{18},{17},{24},{17},{19},{18},{10},{16},{15},{22},{15},{17},{16},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{6},{12},{11},{18},{11},{13},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{12},{18},{24},{23},{30},{23},{25},{24},{18},{22},{28},{27},{34},{27},{29},{28},{17},{24},{17},{18},{24},{23},{30},{23},{25},{24},{19},{18},{5},{11},{10},{17},{10},{12},{11},{8},{14},{13},{20},{13},{15},{14},{5},{7},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{6},{11},{17},{16},{23},{16},{18},{17},{9},{14},{20},{19},{26},{19},{21},{20},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{15},{13},{19},{18},{25},{18},{20},{19},{14},{20},{19},{26},{19},{21},{20},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{19},{18},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{7},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{31},{6},{9},{15},{14},{21},{14},{16},{15},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{13},{19},{18},{25},{18},{20},{19},{20},{19},{26},{23},{20},{11},{5},{11},{10},{17},{10},{12},{11},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{4},{11},{25},{6},{13},{27},{5},{12},{26},{4},{11},{25},{3},{10},{24},{3},{10},{24},{8},{15},{29},{6},{13},{27},{3},{10},{24},{3},{10},{24},{6},{13},{27},{4},{11},{25},{4},{11},{25},{3},{10},{24},{8},{15},{29},{5},{12},{26},{3},{10},{24},{5},{12},{26},{12},{24},{32},{30},{35},{16},{20},{15},{18},{19},{28},{17},{14},{17},{14},{13},{23},{22},{31},{33},{14},{24},{23},{32},{34},{20},{21},{7},{12},{8},{15},{23},{17},{8},{12},{8},{7},{9},{8},{8},{11},{21},{11},{12},{8},{26},{7},{8},{13},{10},{15},{8},{7},{11},{14},{12},{11},{10},{28},{29},{14},{12},{10},{17},{13},{8},{12},{12},{19},{7},{14},{8},{11},{5},{22},{13},{7},{17},{16},{17},{21},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{7},{6},{5},{6},{9},{6},{7},{7},{8},{12},{20},{21},{16},{19},{20},{17},{8},{6},{3},{4},{6},{5},{6},{18},{7},{9},{9},{1},{6},{3},{9},{8},{7},{11},{18},{5},{5},{11},{12},{7},{4},{1},{6},{13},{8},{11},{12},{4},{13},{5},{6},{8},{9},{6},{12},{12},{12},{9},{10},{10},{11},{4},{5},{17},{9},{9},{9},{11},{14},{13},{9},{16},{15},{14},{5},{6},{6},{4},{4},{10},{6},{1},{2},{3},{12},{2},{5},{4},{12},{10},{11},{24},{7},{8},{5},{3},{4},{6},{8},{6},{5},{8},{3},{5},{6},{7},{9},{4},{9},{7},{12},{6},{3},{10},{1},{4},{10},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{13},{5},{9},{16},{10},{11},{3},{12},{10},{12},{9},{12},{4},{7},{8},{8},{10},{9},{8},{9},{10},{10},{15},{4},{4},{11},{12},{7},{11},{13},{7},{6},{9},{14},{13},{6},{9},{14},{10},{12},{9},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{12},{13},{12},{11},{8},{12},{6},{5},{10},{10},{6},{11},{10},{6},{7},{6},{3},{5},{6},{6},{12},{24},{6},{8},{9},{4},{5},{5},{7},{7},{3},{7},{8},{9},{10},{10},{9},{3},{1},{6},{12},{4},{6},{17},{16},{15},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{10},{5},{12},{12},{9},{6},{3},{5},{13},{9},{9},{10},{11},{11},{11},{8},{4},{5},{7},{6},{11},{7},{5},{12},{5},{6},{7},{7},{6},{4},{8},{9}}; - const struct { const unsigned int length: 10; } bytes_length_index[] = {{42},{53},{279},{11},{11},{35},{56},{57},{23},{37},{30},{212},{223},{223},{213},{224},{224},{233},{224},{213},{362},{282},{214},{242},{214},{214},{272},{225},{372},{214},{334},{243},{414},{243},{214},{318},{215},{226},{219},{335},{222},{222},{270},{282},{255},{271},{271},{255},{314},{272},{395},{256},{255},{255},{256},{326},{256},{256},{377},{283},{260},{309},{462},{310},{368},{417},{496},{310},{311},{436},{369},{344},{402},{315},{315},{436},{385},{365},{369},{379},{380},{380},{380},{386},{56},{66},{94},{94},{372},{127},{131},{131},{147},{104},{102},{52},{352},{353},{298},{299},{303},{303},{240},{352},{357},{357},{361},{362},{362},{363},{364},{364},{364},{364},{364},{353},{358},{202},{195},{196},{197},{198},{202},{203},{203},{204},{239},{239},{239},{240},{260},{261},{532},{105},{23},{7},{13},{11},{13},{13},{13},{15},{18},{79},{260},{104},{7},{10},{10},{307},{272},{273},{273},{273},{274},{274},{276},{306},{281},{285},{286},{288},{329},{401},{287},{288},{289},{287},{469},{306},{435},{421},{288},{381},{300},{288},{393},{274},{306},{343},{391},{317},{322},{324},{381},{458},{328},{327},{332},{340},{321},{322},{321},{321},{322},{345},{457},{321},{328},{364},{365},{365},{365},{370},{372},{429},{430},{525},{541},{466},{449},{391},{455},{488},{567},{413},{425},{420},{421},{425},{426},{427},{69},{363},{260},{261},{261},{261},{262},{269},{269},{269},{268},{321},{325},{312},{353},{354},{360},{400},{401},{360},{401},{405},{408},{408},{408},{408},{408},{408},{409},{413},{413},{414},{415},{415},{663},{309},{309},{309},{309},{28},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{146},{241},{500},{167},{36},{86},{113}}; + const struct { const unsigned int length: 11; } str_length_index[] = {{0},{1},{1467},{1},{4},{6},{2},{11},{27},{33},{63},{29},{2},{10},{12},{35},{1},{4},{13},{15},{1},{2},{2},{6},{1},{1},{2},{1},{1},{35},{84},{31},{28},{28},{26},{28},{57},{28},{68},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{22},{7},{46},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{46},{28},{4},{32},{113},{37},{179},{50},{54},{57},{29},{22},{22},{18},{23},{25},{29},{21},{24},{26},{8},{11},{14},{88},{21},{61},{41},{35},{25},{33},{52},{13},{30},{35},{30},{31},{30},{51},{23},{32},{35},{1},{14},{1},{8},{16},{76},{105},{57},{7},{6},{2},{32},{33},{30},{64},{48},{35},{9},{36},{39},{34},{17},{11},{17},{12},{12},{9},{15},{14},{19},{17},{15},{17},{21},{17},{2},{8},{15},{29},{4},{11},{25},{9},{23},{2},{3},{10},{24},{5},{12},{26},{3},{10},{24},{3},{4},{11},{25},{10},{24},{9},{23},{3},{4},{11},{25},{2},{9},{23},{3},{10},{24},{5},{8},{15},{29},{12},{26},{3},{4},{11},{25},{10},{24},{4},{11},{25},{3},{10},{24},{6},{13},{27},{8},{15},{29},{17},{6},{13},{27},{3},{10},{24},{4},{11},{25},{3},{10},{24},{8},{8},{9},{12},{3},{10},{24},{9},{16},{30},{14},{21},{35},{10},{17},{31},{14},{21},{35},{11},{18},{32},{16},{23},{37},{17},{24},{38},{16},{23},{37},{15},{22},{36},{11},{18},{32},{12},{19},{33},{18},{25},{39},{19},{26},{40},{16},{23},{37},{17},{24},{38},{7},{11},{18},{32},{14},{28},{16},{23},{37},{12},{19},{33},{18},{25},{39},{14},{21},{35},{19},{26},{40},{17},{24},{38},{9},{16},{30},{13},{20},{34},{9},{14},{21},{35},{16},{30},{11},{18},{32},{10},{13},{20},{34},{17},{31},{15},{22},{36},{18},{25},{39},{9},{16},{30},{17},{24},{38},{10},{18},{25},{39},{17},{31},{15},{22},{36},{17},{24},{38},{11},{18},{32},{11},{18},{32},{14},{21},{35},{10},{17},{31},{18},{25},{39},{14},{21},{35},{9},{16},{30},{11},{18},{32},{14},{21},{35},{19},{26},{40},{18},{25},{39},{15},{22},{36},{12},{19},{33},{14},{21},{35},{17},{24},{38},{16},{23},{37},{9},{16},{30},{12},{19},{33},{12},{19},{33},{10},{17},{31},{15},{22},{36},{18},{25},{39},{19},{26},{40},{4},{11},{25},{2},{9},{23},{4},{6},{13},{27},{11},{25},{4},{11},{25},{3},{10},{24},{3},{4},{11},{25},{10},{24},{7},{14},{28},{6},{13},{27},{3},{4},{11},{25},{10},{24},{4},{11},{25},{3},{10},{24},{6},{13},{27},{3},{10},{24},{17},{7},{4},{11},{25},{8},{3},{10},{24},{8},{15},{29},{4},{11},{25},{3},{10},{24},{2},{9},{23},{9},{3},{3},{10},{24},{3},{10},{24},{3},{10},{24},{2},{3},{10},{24},{9},{23},{3},{10},{24},{5},{6},{13},{27},{5},{12},{26},{4},{11},{25},{7},{14},{28},{5},{12},{26},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{2},{9},{23},{3},{10},{24},{11},{18},{32},{10},{17},{31},{9},{16},{30},{7},{14},{28},{12},{19},{33},{12},{19},{33},{7},{9},{3},{10},{24},{8},{15},{29},{3},{10},{24},{19},{4},{11},{25},{2},{9},{23},{3},{10},{24},{3},{6},{13},{27},{10},{24},{8},{15},{29},{3},{10},{24},{9},{15},{22},{36},{19},{26},{40},{15},{22},{36},{16},{30},{2},{9},{23},{5},{12},{26},{4},{2},{4},{7},{14},{28},{7},{14},{28},{11},{25},{4},{11},{25},{8},{15},{29},{5},{12},{26},{4},{11},{25},{3},{8},{15},{29},{10},{24},{9},{23},{7},{19},{16},{4},{11},{25},{6},{13},{27},{8},{15},{29},{3},{10},{24},{8},{15},{29},{8},{15},{29},{3},{8},{15},{29},{6},{11},{18},{32},{13},{27},{8},{15},{29},{8},{15},{29},{10},{24},{3},{10},{24},{4},{11},{25},{4},{11},{25},{4},{3},{10},{24},{4},{3},{10},{24},{11},{8},{8},{15},{29},{10},{17},{31},{11},{18},{32},{7},{14},{28},{7},{14},{28},{3},{10},{24},{3},{10},{24},{3},{10},{24},{3},{10},{24},{3},{10},{24},{6},{13},{27},{3},{10},{24},{3},{4},{11},{25},{4},{7},{14},{28},{11},{25},{10},{24},{14},{21},{35},{3},{10},{24},{3},{4},{11},{25},{10},{24},{4},{11},{25},{9},{8},{3},{6},{13},{27},{10},{24},{2},{3},{4},{11},{25},{10},{24},{9},{23},{3},{10},{24},{3},{10},{24},{4},{11},{25},{6},{13},{27},{3},{10},{24},{6},{13},{27},{5},{6},{13},{27},{8},{15},{29},{12},{26},{3},{10},{24},{3},{10},{24},{10},{17},{31},{9},{16},{30},{7},{14},{28},{11},{18},{32},{10},{17},{31},{7},{14},{28},{6},{10},{11},{14},{15},{7},{6},{15},{19},{17},{2},{9},{23},{3},{4},{11},{25},{10},{24},{5},{11},{17},{16},{23},{16},{18},{17},{7},{13},{12},{19},{12},{14},{13},{11},{10},{17},{10},{12},{11},{5},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{7},{13},{12},{19},{12},{14},{13},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{12},{18},{17},{24},{17},{19},{18},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{17},{23},{22},{29},{22},{24},{23},{14},{20},{19},{26},{19},{21},{20},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{18},{24},{23},{30},{23},{25},{24},{14},{20},{19},{26},{19},{21},{20},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{10},{14},{20},{19},{26},{19},{21},{20},{16},{15},{22},{15},{17},{16},{19},{25},{24},{31},{24},{26},{25},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{20},{26},{25},{32},{25},{27},{26},{12},{18},{17},{24},{17},{19},{18},{16},{22},{21},{28},{21},{23},{22},{12},{17},{23},{22},{29},{22},{24},{23},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{13},{16},{22},{21},{28},{21},{23},{22},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{12},{18},{17},{24},{17},{19},{18},{20},{26},{25},{32},{25},{27},{26},{13},{21},{27},{26},{33},{26},{28},{27},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{20},{26},{25},{32},{25},{27},{26},{14},{20},{19},{26},{19},{21},{20},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{12},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{21},{27},{26},{33},{26},{28},{27},{18},{24},{23},{30},{23},{25},{24},{15},{21},{20},{27},{20},{22},{21},{17},{23},{22},{29},{22},{24},{23},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{12},{18},{17},{24},{17},{19},{18},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{13},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{7},{13},{12},{19},{12},{14},{13},{5},{11},{10},{17},{10},{12},{11},{7},{9},{15},{14},{21},{14},{16},{15},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{10},{16},{15},{22},{15},{17},{16},{9},{15},{14},{21},{14},{16},{15},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{5},{6},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{10},{16},{15},{22},{15},{17},{16},{8},{14},{13},{20},{13},{15},{14},{13},{17},{16},{16},{14},{24},{14},{27},{25},{17},{18},{17},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{14},{20},{19},{26},{19},{21},{20},{13},{19},{18},{25},{18},{20},{19},{12},{18},{17},{24},{17},{19},{18},{10},{16},{15},{22},{15},{17},{16},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{6},{9},{15},{14},{21},{14},{16},{15},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{12},{18},{24},{23},{30},{23},{25},{24},{18},{22},{28},{27},{34},{27},{29},{28},{17},{24},{17},{18},{24},{23},{30},{23},{25},{24},{19},{18},{5},{11},{10},{17},{10},{12},{11},{8},{14},{13},{20},{13},{15},{14},{5},{7},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{6},{11},{17},{16},{23},{16},{18},{17},{9},{14},{20},{19},{26},{19},{21},{20},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{15},{11},{17},{16},{23},{16},{18},{17},{13},{19},{18},{25},{18},{20},{19},{14},{20},{19},{26},{19},{21},{20},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{19},{18},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{7},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{17},{23},{22},{29},{22},{24},{23},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{31},{6},{9},{15},{14},{21},{14},{16},{15},{12},{11},{18},{11},{13},{12},{5},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{8},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{13},{19},{18},{25},{18},{20},{19},{12},{18},{17},{24},{17},{19},{18},{10},{16},{15},{22},{15},{17},{16},{14},{20},{19},{26},{19},{21},{20},{13},{19},{18},{25},{18},{20},{19},{10},{16},{15},{22},{15},{17},{16},{20},{19},{26},{23},{20},{11},{5},{11},{10},{17},{10},{12},{11},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{12},{18},{17},{24},{17},{19},{18},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{8},{14},{13},{20},{13},{15},{14},{4},{11},{25},{6},{13},{27},{5},{12},{26},{4},{11},{25},{3},{10},{24},{3},{10},{24},{8},{15},{29},{6},{13},{27},{20},{20},{3},{10},{24},{3},{10},{24},{5},{12},{26},{6},{13},{27},{4},{11},{25},{4},{11},{25},{3},{10},{24},{9},{16},{30},{8},{15},{29},{5},{12},{26},{3},{10},{24},{6},{13},{27},{5},{12},{26},{12},{24},{32},{30},{35},{16},{20},{15},{18},{19},{28},{17},{14},{17},{14},{13},{23},{22},{31},{33},{14},{24},{23},{32},{34},{20},{21},{7},{12},{8},{15},{23},{17},{8},{12},{8},{7},{9},{8},{8},{11},{21},{11},{12},{8},{26},{7},{8},{13},{10},{15},{8},{7},{11},{14},{12},{11},{10},{28},{29},{14},{12},{10},{17},{13},{8},{12},{12},{19},{7},{14},{8},{11},{5},{22},{13},{7},{17},{16},{17},{21},{15},{16},{17},{25},{28},{26},{21},{20},{23},{14},{35},{23},{21},{23},{12},{7},{6},{5},{6},{9},{6},{7},{7},{8},{12},{20},{21},{16},{19},{20},{17},{8},{13},{6},{3},{4},{6},{5},{6},{18},{7},{9},{13},{9},{1},{8},{6},{3},{9},{5},{8},{7},{11},{13},{18},{5},{5},{9},{11},{12},{7},{4},{11},{1},{6},{13},{8},{5},{11},{12},{4},{13},{9},{5},{6},{6},{8},{9},{6},{12},{12},{10},{12},{12},{12},{9},{10},{10},{11},{4},{5},{17},{9},{9},{9},{11},{14},{13},{9},{16},{15},{14},{5},{6},{6},{4},{4},{10},{6},{1},{2},{3},{12},{2},{5},{4},{12},{10},{11},{24},{7},{8},{5},{1},{8},{3},{4},{11},{6},{8},{6},{9},{5},{8},{3},{5},{9},{9},{9},{9},{6},{7},{9},{4},{9},{14},{7},{12},{6},{3},{10},{1},{4},{10},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{6},{15},{4},{12},{13},{5},{9},{16},{10},{11},{3},{12},{10},{12},{9},{12},{4},{7},{8},{8},{9},{10},{9},{8},{9},{11},{10},{10},{15},{4},{4},{11},{6},{12},{6},{12},{11},{12},{10},{7},{11},{13},{7},{6},{9},{14},{13},{6},{9},{14},{10},{11},{12},{11},{16},{9},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{14},{14},{7},{8},{8},{6},{12},{10},{13},{12},{11},{12},{8},{10},{12},{6},{6},{9},{6},{5},{10},{10},{6},{11},{10},{6},{7},{6},{3},{5},{6},{6},{12},{24},{6},{8},{9},{10},{4},{5},{5},{7},{7},{3},{7},{8},{9},{10},{10},{10},{10},{9},{9},{3},{1},{6},{12},{4},{13},{11},{6},{17},{16},{15},{14},{10},{11},{5},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{10},{10},{10},{10},{10},{5},{12},{12},{10},{9},{12},{6},{3},{5},{13},{12},{9},{9},{10},{11},{11},{11},{8},{4},{5},{7},{6},{11},{7},{5},{12},{5},{6},{7},{7},{6},{13},{4},{8},{9}}; + const struct { const unsigned int length: 10; } bytes_length_index[] = {{42},{53},{279},{11},{11},{60},{35},{56},{57},{23},{37},{30},{212},{223},{223},{213},{224},{224},{250},{233},{241},{421},{224},{213},{233},{362},{259},{242},{282},{214},{225},{242},{214},{214},{272},{225},{372},{465},{214},{334},{243},{225},{414},{243},{214},{252},{318},{215},{215},{226},{219},{335},{222},{222},{270},{282},{255},{271},{271},{271},{256},{255},{314},{272},{314},{416},{395},{256},{255},{255},{256},{326},{256},{256},{377},{283},{470},{260},{309},{462},{310},{368},{417},{322},{496},{310},{322},{401},{311},{436},{311},{369},{450},{344},{402},{315},{315},{436},{409},{385},{364},{365},{365},{369},{379},{397},{380},{380},{380},{459},{386},{56},{66},{94},{94},{372},{127},{131},{131},{147},{104},{102},{52},{352},{353},{298},{299},{303},{303},{240},{352},{357},{357},{361},{362},{362},{363},{364},{364},{364},{364},{364},{353},{358},{202},{195},{196},{197},{198},{202},{203},{203},{204},{239},{239},{239},{240},{260},{261},{532},{119},{23},{7},{13},{11},{13},{13},{13},{15},{18},{79},{260},{104},{7},{10},{10},{307},{272},{273},{273},{273},{274},{274},{276},{306},{281},{285},{285},{286},{288},{329},{401},{287},{288},{289},{289},{297},{288},{287},{469},{306},{314},{322},{435},{522},{479},{306},{421},{319},{288},{306},{381},{300},{288},{393},{274},{306},{343},{391},{317},{321},{322},{324},{381},{381},{458},{328},{327},{332},{340},{332},{321},{322},{561},{321},{321},{322},{345},{457},{321},{491},{328},{504},{364},{365},{365},{365},{366},{370},{372},{429},{430},{525},{541},{466},{449},{454},{391},{377},{376},{455},{488},{567},{461},{434},{413},{412},{413},{425},{505},{420},{421},{425},{426},{427},{69},{363},{260},{261},{261},{261},{262},{269},{269},{269},{268},{321},{325},{312},{353},{354},{360},{400},{401},{360},{401},{405},{408},{408},{408},{408},{408},{408},{409},{413},{413},{414},{415},{415},{663},{309},{309},{309},{309},{28},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{146},{241},{500},{167},{36},{86},{113}}; #ifndef CYTHON_COMPRESS_STRINGS #define CYTHON_COMPRESS_STRINGS 90 #endif - #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (21186 bytes) */ -static const char cstring[] = "BZh91AY&SY\032(\305x\000!p\177\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`h\336\361%\304\313\000\000\000\003\206\026\000\004`@\017\274N\354\000\344\000\006x\024{\274\236\273\005\024\353\274\363uEs\230\365\367n\253kb\332\371`\007C\327\274\367W\243\357\2756sH\354_\013\007\333\276=z\307\305\365\337dF_w\273\341\366=\356p\371\330777>]\367\276\033[S\342\365\301]\365\367\336\360\000\000\000}\247\303\315\327\333\351\357[\321\266\231UG\307\272\300\001@\000;\335\301\315\351\351\326\235\033w[y\357N\031\317\200\005\252;ow}\275\333\315\353\255g\275\217=I\333\213\275\316\366%oN\027\255S\315\356\356\365\2731\234hf\347]\315\335\235\253OR\346\300-\357p:\240\325\001T\250\024\212\240\252\005!{\006\252Q\252\320\003\274\276\233}\235/\2734\345\266\003_L\230\024j\257\004\222 @\000\000\010\302b4\004\300&\302&\223Jl\325=G\250\375SM16\240\336\244i\240\036\243&\200\311\210\365\003M\004\320\020\"\023E22\231O\320!\251\264\310\332\033\365U6\246\236)\247\2244\017D\003@\323 \311\240`LF\214@\032\247\2755IOH\004i\032b\246\236&\223\324\365\003\036\243\325\032a\017H\332\200\014\020\311\246\214\020\310h`\021\211\202\003&\202M$\202 Dhh\3212f\215M\240\233H\322\236\322\236\246\312=OP\r\001\240\320\032\000h\000\001\240\320\000\004I!!2\230S\314\020L\310i\210\003\022)\370j\250\377\022\007\246\014\231\002\223\320\324z\211\266\rSzJ{j\047\252~\231S\365OO\320\232\240\211$\002dM\002&\232b0\232\230\321\r\023heOe\033h&\020iO\332L\324\364\224\332\200\375S\321\224\364j\036\223@4d4\374\205\020T\337\351:puc\316\256\227R\272U\325\2540\305\205\251\330\246\327\322\206(\030\233\010\225\244Z\312\303|9v\343\217\267\223\20498|\236\277\226\036\345<\250\313\333\264\306m\255\265\n\317\004\232`\2462\025\254**\305\251R\262\266\330R\322(\261H\032\246\305\003\377\237g9x .lAY\020\031\000Z\213Q\025*\000\250\037\276 \245ET\204@\000$P(\252@J+HA\214\220\021\200E\000\210\311 5l!\002\304\220\021$\201JP\200\260 \202\0002\264\210B\250D\252\241U-\025D.~\257\247\326I\365\177o\257\377\237\327""\353\372\225*\277\275\373\222\005\277\204\n\377\027\361\221\261\243\201Am\222\364D\260\325\033k#\275\306\246\211\0248Jf\301\031\232\006)b\003\201K\212\013\"\255\257aD\021\027PE*\005\231\226\3211!\350\025\026\025\210\"IjQ\342\212\233(z\tF\241P(L\2535\030\344\335\222b\336]~?\263\373\376\021+\376\302\201\366\n\017\336\201r\201\370\013\207\342&\030_\370\026\001&1p\343_@UQPo\024\022\2575\222HL\272y7\214\016K2\022\024Hl\021\025\337l\264\n\350\345\231\210\033a\254\002B\361\276\332\346pCy\306M\222\0200\305@\016C\375\377\003\355\231e\316\370\207\300\315\361\227\300\244\374\330[:\257\316\272~\321\317\300)T\036\3116\047\003\374\240\006\330\373uV\375L\224\003\371\343\336$N\365\177\363\214\024N\243\006\273\017\364\r\302iB0\223\214r\255\376\221\302[Ce\001\321\0054D\327A\302\377\250T&\266\313\244T\203=\377V\325D\320\320\331\321\243\004\047[\356\253\226?\353\260\002q\270\340g\002\014\242\013`t\274\350*\330`\213\214\334n\270\003\365\204\034f\343\365\3529\000\246Fnx\3410\022\2635e\000\201\270\301\377f\346\350\027|\006@\302\352x\207\260\220\240\024\027\302\220{\004\273\270\266U\376J\273\260\021\320M\263qX\002~@\227\2130n\020]\027DF|!\205\363\370l\033\254\020\010\320q\177\246\235\311\331N,\214\261\3315\206\247\200$s\317S\022hq\270z\2147\201Awk\024\362]\247\271\266$t\255\361\366\\\006\020\355\265.\035\t\001p*\225\274\370\311\020P\332k\320NM,1\341*Y\324\013\352\376\020_8g\004?lPK\007V\231\036\004\022B\236\242\345\207\206\035\037yiX\306\024|\037\\\217\253\367\376\340D\037\236\207\264\366\201\355\366\362\034\232q\343\352\246U\341\206\265\312\374q\034]\0275q\273?>.\034\\F\254\274\3669\261\231\363\365\337\350\237\345\335\005\373\366\272/Hj\247\345V\261\323\206\023\312\034\233\241\263\223/\226\\\271\246\335\313%\207c\337\251\256\3575\256\363\035\375\251#\311\000y\200\036\304\220d\022XP\006\001\001x\005lH:\322\003h%\346\201\024\300E!\001E <\320\203\311\0109\242:\240\272J\274\261NZ.\210\257\031\007\214\000k\242\361Ay\312=\025M4_l\007\270\013\260\003\321P\320E\330\021\330\001\327\0204\200\016\210\246\242\246\272\206\262\246\302\017iW\252#\334\001\326\005\367\0255\224}\304\016\340\217U\023\252\211\356\202{\252\036\350\007\220\221\344\222^BGx\007\222A\346\200\360\357\357\357\344\346l]\2342\211cO;}\320\033\267\232\370\016S\256\364\362\005;@\004\220\266\177\010\035\ndg\317\310\007)\347\354z\372A%8\336}\006\350E\276\177\215\320AP+\341Hg\356\035\300\277\204T\327\022\340u\177`\027\034T+ \360\265\3403\024a\247\333""\047\301\205\360wx+9e\021Do\003\212\354\270\324\322\216\243\177\003\215^\343[\332h\353\340s\006\334\361J\n|\0036k\347zz\370^\247W\351w\275x#\341\024G\242\21355@\336\005\224\371\346\260\030\207\360\242\301\272\035\247\264,\217\002m\035Rm\034\\\331\007;V\334\266o\342\216\354<\003\231K\030\333X\305\223\306y\231\300\305\035\2251\026\220k~\337\020\007\216\312Mf\276\003\237\035%f\275\376u<[\275\2276\274S\300:\353\\b\236\014y\332\222)\340\364,\373\332\276\007!\026\372\254\310\370\252gs\210\340\234\277\224\237\001z\rJ\211xJ\317\324Nl\365\336\333\306\026\336\023\266\326\354\274O\024\244\217\003\253\007Z\356\261s\347\340w\340\351{\020\316\236\007!\032)\266\321/#\300\036q\321\255\336CM\242i\341v\337\345\335G\322\235\373Y\331?0n4\354\303\344\021\020\017\240\274T\322d\331\"\204\207\3059\246\251\221F[\366\001\355^\207\247\206\310\362v\352\315\315ct&\335\224\370]\316\334\334}\371\355\305Scq\342\227\301F\177-l\333\322\360\342\331\2336\274\331\253n\331\343_\327Z\277Tsm\r\317h\250\3556I\010L\331\273n\326$#\217i\016\340\201\373\231\246\022\235\270cs\210e\303\270\227$$3fn\334C?k4\271\263\346\310K\327,\331\026\312P\312\227\0010\326\033v\022\342t\233\246\303\265\366v\354%\305\024\355\3336=\37378\3333d2\237\024""\246\233;v\351\332\345\3537A\257sl\335\026\321\320\305\0358$\251\273d\255{[_^\2720\310\375\247n\346\352\211\322v\354\231\350\200\366\036\304|\242\367/q\356\305\343W\243\247\257\007w\047\272\307\253CI\331\273\256|\337\r\231]\005\336\217V\363\267M\232\224h\221\004\265\260[\021\264)\255\210\332\026@\252\225\261N+\"\262\361G\211\264.\232\303b\330\213a\264/\253\213j\330\266,\273O\000\326\262\033|M\006\263Z\333\265z\315\253\224\330\270\375k\301m\326m\313G,\247\010\021\312\312g\344*=\0200\020\374)\373\047\217\022\204\330\217\357\207QN\3129m\020\251W\037\212F#\365\240-\242\007\306\315rY\035\322\256\224JC\010\007\3125A\237\322\365\250\227P\017\351\334>A\275\215\t\370\363i4\253|\202\201\271\357\350\331\251\313(9\363a\352`pJ\211=o\r\373\005\002\331P|\266\030\252X\327\364V\032\365\335\376\034I$\010\335V\007\361\210F\007\242\242\332\344\303\300\311Q\\\377#\010\2018\365\207\035\306\007+L@\242\303\255N8_\354Za\226\273\374\333\215\276\367\350\315/\267~R\277\241\235\271\342\256\251\210-\371\331\210}\373\214Y\312\027\016\302\322\027\341)\377\321\270\343\320<\376\277\n\2044\314.\273\014\201CD\277\273r\225@\234\3011\257\326rb\225\310\251T\212.\t\047>\334$\3268UMGL\270V\217\346?@\201\334\277u\035k\334sMa-\021\247\023\367\325A`>\216*\\Yn\320Y{\275\376Uy\014\2165`\2669\231\206\225\037\013c\315\376u\367\031\"\305w\300\225\024x}3)\227X\333f\037\251Zf\177/\366\300DA\366~\310\376\222\217\317\373a\006\021\005\372\372\207p\377\"\022H\047k\267\327\354\005\352\t\224o2\0052 \212\340\006 f!\230\007\363\036\323\273v\030\302\r\025I\215Sz7]\206\373[\207\032r\354i\332\214\330(\224\241\261\266\214\326\374Ha\301""\266\3275M\320\3304l\227j\361\271Q\342\353\022\033\004\336\033\016\264\332\277\003@\3375\334\000\245\352\213\226 h\031\350\047\242{\274\004\022\021C`M\377\304D5\367\231 r\301\rMA3\367 f\346\031$GLd*\"\025\024KR\322\n!D\355\233\315\265\307\311\344\373\327l\036\352\265E \237\330\366:\032\351\351C\244\036\216\206\201\007\373\276!W\230\327QN\306\345\376\326nS?\047%\317D\317W\373\364>n\326v\371\320\001HG<\212\303\237\317\356b\342\000%^\272G\276\272@\2062+\205uX\255a\177\225\301\005#y\267\253\016+ N\034$>\275w\343\266\346hX\341\201\325\353\327J\262\025tiv-\017\263e#\n\013E\224a\001y/mB\233\207Z\252\346\203\226\321\343\3715+\301\355\207\341\366\374\260\375\343\352\227#\217c\234P\207\204~O\222)R\340\367\344Y\014\200\261\001\275\221s\211!\177\262\314dA\220\310\220p\206P\312\204c4\202\301\2041RA8(v\272|\305\220\214Ja)\016fJ[5\325AxH\250\344\251\375\204\312\335\312\260pn,}\234\340w\331`\345\257\003\017\364\254\035\370\026S\361\363o\371\374\274\267\275\227\213\245\350L\227\204\220\257*\227D\213\327\001\030\357\020\233r`\022B\274\031\000>\340`2\257\324%\356\017\245\014\003^\032\270\357\327\3655\242\002\377\320\217q\205\335\313y\261\227\357\242\335\364\216>4\047\227\213\211!\\\270\255\236\363@rt\267\264t\367\373\035\273w\270\334J\304q,n\347b\302\235\302\301RHU\025\010d\236\034y\202\001B\370\220 M\014\006\001\236Pw\276\047\"\0026\276_\013\205\360/\237\241\345\363\336a\303\325\210\302b\314p\027\274/\227j\207\332\252\252\202\250\335\255:\250\357\323\222\271\\\250\2432\237\267\366\374\202\047\355\376\270Of\037k\354\240\231\272\252\252\252\252\373_\003\354z\310*\317\252>\231R\201\010\305\275\242?\020\212\nnI\356\321\257b\001e`H\306\357\013@)[\010\017u\003\240\346S\243\357\363\350\002v\020{\300\036\262\352\236\203[k`\206\312\245\003\332\035\331d\265\000\261\020\034\260_j\005TqAZ\272\203Z\211B\2274,\035\036\251A!\310T%\222V\255%\234\213XG\0353x\247\374{\222I$\222I$\222m\347t\263w\246\373~\010;\3234\345\206pq\353\221\331\314\000\341\034#4C\202\376\336\020\255E8RI$\222I$\222A+\334\022""\204\370\010$\003\237\313\350\000^\205Q\3469\223\263\317\317\342\032\314\001\234\274h\245\241\260P\021AP.\241]E\"\220NL\300a\270\005\305+<\317\360v\325\275o]U\324\325\347\333\325\347\241\364D\340\037I\321\261\260\033(\005\025<\021<\2370\304\3025\314\234$oO*\2027\222\252\n\211D\n \202\360Sy\375\377\230O\357\203\310A\213\352\323\301N\016\235\036_/\016\002\243x\242\360\351NA\036CP7\204b\354\273\"s\0171\314\251\377\3247\206\364\337\2747\357G\253\300\340\374@\2354\361$\226N \3618\212q\nH\026\177\013\356\345c\261\271\306+\n\262\250STDR\030eE\004K\354\360\034\205\\\272s\314\315s!\003\325\r\024\347\023\234y\355\303Wp\032\032.\217\306\240/\342\037%\223\t\204@\353\350\034\017\241\243\256vD\031\300\031Q\215%\320g\364\266l\215\034\247\274\232\302gJ.\326\003\037\247\362\377\310t9MkA\007\236\206J\035\264\236H\376\377\352\376\020)\354@\203\367\2016\314\263\1772rL\207\255l\256\236W\345\274\001\370\200=\251\010\322\047\265`\t\030R{MH\321G\333\207Xz\342K| \231\351\276\360~\324\370\260\243\351\025\3131\"\036\355\311\206\024{\342D\265\324O\323\210\226K\255FW\322]\235\026\211li\375\331\t7t\343\361\376|S<\351j\372r\344\252\222\252\256\227KI5\340b&\257\357\270\367\204\377\310&\002r\ta(?\336\236)\376\222\035\335\273\020\356\2422S\373\014\235\375\275\250\252\252\252\252\272\301M\201#}\306\341>2\375x\212\365\004\310\033\204\324L\304\260\314\234\2471\010\020\201\010\020\201\010\020\201\010\020\201\336\326\307\003\356\243q\0233\201d\276\372/S\200I$\222I$\222or\201\":.\361<\2417\251\273\227D\327\246\226\256\240\351\0012\314NB-s\327P\205\262e\262[d\266\311m\222\333%\266Kl\226\372 o\023<\323Mh\316\361 \231\211\260czc\215\027\340c\000\016q8\273\356\252\252\360\354\342\264\207\201\017h\361\341\006\007;\303\216\352b\226\344\243E:\202j% \2343\322,\205\255\347\360U\001,a\024\240\021\030TR\241QJQaQJU\022\025\220\251Y\nH\003\030\tY\n\020\022\262\026\002e\206O`\333\346\177\227Y\004\034\005\351\035.\201COI\003\244\242\334\016\270?_\317\375U\3434>\352\207\256\037\177\206\361Q\324\023}o-\031\003\002\000I""\337\316\306\370\222Bk\017\374\352\215\243\340\335\2514\314)\272r\323}2\3357l\233pCFL`\261\2000\035\213\njH\005\277nkW\216M\267\3378\331\214\211\277\007\"\004\206\333\353{t\234\005UQ\272\363\022\214PB\330\343l\345\262\024\301\014B\362\353\321\013\3440\306\262>\274bWQ\000\330T\330 FJ\024\330)I\031\"6\007\342\224\nS\325>\177\244\203\003\320~\301\017\253\360*\252\252\254\222v\256NwN\2150\307\023\227d\277\036\215n\340\226\350\211\205\351\207R\216\210\236\260D\261\014r\023\004Mt\316\221\014\220:\032\214\227\303\047\277\302\217\346n\377\222\010\270t\360f\0003\034\000r\034{\034:C\370\265#RDAa\034\010\003H-# d\221\245uF\222\020\224\352\323\220a\245\304\022j\ta3y)\313\302\215\004<\326\032\342\230\3032\230\303=\024\306\031\224\306\031\224\306\031\366\323\030f\324\306\031\3734\306\031\371i\2143\351\2460\315\251\2143\317La\237-1\206qLa\236\232gu\206\265d\272\242\302\352\230\303>\3651\206mLa\231La\235\324\306\031\2751\206mLa\237\232\231\265\206\273\254\227TX^)\226\303;\254\227TX^)\2143zc\014\353La\235)\325\206w\323f\031h\260\277\226\230\303;i\2143\266\230\303;\351\2143\367T\306\031\337La\235\224\306\031\224\306\031\333La\235\264\306\031\337La\235\364\306\031\224\306\031\3051\206vS\030g\323La\234S\030g\2051\206w\323\030f\364\306\031\326\230\303:S\030fS\030gZc\014\312z\304>\211\330C\252&7\246<\264^f+\000\034\347\246&B{\002P6\222I$UU}\252nB\300\316\337\021i\017\036\360!\231\242\343\230\\s\013\216aq\314.9\205\3070\270\346\027\034\302\347a\r\210z\344;\373\241\337\371\251\217,5\354R]S\222\026\3039\2460\315S\263^,\206\336Jl\252\252\270\354\342\356C\330$\235a\016\342\037\257\331\365\322\332\001\000\200@ \020\010\004\001\233N\336[m:\266\335<\023:za\335\345\2460\316\332{=x\235z\327\251\254\232\325\306f\\fe\306f\\S\336\347\262{\334=\207\275\3362\316=R\320 N:0q\234a\253Q\253Siw\355\222\034\355\200\346\200\234\356x\222\t#\022B$\240\016rT`\020\222\206\034\371%?\025\216\031\307\342h\362D\270\315/\022\334Y\313\022\340LJz\"`\245!\347\035\233\350\023,,\235\274(\274L\367\t(\034}+\244\212\252\252""\252\341\016\320>b\010\022\233\"\212(\243\t\t\335\270M\204\266Bfv\341\234M\177\226\204;\302f\010\246\260$\001 \310\004\014\244\031\003\237\277\331\323;\305\024QG&d\314\231\2232b\266\333m\266\333m\266\333m\266\333m\275\233\303\263\232$<\010nCo\002\033C~\372m\245UUUU\337\251\006\007&\342#\021\021\021\021\021\021\021\022\364\326/n\333\004H~;;\020\235UU^\307\3648\273u\316\275W\255\337\nV\206\224&\224x1\004\3048\242QiBiG\203\020LC\301\210-\0140B\320\302\315\0140B\320\302\315\0140pM\332`\257\333\363]g\2508\016\264\031\314\376\264\264h\233Y\036\266f`\236\206<\316\365_<\357\211 \304\203\nS\276\2240fr\0303p~\233\235c\215\002:\304L\021x\0042F\016\006\323\241\360\211\037\367\003\204L\322!\342\036!\342:\004t\010\224thG\016\207\020\002#\021@\000\202l\037p\201\343\245\372\201\001\000G\3176\332Iffffffffmmkz\026\265\257\265\255k[C\224L\325/\213p\0470&\"`\t\300\337\312\047\016A2\300Lu\022\t\237)1\004\270M\004\344\327F\361;\241\342\336\234H2\220\347\240\342Cr\016\0164kF\264kGv\217N\267\007f\215\275\372!\320\205\330\203!\323\241J\305\024\344j\274\033Y\244SJ)\276,(\030\247\014\240\324 \300\010\035\246\200 2\005H|\354<yO\252\237\214\023`\261\350A\243F}\334\031\337\244\232T\340@\031\300\320!\231&L\314\314\316Ize\221\025hzl\247\244\365\004\370=#\371\014\370s\336!\231\235\24432\333m\266\333m\266\333o\236{\254>?\216\237\t\rXk\340\241\2143\255>S\362t~5\320\\q\255kZ\327\3532\343Z\326\265\257\265\323\325\001\002q\361YON50h`\350\344\267\007\244m\020\356\351\256N\017\347\372\334\242e6H\200\346\274\327\232j\234\317~b=\300\036\302\033\361\003M5\0222$\010\244\240\r6\301\0100\224\352\026(\324=\2614\2013\264\004\210r\205\327\022\002u\004\260\224\r\342P\224+PA\345\t\004\274L\004\314\260\255""\314\013\340\256\305\tA\024\201 H\021H\014\300\314\014\300\316\247\010\267\330\336\350\027Ar\342:\025\276{\243\276\217BR\202\310\023\315\047\272\013\030\304[ y\245\006\n\261\260\367C,\367L~\037o\324\252\252\252\252\276JI?p\020\277A\004>\377\275O\254\365l\237\000\252\252\252\252\220\344\222$6?@C\350\260\351\322\235\t\004H\034\020\350\020\346C\010|5\245\314\257;\303\236\332c\014\370i\2143\360S\030f\251\2143)\2143)\361\220\352t\353\326\270\\\313\226\026\231ai\226\026\231ai\226\026\231ai\236\247\314\347\377\013\3550\232sd\\YD\2222\206P\3428D`\022\014H\336\001\201\230\006e#\010\320&\200P@\220\204\220\240\320*he\233\0235\327\023\333\n\023\255\354?rv\201\036\330\231\236\270&*\\$C\001;\273\2054\022\n\026\004\244\307C\274&]\321#Z\t\004\330L\256\022\201;\272\211\260\224\206\232\340%y\233\273\251_^\214!\354\367\241!!!\021E\024Q|d!\246H,X\261b\305\213\030\311\310&s\216\374A \234\004\363\304\310N\"^_\t\t\t&d\314\231\2232fL\343\216+6\212\266\333m\266\333m\266\333mkZ\326\266\002`&\346\"h\047(\226\017lK\324\242_)O\300C\002\026\033\220\3666\322(\242\212(\242\372\344:\036\276\335\3446\271\261\r\375\231X\261b\305\213\026,X\355\343:w\3557w\347\305uyzl\270\352\235\002\035e\333\202\014\016\n*\252\252\222M\323\352\343\ts\030\225u\261\264\022\305\324L\243\031\211WZ\031\202X\272\211\224c1*\353C0K\027Q2\214f%]hf\tb\352&Q\214\304\253\255\014\301,]D\3121\230\225u\241\230%\213\250\231F3\022\256\273\274l\270\352\234q1\343n.\256\357\033.:\247\311=?dY\342\311\362\375\267\323\202\177W\367\352\276\370\222\214\342\342\\)\034\047\010\271N\261,:\2008R\003\211jd\223\010\253\005\205\010}2X\"\242\253@\372d\247\347\364\022\001\330\023\355\034^\300\236p&\361.\022\204\200\227\363\304(\001&\376\366fUUUWl\206\337\005>\255\376\025UUUU\364q\2648\225\031\031\303\033\326)\200\267\010\t\010\032\365A\177\234\242F\337E\211$\222L\026,I\241RI$\222\345\213\022l\232\320}j3\200\2512&f&B\244\310\231\230\231\n\223\"fbd*L\213\314\304\310T\231\027\231\211\220\273\336XZ\301\355h\265\202\244\310\231\230\231\013\363\276)\t\227Q\361\200\203\3631\370\340 #\321\344\344\3053\332\213\320\301K\354\227\364\321h\226\335F;\t\313d\277\232\211\022\332p\303-\025aw\2460\316\372K\224\361\366om\266\333m\266\333m\266\333hC\332\353\335\333\204\030\034\363\016\235i\354\2048\2208\365\244:6\267\235\341\317\2057\333z\336\311\227+kkkkkkjUJ\251U*\245T\256\276\230\272\017)\036\251\324M#\321\310\0209+\312\200\206\030N@d\000s9\031\004\306E\346R\337\252\353\325\254\300\21318\202&{\204\241 \235#F \004\353\202Ed\000\220H\205\010\235\220K\301(\220\005\202A\002\341J\022\t(F\002B\006\210$\022\014\000\305UUUUH]\325UUUUUUUUWb\033\220\324v!\356\341!\302\252\252\252\252\244:\322\035\t\370\365!7\325\245z\230C\260\207\206\265\337j\252\252\252\361\323\303\300!\311\014\316y!\324\207&\265\231\231\231\231\231\231\231\277gg\272\266\335\345\266\333m\266\333m\266\333m\255kZ\326\265\302l&\242P\207>\273CmD\336&\341\27717\031\211\245\333\t\312zbB\300^&9b\002R\031\202m\2660\332\325\211\231q3.&e\304\314\270\231\227\0232\342g\277\324\201\002s\206M\355\367\261\215zzvA\004!+)\312tcB\014\211\031Y\002r\026Q&FT7\036\375\200EQ8F\360\214D\035\303\250R\215\031\244qe\220\3767\030\204z\202hi\366\240\027\tx\236h\233z\002w\204\326\364\327\320\242\321-\333\243\331\361\352M\247\203m\243\th\000\000\000\000\000\001\3256\234v\357\264\344\223\266m=\264\332u\362\231\223\227fe\262\333e\266\313m\226\356\261m\014\314\301\231\2303qDAp\203!\005\301\347j7`\203\342\037D\223\316\3509\354\241\212\006\302\206(\032\212+\240\201\005\002\3479m@X\210g\005\335\331\301u\254\305k1Z\314V\263\025\274\323\323\236\204\2316\375Cl\273I\260+S\035s\371\031\0100\002\014,\344\214 \230\302a\300\"P\212\362\321_\013\213\2234H\253\263\325\344\364\341\312\246\310\373\232\024\007\270\304 ax\250\030\242\322\227\000\243r\207\254!\220\006C\210!\213\207\333\315\3736\r\263\254\306(u\207\"DVE\204.m\315M\366\223\247WiGy\003\\\241\311!\274\346\243\225\245X\"\243h\332\242\250\242\220U\001\3340\342C\\;]\2616\347\207\210Q\304a\245\025\027\215\322\314ad\220\232\333\016x6\303~8\362\020\231c\230E\n\0031\010\031\225\n\314\343\364\3649u\240\047PM< \234\233\021S\317z\361\220Z\022d\047\240&e)s\010\021\004\365D\260\203x\255\256\023xi\346\250:\242^\030\002A(J\022\354\367\210a\014\305UUU\340!\361v\303\342\312kw\250A\201\306\344\303u\032\304\267\261F\204KU-U\032\002_\210\234 \t\231q\010u!\231\217\331\373\377\233D:\353\252\252\253\330\374\216+\311\273\024>Ezz\234\267^\302\0047\226\337q\321u\342@H\047\374\333\242\3464\t\240\223~\251\277}\026\211m(\230\232\021\001\337\277~\333\230@\206\005\267\270\254\314L!\004\002$4\270\231\230\230B\010\004Hiq310\204\020\010\220\322\342fba\010 \021!\245\304\314\304\302\020@\"CK\211\211\2324!""\004\002$4\270\231\230\230B\010\004Hiq5\036\007\344j\332\217\203\177\231\205\327\274\275\276\360=\323\274=\376\372\234\210bv\024\217\316\300\330\027\317I&B\314$\306ej\355\333\234\"7\253\"\305\347\036,\207\334q$\207\201\047\033\240\233Uz\241\250\234\375\2213i\r\204\336&\027\202D7>\255\375\"y\304\022\031\235\304-UUU^\376\275\204:\020\332\303\305\361S\307\332C\214UUvt\342\350\345:\026\226\322\332[Kim-\245\264\270Cf\033\357La\236\024\354!\261\016\244;\310q\2648\346\235\274\020`nC\241\362(\374\244\022\250\356\225F*1Q\212\214Tb\243\025\030\250\372\333\276\271\337\341s\302\335\270\235\371\246\377V\216\266\361\"\036\200\234\327&\036\225\037s:K\270\321h\226\2528\tp\220~2kP\333\350\247\264{$?\026\356\225U]\331W\030g\257eQ\020}p\200\240\010\033\271\362\036\236\212\333\252\306i\035\200\010\010\2104\021*\320\246\2630\232\321t\032\3616\3437\334\272\rq\275\270\313\271w\rfa\"\025\241V\032\354\305\305(\255EX$\250\210V\205Xk\242~>\304i\007\322\037J~\217\005\244\320\355L;9\030\370\363\205z\252\246DD\267T\350\235\036\207\t\016BGj:RK\211$\272\234\222\324\000\301\250\030\352=T\005K\211\305\"\243\036\353\273\3427\317\234\207]\347\304B\300\327\243\254;~z|;UUWN8\274@$\3456\235\034\257\357u\361\353\221E\014\270S\325\210\244\335\024\236\202)=\306\265u\243k\226\222\345\247\302\317[F\264E\024\357r\325\326\215\256ZM\"\221E\047\010\244\362\242\223\251\024\347\231\325\243Z\047j)=\312)=\272)9\221H\242\223\222)\024R(\244\360\"\223tR~\222)<\310\244\356E&\350\244\366\310\244\363\221I\302);\310\247V\265u\243k\226\223H\244\363\"\223tR(\244\353E\0472)7E\047r)\277^\256\264mr\322p\212=z\272\321\265\313I\302)9\221I\320\212NtS\243\263WZ6\271i<\250\244\352E\047R);\021I\345E\047b):QH\242\223\251\024\235H\244\354E\047b)\024Rp\212N\224Rw\321I\302);QI\330\212NdRt\"\223\235\024\212):\021H\242\223\274\212O2)=\016\376\256\264K\226\223\265\024\234\"\234\272\365u\243k\226\223\271\024\235\210\247{<\355\032\321<(\244\356E\047b)\230ok\020G#\343-\367@\010u\207Z\353\022\326vnH\330B\344\026\017\313PN51HH\355\0012\027`\223.\304\335\204`\210\204|\246\024\217\001\017\005\234Fn\213<\014\034\034.!\205\014n\002B\010z!\241\335\023\032\022\345,%\177 \233\304\363\356\212\252\252\252\252\252\252\252\252\257\201\264\220\373\320G\266\010\330\264$$$$$$%#\366\274\357gT\020}\256\342\250\362G\222\362y\034\1779\301\027\244\324\017m\027@\000\202\350+\023A43a\370Hx\376\352\037w\335\247\253\353\370\250C\335\305\350B\325UUU\324\233I\2562N=2{>=.\213m\266\333m\266\333m\266\333m\266\333s=\204\205\333\2249\373\364\324\016\244;\216\336\227D6\345\016r\314C8\247\300\020\233\363\315-\245\264\266\226\322\332[Kn@\324\010\013\243\003\320u""\355\034a0\245\247\020\201b8\226\360\216!\n/ ?\203 \037l\262T;\242\222>\265\360;\202\275\340\002\013\336\000\201\336I\336\362\27300eq8GP\216\261\033\3028!\221\202LN\033\270C \226!\360\260C\226\234\220\353]\232\252\256\316\234^\204!\357\220\004\006I\360\374\327\361s\253\001\321\r\027E\024\r\024NF\377\211\254\361U\337p\2409\350\363\366\364]}\346\326-q\247\rW\242\2727\0261\247\342{59S/|j\374TsW\355\265\251\033y5?+~\276\323\336\375\036\327\273\357\276\353\370\343\273\034,t\234\200\222\226\004X\010E\002\350\271\356\343am\201B\302.\366\047!1\266z\247K\215\265lHob\344\021r\010\200\332\332\311\374\267\033\241\327\022 \270A\004\332\022\002\047\010\271\0349z\267\000""\361UD\240 \\K\236\343\311\275\340\370H\367zV\332\365`\351\355_\203\337\322\374\3177\310\260\362Qv]\256\317r\3574\305}-\\|\030\250\265q\200\365\331\363\206\232\t\032\367\365\333/zo\216z\332\335\342\016\267=\363\003\256\240\244\275>\007\363\356\272\370\037X\265\306\2345^\212\350\334X\306\237\211\354\324\345L\275\361\253\361Q\315_\266\326\244m\344\324\365\337\257\201\357~\217k\335\367\331\343\231\304\321\207\230\254\027\022\335\303\341#\213V\327\313\007M/\257\226\227\331\344\371\026\036\212.\313\265\331\356]\346\230\257{W\036\270\250\265q\200\365\331\363\206\232\t\032\357\256\331{\323|s\326\326\357\020u\271\357\230\035u\005%\351\352\376\316\353\257W\326-q\247\rW\242\2727\0261\247\342{59S/|j\374TsW\355\265\251\033y5=w\353\325\357~\217k\335\367\331\343\231\304\321\207\2338\014\0218\010\010DwTF(\210\030Z\r\005[\270|\244sz\333\032`\351\262\372\371i}\236O\221a\350\242\354\273]\236\345\336i\212\371Z\270\365\305E\253\214\007\256\317\2344\320H\327\226\273e\357M\361\317[[\274A\326\347\276`u\324\024\227\247\253\371\367]z\276\261k\2158j\275\025\321\270\261\215?\023\331\251\312\231{\343W\342\243\232\277m\255H\333\311\251\353\277^\257{\364{^\357\276\317\034\316&\214?t\242H(\021\000\177A\310AazD\210\227D\006\320z\345\346\272M\rm\324.\340\337\317\273-8rX\2719_w\263K\355\366>E\207e\027e\332\354\367.\363LW\322\325\307\273\025\026\2560\036\273>p\323A#^z\355\227\2757\307=mn\361\007[\236\371\201\327PR^\236\347\364=\365\356}b\327\032p\326z8b\334X\306\237\211\354\324\345L\275\361\253\361Q\315_\266\326\244yn\324\367o\327\271\357~\217l]\367\331\343\231\304\321\207\230\254\027\022\335\303\341#\213V\327\313\007M/\257\226\227\331\344\371\026\036\212.\313\265\331\356]\346\230\257{W\036\270\250\265q\200\365\331\363\206\232\t\032\357\256\331{\323|s\326\326\357\020u\271\357\230\035u\005%\351\352\376\303\337^\257\254Z\343N\032\317Etn,cO\304\366jr\246^\370\325\370\250\346\257\333kR6\362jz\357\327\253\336\375\036\327\273\357\263\3073\211\243\017i@\200\373\345=\205J\006\010\235\000\200\200\210c\335G""\010\001\031\261\201\206\364\017\272G}V\333p\301\323\225\327\246\227\333\350\371\026\036\252.\313\265\331\356]\346\230\257\245\253\217v*-\\`=v|\341\246\202F\2755\333/zo\216z\332\335\342\016\267=\363\003\256\240\244\275=\317\346{\353\334\372\305\2564\341\254\364WF\342\3064\374Of\247*e\357\215_\212\216j\375\266\265#o&\247\273~\275\317{\364{^\357\276\317\034\316&\214\201\000\363\017P\342[\270|$qj\332\371`\351\245\365\362\322\373<\237\"\303\321E\331v\273=\313\274\323\025\357j\343\327\025\026\2560\036\273>p\323A#]\365\333/zo\216z\332\335\342\016\267=\363\003\256\240\244\275=_\330{\351\263z\333\324\352\003\331\345\303\026\342\3064\374Of\247*e\361\234\337\212\216j\375\266\232G\226\355O]\372\365{\337\243\333\027}\366\202\032Q\314\216\047\244\"\332@a\277\200\277\336\375\243\377\2724\346\006d\200\212\034\216s\227\277\323w\247C\177\340sn\267\316~L_\336\241\237\0478ew\317\3251KN\346\031\315\2726\222\323Xi\216\001\200\037\310\003\367\017\207<\204A\214rw\326h\022\200a.\312\237KeV\271\r\221\211\t]\254(\362\277\241\370$U\307\341\244\253\006\204J\004\010\002N\234\023\235\047(\300H\014\210\265E8.\214Q\323\033\230\020\341?\001@\300\2009\"\257\302Y&\325\002\226x}\207\341\362lU\267a\242\034\241\004\022\"y\266q\211$\233\002\006DV(\253\000X!tP\017M!\031\034+\026\314G3\326\327\047k\202\233\267g\200\357\214\034(\330I\330T\204R\033a\017\207yr\327`\221\205,\346\2069\375}\350\211@\017oW\352R\330\027X%\336\t0\035\310\030;\203\273\353\013\266,\036\330\330\306$\242d\222\031\206*V\047$wt\003\304\366\030\234\376\317IEUcq`N\251\247f;\252@\036\000=(0\014\264#\226\360\023\202~\252\023\340\205\203\252CF)\233\017/F\356\207gK\001\371\242]\365\371\302\301\014p\226\327\233\262\240m\177\330\302\023\354>\251\273\\\177\251\300\223\214\274\324\304\334\247\3402\003\257\034\223\376U\3660\037k=\005\332E\270L\243\271\341\302\320\352x\271|\260\356\361m\013\352\250\246B\177\334\r\241\302k\336I\272\034\255\312\252m+\330\315\364\320A\213\010\226\343\265 \002j\311\024\031\001\010\034\2343\352\313\242B\"DK\341\311ELW,u""\3366q\334\316\005e!\002\351F\270\374A\322\017b\025p\\\244\004\367\r^\214r\230\257\360\212\216\376\335r\353\\d\047\255\211\017/\243\211\345W\262\035!\0020a\"\3543\036\216\344\021\236\363]\216\014\235\306g\263\353\3419\342\241=\304/y\336*\275\017\017\023\227\023\0225\265Q\246\300\343w\263~\234\2200\267\\\016Kbn\323\0076\"\203\262\316\246\362\326&\306\301*\372\242\371\027\226\271\203\002\353\327\360\360\\\354\267!\276$ o\342\273>\037\017]\235\351n\367d\222\273\370\002\001H+\337A\\\025U\274\037\306\031)\221\212a\367\223\357\375~\375{J\036r\372\350}\343\323\211\353\372\260.\302\214\013\354\036\307\340\316\022\243\260\047\t\314I\317\\AK\230-[\243%-u\327\364\022&\047Dn0\270,\215\330\364^\201r\2512\020\342\263\203i\301F\226<\320\334\220\221\334\333l\340\274\022B;\227)z\226q\024\027\334*5\250\241\327D\212\365\352\013G]\346\210<\316&\276\346f8C\200\307\324r\210^\244\310P\201\014|\256\204\227\020&[\251\370<-\t\241\341\004\222\207t\014K\022\331\302~\256\237-\362\316\250\235^\267YV\021\031F\276\013\355hH\337<\331f\316\047D3\263\225\220\341\245\2146m>p$<\244] \002+\244\0014\270\232\034r1\214\211\313\217.\301\356sq\241\013y\301\224\033\211\337\355\317ra\301{\321\357\010fV\314\242\341\203^\262\355\301\334\326*\021\203\344i\005a\022\002\376n\034\000&\016@U\005\010Z\255~\220\333\351\210zR\250\022\246\024<2\375\314\326\021\341?\252\337c\271\226J\315\323\234\322\356\342 \205\355\203\021\360\t\"\246\net^\204\365\000I\352\372I\017\246}\033\3136\376>\007>z\r\n\023\231\222\235\236V\204\020F3\245\227\222%\346g$\256\010^\200\221$\364\000\047\240\362\373~_n\224\231iY\336Y\231\004MK\\aA\\(\350e2\004\tp\231rB\004\371>\317\275o\030`O|\304\016\313\367:\217l\024\034]{\332\350n/v\266\353g\302]&:\340e\363[d\364\035\n\277\273\320m3{\250\230\204_B\0348v&F:lNV\270\303\331\274\320\010\206$u,\237\207\035wW\r2g1\302\306\370\365!\3000\300\265\265\243jB\324\3264eu-\367\225\246\020h\253\342\024=\376\371\337\016\370\277m3\372\220z\210\262\213?\003\027R3\2439\316`#\270A\021\244\262\022\223\003\034<\357\021""\200\005\244Bd-\"LiZ\360d\314\366\322shg\250\0338\324\240\201\235\n\357\372;\205i\006\177.>&\tl^\034T#\002B\375\014\336\"\225-\2059Ap@\220\342\021]ca,\016\201\276\002,J\2538\227\232\024f\245%UUIP\000\002\000\000\001\230@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\314 \000\000\000\000\000\000f\020\000\314 \000\000\000f\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\302\000\000\000\000\000\000\000\031\204\000\000\000\003\253|T\000\000\000\000\000\003\376\255\240\000\001\000\014\300\0030\000\000\000\002\006a\000\000\000\000\014\314\302\001\000\000\000\000\000\000\000\000\000\000\000\000\033hff\020\010\000\000\000\000f\020\000\000\0003\000 \000\000\000f\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\336@D\344o\253\211\0064\252\345\342B\346\242\262\034\023U\273\026\014\022\02537P6\231\016\361G,nmO\010\006H\004/OsIW\332\nT\352\016&\322\2552\272;w\3548\376[\237\271\244V\026P\371\363\004\330\341\201)\365\361Q\371T\270\366\331X\326\204\201\0144h\305h\210E#\311\002\0056\031\ns)\236d\010\261\024\251\235\"N|\210\262\240\001\276Q\243ly@\020\004(\005\007\261\023t\317\237Y\220Q\270\310\316\337\027\0173;*\242\" @2\326\243\320\353\323\201\375?\301\022\207 \331}r\031z\n\233\217\207\224\033j\224\241\034\364\211t\253\312\252\364*\311\261tb/P\244\016\237\340\263!n<|+\034\227\247\006\207(\313+\226\275M\353\241\240f\3664\341j.\366\016U\270\262\036dAO\225\032T90\300Cj\314h\250\3141(Y\324\352\230\273\036\367\226\251AD\222T`\366bPzRC\320\020R\253E\356 \263\324A\363\024\370L\020\217\036\337A\2440}\361\344\212\321\253u\254\250\310\252\252 \252\363\326\320&\215Kp\263b\300a\010\306\316\373\2637w\265\256Mr\340Y\327j9\344{3\357\365\r{\t?\267\243\265#\264\355\354\036\010\027<\324\272\257,\032zC$}\335j\006\036FvXJY*\21281L\301\003a@\210\354+\r\203\230\207\202\034\203\243\240M_m\356]uk$\240=N\354\252\357\032y\310\027\227u\304A\3579\325\355S\365\273\364:\001b(\002i\000\322\260\001\212o\215d[\255\365\275!.""\007\333U!\326:\037w\250D\330N-v\372\215@\316\336\373y\220\324\005Q$T-\207X\037\007\222\360*\t\271\307\267\235r\317q8\351\265>\347\240\242?\2055\271g\014\343T\r\014g\346\316\351}\306\371\226\272\334\240`\242c\024\t\0479\177\224\236\276\006\023\227\257bs\006\006\241\320\305\220y2\313\305]]n\010\371}o4\320$8\352\032\230\236Q\213 v\265\033qz\230yar\350L\263*\374x;\232\003\205\326.\003o`\365\201\327\024\327Mq\000\327\003]]ux\306\261\253\232XN\247&\255\254oM@\230\306\265&\222\206\262$SX\030k\030\341\274\324\315@\341\304\014\301N\273\010\261`WJ\307\013R7X\036\241Z\006\241b4X\350R\3458\254\222,\000\231\016`\004s\034|\014\201\021\221U9T\345\325f1\277D\345r\365j\364\341\244\031Id\267\212\006B\2260\243Q\270F5x\025\353\300\257\"\361\276o\202\303\331[{\025\005t\327\210\210Y\006%\020\210\3531\260\365-\322\3369\217Wl\310\023b\020\350\210\305\321B\032.\213\250BD\343U\004D\221A$d@\000\221P\221\221\223_z\007N\364\344%\301\205\216\004z\231|\014\"lXf\374`c\020\334\3471\024\364|n\035\263\240\273\036wO\224\347\266\0313I""\022R\022Lz\234\204\321\334x\034\223 f\047\346\243\035\0259J\003\310\244=\tJ\210\212\026\033r\245U\301WK\233\250\016\372\310\206\016!\351W\300\202\016\232\372?g\326\303\"`\032<\227uZ\317\0162\340\350\230\367*\343\205\3356\253%\005[\212\363@/[\204Q\346\031\321b\240\230\362\345V\003w\203\300\007\201qq\034B8\205\304\254\357r\321l\345\022\004\247\340\035\031\n\211\223B\364\271\0348\275\003\236:J\272j\261\r1#\246\345\034\270\n\203\355\246\231\333X\0219n:&}\203\274\006\3268\032RH\311\006*\0134CP\357;\357\225\235\036Hx\222\363\321\023i\013P\262\321p\234\3030\361\316%\035\371\323\350\327\261~\034\365&L\232\047MJ\223R\006B\316\221\307\356\351\232}\003\231\317\206\211e2\351s\312w\367\323\225r{\275\2324\004t\300b\031\3042\316\256m\3068\2622s1\305j\343\234\300\317\201\341\206\236\030\212\2533\t\303\215m-\026\006\021d:\231\310\007\261T\366!\321MA\270\241A\246\216\323:\230\234\237\2006\336\342b\372\201c\204\344\207\0051\202\227A(`\246\227o\350\345\021\006\375\223<5\366C\007L^1\343\000\306CZ\267\261\216Q\347\320\340p:\235\364\020s\352\366\273Y\0076\353\307\014\253\353hqN\370=]\033\252z0\265\250\220\220\256\273\217\016L\315\\2,u\036\021\215\340p\n0\341\366z\303L\"y\220\246\264>\373\024`6\222edPb\224\370\247A\340\322\254\267-\272\234\321\022\232\010\373""\243|\204\312\323\010\301\2647\314\240\366\356\276\325\274(\202\376\361\256\014\220Nj\355\307\013\357\014{\272\037|\"W\346H8\n\303%P|\203\047\241\245\t\034\211\034\200\tr$wr\322\241p\273/\266k~\001`7\270\207\253}Y\264<\000\276\240\254C\324\022>\243\366\207F\253#N\300\355\244\367jif%\205\261\016\200\2110\343\245\002\0055gH\312\231h=\364\020dA\006(\203\332\307K\026\016\2344\034\031\251\333\360S\3375\222?\233\345\275\035\213\356\035\301\321\047\r:\314\252TI\363\346Tq\004\225B\361fG:\253\344W\242\275]\016\216s\021\021\331\237Dz(\360!PWX\220o\236m\200\267=\361\000\314HL\2312\350$<\023\311\261\223\331\366\030 \214X\213\005\026\000\212\305\213\010\305F\"\274\236@Hjp\n\235_\037\2016$\372N\263\346\034\375\333\005\314\330I\270\300\216\024\024\031\252w\020`=\301gs\231\222\246\377\257~F\205\350:\246\257m\353s\216\332Z\013u\000^\2024\344\252\n\020B6\241(\205\306\222\2168\300\022\212Ds\223y\313\\\257\366B\026\026Hq\0167\303+/d\354:\366\370j\004\232\236&=\366\333v\320C3.\010\227\225M\257*\371\344\272\353X\266\030\221\3432\304UC\211\0052\315E\002\005\\\2328\020\241\332\345)b\210kg!D\260K\000\265\213\003\002\326\302\373\256\254\034\303\337\313\240\000\353\"\305\353\t\016\261\314r\311$\201;e(-j1QcY\346J\221s:\271-\271\033\021+.t%\326\027Rd!\314b\343\213\224\270H\003\333\026\244$\340{g\234K\t\010\311\3307zs\323\2319AT\036>\213hB\356xB\376W\320\242\377K/O,\261o\274\350\307\013\344k)V\364\350\373P\364\2578\316P\017_p:\\H\260K\263d\003G\317w\374\304w\365\264\333\047\206\213KO\253\277\333\354S\264\363p`{\204\356\317\341\371\030\235\207p\360t\334\222}SKE\025\221Q|\017\252\027\2004\255\263<\237_\206\267\330\220w\350\321f\245\272\000\364}\342\037<4\232\222\321\305\251#\031\234\240\354\240\206+\016\346_\241W\266\341\343\334H\334\355\225\010\343\0202\0164\2068\313r7\307\366\271t\020\375\031\031\324\363;\016(x\036\370\311\262\362\276\010\210lZ\371\253\022\210\254\261pUd\212\262^\032\357j{\003PJ\321\244\n\\H{\307\317\007W\212\360\331#\217\316z\270\"gP\035\324\200\325\210Z+\262\302\2739\273\214""\021\001\330\261\242\246\301\375\255\010\033\334\302\213O\211\353-\315r\241\355\177\350u@\023\350\261oI\335\335\320\360\343\217\244\237s\362\370\035f\204\364\345\226\257\273n\235\365\202\355YN;\047]\266\365\337\201\356\343\362E\376\305\365\254w\272\273O\227D\212\372\361Q\273\223\3469\275:\246*aUJ\221\031*\214hW\231\256\300Y\241(\267i\004\203\205\013k\255,\213\013\260i\001)\276\032k\026q\351\221R\226&\242\306\201\206\030\002\250@\013xy\357\365\207\332\3449N\306\366\277\344\"8\246F\002||\356\317+\320q\307X\357\355\252\000\237`\047!\304p\241\004RM\227\247,\020\326\0064\025\022\256\021\222=>\330\205\240Bd\215\000\264\\\301@\312\345a\213r\335\206\340\351!\036\207\014\017\030fb\230\304\236\311P\310\353X][\324\347\013\323y\327&\3547\370\345U\206\331N\010y\371\344\326\343\030\022\032\337\212\005\351\206\266\264\201\216\r)\240\222\345\"\304\2666,5/\301{J\034\230\217\261\035\010g[Wj\3576\251\353N\017\342\243Wyf\350\240\027SO\237\357J3\3212\352D\302%\220\000\201\0347;j\354)\200p\204\314+p\337\026\207\021\224\006\363\223\020\331\313\"6l\367$\026\375\252\027:\214\245(\014y`\232\211\022\2554)\215N\030\257u\346\265*\231T\221\211\214\003\336\307\220\355UB\0218\214\224\213\307\216\033\354k\277v\234t\021\313\n\300\357\365\211\317\353q\277^o)\241\222\267|\301$\210{\211y\3430\023\333\005\006A\020`x7p\302\354\350\206\331\346\360\276\3746/\332`^SP\207X!J#P\"\245\347\322\341 \004\216\305\231>\200\002I\261)\322k\232jD\350+<,\305*X/^\204-\007OH\007Ht\244q\t\021E\025\200\342\253\214\353\033\371\360z\037D\265a-\017\267\362\367\201|\0020\037\0020\360\035\257S\315\206e\231a\330E\032<\313\217\255\201\331\304\367}\316y\206Y\311\016\222\232a{\351j\367\215\306\263\204\262{G\321\372\204`\"\304V\004TE\"\023\304\030\352\014B\3017(8\205\026\213\216\253\023\263\361\316\225>\010\270c{\331M\211Q$\223B\026\004\207\347\030\n@:\262$\301\204\225\\\"\310\300XO`z\006C!\221\240\024\305\240\312\262\032\000Z3\234\023\333\237t\321\325\252)\3064\323\345\212\367\300b\035\365!\337:\275Q\354T\003\324\206]S\2618\201(""\236\341\047EF^Y\221\2220\224dC@G}\356k\202W\013\234Wu!+\211\003\374\003\345\310^\304\340\261X9\225\367\047G\363\272\360\222\300\222\031\013\000\223\030\025\261e\314\220\346\357.\317\344`\324\030\023\210S)$\345E,\307\206)\267\001\342\000%t\264\222B\272\256\253\267\301\027)\362\224@\262h\241W;\222yv\320\001\303T\210p\324\201\303\014\363\225\243\255ib\0149D\226N\003%X\222\315\177\345%p\321\341\2345D\317@]P\025\325P\353\017\024\342\274\3012\337\246\353\306\001\312\333x\202\035Y\016\272F\364H@Z\020\027\004\014+\211\047\232vN\336|\245\313\367\004W\360\032\326\276\254\364\346\233J^\013\237\310\367\352\210\355v\r\214.\277\r\367\364\256\2759\257\227\364\230\301\000\346\001\300\233\216\375\307\352\344\r\214\230\272*\350\350\252h\350\251\242\032*\232#\242\246\210\232{\360\344\347p\352\276\001\340\354$T\275m\311)\344\016r\302\0027\204\206Kx\0067\22600\332K\202\320p\242\320\222\025\220\257?6\363\004\201U\324\214d\025\014\316\262\335\rU\t\025\322I\200\256\202\2420`\022)\206\002\242Wf\224.\375\rOB\243\n\252\343\001*\314#)+\023&T\000UD\206J\252\006\277X\0166\337/\000\221\\U\300[\350\260\024\347\334T\223\005^;\302{\305R\374m\007\354\204\225)\341n\252\001WB\030\n\342\032\275`1U)\251\323\002\333\217\326\3527\257\217yR\275(\340\202A\351P@\212I\003 \244\n\210\024D\213B\323\"\256O\030\241g\002}%N\247\353\2520J\031\314`\244\t\024\320\014\202\230&,\224\351\343\021j\361\373\047[\n\327\355\263o\314\031\206nf;$\217\346:\032\233?\375\364\373\326\215\327R\026 u\345\362\322B\370\365@\322E\026+\266\370m\265\251\263\002\356\272\376\226\346\306\222\000Z\035`\21131\0240\032Q\000\371g\205X!TS\361Y\017\274\240`JCI\230\372?_\023\356z\027\375\342\3525NI\271\r\3376\270$\274^\336\016\026\272\250\251}\305\034\014j\377\001\365@\025\213\353>\321\027\330\252\234o\272\201\020\212\220\022*\204\\j\315\"\276\300\201\010\010\300T8\344\373\310\212\036\016\366\210\002\375\327\254\023zm\377V\254\310\375\307\275E\322D\324%\321c\033FAQ\214\272\"g\313\203,\214\214v=Uc\207 \310B\026\240\251!h\226\201b\3043\363\277:\250""\333\374~\266\223\327wt\004\265\360\272b \202\311]\020\363\316<\263\361@OT>\375;[\020\251>\272\037\037\354<>\223\033J9\231\177\320I\t\224\027\346\020\375\221\013\370\312L%\344\000X\3671\252\327G\010\177#\375y\264\327\260Ty\375\260\250\341\003\023|\326\235\032\314\014f\3033\377\326\351\242\237\353?\256\377\266\004\217\376\344\022@Y\025N\314\377\245\017\242\255 aId\206\304/\265 \317\305\371\240\212\375\206\307\2710C\260\242}\260_v\204/\025\030\376\004\036\266\025t0\236\272Pq\3405jD\372\316\275\200O\350\250\376\213u\347b\212+\261\355\020Ed!|CfZ\371R*\215\364\354\252&E\301lj\372\372\375\237\223\330\177\242\230U\340\003\001Q\222\372a?\246\027Y\272\213\241\333T\261G\360\374\037\341\017\313oo\333\302\217o\362\206O\205\360\251\231c\035\002\247\311\270T\177\263$\307\243\001\000\261\001$q\340\0164O\261\355x\373\237\246\377\267\365\317\230B\004\020mx|\017\370\023\361\020\211\205\006_\r\023vV\376\254q\005\004\316]\237\356\357\177]\316\357w\013\274\tF\036\371T]\341\300\360_k\305G\002\324\312|\020\004-p\250\332\341Q\307\277\034\336U\320\375_\215\212)Tg\206\253\327\n\213S\342\362\237\347v/\177\365~\324N\357\257\301\375\262\247\336\033l\021/\227\343W\325\265\221cy\360J@\014P|\177\213\367C\305\371mx\215\253\314aQ\332\2538\2677k\030To0P\307\205Hn\342\025\033dO\312\030\030\000-\036/\006\337\214\374\200\026\305\t.\270(\370\274\242}\270\3678\305\324a\005F\256\357\177\217\372\021M\255\277\035\235\307\n\372\205&\022\361L0\265\330\177\305\237/\327Joo\241\026;\235\375\203\304x~\317)\207\337c\310\241\342R\031\220\371\224-\342\305\314\335\362\251\220 i\005>a3t\004\266&\202\240&V\026q\205$\220Ea\361m\371+r\022\274\3361\363}\320k\344\266T\345-W\n\215\376%\265\355\337P\247\315k\n\216E\027\200)6\3677O\047\353A}0\t$!\t$\211\"\317\037\244\032\303v\234\271\347\007\345TJ\267\235J1B\311.\364P\205\250O\341\357x\367h\017\351\013\024\207\317\320*7\317\\K\037\320\010\0377\354\361\345*\354\255\273D>\205Ko\027\004L_v\363(\3010\210)B\374\347\264\371\374\245|\376\212l\372\324\367\205<\202\030\340a\210\250""\374\376?\047\322\247\216\342\003\344\372mV@w\002g\230\250\330,\020\000\275J\004\337\230\227\027T\326\214P\333\366\317\244Tg\321\022s~\220K?=\217\302\246#\364}?\247\032|fa\017\332\204\276\221\226\013\263\275/\022\205+\005<\177\323\375\332\333\350\244W\350\200I$!!\t\002E\237\272\0477\340[~\342\327\247\223\007\365\003\220%\267\\R\242\343\242\220Tr\023\347\371\265$\023\373\242[\332\007\306]u^\037\323kO\033+\367|6\364\334\2001eW\234\335\363\036L\245\220\265~\317-\317\233\021\370\2413=\027\210.\037B~\2325\236A :\033\003\216\177\321\362\273\007\217\307\343?E\337yO\372\335\324\277<+\032\257\030i/\261h\204B\3723\004\371~\177\241\373\255~k\037#_\243\347\304\310\223\3646W\347\210\267~\301L`\261e#[\305M\310)\340\023r\307\204\022\343\314\233\200\235d\362[\315\217@)\213\005Q\227\3427f\357\231\014i-M\006 0a\210\310\361\n\300|\033H.\335\221\362\n\215\302\231\267\005\305\277&!\353\2064H\226\274\374\307\346\307*\300\0235.U\273\024\246\374\317\222\001\277\025\036\370\212\323\265\336R\244\376aB/\340\325Y\2430~3\241Q\265\244>/\215\177\205\202\247\217\305aD \250\301\004\366z\353w\032\326\227\265\212\222&\351lu\372iK\361>\221M\337O\237)\017O\245J\334\006\004Ay\244\342\343%@T\374/-\212W\230\364X\364\204X\047\230\225\373\024\300\255\254\225<\273~\275\253\t.\274K\021N\231Bz.\377\220\022AV\3779C\216\241\215F87\203\350<\244_2\370r\203\346\022\006\3216\224\223\347\047\234\362\310\025\364\022\222\372S\345\274\312%\367\337\3424\322\310C@\177\036\344\361W\311\342\024\237\264\277\363\223q\213\3160\376dm\345\200\031\0308\310@q\217\201\017F\361\3342Ckl\321I>\217\025|\246\r`\t\351\0375\3370x\260\024\323\346\253\300\214\316\206\343U,\237\373\371I\017\036K\346Rn\207\220\004\344\215\245\301\200tK\254%\360}8\327Lo\226\303}\275\023\017\330\245&2\253x\220\300L\207x\207\243\3432\276C\317\347i=\tq\345\013\022E\251r\220Th\032O2\017\242\341H\\)\350\034N\300\237\037\211v\254%X\255\302O\031ydd\010\336\245)\361\377\230n\205\354\206\047\\\360\304\356\222\241]\357\010X%\327\r\231""\361\317\034[\016\354\255\255\305\262\343\267\007\306\221\310\220\222No\353\022\035\330\355\203\374)\023\343>\252>\251\217\347\n/\354\376ZK~i\220\220l[@l\0167\031L%\217V\300\035\377\001I\307\257\023i!\364\330\261\005\214\004\361\374\250\225.\277n\343q\n\304\2065\326*\024|\265\205\212u\217\024\r\317\240\343\241\337\332/e\373\226- D\304\n\302\213\345\301qr\224\246\037\224\227\227\345\003\365\001\356\373\345IQ\240\211\001\207\306\277\035\255\ni\256\301\013\317\247\302\244\017p\374%{\312X(\214\367\324\262\023\336\022\315\306\tI\005_t\372\277\025\377\247\333\201\356\303\303J\321\345!\356K\304/\022\362\340\274 \330\037iC\276x}\266\216\334\227Q\376\312x\237\320\304\271\022\351\203M\030\020S\276v?\027fHI\344\344\357E\346(\206\204\335\344\221\347\033\2017\336\017f\304x\355Z\357\255\276N\373\376H\363\002\350\336\267\231\220\313\033\226\276\037\047\371+\331\376/\265b\371z{TxC\334O\325\002\340}\302\363N\333p;\233\274\177\223\333\017\010\236Ov\353\377\203\355\332B\275\307\351S\337B\343B\027\226\023\336\372\337@\207\207\372\377\211\356\374\030\023\3678Z\255`\244\257#\220\237\002\227\374D\034H\341\211z\223O\305\351\317y\376\n{\337\025\355zU\360\3712)1\020\370[e\201\216d\006\210\231\347\201\213_\007\245\374D\236O\367\037\025\277U\345\202\354\017\306\027\037\301\203\361\245\332\251\213\302E\310#q\217\202z\262O\364\362\236\r\260h\362\370\250\257\342\210n\020S\344a\202\1779\014\2778]\374\371\232i\020\323\000\375\337\277\344\023\345\177_\210\371C\324\205\340y#\344|\330\300\342\263\351\37026\315\3056\217\213\310y\013\203\311\023\311\345\350\236a?\213w\223OI\375h\372\277G\320\\\047\320|\345)\3421\001\375\002`\246W\037\220\361\047\344 \206\331\035\243L\260\047\223w\001H^xC\370\037\037\210\262\234\235\262\223\304x\304\277iH\022\307}\360\274\211\361\222\036\377\321,&\331\002\363lCj\365\215\224\370\017\213\337\367\250\370\377\027\301\360\374E7\203\370\310\344~5//\006X\031\027\340~\023\364\371\277I\335\346K\324\357`A,\207\277\337\271j\006)\307\350\371\320\320\005\001\376\251\335\301z \241""\342z=?Z\231&\223\374\037\231\016\033\230*\020Y\024?\227\010\210\306y#\275\352w\220\335.\353\251\372`\277\315\0208Q\t\004\2672\017\306\302\n\337t\021\256\307:\027\177\031\323[\353\006+V\000K\337O\352I\t\274\210\374\202\233L\020\317\210\0164\220L\320O\375\047\274\031\276\247/X?\214cQO\340~\351W\374J\274\006)\334\377o\351\374G\343\272\203\314\365\205\223\325+\233\317\356{\027\345\374\037\200\373\366\270\032\306qz?\n\270\\\245\305,\252?\r\207\367\237\273\3419\037\275\271>\025)\261x\310\223\335C\351<\337\331c\351\271iJHz`7\245@\217\220\373\347\277\344\351\211`\376HB%\202\027\202\\\005C\345\237M\327~\343\366\377=V\205,\224>\047\346\032.\240\265_v\227\374\352\303\363\266S\270\026\026\337\0104\\\325D\257\242\336\217\233\204\247f\313J\264t\026\322\321\243\367\337w\230\377n\354\240`\206\301\360-\245\241u{O?\236\205\037 \301,A\264\023\325\224\257=HH/4\200\352i\374\t\36220I\013X\244*//K)V\241D\t\n#\374q\344\024\t\307\254@\211\352\001\017P\213\370\252\207\211T=\321\020\372P\003\320\002\356\000<\321\023\344Q4\001\003\214 z\204\014\321G-\001\340\202\234\004\023\226\010}\310&\310!\327\005=H\007\235\023\370\203\320\027\347\0209\210\362\225\344\256\212h!\310\003\352\003o\300*>?\036\375\363Z\026\242\344\tP\026\t\240\047\351\007FC`3he\205\013f\2675\255\263[\361w?}\264\204\234\357FHAZ\253\261\250zL\314\025\004\010\243\264\211u4v\243\322\221Gij)v\2325\022f\221I\232L\314\206\226e\231wr\205H\n\305i*D\316\374\0046\267}o\306\215\270\256\341FH\032\006\201\014\356\360\363\347D\264)7\323\256Z\322\335\271\251C|3g5\222\346\265\226\346o\220\311IxnU\033\347\325\315\026\334b8\324\030,\217a\322t\352FA0\343\014!\214\004\020\"i\351s\364\031$\204\355\302I\t \010#\354\302\204\230j3\330\2102B\"\004\375\252]\352(\252\265\2531@&\3339\275\205u_\366\331\254\345\234\306\374\334]\350m\372\270o\301\306\37283\216ibe\013-\0244\306\317s\364\351\251\0138\321\233.\\\261\311\036\2314\351\3233L\331\263t\316\2359\324\250\265\027\300W\225!UH\244+R\"\236}s\2661\213*\216\212\234\346\"\275\010\242E\n\346\265:\243\322""\\\022\335\365\n\021\020\047\322#\313\330\017#\345%\331\034\373\003\253\322\213\037($\204~\2177\272o^\271\347\351\243\255\353i\301\274\333Y\213\234934o\025FV%\207\307\374\030\0246\037p\250\271$\334\262\305\331_\356\376O\346\367\325\000\262\315\357\263a\226\212&\2234jL\2734\231P\200A\206,A)E\230\244\274AvF<\005$\204\337\354\344\320`h\r\330\260\223\047\t\206\327\031\022\026\210@\200\222H\334*8\211\020\\\005=\2141\2540\365\360\271\201\272\331=\22373up|\377\\\351\324Z{\376\250\025\006\364\014\254\266Jv\216]\370 \226\010\370[\370#\366\217\353y\375i\017\027\224\005\225\222\211KJ\203i*QX\214EQ\024Ub\310\261\025\020TA^\206E\016\260`P\177e\374\330W\231K\374\335Z1\314j\003z\035U2rM\301\304\343\203\203\211\300\360p\047\010K\341eKZ.\370Xr\343&3\023J\230ZUV]\354=N\352\000\222o\301\003)\300,jU\255Xj9/.\312\032h\310O\306a\315\032\246kS 0*\240\253;\t\207e\223-.\024\313\322\030\255Ywvo?\266\323\020T\250\302\221\255f#\235\027\014\257S)T\333\261\264\373\276\216\230\360\364>\324\352\212\364.\277B\371\367EF\371\303\332\347\363\365\340\340\000\270e\245\371\356\301\221\021&\245\240PVh3\"D\212\240F\223,\020\t\016\032\225\"\000\210\255be~+\025\332\316v\232\013\277\033\354\355\271$&\267>\222HL\305\r&\314\235\"Hp\223Z\240\2658J\351\250Q\225\026<\330\263\204\331\205E \315\302\351\343}\351\255m\342\017\270\035O\213$\301@\3142\030\r\022\231b\226aVQ*JR\325kKh\210\324\266G\256\375\036\307)\234\351\354\352\233j\366\177\007\235rNM\253\376\"\020!\323|\303d\271\320\350\2342X\311\016Xm\252\013Y\302l\230\233\"&\"\206;\252M\230\007\210\222\023\214\351\306\346q\266E\370P\250\340*?%\255\203\205`*3<\255j\312\213B\320\000\323\017\360!;RN\211\ro\275\321\316\265\254\031\262kl9t\3513r\361,)e/[\003d,\245\233%\202\315\254X\261y\320>\243D\201\371>\316x\017%9\337\263:\347\254\036H\3602\024\020\276L\300b6\322\326\323\022\211\225\262\213Z1JR\2425\260\220\214\211R\246\177\263\2069NQQ\326\323p z*\271\243\270u\325R\310\226K\026@,)d,X\000\262\266iP\240\024\2310\222d\206B\300\013$\241\206\020\014\000\311\206\0012@\310d""\302@\300\206\005\220\n\020\240PZ\000\245\244\022\201\241\261`\022\312\330\261a\002\310\026K\026P,-\232D)\032KY\020\262\226(F\200\240\265\201l\215\212U\245h,XR\310\331\265\221l-\222\205hZ\013Y\006\300\026\n\000)Zi\026\205\246\201i\032iF\221\246\225)i\265\221l\245\250\006\226\213X\026\300X(\006\200\246\224)Z)\026\226ZBRJP%\204\245 \026\022\224\000\260\226QJF\251R\220)\245\nR\212T\244i\347Y\006\313b\225i\nhF\224\256\301`\033!f\201i\niR\201\254\224\262\215\226\307T,\201d,P\215)\254\264\211@\330\360\241dK!c\302%\201,\215\217\266\215\224,\205\203\264!`\013\r\217\316\201aK-\216\340\266U\260\034\301\032\024\245\273\302\200X\002\300[\327\024\262\205\220\360\250\322\005!q\301\034\334\306\270\\<\333\356\261~u\256\013\345\0218j\211IT-\027\330\260\026\223\214\356\317w\357\372\226\376Y\370g\223\367\327\323\036\230\035\020\222I\035\367\177\242\307\365\317\302\337u\276-\367?\206?\214\007\305\256lu\031(xk\265\362\312*\027\370\2372c\r\371\246^\372y%\322\351\361\2470\245\303K\0374\374X.?\223K\246[\245\246\244Q\177\370\273\222)\302\204\200\321F+\300"; - PyObject *data = __Pyx_DecompressString(cstring, 21186, 2); + #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (23775 bytes) */ +static const char cstring[] = "BZh91AY&SY\346\375\001\303\000*Z\177\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`v\336\367G\334{\307\275.\355\000\000\000\0001\356\206p\000\00258\334\200\035\352x\356`\351\020\000\016\236\000\333\211\275(\320\246\256Jt\227o }_j\276M\2541\367[\200\035=/\257\276}\364\366\037}\357\263\356}\276\310\367\256_\035\335\331\323\356\327\032\201\361uT\204.\367\334\361\363\355\364xGs\234\033\227\3363\357Ng\3036\333\335\243\336w=\016\236=\363\276\000\000\000\000v\242\363\337]\347/\253w\257r\366\017J\240_\017\272\300\000P\005\000/\243=\341q\255\273\275z\313\3273{\336\366\273\315\347>\000\005\351\350\363\347\267\233g6\272\322\363\267@\255\350\367\027^\356\361)\334\347\266\356\234f\365\317q\353\273+=\357\240n\363\341\354\327z\257{9\001\356\347U\0167r\351TW@\000\001\240\000\000\000\001\240\000\n\216\304\354\325\274GX%7\231\350}|@>\237M\360\3204+p$\220\202\001\030\021\200#&\231\004\364i4\332\010\360\246\211\240j\217S\3224z\236\247\224\332d\214CA\26444\324\r4\001\240LA2\020\202i\006\246\025=\232\246\236\224\364\236&\247\3457\372\250z\244\323h\2324\032\001\240\3204\006\214\203A\243j4=@\rS\336\232\244\201OM\021\241\251\251\250\364\215\000\3204\303D4\001\246\200\000\0004`\230\200\000\000\000\001&\222!\0214\010\321\03242\023\311\2116\211\211=L\t\210\310\r\000\007\244\001\240\001\352\000\0004\321\240\"I \2011\241\246&\231F4\t\246\232\230\304\322hL\322\233ML\246OQ\351\036Pi\246\217P\000\001\243M\000\321\372P\365\004I !\242\020\246#L\221\343MO\020\206\223\323Q\350\332\t\350\006\233F\215\0014 \322\231\351\243i4\002h\032i7\240\237\265\005T]\336\207\253\327M@\354\217\177\256\336\313\376\353Q^5\207\016\n\277jd\303S\255\034s\250C\216\250m0D\353\013\205\306\230\213m\306V\017\245[\271\324\342\326\372l$\300\260\203\360\355\352!\353A\3520d\230\241)\225\032\214\t\016zY4\301b3\031\n\313h\013\025A\215\266\265+*[aF\345\205V,Y\003T\331@\375\357\303\371r{$ }\024 \240\000,\000\024 \025\002\260\000,\005\005>\030*5\004V\021\020D\221T\242\250\004h\251J\214b\203""\010\000\022\"\260\210\203*J\005\006\230(\302\002\245\024P\251\"\003\002(\221\251B\214*\205\032\252\020\002\320\025d\025T\202\375\177\260\375?\2513?\367}\277\267\354\373\177c\224\251\316\373?L\210\231\366\204\277\273\356b\213\021\300#&\311D\026\202\001F\316\271*\2230\260\314\n\234\020x;\231\224b\300\005U\240\227\251\201Z\001\026(\026\002\312\241\036\244\340\277\200\335\356\200\030\212\201eT\265\004\003\2070\316\020\221\351\374-C\006$\315\247\370^\256)\025P8AJ\006\374\213aC\007\013a\273OO\033\230\306>\216=\036O{\345\276\375x~\357\356\177\361\205\377\320RO\335\000\003\350\024\270\024\376`\230\177E0\302\377\346YA\231\027\001\225\364\245U*\006\340@\227f\262\004\003.\236\216#!z\034\211!,d7\000b/\033\313`W\255\212\246b\006\360\326\020F\261\302\373\262\014A\3001\263|\004\0341\241\022\370:\203\301\344W$\377\266\253`\202\247Tq\363&*\033\3219\026#}\247E\275\001\241\363\240\337tL8%D\370\035L\351q\373D\003d\375+\265\233\373\3302!\357\323\241\203\023\251\033\322\277\337\033\030!\314\006\337\243U\033\344\374g\000\033\251m\214\310\232l\337\253|G\003\253k\272\206\345f\033\241\023\240\301\007\370\204\201\006Y\326(A\353\312\004\250\277\037\267{\020\030,\2151-62,j\306\211\205?\017\361\330\020\234n8\033.\005\014A\021[\246\300\323\222\310@\206\226\0250,1a\272o\202\037\344\016\014\014m\260\377-D\200e\201\213\036\373\225\300\023\021*\204\014\206\342\347\376m\035\210\\\327X\nD\242\350{\321\254\004\204\013\010F\244\200\367\261\365\362?\363\201j\226\220g%\311p\270$\022[\033\035M\010\306?\320$^\002\001q\322\033\224\"\340H\013\200\210\250\211_))\003[\022\202\304\237@\305a\242\375\302\22641t\010\023\3750T*\240\260\344\033\361P\020H%\262WfP?\324*/\224\030NFR\000\310\222\013 \302~\350\201Ai%\026-\332\2206\301T04\n\252?x\316\005\314\013\004\021L\013\207j\274\320\301\220d\003\375`\314s7(QS\222\215\rl\320\205n\237\354$8\027\006[\013\212\204\230.6\\\001e\006VT\355\376\320\206:Z\362\250\250H6#gme\213d\0055\037\356#>\271=\030\262\020\200\342\233A1\351Q\317\300\377|y\206N\305\256O\242\350)X\2527\033""\245Xh!\271\322\306\033\375\340\\\313\264l8$\\\205)\0222%FUN\250^\277\370\020[\352\336({\016\300\322\301\254y\263\r\310 [ \007\377\024\265\364\005T\223\240\300J\201]\254\271\001\010\377\344\207\"\347q\222\261\341\216\300>1Z\231\n\370\372\377\200@j\005\t\256\306\014m\210\026\033\025j\006A\223\036\177\346E\326\212x[`\220\302Xl[(z\231\337\320z\327\360xC\230N6\035\225\n\345\221\252<\n\221\226\311\277\375\002\033\202\343\003\241\204\002\343`\342\345t\037\302\014\304\2101\222\353p\225\047\270\252H\370\377!-Ek\261{\314\230\352\014\260+:\312\332\371+C\001N\177\352\200\360*b\020s\234\232\213\034pF!B\251!\377\330\216@\303Sv\006:b\343\002!\354\024\037_\342\365(B\260\017\243@\020c\241\355\014Ca;\203\032\006-\217\266AL\\\267\250@\234\226FTd\204nu=\255\205\021\377rB1u\036\244\033\027S.2\004W6\273\027\376\010\030\251RP\255\320\031pQ$\220\245\377\222u\006X\340T&D\010\033\332\243\014?)\332\257\262)`h\033\023\210\22037z\004\377\322T8\326\202\022\215\366\t@\372\234\240]\232\225TQC\376_\232%\313\026\302\226\010\224\253\002\023H-T\251\220U\372\202\364!\303 |\021T\236\013FKC5\267\376\375\347B\352P\037}\303\026\010@\2070\347\372d<\321;\025t\201\016\304\264\240\334\030\030d\034}B\352\021\007P9\033\246\333\005\240\212\310\ro\323\0003\365\256\220E\311\330T9H\251\206\270N\341\r\217\312\355\324\211\003\256\234c\010\237L\035\351E!\321\314\213|\340\246\200B\367\000Y\004f\324\024\342\274\220\3016\214F\177<\217.\241\314\374|\307\236\302\236\034\030\006*\030\265\267\331#D=!\3546\2612\314x\026\260\261\334\t\035\255\322( \315\323\013\240bJ\344\275\311\305\231\230T\300\360\351\273\035;\013!\214H\373\274\205e\352\230\n(\364mE\203\027sC\001p,V\270\231\301\212\272\022:\244\024\364\003\271\216\207Q[\226\034\205MX \tM\255\334\025\260\2276\006\033\255\334B\215\350\2552\023\270\241\230\312\0068\024\271\250\3568`g\357\240z\206\2460\203\266\232\035\317<\336\275\210K\322\217Y\353\021\343\353\226\236r\306wor\342\305\346\260Y\346\212\325\3744-\347\224\347\243\203\313\207\311\223;\362\365I\313\232\3271\317_\223""\242\337N\003\236\257o\007V\347\206\230a\275Jm\276\253\363M\0256\326\256u\334\241\301!\350\223\217,\357D\226\262\346\364e\313F\375+\371\0352\323\370\261r\357j\301\345\271\340Q\301\261\tv$\203\305\002~0\007\251\004\346\0019\005M\002\274J\247\320\252|\205\016\210\251\300\240\357\200\233\310\047\252\252}\365C\354\000\036`\001\316T:\224z\021\016aCJ\256\224\023B\001\306\210w \036\304\003\250\020\322\253\366\250\035\202\276\304\036DC\336\200w\002\370\010\235\000\207\314\253\326\243\336#\356U\361\004\344(\001\226\343}z\000\306\007\257}\251X\r\353\203\335\020\022\346\247>\261\271\030\013\177\237\276\344\034\320\t\257u1\275\037\"\224!n\344\205\251\206!\315\275D\247a\304\204\n\013\270I\340\235\230\307S\240\313\316\266>\346\341>\023\033\265\r\047\n\202^\t\273\226\252\346\227\314>\036\2127\3568\276q\200\231\275\245\231\007=\307.\016\374\342\034T\343\344\03520\317\225\340@\363\356\207\326s\ni\253\365U\274\216\025\007\310NP\360\242\2539\274\241\206\356.\021\323x\230H&1N\350 \227\221\322\273\321 9\216\3415g\346\323T\243\346\373\255\301sJ\331\327\026\356\354\214\014|\300\361\313IX\323Y\306,0}\323\230\213\213\340\034P\305\031\013\235\232\365\007l_\346\000\373\2576c:\315`1\367\034\2014\211\335\372\374\211\334\\u\272mlQ\373\221\355\32355\336\367\221\334\371\241\327\212\312a\330Os>\212p\023j\322{\204>A./\253V\242}_0C\257\047\227\350g\246\333\022\235\302t\024kM\205Q\340\255_/\264]b\357F\266\327\342)*,\326\356,}\267\030{vn/\304\326\246]\313\2476\024P\365:,@\261\217>\343\266\201\215\256\2720\324\003\271\237@KH\337zC@\334\307\335!\324;\035kj?r3\340\271jWGHN\342O\221 \320w\003qs\255.\215\033\005~\340n)\276\316\024\232\324~\340\317@R\022\033\270\033\201Z\232GqC\r\300\033\\\0357\247p \3509\332W\270\024]\310n\027\270N\316\203\235l\2345Q\027\212\257\323\006""\024s\233H:\235\007\324)\034\201\201\277 \373\334\"(Y^E\340}\361\315\023]\225\242\243\3528\336\222\375\323[\206_\202\314C\354;\356\275*\212\007\335\032\016m; \243\017\276QM\350M\271w\003\"\367\257\256\034?\324Hy(\215\215\007\275\372@\036\265\352=]\365\265K\216\217o6K\3757*\333\331)\257U\216\\\357\351o\007\344\223\3036z37\365s\273\027\025\036Z\224\372,\362\344\233\177\213&\256n]\\\270\254l\275\253>\367\243.\036\2336\257\316\267_wW^\310\265\320\345\353\263\327\275\253Gd\375Z\367;\242\357\307\310\376~\276\034\027xz\356W\277\327m\001x\005\240B\274 \302\204r\010:\020\215*\037!L\3009\224}\352\036\221~@\236*\036\360\016\320\016Q,\310Y\220\214\251\006D\203\032\003\314\220l\020yD\036PF\301~\305{\224\371#\354\007\351\027\351\007\301C\300\003\304C\342\t\340!\342\t\342\201\342\211\340\217\200\276\010x\000w\200w\251\356S\332\257\232\207\232\017AC\357+\350\203\320\027\320\023\240=\004z\nz \364\004\350\t\320S\321\346\364t\324\355~\014GG\324\200\361\014<\"F,E\025\207 \010\031\010\201\023 u\3537;\267\270-r\033\344a\206\3254\r9\026\332\226\204#\000@\231\013\200\272\3245\000\232\221]K\300\001\307\047@-9\343\307\260\023\031\004V\352Pa=}\373\350\337\034\033\326\224\010\006\215s\304g{W\231\214&^x!\242\310\035rr.X4\232\234\270\014\3415\254\320\323P\333\370\315\001\000\337\236\021M\316\303\362\315\312\033\212\344S\254D\014\2003u\351\246\354\324S<\357\374\300\250<\215\310\032o\030\021\202o@\221\240\020!\226d\234\006\340E\240\270\214\2771\024\016LMK\020@\310\004\013\331y(\250\307\003}\311]\3607\301\000\334\246\372\357\230\246\305\rb\010k7\366\005X\240\2760\023r\232:(\032:\002\341\206C\022\025\337\326\242\005\312\034\013\036\376\314\013\033\024\035\210\354\001\326\357o\010\357+\213\265 AD\317\177h/\204^n\233h(\303z\256\264\340\314\004\013\256%;\333\302\274\033\327``\320D\201N\032\006\200\027\337\256\000\201@ L(\264\261\203\230\006\372jE\324 o\241\276\344""\031$\233\357\317\242\255\213\235\352\322)\265\212\201PE\332\355CE\r\005\321@\320puI\000n\320\035\210(k.\013\365\310\000\201\000@\243R\006\324[\324\262\304Y\020d@\204\020d\013\360Q\340>\227\351\301\316\253\020\020&\347R:\235\332!\2713\014V\004C\201\320]\2265\200\201\r\2336#\257P\033\312k\014P\336\riAdGV\37466PM` k\035\312\210k5\343\2315-x\007\3429\005X\276\3045\200\201\254\326#\257`mu\321&\200\200\234K(\245\312\204\005T\221\301\360\343\3003\236\303\260\231\270\203\212&\215\352\373\226\310\302\252\367\244Z\277\375w[]\377\347E\332\355\362\177_\353\341\037g:A\037\263\003_\3479\026\033\240\027\367x=\255\245\201\367\243\203\272\035\342\3721\344\362\254r.\335\ns\270\356\344i\177\371\320%\251A\364\252\265\220\330\251@&\364((u\016\017\306\231q\267\354\372\244C \007\375\253\006\330\035\252ng\364\342\260o+\3348^|<\327\022xT\007\217%\036\207A\271\232\010>uE\375\303 \225B\037\n\213\311T\347\366\022\213i\323|W\2033\002\232D\240\374\202\204\240\3714\025\333\203\243P`\320N?\211E(\"\376\2520\352.8G\275\003\245\031$\357\272\177J\261EI\327\311a\237\307\374\350{g\257\005?\255\214\361\274\262\025\350k\370\261J6\272\213\325\214\215\203(\254\004\370\214\277\37247\361\r\037\261\271j\234\217\205=t\2205\361[\366\2758\350\006\306\005\317\337\354\204c\217G\343\243\277\315;/\252\203\0067D-\251\312\245\321i\371O\3470:\233uA\316\336\207\207\332\345ZSf\021\370\321\001\250\037=\344\330U,\2645N\255o\\\360\024\230mP\225\356{\2367\013j\344F+\200 .\005KbJ\345\240\027\r\302#^+\300 .#\200H\371\002\362\306\037\274\003\330\037\032\030\006\2705q\337\365\3646\371\002\357\361\243\330_wj\302\334%\333\242\263t\003\237\235\t\345\302\320\000Z-\n\311\3552\245\303\305I\307F\357\227c\375\373\266\335!\341\330\343\360\261\302\236\271`\251$*\212\2046\0349\317\026\341\276\330\"\213/\270\2743\312N\366\306\344@\221\256\253\241h\272\"\351\376\351\345\323\332_\277\327\200\047_0q\031\013\235\367KuC\337\254\253 *\266\226\241Xw\374b\260X*\204\2065\367vc\030c\356\373\340\343_)\216$-~I$\222I$\222N\037<\340\304&\377\233|\266#{l\210b\316\261\037\214E%?\037w\023nC7\243P\000p\262I\030\335\340\366\001\3116\004^\204N\027\201\036\037\216=t\007\316\243\322\201\344\006\313\224\332\363m\036R\047kX\032\355w\253\227\234\243\300vG\267\006\334(k\351I\230\030rv\355\253\036\335\034\304;\047\016\032\ru8S\223Ib\3449\275[\004\265\320\326\326/r&m\047\370\274\244\222I$\222I$\257\357\211\3723\361g\236\336,F\366\370\212\342x\216\240\316\234\265\315\370\263*d2\007\022\217\003\374Y\005j)\356\252\252\252\252\252B\376\271\nC\370\302A\003\331\356>\317\177\334\021\003\205\004\016\003\200y1\343\375C\303\025;\017;\352\336\365NI\311\213zb\023\023\210\322!\2457\315\360\334dG\227B:\035mmc\366;f\313yo.\310\206\303c\340i""\347x\024\007\226\246\340\370O\004\320\320\r\004\023y\332\251\264\333\254\361\342\277f\306\322.\2571\276\251\250\r\361w\r\3047\000P6\321\363?\207\350\007\360\212n\020`\036\024\033`\033n\277\006\214[f\215\300\020/\240!\275\340\t\276\210o\232#\270#\020\332\206\320\036H\362C\222#\375\004\334\233P\333\2646\355W\302\351\357\033\301J>\005\006\371!,;\350\033\346\370\216\350n\240\034\035\236\2555\355\207\317;\310p\360\217\013\300o\270\225\336!\003\020\215\331\027\376\371\311\357\020\220M\336\234N\047\0018a\203\250\047\241WH\240*\365\356\3204M\202k5\241\255\341\240\256\311\351f\032\032\006\202\336\025\243xi\31731\327\\\356@\263\260\007\223\030\321\\\026\303\372\300hk\322\233\215\317C@|\005\276@\326\350?\257\226\027\003M\256K\373\207\243\322\r\001\255h\210x\350d\310\367\321v\001\276\003\327\355\364\300_\375\024\200}\002G\256\234\017\0014\321\324\372;.\333\346\341w\366u\252\374J\033c\010\024\003\265\262\004\211\n\003kR\r={?\307\036\200\373\376\230\225t?\010\047\325NO\047\213\315N\246Tj\025\317P\221\017j\344\303\n=\301\"Z\352\047{\021,\227Z\214\257\244\273:-\022\330\323\337\310I\257\302\307\251\330\3053\316\226\257\247-\372\251*\252\351t\264\223a\270\304M\217\361\023\364\336t\204\376@\230\211\220\203\276%\302X?jw\037\330&\334o\023m\020\213\324\332v\375\202j|\314\333o\016\331\330\200\000\000\000\000\000\0006)\274\t\033\3566\211\326/\335\310\025\360\204\310\033\204\326&bXM\311\312\020\204!\010B\020\204!\010B\020\204!\010\024\245\364n\036_\371\247\364a\017\241\274\206\367M\310z\305UUU]\273\001\"9\256\202}A4S^\376\244\331\340R\325\324\036\000\t\226b{\006K\355^\341\013d\313d\266\311m\222\333%\266Kl\226\322\325sD\332&|\215I\257JZ\272\215X\t\004\324&\320\276\364\303\0328\341\234\240~\333W""C\322E\027\263\210\007\210\370\367\2244\236\"\036 !r?8\276\035\375\237\335\267\361\273\017\300G\361\047\327\276n\001\003EM\325\271\264d\014\010\"\006\354\2570\264\001\003X~\356\250\332>\206\356\223L\302\316\004\351\263\203L\267M\336M\363!\243\255iX\244X\220\020\217\005%6\004\205\277\241\232\325\353\261\2768\316\266\207VK\265\347\252\366\022\020\234\365\276m\322p\025`@5\263\222\234\310\004\316y\316\234\352\022pC\220\331\255\302\006\324\277\206\310\377)\204\225\344\250|\377\024\030\301\201%\010\374Z\026FI\031B\374\355\001$\205\037\033\036\307\331\355\022!\351o\032:b[\327Ghl\tz\311{^\217\177\336%\237p\210\342D~g\032\004~\240Fw\210\234\"\241\006\002\016\352\210CP\021LM\326v\371\342E\n\014\262\316\252I$\222I<\336g\027\247\301\376\263\322\351]\207\231\345\363\271\242\021\224\314\205\322\27248t\247\317\235\031\300#A\274,\302\021\314%\31400`F\204;F\206\022HRz\251*\265\313\375|bN\3010\207\273\365\341\361qM\004=\353\rsLa\231La\237\0351\206e1\206e1\206~u1\206n\230\303?:\230\303?>\230\303>\3451\206n\230\303>\2751\206|\224\306\031\3151\206|\264\3175\206\265d\272\242\302\352\230\303>:c\014\3351\206e1\206y\251\2143\212c\014\3351\206~\2253v\032\363Y.\250\260\274\323-\206y\254\227TX^i\2143\212c\014\357La\235\251\335\206ySl2\321a\177B\230\303\3451\206sLa\236zc\014\362\2460\316)\2143\2751\206v\2460\314\2460\316\364\306\031\224\365TC\313u\211\252\t\216\t\217\005\027\231\200\220\001\317\016\001/Lu\321\307\314C\356\020\360!\2040\207[\362a\327\205%\325:\t\312\252\252\252\253\356S\202\026\006y\375%\244=\\@\207]C\267zs\317E\347-\205\313ar\330\\\266\027-\205\313ar\330\\\266\027\276C\261\017h\207~\241\337\364\251\217L5\354\244\272\247D-\206uLa\232\247\206\275y\r\373t\332\252\252\343\267\027\202\036\302I\336\020\363\020\374}>\t\000\200@ \020\010\004\002\001\000yq\332s\340G`:\361\202!\220/J-{\t!k \245\020\203x\240S \264A""\345\366\217a\265D\353\327\255:\315Y4\352\271\"\265\311\025\256H\255rEk\201\010A\344\031B\020\177E\003\311\317A\t\t8\321\177\310y\003\237\234\347\347nG\177!)\315\016\360\354@{}b\310\014\214Y\0102\221=iQ\202F\022R\321\353\220\224\370X\316q\361\352\347\022\343!xKh\235\"\\\t\201O\024L\024\244+\325\023\355v~\302\350.8\326\265\255k\367L\270\326\265\255k\356u\235\t\t8\371\0263\325\316\247\r\0244y,\303\325#F;\266{\223\203\352\372\334\243e>X\300\354{\036\303\322t\376i\200\367\202\375\002n\212\235I\326\260$X\021d\002IJ\035M\202\020c$\240\353,\321\326i\023\240\023/(\221\r\3415\013\253\274I@\221\017h\227\204\302%\300\341\022\302P\255A\007\226$\023\0213\023;\n\334\300\317\013XW\360tC4CA\273\211\014\014\271\201\231\230\031\230\220\300\313\230\017{\336\017{\336\017{\342\251\"\\,ph\026\202\335\2604+]7\007|^\242`C|W8\034a\010\3061\220\205\ngl\221$\204\220\224O\2471l\372f?\017\275\363\252\252\252\252\257\265I\047\341\010_\266A\017\271\357S\356\236\376\322\t\004\372\302\252\252\252\252C\242H\202^z\240\236U&y\321\230\244 \206\"f&@\220MW\310\252\252\252\253\222\033!\360V\227y^\333\207o\032c\014\370)\2143\357S\030f\251\2143)\2143)\366Hw;w\357\\.el-2\302\323,-2\302\323,-2\302\323=\367\354\363\3727\352\262l\236\315O\253\234\001y\327\235=Gb\232UO@\362)\022D$b\010\212\320\047\300\031\006\n\"(\322|\023\022\374\007\260\374\016G\277D\222I$\222I$\226\363\273\374i-E\257\211\237\350|g\240\021\346\3612M^}\027!\264\373\240\232\324\310H\206\2414\257&\2056\211\005\013\201,%\223\035\247,L\267\204\215j\022\t\276\047\242&\253\304\260\047\223\240\233D\2445\355\300J\340\331\274\234\037j\215beG\245\314\204\204E\024QE\024_Y\010i\222\013\026,X\261\214\214\214\234\002k\234\215\354A \231\211\365\304\310N\001//\204\202\212(\242\212(\365\327Y\242\032\326\265\231\231\231\231\231\231\231\231\231\231\231\231\231\231\301\016\010xF\020\356C\332!\201\372\3047!Gm\220\373\3440!a\301\017szE\024QE\024_h\207c\327\277\"\016\322\031\262\036D4s\364&\230\261b\305\213\026,X\341\351;\330\036}\316\0365\341\337\266\270\273{\355qt\235\302\036\022\357\222\014\016J*\252\252\252""\370O\277\277\037\031\335\343^>=\265\305\333\337i\251\233\031L\222\2344\274\263\245\016hf\246le2Jp\322\362\316\2249\241\232\231\261\224\311)\303K\313:P\346\206jf\306S$\247\r/,\351C\232\031\251\233\031L\222\2344\274\263\245\016hf\246le2Jp\322\362\316\2249\241\270\272g]Ly\327\\u\256.\336\266\270\272O\214>_\303?\177l\364\352|\333\2776\r\274\277\331\243E\257\256\003\327\353{Q\355;@\366\277\000\017?p\247b\251\353{\201 #\025@D\226B}\311)\021\210\212,i\016\340(\237_@\240h9\240\023\300\304\342\304n\376\334\263\356\3356\305\r\307u$\001A\025\215\220=0\304\212\n-!\351\204\371B\037\253\2453\373\350\202u\206\236\221)K\222\365QtKu\321\363`RL\002UUUU_\224!\367\310v\010h!\366\313$\237o\250w\264\360a\226\232\206\337\177\271\r\356\034|\224\334\rXk)\357\360I9\207M\004\211Pd\031\006A\220d\0315i\000\r\007\217::_\274\347\376N!S\215t@H\305h]\000Q$e)\242\320J<\216pLB@L\342@\023\240J\022\204\3665\220\274%\300\226\343\240O\030\txX+\004&\013\302x)\344\047\334%\342\035i\241\016\014\305UUU\370\010w\330@\214\367\351\013\017\253\2340\372\276k4\303>\013\014a\232\245\312o|\323\346 \300\314\266\333m\266\333m\266\333m\2045\324\241\004\202A\204B\035w!\225X\252\252\252\270AB\010\010C\255\303\267\326\246\310\233w\254\227\273h\270\023\000\230\204\346\023\224\023lK\204\241 %\347&!@\t7n\335k\370.\023\001)H$\022\002y\362m2m:M\246\374w\343x\206\313k\212\327\025\256+\\V\255\010A\360hB\017\207\216\275\014\314\314\314\314\334OC\234Tl\307{y\177/\036C\345\321\313\225 \366<\352\017R\001\327\0020\032\004\353j\004\"\306\207\255\010u\2312g\344Nn\2122D\267\323F\010\226\272\215\005\337L\317z\257%\372\243W\325$UUUWy\r\374\024\373\334y*\252\252\252\257\305\316\341\3174\337\211\337\305\323\337\266\371\360/D\024\206w\352\035\376\3159<\276LUUv\343\212\360\325UWN8\257n\311\343\346M\371\274\333\363x\227\244\347\244L\315&BI\210\223\0233I\220\222b$\304\314\322d$\230\2111y\232L\204\223\021&/3I\220\232\274Y\205lb\226\265-`\222b$\304\314\322d\256^\003\263\202\216f\224\227n\242\321-\215\036\210\047\241\267\313\004\207?\221\236)""\236\3527\003\211\r\3447\356S\030g\2059\363\220\363d7\355\321am9aBffm\r\311si{\211\261I\347\351\270\000\000\000\000\005\266\332\020\364\367\363x\341\006\007\004:\373\235\225U^\357\203\212\373\002\035\244\016\335\375r\013j\336\334\303\267\242\236$8\343\232\267\315-\312\265mZ\266\255[V\255\253V\325\253j\337\277\362I>\031\371D\017\201\336\235G\360\362\000\234\300s\305H@)C\234B\245\001\316\2049\337\310nspW\037\006[\223-\372.\277-BP\220LcF\000\002d\004\212\310\001\030$@\241\023\316\tx\022\211\000X$\020.\024\241 \222\204\210A\020\270H$\021\200\030\252\252\252\252\251\013\302\252\252\252\252\252\252\252\252\252\354\207\0045\035\220\372X\020\251\312\252\252\252\252\244;\322\035\211\370\265\002r\047\033\264\257g\247C\334L\004\262\224\t \220\204\021&I\256\324}7;bT\316g\214\317\253\324\266\031\254\3263\020\2068\3431\010c\2163\020\2068\3431\010c\2163\020\2068\3431\010c\2163=\344\3535\265\276\376{\223UZ\337\321\322}F|\210\047\022g\212\004(\003:\005\2513\245\241\271\327\271\365\304\311\362\243R\257\r\371$\222I$\222I:r\240\026d\262\037C_(C1UUUW\223\202\034\020\340\207\345\022\001\301\016\330t\037h\202@\302\035\351\r\225\024QE\024QE;\375?\251\361\220\356\020\340\207\303\363\020\362$\234\310r\275Z\252\252\253\344\020\321\017\002\037\213\265\302\036\004<\376~8\342C\317\231\226\333m\266\333m\266\333z\357\307\234!\330\206gn\3049!\321\275\252\252\346ffo\333\266|j\\\273\302\345\245\313K\226\227-.Z\\\264\262\326\253KZ\3414\022\204\330%\2049;4\232Mu\260M\242h8k\023a\250Mwf\047\001\346\t\013\001x\230\345\210\tHf\t\246\2343\256t\032\345\304k\227\023\272i\3269\241\256\\F\271q\033\006{A\320|\031\355\007^\236!!.\240\305\207\201\354p\257g\263\266\020\210&c3\237\047\227R\251\316\247D\020%\000t @:*\rwse\004\340\032\023\224NR\351\227\351+w{\nt\351\243\212%\266(\264KwQ\314\047p\233\006\307\204\002\341/\t\362\023P\233\235\202n\211\265}6\273(\264Ks\321\253\0179\264\365m\264a-\000\000\000\000\000\000;\246\323\217\206\373NI<&\323\340m\266\304\356\3453\047.\331\226\313m\226\333-\266Z\254[eUP\252\252\025x""r\005`C\000\206*C\030A\366<\rC\237=x\303\301\307\204\204\210s\216l\223M\211\247\322\242\321-\215\026\211l(\313yQ\300\251\273v\355gG\033\310C\231\231\2118\200g\021\020\360q\000\316\"!\340\342\001\234DC\301\304\0038\210\207\203\210\006q\021\017\007\020\014\342\"\036\016,>A\350\001\202\362\246Y\024\\\376j\321\372\177]*\034\302\2074\241y\225\201\314\223\230\337\023]L\273\t\227\232\213\207\210H\255\361\"\217\333\360\352\357\207U6\027\343\252\204\242\017\240\304 ax\"\230\242\320\267\"\200\\\003\350\"d\211\210\342\002b\341\347\346\317:\311}\332\202\321\2215&DA\025\220X\022\357OU8\330\035\273\365x\230<\310\034q\302\035BNgU\034\255*\310\212\210\312\326\332(\253\026)\n\225U\"\211\310a\324\016P7\323\305\343\023\216\047+\314\021\301\030ib\242\363\302P\306K\002\001\255\341\327&\360\277\203\005\355\340\003\030\360\221\006\221\341\026\017\tQ\256\036_\r]U\250O\021;/\3015X\030\251\326\361\306AhI\204OP\232\305)s\010\021\004\272\t\365\304\340/\020n\001.\274I\260\347`\240\371D4\034\004\022\024\205!\254\372d0\206b\252\252\252\362\t\315\262\234\326\242\353\363\\\022!\273r_\330\243f%\276\3125\310\226\252Z\252$J\322\215`\230d&\350\002j.\0215\211kx\367W?\334\347\341|\332u\325\350\000\000\000\035C\220 \034\266\233p\315\263$\372\315\244\236\257_\257[\210\203S\310\275\273\357o\247\214 \204=\242\024\207\374\246\331<$\240\233\004\231i\272\006\356E-Z\211\022\266Q26\020\025\336\336\336\333\261\202\rN\013\350\363oon\272\347{\210\203S\242\365\326\366\365\327\\\357q\020jt^\272\336\336\272\353\235\356\"\rN\213\327[\333\327]s\275\304A\251\321z\353{z\353\256w\270\2105:/]ooW\256\271\315\304AC\022\022f\2249\231\212P\214\030\006\206$$\315(sR\037\242>\214\256\300\2777^\365\373\2575\275\313\316.\243\234\016\236\224w\004\300iF=\354M\240\003\241@\210\235\002\220:\023\037\016~/P\2321\247\017\035\037(\226\342\243\264Mmc\3523\272\256\331Uz\003\260NO\212&m!\240\233D\303\0010\004\244<\047\037\035\374\316\275\302\037\t\004\206g\221\013UUUW\317\327\230\207r\033\260\364\375zyx\220\347\025U]\276\247\027Y\321P5{;{\232""\034qG\034Q\307\024q\305\034\341\2129\303\024s|SN\235u\2048a\3174\306\031\252x\020\361\340\203\342A\003\321\350 \300\355\314;w\2460\317\301O\022\036^\004>\315|\366\252\252\252\257\230\361!\347>5\037\220\202U\036\351Tb\243\025\030\250\305F*1Q\212\217\267\323\354<|.z\355\337>\307\247\237Oxz~*dKw\321\300&\215\321\"\033\302[%\344\301\352\243\313^\222\3575\026\211j\243\326CBC\251*|`op\343\323Op\367H}\016\035*\252\2742\2560\317e\235@\232\260\327\275La\231La\237B\230\303=\224\304\202\321\007\335\004 \000\n|\317\324-d^\021)\256\037S=\200\004\014L\235E!\026\210\224\255]\230\350!\221a\022\221\017\353\207s\201.\213DJL\275\245\334\340-\021e\022\223.\314t\020\310\260\211H\207|;\234\ttWD\244\313\263\035\0067U\261\252\277\034p\303b\036V\3747\047<\347\317o\253i\177\047\307dF12\375Ops\244\2038\220y\207$\035\010C#\241\014y\217%1U\350qT\256\307\303z\371\220FC8\211\322(\204X\032\371\273\303\307\347\247\330\335UUt\343\213\314\002\035\210xv\317\343\371u\372\204QC.\024\367\361\024\233\242\223\311\024\237\023Z\272\321\265\313Ir\323\363\363\256\215h\237d\212E\024\360\347\253\255\033\\\264\373\035\365u\243k\226\221E\0474R|DRvE<\323;h\326\211\366\210\244\356E\047\333\"\223\252)8\242\221E\0474R(\244QI\351E&\350\244\370\010\244\370H\244\361E&\350\244\370(\244\365\"\223\212)<\350\247]j\353F\327-&\221I\356\242\223tR(\244\356E\047\004Rn\212O\024S~\355]h\332\345\244\342\212=\332\272\321\265\313I\305\024\234\021I\321\024\234\321N\235\265u\243k\226\223\341\242\223\252):\242\223\262)=\010\244\354\212O2)\024RuE\047TRvE\047dR(\244\342\212O2)<\350\244\342\212N\364RvE\047\004RtE\0474R(\244\350\212E\024\236\010\244\340\212N\256\264K\226\223\275\024\235\021O7v\256\264mr\322w\"\221E\047\241\024\232E<3\323\243Z\047\255\024\236\204Ry\"\223\275\024\236\322):\"\223\232)9\242\236<5u\243k\226\223\305\024\233\242\221E\047DRx\"\223\232)\354\317g\243\362\213>D\3376o.G-\310\242\223\330\212O\024Rw\"\223H\244QH\242\223\242)<\221I\340\212N\273I""\300\351\271\276\344\357E\047\344\242\236\366\"\233\\\264\234QI\352E9\347\267\335\275\337snH\245\313t\252I\344\212O\273E<\374uu\242{H\247~8\244QI\340\212E\024\333\311\024\341\021M\256ZK\226\223\222):\"\223\314\212NH\244\350\212M\321N\034\265u\241\210\246\327-6\342\212Ob).ZE\024\234\221I\351E;\363\216\215h\236\304Ro\267\232z>\337\206\270p&\350\244\372dRsE\047TRzQH\242\223tRi\024\235\310\244\366\271\234\3677\334\236(\247\227\247WZ<\376\255]h\332\345\246\327-\047\266\212N\310\243\303WZ6\271i7E=\271\266o\333{\276\347\302\307\024\362\372}]h\351\216)\265\313I\331\024\232E\047$Rx\242\223\275\024\236H\247?sWZ\0474Sk\226\223\326\212Nh\244\367\210\244\361E\"\212O\004R{H\244\335\024\236\177w\344\353\344\373\047\037\256\316:\344z\375\032\272\321\265\313I\353E\047\024Ri\024\236\342)=(\244\364\242\223\212)=h\247\271\271\343\271\276\344\344\212N\210\244\350\212OB)7E9g\247F\264E\024\232E\0474RpE=\223l\367\2725\242n\212xM\246\244\332z\344\332{~~\212k\306\007/\0322D\372\240\230\251\216bD(\r\242x\333\250\023\307\272\252\252\252\252\2445\245UUU]\316\304:\004\345P\225\210\237\336%!r\223\223\311\330%c\256\365]\004\202k \230C\202\036!\365<\376\264=>\232x\020\364y`C\261\261UUUW\300\206t\207\\\323\300\203\2445\345M\235\221E\024QE\024\\\315\241\277e<\304\035!\257U<{\366!\341\337\301\363o\3139\344M\202p\t\347\210\232\323l\r\273\324\\\211y\206{v\326\335\273m\267\302\004\310T@dP)Z\243\326\253&\356\216\356\257PBVe&efA\n\254\312L\312\311\273\243\273\253\310\004!N\022\"\026\r\335\035\335^\304_\027\356\231\231\240\277\307\310=Y{\014n\235\354\377q ]\241\332\273R\016\325\333\264\003Z\211\302,\0379\274\264v\333\362X1(\374\350\261C\340\225\005\245\370,\370\032\300\221\210\367\214\t\036\002\036u\260\214\3028\374\266r\260e\346q\024H$\200\014\303\010yA\254\362D\307>\225\302`\245\342V\300MBn\023\353\337$\222*\252\252\252\252\252\252\252\372\0168Hp!=\322\037j\024~\304\222N\014\342\226\322\332[Kim-\245\271\000\374\034\337-\304Q~\336t\0209\307\235\347\345\333\373\377t\306\257\271\250\236\204C\230\004\210\034""\312\020\016`9\270\223\304L[\0209tQ\356\357\323\252\300\232.\223\271\013UUUWp\t\307\302\207o\257O\260\351\rn\235|>2N\026\333m\266\333m\266\333m\266\333m\266\337_\324\223iw\345\222r\373\264\343j\252\252\252\275\310y\036o?\206l\207=\320\357\226b\031\321=\364\233I7\345\313\225\226\333-\266[l\266\331m\262\333e\266\240\336E\027\307\220\260\277?\343(9NU\355y\224^c\271\324\247r\201\207DN\3470\016\351\3414s\n\",#\350^si9\202\2074\037Z(NH3!\014\006a\014\263+XX0\346qH\022]\242;\207\306\301\206\024\\\007\220\047\215\317\273\030\030\370\364N\200\221\014\304\265\360/\346\321\230\236\025\333UU\333\247\027\264\010w~\010\004\265UUUi\003\273\272\276\026\242\370\352\rN\241Q5\000\362\273\2724O\020\322\t\273\216\352\027\211WB\201\0044\010@4\0014la#\220\023\262X\214\206H}\362\t\255hZ\305\204\236\334\t\2433H\333\205\270\314\013\002\344\300\260.L\013\002\344\300\260.L\013\002\341*\254UZ\022\252\345C\234\337E\r\361\020\337\004z@\007\2451\247J\016\307\335\247\220\306\217J\237\270A\271\362\301p\343A2\243\325\021hC0$\034\302f\3312\211\261\257\230J\023\254X%\244\312\177V \026\264\222I$\204\222R\241oFe\314\016e\314\203\230\034\310\271\205\311\331\021\354\014\240\234\211f\016\341\355\014\210\006eB\002,\202\034\344YJ\330\214\013\026f\014\320r{\003\354\270\236#0\"\322-\020\024\352\202S\253\2102\242\206^\036\016\255\255\220\322\360\243\310\207U\330l\025\316w\375\301\231\020\342A \271\305\201\2351\343\\qA\371?\205\035\244\007\035\331\020\255\006KfE\220.\254\211y\254f\277e+f@.\242\322J\351\020\330\244\363\2218\220\0161\002+\306\254x\334\203\226\010\014\310\344\341\306\341\002\301O#UH\335\013\010*\000\231\221\200\256W\004\362\260\270\316\005(\327\341\261\\\260xP\014\242\004S*0fT\243\260\375\047\330\031\3039\004_\366\301B\241\016e\004\345S\211\342r\033\271i\027y\341x\025!I\215\310d\013\034 f\242k\376\024V\275\247/\025\223 !\304(Dx\221\207\023\302\257\014T\014\207\240\023P9|\371\262\271<\312d\000\337\312\204\007NG4l_\t\206\\p\332\324m\375\r\266/]\373\260\365(\030\325r\"\036\332\007*\261\312\303\224\352""\0239\322\000\036r/\314$\005\257\231\300\227P\300\221\030!\204\002\003|\223\013T,\276,\344V\014\255&\374\351\267+\362K\n\027\336O{YO{\355\266\302\243\252\013*j\312\3266h{\317\337\254\337W\221Y\275\303N[\027Xq\003eV\035\366\351\210\265l4|s\236\226\352\356\351\255\030\2149s\315\014\266\336\257?\007\210|\317VM\377Qx\315\3607`\255\022\360\216K\315\016\233\267?j{4h!\313cl\337\236\265SI^\332\245N\230\235xRw~r1\325>\250\316z\037]\266m]\260\303Ul1\302\334\251\241\276\t)`E\200\204@o\213\253g\005\221-|\241a\005\334\211\350L?\213\304\366h\375\026\314&\0217b\354\021v\013\204\245V\353\264\223\325\270\331\r\361\"\"a\004\023l$\020\035\314\212F\375<\330\001\370\245\010\234\030\026\020\307\330x-=\341K\2173\217_\235\276\032\352XP\275i\354\360\312{<[aQ\340\202\312\232\262\265\215\232\036\363\345Y\276\257\"\263{\206\234\266.\260\342\006\312\254=\375\272b-[\r\037\034\347\245\272\273\272kF#\016\\\363C-\267\253\317\263\300>ez\246\376\306\3437\300\335\202\264K\3029/4:n\334\371\317f\215\0049lm\233\363\326\252i+\333T\251\323\023\257\nN\357\316F:\247\2623\236\207\327m\233Wg{&\004:\366=\205\\\350%i\330S\003\007\034^\336U\332XP\264\236~9O?\026\330Tr\202\312\232\262\265\215\232\036\363\332\263}^Ef\367\r9l]a\304\r\225Xu\333\246\"\325\260\321\361\316z[\253\273\246\264b0\345\31742\333z\274\371\371\007\314\257T\337\315\270\315\3607`\255\022\360\216K\315\016\233\267>s\331\243A\016[\033f\374\365\252\232J\366\325*t\304\353\302\223\273\363\221\216\251\347\031\317C\353\266\315\253\263\275\223\002\035{\036\315@\024\201\016\001\003\004L\310E\3302\002\"aw9\026Z@\246\303c\216oo*\346XP\267O?\034\247\237\213l*: \262\246\254\255cf\207\274\370Vo\253\310\254\336\341\247-\213\2548\201\262\253\016\333t\304Z\266\032>9\317Kuwt\326\214F\034\271\346\206[oW\237?\000\371\225\352\233\371\267\031\276\006\354\025\242^\021\311y\241\323v\347\316{4h!\313cl\337\236\265SI^\332\245N\230\235xRw~r1\325<\3439\350}v\331\265vw\262`C\333\225?|\\\210\242\227\3558\004\262&\002@[\240\013h\202=b\203\026;\014+\370\212hh\343\256-\352\257""\022\302\205\312zy\345=<\333aQ\325\005\2255ek\0334=\347\312\263}^Ef\367\r9l]a\304\r\225Xxm\323\021j\330h\370\347=-\325\335\323Z1\030r\347\232\031m\275^}s\331\243A\016[\033f\374\365\252\232J\366\325*t\304\353\302\223\273\363\221\216\251\347\031\317\"rt\322\355\332\356\303\rU\260\307\013r\247\323\210\223\304\216\351Q,/ \022\002\233\372;\002\000\306\326:\014-<\2057\033\234v\325\275+\304\260\241tL\371\345=<\333aQ\331\005\2255ek\0334=\347\312\263}^Ef\367\r9l]a\304\r\225Xx\355\323\021j\330h\370\347=-\325\335\323Z1\030r\347\232\031m\275^}<\003\346T\372\357\350\334f\370\033\260V\212\274#\222\363C\246\355\317\244\366h\320C\226\306\331\277=j\246\222\275\265J\2351:\360\244\356\374\344c\252zFs\320\372\355\263j\354\357d\300\207^\306D\010l)QA+N\302\230\0308\342\366\362\256\322\302\205\244\363\361\312y\370\266\302\243\224\026T\325\225\254l\320\367\236\325\233\352\362+7\270i\313b\353\016 l\252\303\256\3351\026\255\206\217\216s\322\335]\3355\243\021\207.y\241\226\333\325\347\317\310>eO\256\353\276\326\277\231\357@\324\212\274\270S^ht\335\271\363\236\315\032\010r\333g7\347\255T\322{6\251\007LO\206\364\256\357\316F:\247\234g=\017\256vm]\235\354\230\020\353\330\300\004^\242 \007\303\357\374\003\337\375\005\367\026\371\361j\004\212\006\027\371\025T\375,\360\231\346a\355\345Uv\026\313\227i:0-\313\313\014\257\031\373&)i\346a\235]3\027\037\024\357\317\001\300\037\233$\237\2768s\310TX\307\047mf\201\212:\335V\247\235\266\252\332\241m\206\274G-\271\270]\215t\272x\246W\0348cV-z\230\n\213\216\227\022l\321\337l\030\205\226\262h\232\345""\301h\334\3537K\313\356\036\234K\020\r\370e\215\373\316a- =Z\201\262?_\262\336WJ60\306F\014\031\212G\025\305\357\006fu\006\006\005&\216\211@*\010\330\220\003\345D\002R`\212k\212S\210\34763\315\203*L\372\220\210\212\023\2474\347\024I\032\211+\t\314>\211\027\237\301j\271gJ\022\302\2033\330@\367\037_\320\205\366\3541\272x~\016\275\342\221\362P>\205\002\013\361V\017\304~\047\362\007\036L\207\344\301\rB%\370\210\310C\253\203l\363\000~.\335\336\024\r\343\352`\343\372\362\024UV\265\305\2253;\033<\221\252\221W\020\256P\002\003\225\030\231S\2018O\276\204\376([\260\010\371\020\350\200\347\207\363\364C\243\321\2321|\223\334\210\272k\003\301\211dg\321\253\300!\024b\321\033\r\272\272\211\323\361\375.\004\234\022\363a\212k\007\3232\003\303\306\234\223\370W\333\304OWV\264\r\047\376R\336\246p4w\267\254\006\267\1779\312M\273\257J\377\n\204\206W#\377\360/\3012\206\036$\034\240g%aMM%zY\277e\024X\260\211n\r\264 \251\262\306DVER\006\346\336\266YtHDH\211/\243z\212\230\211\226;6\215\237\3622\331,\017\323U\026\344\365q\365\002\262,\304J\330\271\210\024\\5v\334\204\223\030\257\362wxJ\324\3671\272\254\347TfT\0344\244\302\335|Fj\371\007\010@\214\030H\276a\2301\363\302\021\321*^8\360\227;c/\227\202\202\254\241\200^\263\0018\334n\014\314\316\303\216N\275\004\203$\312 \276@q\273\325\253\365p@\302\336 \033\366\310\327\253\007S\004\025\321g\323\332Z\304\320\320\033\273M\375[d\366\357\26095\300\036\277\341zd\3605&\340z\205\020\365\261~\347S\251\3513\245-\351zd\225\303\200\200\224\240\207\010\212\030*\250D\222\366\242T)I\021\037r;\3723;h\013\205\007\200\216\343# \360\352`\273\npo\262\364=L\341\n\211\240\216\351\310$\234\231\276\210\334\300J\344\353\333\354\001\255\353\216\005\332\036\327B\373hpu\260\302\006\270\343d\206\240H\364@\346\263\223g\014\344\301\2479/T:\200@z8\336pV@ L\013\200/F\316%\005\367\000\201G=\007\321Q\212\037IPB\237\245;D=\247\256h\251!\332\035G7w\274\366\242\035lW\0000\313\032\274\325\2021\350\323\356\373\r\t\250\366\021$\2445\345[/\240\230F4sXo\226\275\240\264o$\267\2136P\213""\342X\357\263\213\300\037\013eB\340\220\214\241\021\320\300P\343\230e\005\t\006t\323B\272\363\242\215\233\"q\240\035\n\004\020\350\004\201\320\031se\315E\023/\331\303\031\350,\326A\023r\327\030PW\n:\031L\202\213V\033U\225E\350\357\325U\202\375\362~c\000\036\207\307(s\200+\004X\327\231d\270\212\"\276\307\2672\344\3760\n\273i\0068\355\177\002\0359\352{\376[\037\273bE\025@\330\360\006u;\2503/\275y\037\234\366\036\252\242\234\271\230\024\246\373\371\301\207\0048\037\312 D\010\261I)\346\353\310\375!I\303\203_g\305\022\255\20529/\005\331\346\013nLH\242\3010\031Wu\332\351\267\212.d\031R\234l6\217\227\206\230\214\242\021\002\000\210aj\376T\203\313\356_\243\372\324\220 X\227\000\320\\\327\324\201SA\013C\353pCYws.9\000X\245\241=(\315\310\252\227\263\200\224&1\210\010`\270h\262\221\257\037\177\353%92\361r@Rdo\020K\034\375\352)M \246+\323i=\304<\n\211@z\013\354\000\250\314\221*Y\353G\021^C\177zb*\263\014H.5F\256\035/{\3134\341\272K2@{327\243\344\327\0023\253\305\366\315\271\256\215\276\341\307\302\355&\267\357{\247\232;}\363\332\212\321\252\335kU\031\025UD\025G\256\366\2014ja\347\306\305\200\302\021\215\235\267fk\345\354\255\355\231n-\2444\217&G\305\237w\3006x\243\365\251v\365v\202\355;t\217BIt\224\022:\356\205\377\203\223\2542K\337\330\240\311\344\246\235\364\374&\3115\252\350X\341\202\346\021=\352$\020\367\242@\367\247\245\017\317\016c\217\230\223\327\333w#\321|\233RJ\003\331\323*\272\215\203P\205\342\355\"\242\363\034\353<\033Y\347\363\250\271\035P\304]\210oU\201\264\r\273\r\272\031\3626\320\245\034Jhy\334\346\026\251$\200G1\216\003l\036\200\213\220\020\324\202@MB\2215&\220\rh\013<\370\n\262A\220$\032NM\2200g\342\\\226\330{\332\353\257{\340\020\306\037\001!\341\031\231\273\333D4N\270\343\341\330\037Z~__?\240\360\027\242\321+\032Z\252\323\221\222\236\037X\372\337X\013\326\211\211\027j\331qL.\3463_\222\016p\347L\306\004\254\225\224\222\274 \031\001\244Bi\325\224\2331\363\321\n\204\366$t\336\274\332\303\236\203\355\212\\\221:\243\362\274\204\307\363<\231Vm\211%\224br\220<\270\360\010\"a\231$\313\003\001""\274\350\352/\006\342\000\312\250A\265\322\233\037T\023\232 \247\250\2478\276\214\300\025.\253\345\305\331]A\034\205D\353(\225\242a\327\367\0220\244\214.\236\314.)<\352<\210\004D\344\024\201\310\237O\247\253\214\031:\276\204\356\022zs\2176\030F\013\200\262<\342M\021\340YR2\230\225\211\246NjT\2328\334\325\273\347\320|\341\241\010R\264L(\301\222\035,{\243\340\357}\220\356^4\274&\303\270\314$s\312p>ngqQ\037\312H\242,\024\357\327\274\342\201\272\236\275\315\376\342m\323\177hx\3707\300Vs\250F\037r\005\217\337\364\",\210\275l\276\372\270V_\205|\014+\203B(\022\022\243\233\217\213\262n$\030q\036\245\262\241z\314Eh\203\341\371B\003\007\367\0143\212q\2167P\027\021\217\245\235\322\373\215\263fse\302.\n&0\020\222o\227\262\256\233\345\371\213=\211\274\027\335\220\340b\310;\230p\376\252\311\207gj\370S\305g\t<\031\215\332(\242Ho\222&`\277DO\246\254Gh \224\324\317\226`\367\311\272\356l\266\003p\231\313_\205\3646\376\243\311\037\004_\005\360PO\000<\001<\0014\235\357fb\302\373\265V\375\335\356\343\326\223X\357):D{\301b=\352\303\275\326\r\237NQ\034\360_i\007*/\226T\313\224q\033\3463\266o?k\354\312\\\337\036\302b\326\302\231wL\323fk\314\323\"\256`\002\013\231\002\006`\330\300l\252,\202\213\323NZ\255G\023Ov\017_I\277\351\267\247b\030S\316\211\260\227\0335\257p\334^\244\r\222X\213\205\327\244|N\207\221\003\016\024,\"\302c1\200b\322o]\341\334W\215t\310\322\31010\210J\231\2167\027:\372\326\325m\213\322]\016\217\237j\341\223\225\020\324\210D5)\003Riy\304$O\026\250 \014\212)\"H(\241\")$X\2777\250\017\314\334>\010h8\303\333g\305\354\365p\253\262\3038\347\003\030\206\006V\264$9\236<\261\261\314\222\363\311\227O\246e\262\373\362\346l\317%\274\317e\215$Fe\365,\007\331\331t\206\356\1777L\267\335\256\244=c\200\260\240\324\004T\260\333\220\225W\005].n\2409\253\"88\206\352\367QE\325\247?\315\374\367\220n\005\210p\336D\225~\r\200\354q\362#\007\320\323\233\"\220@\021w\004s\024\002\360\227\n\253\211g\005\212\212\340\305\206\254\006\317oh\235\257oi\332\247j\366\2719;\267\047I\270\\\247\230\363\225\200""\274\337\203/YN\3328\354K\252\303\351\351\021:\304H\001\326!\007\254|\307D\004\025\333x\351\220\302\374?1\231\231\373\013L\234\374bE~?\211>{gWND\343\323\004\026mS\037\031\020\332\266\316\377a\267\275b\240\205\356X \227\047\"\307V\032\003\211\021\305\271,\342\t\n\236!\007\n\341\027\007\002S\047X\314\343\001\203\307m\362P7f\261\207\n\315\275yrw]\317\033K\271\343\221@\347D \0078\204\237d>\217?O\351\003~\305F\276\234\335\321+\240>\336\264\350\327\324\344\336m\2011,\212-\027\312\024F\320\006\206\350\r\n\213\027\307\265]sF\023\222>/\222i\275N0\362`\007\231m\271\352<\354M^F\033\312\307<\354\212\332\035YJp\"\213\025E\273\033\254\226}G\202\264\253\204\264\021\034+\221$\204\210\360W\303\t\2055_E\320\234\300I\n\311\020c9\002\302n%\271\321\241|\246\0248X\206\317\250G\033\303\n\360\246\004]v\217\330\307\271\256\234$W\301I\347\325*\332\047$\365\322\260\330\207\3377\033\246\302\271\372p\r\047@4\332\342b\375\204\261\270\233\320\334\2460R\350%\014T\325v\336W\000\250\264\330\205_\037\200\007+Ape\301\200 \314a\027\356D\231u\260\320\337q\343\363\020\"\013\257\223\321\350\303\254\027\235\375\234\003mj\353\3301\047R\006Mv\352\235\220\265\250\220\220\257\r\307{nf\307\014\266K\027\036\013\2721\266p\r\301\301q\236~o\324\032a\022\343\016k$\204.\261\273\344\214\326M\342dSb\"\256\344\224\242\357i\266ZW\332\255\3232\004\306\212c\352{\370u8\300\265\033a`r\353\354\365C\233zp\276\244\304\240\241\267\276v\301\301\212\366{\367f\307\010U\253\270\372\255\355\367\256_U\252^\224\367\222Tx\047\003\200\337\"rT\010J2z\031\246\241.\224.\221\010""\016\224/\r\032,na,\317}C\276\211\242\022\212 -bn\232\343\343j-!hw\373U{\324\010\247z0;\303\336;3Q\233^i\350\257\264\335\256\371\260u;\323\\\253\213\354(\370\"\213\262\374\312z\230\366\237\320E\026DQb\250\274\3705\354X\275\016\035q\276\315\223\236\330\264\335\307j~k\017\240{\367\374\317\314\376\217\366:\322\337\307\210\210\233|\272\322\217\263Z\326+\366\373c9\343\303\247\231\224)\022\276\376(\033\260\257\220\036\301\353\252%\026K\330\376\317Q\004\215\2148\214\217^\267\014L`\376\202J\222\276\304\243|S\355\205\252/\214\006bRt\351\327\301\204Rb\254C\325z\314\204\021\213\021`\242\300\021X\261a\030\250\304Y\245*\203$AH\014\314Mm\332B\210\003Ai`*\337\036\031\242N\242\2216L\004pZ\301e\374\304\330\025\352\025\212\365 N\256\3570;\337]\354\273]7\324}\257\267\361\277\213\274\357\002\320[\250\002\362*\323\264\n\267\201\007\242\250`\276p&8\342\"\006\031\0178\331\376\047\207\347[\331\227\204\360C\311Na\316\260\312\313\341<\016\376>}\001\003S\320 \371[m\336\244\206f\\\204&\313fl\273\177\255\255f\031\317,C\322\365\310H\004\364\233\260\047]\240P\340\353K\316\203t\326wC\216P\036\273\027T\303|\352\034\030*\200\263\025\007G0\315.\314\220R\005\375,\276\000\210\017@\010\003 =\001\023\336=g\251UA\373\005(-j1QcY\364\222\243%\255\206Y\252\2532\230\201\222\252\361\307\007\342\304J\207/u\353\375\347\021`-?\277\314E\240\264\347hj\t\010\311\312/\327\346O2Y\325\005\005}?4\360D\337\264\211\277T\371l\337\333\353\362\372\353\231\275\236\337uBD3\365\2421\3442\203:!\222\014\364-[>z\340zn\237d[\351\266\333^_\247[R\026\235\272\031\213y\361#v3\2706\257\034\275\344\350\210\206\210\002\007\301\2411\355\010\273\014\326\320\005\225\312\002a`\031\203\302\004\265\321\352ID\270X\000\237WX\232U\207\216\004\231T\316EM\302\213\250\006\236\367\251\3241\027\362M\366\245-\343\367G\340\360\354(e\007k\332\377@\002\20246\005\0358V\204\352\030\237Vu{r\244\226\221y\027(r \024r\317\233\232\3145G]\014fUR,\004\246\265\233\037\227\016t\003\260\000\212\035\200\220\354x\3717N\252r\303>\315r\361\225\326\314\205\020\301\025=\241:\376\047m\310\353X][\334\353\013\333\203\353\217\206\247,9\370\245U\206\362\235\020\374\253\333\242\370\234\240\247\233|\3007\0144\265\244\014piMBK\224\213\022\325\214,5/\301|`M\354G\323\216\242\031\326z[\306\277\307\252~\254\334\364\250\3207\026\267\004CUL9\337[\026\327`\354\272\241\215\353\232\"\267\026\340\335\246\253\030k&\264\231\205}|v\0161n\033\014\2407\034\031\006\3279\221M\233<\311\005\277m_u\255\276f\346\0073\341l\020\251\027\\\001\320\035\307G\020s\364\374\376v\334t\020c\006\000U1\320lff\204\"r+%\"\363\351\207\0335\347\341\243\317eH\332J\300\257\227\250\235~\257=\372z\241\322j\014\225/\031\202\000!\364R\365\316\026\010x@\n\310*,\0173\035{\261\276\352-F\231\346\356\302\374t/\321\340\331eTu\274R\240g\004\263\277>\326w&\302S\267\256\353S\345\023\370&\264\274V\304\216\363\346\305\207o]\251v:\014\227\365\265\265\366\025\373;Q\355<\274\204;\003\261\013:\005\034q\357\206|T\031y\254\233\225\363\312\215\345\234\203\245g\272\017%\370\235\304\010w \021^\340\010\367<\236\336Y\2710\227\004\270t\354\212+z\001\001\361\034\221\030$>\017~kG,\306f,\016NLD\271\247\206Bq\007\310\307\033\327)\353\373\006!\t\030I\020d\204$\030\016\350to\231\350\216\200g\346\001\007""\353\264\020\367\207\276\2362\231\373Z\276\354\377D*\231]\311\207\"g\354\020/a\211\321\"\022\010\030E\203b\n\025$l2,BD\363@\262\021bE;\007\327\002\240\354\276\243\251\351=J>\256\303\207\363\366n\314\376\3773[\3711\273\216\032\014v\035\n\047\245\000\200\372E\201\351N-q\300\346\003\241\211m\230\032\230\033\256c`\007\033\344\247:\023\244%d\224\204c\307@\221\330,\021\017\203]\004t^/g/\364 E\344!\372\203\266\335\022\363\333\023\303~\300\351\333\tu\223z\354<\224h\024<\3520_:\261<\343\234rM\200\355\331\342\317\311}\250\260-Z\0132\222N\210\245\230\033\306\204\036\210!\244D\r&t\0204\272];J\231\361\036\303t\034\257^\346\377\236\213D\217\034\314\"g\025\202g\006\016u\316\353\352\323\337t\263\006\032\211,\230\231*\304\205\232\373\022W\020\207\021\304\0029\224@\364\240\241\351\005\372\027\214\343zA\317\321\233A\277m\006\222\223<\370\252W\nV\027\005\223\004\302\336\374\363:\251\241F\016\205\216\200\332u\265\263\025j\364\020\222w\227]w\262\334\366\271\264\245\344\271\374\277\255TGwa\263\013\365w\370\014\315+\257\331\371u\277\223\365\314R f\254\206D0&\033N\256\261\261\244^Z\007/\226\000r\371`\030\303\032\000\306,hX\3221\356\243\035\233u_\001\353\003\234\367\221\233\272\206\350\230\360\204c\337\0060\002\027\000\204\310\\\002Lp-m\255\210\010\037n\203\310\374\023\027\355\030\332Q\314\313\371\000\200e\005\371\006~\330\302\277\210a\303\261Q\002=\034\252\327@\302\037\250~.}5\364\000\201\345\364B\243\204\013C\214\326\235\032\314\014f\306g\377\255\323E?\326\177m\377x\020\037\336\002E\004$Dz\020\376\n\037\246\255 aId\207\235\013\355B3\375_\226*!\377G\235\347\314\004\373\300\217\361\200\237\343B\027\200\201\037\346E\3640\253\241\204\375t \031\304\n\261@?\356\375\333(?\270\000=\213}\331\371\364\245\374\377!\222\020\024M\260?E3m\026\004\003t;~\210\010\313\222\331W\372\375\337G\363\377\351\322G\n\274\021`\002\004\227\323\t\376\221\301\352\016 \306\300\001\343\217\257\366\237\303Q\360\303\307\306G\036?\020J\275K\324\2050z\223RT\343\326\002\007\360\330gF\002\211b*H\031\301\034\242\177\313\321\373\375\177[\331\303\376\275\271\337T\201\001[^\035\047\350&\242\0210\240\313\335\242k\312\353\277^8\210\240\347\013\264\325\363\373\277\303\217\334\3670\273\205(\303\244U7u08o\265\340 `Z\231O\014TK\\\002\005\256\001\003;\3635\325\320\366\277\245\210Q\020@\235J\257\337\n\213S\362v\216\355\330\364\275\257\201\023\334\371\370\177\343I\364\007Y\210\215\362\374\253\375\370\265X\327\357\306\200\023\0307\365\377\243\374\241\325\376\334]S\212\3630\0208\252\316<}\212\310\004\013\314\0243\205Hv1\001\002\332\247\366\206\006\002 Q\325\341\353u\317\354\"\005\212R]pQ\361v\224\377\274\356r.\243\010\002\005]\356\377_\366\004^.\267^\317\033\205\177\272,\302^\213\206\026\273""\017\364\263\332\377\232\007u\364\202\021\353\373\275_\270uN\247\361\354\230\366\213\035\200\036\312\262MD;J\026\327\210fk\354\000d\210\232\242\257iL\335B6\305\244\250\251\246\026rE\222ED!\373\376.>\325\035\2302\272\235q\355\237\312/^\322\331S\224\265\\\002\005\375\264-{w\345E\355\332\300 dSx\n3\255\307\330;>\332+\337\210H\204\204\204#$\220\221\221g_\276,\215V\035\213\007\201;\210\037\230\004j\335\300\n2\205\204\227whR\324\247\307\353u\373\024\007\357!b\204\356\362\200@\276}\345,~tD\355\376n\366R\256\312\332\365\t\357\000\026\326\206\002\270\377-z\030&\021DiC\3456\275\316\331_/v\222\301\373\321\365\221~\005Lp0\304\004\017{\273\360|(\367\256\"\007\301\360\332\254\202\345\254Ff\002\005\202\311\020K\301\245M\271\251quM\224b&\235\371\360\200\201\017z)9\036\370\215\203\273c\242\001\210\373\337\017\277\215\007x\314!\337\022_@\222\311vw\201x4\222^!?k\374\277\271\343\237\216\310\001\370\322\013\001EF(\212)\"\317\232\017#\240\205\276b\327\217\301\203\370\005\311R\332\356(\005\014u\000@\0202S\273\333\330H/\376\021-\351\240{\376\371}\365\200|\266\264\367\302W\303\370m\337\270Qb\022\251\356\235\236\341\332\332\204\205\253\275\333\271\356b\177A\047\203\357^\n\006\035\341\370(\331>\025\"\006\243D\014s\374\375\227@;\335\356\361\334\273\225\350#\360\337k\363\302\261\252\357\006\251}\213E \227\321\230\217g\273\357/\371\005u\254\365\332\356wq2d\3566\020\374\360@\273\336E\310\013\026F\005k\025\343\212<*q\330\352*\\v\323\214G\356\217f\335\274\350Dq\301\004\t~\047bv;h\345%\250iqC\000\206&\256\252\241\0208x\200C\255d{ \\\213\340\334\227\026\352\342\037t1\242A\265\345\375g\255YV\n\231\200\\\010]\210\323~g\345\202o\200\201\323TB\236({\240\022O\3264\202\037\315\242\254\235S\261\305p\202\220/\003\255\222\224Q\017\214\315\003\204\345\000\005\255!\323\341C\365X*u\372\266QR\000\201\001\007\350\375\265\330\312\326\227\255c@D\354\026\315\017\331B\027\342\374\250\275\217\227\271\240\235~\327\312\215\270\320 C\026\000\007\224\317\022\311PT\177\235\345\261\225\332;\226>P\210@{d+\272\001\201\\[\021""\355u\277o\025\224\227^\r\230\217\232P\275\333\273\352\014\210\241\177p\241\314S*;\272\2200@\247\264\304;hu4\017\314\014N\"q#\047\347\047p\355H\025\363\222\226\372\007\263{\224K\357\277\264j\325a!\251\003\251\254{U\327\355\"\317\224\277\214\234a\026\377,\237\254\203n\324T\325\203\220\220\\\217|N\356\261\3436\007\027X\361\206O{\265]\227\006\260T\347\235\273\273k\332\301\027Wn\257F3:[\215\210\331?W\310Hu\366=\260\t\330\016\312\203\343\255\245\301\202}\202\353)|C\345\312\351\227\311`/\267va\357#C\220\250^\2440SPkW\273\361\232~W\270\367\032K\373\251y\332\013\211\"\324\274\002\000\201H\024\235\260^\355\310\260\271\027\272\270\201\347\003\361\365P\342\260\005X\2566N\271{a\274\200S\0224\001@\037\037x;\001{\030b\037\340p\304\366\331Qk\245\302\226\010]r\331\235y\326\210Xx\343]^\272\026C\261\251\325\202|i\026\244\010I<\243\333\006\036\344\016\262\007\372P/\t\361\323\361\314x\302\213\376\267\025%\272\320\311H\266m\251\002\310\030\334e\014#hC\364\037pN\237\t@\177uu[I\017\330Y\261\024 E\036\277\310\203tm*\376\265\307\030\224b&WY\250S\362V\005\250\221\2574\352\300\343\371\317\356\023\247\304^\022\376;\026\220bb\215aE\362\340\270\271\032F\260\342%\345\262\203\360\201\354\373e2\252F\202$F\034(p\332\320\240\240\257\020\215\347\303\353\243\003\330\047D\236\322\005\202\210\317l\002\302OiK7\030\r\014E\017d\370\375\313\337|\365\240{0\365\351\002\203\302\023\330\227\240\336\245\345\301xA\2627]\352\ns\017_\326\n\373\362Iu\037\022=T\366\030\005\300\267L\032h\300\372\205\"\364\317\275\375\003\241$$\350\320Q\353\017\024\243\030\210\331\264\003\306G &;\346\017\035B\363\353^\213\301\257k\276}\242\364\203t\013\320\275\315\216X\334\205{\277\004\350OK\367\007\245b\371x\372tz\301\353\247\340\211r\007\256{8\032\265\371\001\202\005\206\356\367W\326\017]O\203\243\354\337\207\352}{HS\354?\n>\330\227\031]\254\261\201\216\000\340\034\357y\007\330\375\047\356}\256\226\004\357\206\026\253X)+\340\014\224\367Q\277\246aK\211\034l\027\243\r]/2{o\352\000\366\370ok\340\362\355\303l\232\034Pzau\335l\334L\265""\020\002\210\006\254LL\202\255\016\237\227\373\201\357\3746\207\314\364\355\370p,\027bu\002\340\375LC\210n\362\223\036\261\020\324A\270\317\001\331\260\374]\263\253\306\201GW\212\212\371\220\036\301\020x\330`?\210\216]\200\273\361fj\325\024\375\032\361\013\276k\273\nw\373\236\374>/x\356\207\332\206 \367`w^\356H\030\344\\\352\325n\273\330G\254s\277\037h\3557\207j\017k\267\211\334\312\t\3637\317\206\356x~1\0177\275\336nS\274{\305#\332qU\356)\2029\\\361\035\241\234AHG\235\360!\344\037\337#\326E_\336\2348\003\347\"\247\030y\336\177\355Sa\365\323\336~`\017\014<\001\001\212\310\211\337\345\021\0023\273\035\337s\252\247p\273\323\000\351A\177Z*r\240\222 =l#\3632A[\360\000\274lu!z<\201\346\255\365\203\025\253\010@|t\377\022\250\353\202\367\321{\001\020~\234\005r\222\t\333\360\224~A\366\303\177\305X\362\207\341\031s\225&\237\312U\374\345\\\206\n\031\272C\345\017\277\371W\346.\010\365/:\016\373+\3137G\253\343<>oZ\375_O\322}\027+\037\237\260.\237\371 \007\342B%\211\n$\340\031\303\224]\253\351?\017\324c\372B\002\372\220\234\017?\3161\016aaq\357\210\372N,_\343\003\351\274\005#z\303G\271V\311Q\275$\247\365\237Y\373\371\177_\367\274\224\274\027\t\010B\005\202\030*\\\205Z\237\232u\357\274\374g\341\374\237h8\313\"\334\226[=\365\242\342\202\325}\317\225\363\237f\036\343`\017h,\255\276 \n.j\240\024~\033w\276\337\313\364\220\264>\375!J%?m\013KA\276\307\340\374X\340\377h\374\377\340\221\372,\201@4\177\030\026\226\215\324n{\341\337\336%\037\346X\215\210%\240\275\333h\036\345c\"\207\260\200\037\334\354\355\244?\312\222,\202\231\205!R\037\037\332\363I\002\245\022\262\245\006~N\313\371\"(T\026>=T\310P|\241D\275T>\204\001\343P\037D\025?`\202|\000!\333\005|\300G\344E<\204\004""\361AO\365\212\231\020\003\030\253\276\210\357\002=H\017\374\305O\265P\364\304\037\320\002{\352?\240\003\355\002|\252\047\327\020\362\020G\254\254\244\307\346\031\031\335)\353\000\200?o\257\267\376\243\324{\347j\357>\317\206\217\033\343Jrpf\353s\005\317\301\321u5\2339\322V\277\255\224\335\330\256\036o\321\377\2158|\016\2360\356\253\347\360\275\335eMN)\372\237k>\024p*\202.,z[\262:\010x\207W\210eX\242@\302\007\017\006}\354\336\266\2138\275~o\035\271f\370\341\326L{\032\3354\004\003\217\303\330\320`h\207LR@\311\312a\2731 \230\220PbEI$n\001\003% \010`\213\351\341\215a\2073\321\377\034\243\345\353\254\372\r5\264\271\304\326%e\274\347~.\307L\217\343\273R\245f\253I\360\234\340\2527\017\260\211\226fZ\355\317{s\347\352\313\010\246$\217\227\017E\367\237)\201\227\353>\256M\360\n\345\340\031\231\213h\n\211KJ\200\332E*QPD\021UQET\026E\025\025UV*\243\005]\222\312\247\240/\224\237\313\177-\372\342\244:4Q\200\326Z\210\027\204\320\216\020\350\236\001\314\347\231""\311\314\344y9\023\236,\2061}i*Z6/.\t:q\201\212\256&\275v\246\206\265Q\352\326e\314*\032g\n\002\200\222q\321\003\nlq\354\334\355\326\363\215.\271\326S9\343\"\376{\275\350\020\014\305\r&\322t\210\250E!Rr\201\247\031\026\333^R\356\355\306\024eGT/Y\222\241\312c\n\305 \207!t\363\307\024\326\267\353\207\270\035\317\213\010`\2440\311\204\310\262\324e\231AK0\314\032Y\221*J7\033\213j\331m\021\032%\262=\370\354\3709L\353O\207t\336\257\207\361z\327D\350\335\177\260\004\201;q\230m.v;3\226\025\021XE\201Y:d\333\214\213m\251\312lLM\261\023\021t\206\255\341Y*@\365\001\000\347;s\301\234\357\243|P \030\000\201\332\265\260p\254\000@\231\345kVTZ\026\212%\321{\351\047\213 v@5\307\027GZ\326\260Ci\255\341\323\247I\234\033\220\310I\200\033\201\220\014!\220\230\030L\014\231\223\0146}\343A\001 \357\347\3152P\254\342d\223\3379\365\002\2604\203!9&\007VOx\242\214F\226R\326\323\022\304\302\214\241E\255\214S0\303-\224kQD\255aZ\366\3777\243\236\237X\020\017\034\232\301S\314T3@\326\006\307b-\200l\005\233*\026\021\260\266,\202XB\311k\0006D\262\331\262\ta\013!@%\"P\330\260\251e\013\005\213\n\330R\303f\312\245\200l6\262\251e\033\tB\205(P\224*P\264\245\213(6\004\260\330\260\te\013\001b\310&\000d,\222\024\002\201\231$\014$\300\314\0002\023\006\326\000,\211`\245B\224),YF\312\026[Y\020\262\005\200\241B\224(\0136U\260\205\200\265\220K\010Xi\000\240JJD(Z\n@)Zi\000\245(lX\020\2626)V\201\246\305\224\013\013a\241Z\006\222\220iB\232D(\002\202\220\n\020\240\240Z\004\246\204J\020\240\240B\201))V\220*\224i\022\202\204i\032)V\205\240\3736\004,\205\203\272\310%\200,4\240P\005=\305\205l\245\237\252\302\266R\301\324X""\026\312\333ll\000Y\013\037\000\262\r\201\261\314YV\312\026\300\001H\264\r\336\270\211d\013\tg\351E\260\r\204\261\367\"\330R\312X2\001\237\211\254\272s\336\273\r\375<\320m\243\017\250\004%\205\260\2057\206@\304}/\332\177\027\317\324\377_\245\333[\357\316\372\037\3642\260\301]\206ffk\255u\244\217\373\036}m\370\333\372\333\3627\365|\262~H{\315\371\032\367\251\325&S\247\227\323\343w\323\256I\345\203\207\203=(\232\223\r\366K\303\207\252w\273_\300\243\270W\240T\317S\262\247]n\272\201\223\026\007\327\307\235\364\256X\206}\367ydt?\374]\311\024\341BC\233\364\007\014"; + PyObject *data = __Pyx_DecompressString(cstring, 23775, 2); #define __Pyx_DecompressString_LZSS_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (25616 bytes) */ -static const char cstring[] = "x\332\335}\313C[\267\362\360\r8\267iCzC\233\244\351\363B\3334\241y4\244i\372~\0300\340\006lc\033C^\245\016\030p\0036\330\006B\232\266w\231\245\227^z\351\245\227,\275dy\226,\363\047\364O\370f\244\2214:\347\230\230\304N\371}m\260\244\221\316h4\222F#i$\275\366Z\037\374\227\\\316\026\373\340_\272om\273\264\234\317e\347\373\266\n\351\265\265L\241/]\310o\344\026\372\222\301\211\360\320yHq\277X*\244\347K}\331\\)SXL\317g\256\364\205!T\024x\020\230[\310,\364\225\362}\305\354\352\332Jvq\273o\243\230\315-A\324Bv3\273\260\221^\221\270\372\0267r\363\245l>W\354\273\277\335\267V\310C$\246K\013D\033\271\354b\026\360\350\\\372\026\363\205\276b\246T\2024\237\315\347s\245B~eE\342]\333(\365-\244K\351K*^\243\026\250\326\322\205\364j\006\320\000\361P\220B\246T\310f61Y!S\334X)\025\241\000\032G\037\240.f\213\245b_~\021\270\361\353\257\013\331\371\322\257\277BH\340\372\365\327\334\306\352\3326\000\322\205Bz\273\330w\001\250\302dk\200:]\2742\002(F1;\374\244\200\360\374J\272`\301\007.\365\345s\031\201M\340\020\005\313\244\347\2271\307\374Z&w\251o9\273\264|\251o%\277u\251o~%_\314\010\2727\363+\033\253\300lQU\363\351\\\337\375\014\226\267o+[Z\026\330J\313\0020\047\0302\047\351\2730\320\007E_\316/\\\351\233Y\316B\036\0172\333\300U\021y\2418\000\236\014T\017B\212\222\221\305\276\255\345\214\344\333|Z2\030\361*\206b\033Q\314\207\257d\315b\002\231i\016JX\304\272\204\206S\332\276\362\232i[\363+\351b\261o)S\302|\262\245lz%\373\010\020 \361\300?\273A\364!\032Q\346\374\032\206\201\216m\010R\0033\205\353\313\337\377-3_\022\355O\266\037\310\\P\013\324\345\267\220\264\265Bv5]\330fm\r\270-\020\251\246B\245\366o\031\337\310\022\\\206\377x\316\237%\203\227\025\306\313\272y!\312\313\371\334\n\317\r\277\274,qx\353\206\007\006X\"\3659D-\025/\334\341\311.\335\353\273#2\024qs@u\2760\367`\013\003\367\006$\261#\371yh\047\271RZ\260\022\033W\223\017L#\312\344d\027\204\316F\365)0\215\352J\317\025K\351\034\364ADV\310/\001\272U@?/*f3\233\246\026\260\230\277d\265\003\310\314\335\001\251id3\305+\206\265\227\211\335\227""\241\0026\n9\336\201m\016b6\371\215\222\2500\325\310\204\234B\301%\33394_l\346\231\\q\003\220\252z\024\355<\275\262\205\215f\023\232\336\002!,l\344l\376\336\033\350\373H4\374\242\247\272T\023\001\n1re\361\n\221B\270\024\267\302\304\254\003T\234\225\247U\373\373g\252\377;\007\202\250\357B\346\341\032t\007\350U}\367A\346\2408\201\236W\312\027\266/\365\245K}+\231t\261\324g:\331b:\273\242z`\246P\200\252\235\317/d\372\372r\231\014\n\360\013i\374BHd\300\006\254O\243\220\357\213\244#P\307@\3266\t^\200\345\362%\225\323\300\271\013\013\331\342\332Jz[\264\201\001\240\353\334\205%\030A\326\006\240\211\237+\236+^I/l\"{\300\007E\231+\244sK\231\363\210e!\263V\310\314\247\221~,\364r\032\021\367e\026\027\241L\337\364]\270p\2568p\001\263\0059\213\034\035\270P*d\240\253\027\322K\330\332\007\006\006^\273\324w\251o\th\271\362\3717}\337\377\030\354\203\366\221\205\026\001|\030D?t\205U\201\263\270\232\317\227\226\241d\301\221\331\270\312h\003\253\355\376J\206}\225\305Q`+\367-xH\244\024\251\245\347\240\267\303\307W\372\022 \200\317\203\357\274\350#\300\257+AH7/\373^Hp\365B28\027\234\230\210\016\317\205\342\361\201`\216Z\260(\262d\325\345\342rv\021\312=\224^\350\213\n\221&>\032\n\216\314E\207~\016\r\047\0070&\246\345\214\212\214\005\343\301\311\201\241\215\225\225\317\2062PG\261t\t\242s}\0270\224-.\367}\327w\365R_$\263\001\003\366J\337\367\030\300\304\030\363C\337\325\201\341t\016kn5\373\260O\216R\202\357r \033\316\347\026\263\205UY\016\215\367\342g\227\257]\275\n\230J(\322\261Y\314\313t\370)\214a\205\225l\006\305\215H>0\222..CeNds\231\221|\251\244\275\033\310\345\320\3035\030\005s8\020\364M\346\205\314\rnf\24023\315c\264<\212\000\331\243B+AV\214NG\206\347\"\321\344\334ht:22\240Sa\305\246\373@[\311\244W\005\226X\330\216\313\271+}\014\033\252\013\373X<:\035c\350\307\201\203.\272\244\366\200\237A\345\203.a\2067D\020\216\304\246\223\002\001\264\002\010\205\223a\030\355n\207\006\344g\253\033\320+A\n\257\345\213\360\335\246DV\374\006\244\310\306\342bv>\013\234\350\033\227\235\213\320%\246GG""\303\303\341P$97\036N$\243\361[\200\n9\016\0143M.\034I\206\342\221\340\004\266\272h\034R\010\271\3277\016\325\013\345\225)R@\310\310\334x022\021\322)& \263\276\344\366\232\235h\002r\232K\336\212\231t\246=j\256\362\017D\343\024u\223\014G#>_\215\347W\0262\005\237o\306\243\023#\241x\363/<\264\361\317l\032\315\330\014\341\r\251C\336Lo,\256B\335\007\027\322k\310pWeNd\357\027Pc\300\352tW%()\242\"Y%N\206\022\301f\250&G\303\2400\273\005\313V\032\207\245R\266 \264[P}.C\226}\303W\"y\327\347}\027@\241\201~P\332\036\210@\217@\202\022\033kk\371B\211\310AR\022\323\261X4\236\014\215\014`|&\227\337XZV\302\030\225pT(u/h\336\200h4\216g\346\363\2309\220\373\r\364m\320\361@\026\255\346a\360\274\257\344C\t\360\246\227\322\331\334\025\226!\250\016\240\035\300\200%4\217\3427}z(\202D\0319x\014\213\211\205\224\364+\331\373\220K)\003\352\003P\006\032vF\2140 jB\261\313\327\277\272N\303\036\212B\030\3666\356\013\3551#\206\264\373\033\331\025\320R\372J\320\nPs_\354\333\316o\210A\013\213\273\206Z&\373\000\304uNh\311(\267\317\013\201\047d\332\034|\016\254>\017\"\030\006\035Qw\360\365hz\245\230\271\022\335\0005n\361r\034G\246\276\020\020\022\206\031\315C\301\273(\364\344\350\350\\<\030\031\013\315\205\"#\300\314\221\320\354\200\365E\242\224.\224\232}\223H\006\343I\363\325~r\003\276k\"8\350CR\337pD\206f\r\352\027*\326\031;2\227YJc\351l\250\22256\364Q\246\220\217\352\261)\215`\020\025E\320\363\036D\233\rY&B\251\352}\027r !\261\005\r\260\310M\354\202b\002c\2000N,_\206Q\037\047\214\271\022\301\213\240\010\201J*&\0004%\2211\305o\264 @\257\032\351\362\371\225\001h\302\303\343\361D\370\271\207r\370\226\206r\360\231\241<\201\023Xw\247\246\376Jj\017\237\313\210\231 M+@\271^\026\255\001\247\3259\2514g\212\305$d\251\244%\210\206\350V\256o$\263\230\006\025\325\235K>\337\267\212\332N\363\236\225,d!\207\r\030\270\335\337\026\262k\373\216\260\224`,\003e\047\332\2379*O\347\036\344\200\201r\200\261\002\242\261NGnF\2423\021\241\342Lc\307\2039\001\250v\305yY\271\200\016t\211e\255|\246P\032\243\030\004\225\257\210#""\\\032g\273P\023+\331\325l\311\033\013#\265X\213\020\3213\231\364\003K\047\371\nU\222t\337\026\300!\r\252yX\345X\275J\025\231\311\300\214\032\231f\027j&\213\003\nTDBh\204\236\370\333\320#.O\244\227\366\341\313\035{\372p/\275\2600\007\r#s?\263\224]x\330\227\273\237Y\311`\315\315Ke\213Z\0055\"\335X\362X4Pt\267\347\241\022`\006\003\277rB\200k\036Bt\323\024F\210*\302\265\006\035\023\022\236\203F\241\005\374\262\034\336\327\3620\225\303\226\007B\r\371\240\006\031\310E\214n\227\204\200]\310gd+\236/\344\213b\355\247\220\237\207V\332w\037\265\037HF\031\025\227qq\004+\234\360<\223B\220\022\330\00139\374]\232\2273\005\271\332\201}t\253\220\007\016.d\2011E\234\344\361\370\225Ln\251\264,\221-dA\373/ \337Y\002\024\374\252\373-\210f\233\265\024\251t\237X\242\241\324\242SJ\235V\314^\245\242\233\000\301\220)^\0228\316\025\255Y\236Q\031V\263\305\242\\\013X\337\020\243\265X\037z\220\331\3065\251%T]6eCER/\017^\005\365\372*\346\001\276\201lQ\226}\001\304\021\215\306\337\230u\022\242\r\n\221Y]+m\013z\257\314\315\3038{e\025dA\226\326\205\344\004\r\252\020\344\020\214\372<\331\206\354N\256\024\320\317\262\367\257\320\270\215\214\225\000\361\241\364\346\013\320\3403\013\270\250%\001\2225\344\027\314\221\376\3426yJ\313\0059\r\224A\230\261\342\004]F~6\247V\003\257\254=\314\022h>\277\272\232\3171\000vz\026\224\255E\000\224\220cL)\272\205\367\371\340ppxx\010t\324\204r\347\022\002\205+x\005U\035\234X\317-fWV\202\303\321\004\376\351\264\321f\351t\n\377\370\221\340\010\376S\251\264\317\235,\232\030\026?:\241\361\273\223\306\341\237N\026o\222h\026\047\247\370\247S\3166Mj\2224I\241\023\370\307OL\004\243\301\250J\024\365O\024\213\302?\225&\326$Q<\032\215\210\037d\007\271\352\033;\350\363!O\350\237*\021\216\340\237Jh\274\256t\311`\004\377T:\343u\247\213\303?\235\252\t\177Sc#\241\224\374UIy\300\223:\026\017\017\207\224k\276\340A\3277++\303Bn\047h<\030\022\355z\210\267\356\241\346M}(\224\014\342\237Ji\274\256t\321\030\374S\251\264\317\225(\277\260=\222\377-\213\356\004Hit\023\313 [\320\223\312\024\004p""x8\014\377\350{\343\2631\r\217L\\\033\216Gg\022\332\243>p\205=\237}>4\021\034\276\251\276e!\203\300\013\364b\201\211Nx$d|\354k\013\340\375r\"\034\t%\222\361\360\315\220\035b\030<@/\026P\340\025\001\344e\337\333\020\357\3078Q\200\346\235\200t\343\3560C\343\003\366\342\232\031\017\047C\t\230\036\207C\361\204\007\300\260\371\301=\350\202\330\022\243\221\320\310Pp\350\226;l\220\371\201\275\270FR\301\310phh\"\n\225i\007\031&/\324\203h(4\221\304\005\000\3465\010\\\020\357\307\361P\360fp&x\213\373\331\347.\220\347\373\341\211(\324\301\330d0>=\024\275=\355\205\030\\\376\021^\214Q(pp\002Y\227\230\001\361\354\003b8\375c|\220N\343\232P0\231\014\nn[a\216\316\013\366\340\032\t\306oBY\246G\206\243\251P\334\0030\330|\341^t\321\237\303\344`\213f^\206\311\206\370\342\260S7M\031\017\216E#\243\023\267T\266<\314P\370\200=\270B\221\261\351\211Q\250R\35678\334 \357\367\251P\004\242Y\311]\020\206\3137\242\031F\033\233/\246\375\260\214\005c(\237\360OH\005\037\220\301\327$\306\2134\036L\201\324D\251 9o\003\030B?\270\007\335xprR4>\3511\237[a\237\317\"c\242\017F\254\000\377\334\005\363A\021\017N\206\215\047\036M$\354\020\307\346\0066A\347\376\244i\352\360\330\370\014\360\207y\331\2476\304\347\343\2337\2037C\3067\031\035\261\002\034\225\013\326\014\231\347\223\246\351\243\223\300\327Xx,\024\215\270\202\014\207\027\352A\004\r-\222\014\017\007\047>WZ\202\013b\320\371Gx1F\"!!\025\245\207}\317\303>\237\201TK\206FtS\264\001\034\215\017\334\203\356fx\370\246\224%\344\033\272\205\"D\250\000.\210A\355\037\321\014\267\347\273f\351a\334\035\t\305\207\242\311dt\322\02548|\240^D\321\310\330Dhl,4B\275\336\0060d~p\177t\240}1\257\013\205\201x>fc\264wp~\326\250<\031L\016\217\003\307&\2423v\210\243p\003\375\260\220\246B>\353\353\375\364\224\311h\3345V\270 \014\223oD3\21466_L\373a\211\252\276\023u\365\235\350\276}\047\006Z\346\260l\355\312k>uA<\037\303d\352fb<8#\2458\013\031\024^\240\017\226Dh\024T\246\317\047C\300\371\221\204\017\210\343\363\215\361 M\204pC*\031\226-1\341\205\030\224\376\021^\214\343\321h\322""\324\023\0172\\^\250\037\242x\222:\217\366[(,\220\367\373\030\210C\310#\031\215\331!\206\303\003\364bI\002\027C#1P1C\361\210\007\300p\371\301}\320aE\303lc&<<\356\016sd^\260\007W2xs:\036\326\036\363\265\025\366\371,1}3\014j\020\367\363\217m\220\367\373\361\370t\")\373\202\366\263\357] \357\367q%\021\310\307\276\215\357+\001\246#\341\251\351\320\347\361\260T\343y\320\340\360\201z\021\t\025\020\312\250\047\375.\010C\347\033\341\3018K\251X\347t\203\014\316&1.\244\241\360\004\376\251\317\214\327\225nr\024\376\251T\332\347N\024\205\177\323\370\247SF\247\233%5I\374SDc1\234\003KG%\266B\356\017\342\361\320\204\374\325\311Y\300\235:\001\377\306\361O\047N\2147Kj\222\370\247\230\236LLO\312_\225\224\007\\\251Sa\370\247\322\245\232t!\276\374\205\373\373# i\247\047\222#\241\311 \376\321G\314k\177?\022N\004\207@R\214\204S\360O\245\016\373/\321\215\200\3629\036\026\253\023\302U\311\355\240\353\233XtD\257y\2164Y\375\034\231\325\013\260MVb\265\031\350H\276\024\032\r\303?Jf|\366\007P`S\346f\245\017\305Cq\030.5\256&rJ\367\335&\23584\033\203\177*\315\254\277\260\n\255o\244WF\047\242\321\270\370\2414\334o\247\037\205\2267jV}G\233-\000\217\306\203\303 \355\311Q\251\255\220\353\203tA\355\244*\367\312\334\034\356I\315\315\271\001\213>\t\2273\363\017\346\362k\312\306Ol\345\260\370\245Li\237X\334\366\265\262\221\311\304f\355\\Ql.I\033H\226\004\315\302VX\030\2677-\034\305\222\035\336\310e\321\"\217\301\264i\340\342Jz\311\340^rY*\372D\330\304 \334\030ej0Zp\352\300J>\377\340~z\376\201\006H\2635W\326\004\264\321\223\211\242\016\0276\014\347=\026\216V\214o)\212MJQ\264J1\036\034W\275c\334\277\233\214O\006\307u\017\032o\322\227\306\223s#\3031\350B\321\021\346U\037y ~\037\217\007\023!\343\263>e\000\317\227\030\031\215k\217\371\316\n{>K\200\272F\216\371$\321L\207\203\270d<\024\301\371h\210\373\315\247n\220\377\367\223\321\221\020\367\273\276g \327\367\331\245\345\211\374\2260hC3\342\360d8\254W:\302M\326<\270-\034\231\302\335\014N\006\361\217\3223\257\375\351M\030SU\032\177\301ss\344g\370\247\322h\237""\235\010\371\021\204\321uL{\346\2028Wu\005\351[\177h\023\214\322Po8\024K\372\200<\010\3351\315\220&&\242\261\220+\350A\306\241M\021\271\277\361K\035\231P\243\346\204\377\3609\021\035\033\274*~T:\346w%\315\3462\223P\235\303#\370\027\232M\222C\211\355\220\375)\306\215\206g\311a\037\230\220\367\003\226\254I\032\371\277N\327\244\245M\006\3437C\311\321\260ruz+\350\376&\221\010\213\037\235\332\370\335IS1\374\323\tS\261&\351\240\374\263\302\300L\271\372\023+\350\371\314$k\222B\047h\026\217\212\0339r\004\315\2262\253ss\006$\207\315I\230\321\341^\250r\025^;\350\302\016\2145\277\266=7\247\203\013\231\314\232\013\004\202{\003\346\345s\311\317\223\237\023T{l\312\222\301\010\374\033\307?\2250\330\244]""\032\233\262f\326ex\356kX\374H;E\346\235\033^\311\3472\034\020\205/\335\341`naT\341!p,\223y\300\303\323k\013\351\222\205H\030O\013@4A\016\313-\312r\212zs\211\262\034\242\026\366(\307\314\020\032t\036d\006\025Gd\320\214\210\037\3725(\301\257p\222\227!\005\210\302\n^\203\026\002\006o41\254\\\206\026C\032\261\np\324\010\323\3101\300\320c\320d\020\227\277\014y\334\240\216{\020\307\r\3328G\032g(g\345o\234\034\206z\226\341\236\365\"\237e\330g-\364\263\026~\216\221!\364\342c\350,l\014\031\303ePy0\031D\034\217A\023\025?\006WT\343\212\272qE5\256(\303\0255\270bQ\371k\260\305\014\272\230\007_\314 \214q\2141\206\022\255P\225K-JY\260\352L\024@\345\304\303,;\005Vy\252\260\311XA\254\334\355|\254L\374r\260\320\273p\033\3040\212\222c\320c@aW~\206\034A\n7\372\rj\014i\314Bx\n\307`\306\200\302\254\374\0143\202\024f\364\033\314\0302\230\343\362\227\3415\235\"\351\351\023I\323%\222\274G$Y\207\020\026\274\332c\020\313\240\302mB\014\275\004\252\034d\310d\"\303,\0371\217d^\236\227\004\230\334L\330\312O\202M\2162\314\363\224\020\225\353\220\032o\206\354\321f\310\032k\206\374F\232!k\234\031r\2152C\366\030\203\246\306\344\230<0\240rP~\206\037A\n;\372\rn\014i\314\321\230\3745x\301\257\320\222\227a\005\210B\n^\203\023\002\n\345\360pX\376j\224\350\047\224\312kP\"\204P\242W\243\304\200F\251,\231\271\337\240\327\020\225\211\005`Yi\270\312P\003L\266\032\3042gV\320\036\000\047\203\203\r-n\250E\020\2174Tq(\047\215\3039}\322\316\332\nXt\021\210\321\304 6=\024\301h!\210E\007\3018\r\306R\333\003\260ha`F\217\013j\323\304\"\031]\014j\321\306\340\234>\262\004\267C\026e\n\306\310\342 \233&\025\303\010R \213\032\005\344\244pkr\037\220E\224\025\301(\363\300m\362\254hF\243\005\267\010\265b8\265\226\265\272\037\314\242\327\216a\004{#l\212\355xF\262\035a\321lG1\242-\253x\037\020\047\331\2160\024{\341\026\301v\264\241\327\206sr\355\030N-\263\274\367B,Z9\234\221\352\006\333\224\362XF(\007[t\362\010F\246\262\357\267C\234<\r3\244Y \213,\035cH\322 N\216\006rR\324Y\001W\320\"F\003\0315\026\314&GG1z4\314\"HC\031E\256""\023\007\276@N\235;\312\320\350\027cQ\352N`\350u\307p\252\335q\234v\327\311\006\177\250E\275;\216\221\357\027e\323\357N\301\n\340\216\262J\340\216\264\212\300NS\370\200l\342y\004\247\334\rw\221\315\2439\315\034n\023\314c\030\265\366i\r?\030\247\327\025c\010\366\211\260(v\305\033\222]\021\234fW\024\047:\372s\330\370\304\r\013V\310\"Y\301\030\261\034d\223\251b\030\201\nd\221\246\200.\242\334\031\2732\365\317\320\225\231\047#+\023~B\305\007d\021`E0J\013\343\nr*\r\320Ph\303,\352L\224\241\314\3008U\006\312)\262O\324\370\002-\352\\Q\214F\237\030\233RW\002F\257+\306\242\332\025\347\245\335Cw\023\232\375\351\335\227V\177:\233\321\350\246\317}&\310\037\312)\365\304\031r}\243,\232=)\014\341\236(N\275\047\222\027\301:\205\344\007\263\310\267c\030\361\336\010\233t;\236\021nGXd\333Q\214hy\300\204\3739\221\0041\3041\200E\024\301\r1\004\340D\020\310\312\\\235\234r\207m\"4\224\023b\001]\304\3508N\220\006\332Di\260E\030\236\250\342~q \313\003\260\3114`N\247\ru\021j\"9\245\006j\223j\340\036Z\275\224x\210h\226\277\047k\237\\\255\014\351\314\230\035\262\010P0F\002\007\331D\250\030F\206\002Y\204(\240E\2128@f\005&\243#\356\260M\233\206r\352,\240\213>\035\307)\324@\233F\r\366R\351C\205\227\204\246\371{3\367\313\331\312\226\235\214\363B,j8\234\221\344\006\333t\361XF\034\007[\024\362\010F\246\353\304\235/\220\023\353\2162\364\372\305X$\273\023\030\252\3351\234pw\034\247]\234X\342~\213R\ta\004\032\200M\227\2043r$\300\242B\202\254\314\371\031A?\230M\214\025\303\211\362D\270\210\263\3429\221V\204M\254\025\305\210\246S\204V@\035E\364\005\3622\270\243L!\374b\254R\270\023\230b\270cx9\334q\336\202\370\220\347%\253)9^2\374\262\347\331\362\023\224^\010\247\306\202\033\222<`\213.+\326\020g\2019\205V\004\047\323:\233\351\007\263H\265c\030\261\336\010\233\\;\236\021lGX$\333Qn\242\303\221\220\035\362\020\2120\027\211\n\344%\016c\\d!\310C\020\002\031)\366\372\213\337\302\213\317\212K\363\245\026\2375\026\337\305\025\277U\025vF\325\003\260\t2`N\223\ru\221e\"9e\006j""\023g\3406}f5O\035\211\265\351r\255\345q\210\233\036\327J\236\202\270\350p\257\343\271\316\317\372\002-\232\\Q\2146\237\030\233FW\002F\253+\306\242\331\025\347\245\335Cw\023\232\375\351\335\227V\177:\233\321\350\246/\312\306\330\250g\214\215\272\307\330h\22316\352\036c\243\33616\352\031c\325\271b;\304\t\3200C\202\005\262\210\3201\206\014\r\342\204h #\205\235O\366\0008A\034lhrC-\262x\244\241\214C9q\034n\321g\237w\366\207\332\224\272\3428\271>Q.\232])8\341\256(\233zW$+\202\353|\265/\220\027\300\035e\350\367\213\261\310w\0470\324\273c8\361\3568N;;\317\355\205XTs8#\331\r\266\351\345\261\214X\016\266(\345\0216\231\362\314\270+\350\"\220\200\026u\014\346&\215\242,\272\010\346\"\212\240\234\"s\002\335\003\260\250b`F\227\013jS\306\"\031m\014jQ\307\340\234>\353T\273\037\314\242\322\216a\204z#lZ\355xF\256\035aQlGYD\263\323\363> \233d\036\301)v\303]\004\363hN/\207\333\344\362\030F\255<\255\317\375\234>\202\030\302\030\300\242\210\340\206\024\002p\032\010deN\247\375]A\233\004\005\344Tp\230\213\020\025\305iQ0\233\034\005\345\024\251\373\003\\A\213\"\rd\024Y0\233\"\035\305(\3220\213\"\r\345\024\305\231^\245\256(\340\324\304\335z\024\207\330\224\304\335z\223\202XT\304=z\022\277\325\300\013\341\324XpC\222\007l\321e\305\032\342,0\247\320\212\340d\332\267%\370\002-b]Q\214^\237\030\233dW\002F\265+\306\"\334\025\307hw\337\312\340\017\345\324{\342\014\371\276Q\026\375\236\024\246\000\236(^\002O\244.B(\310n]\261C&\013\006SY\271@,K\026\243\262f C\002\003\332\244\340-.V\300E\210\000Yth\210\233\014\021aQ! .\"\004\214\321 o\204\341~N\001A\014\001\014`\345Op\223=\001x\356\004b\231\047\344Z\217\272e\206e\234`+<\344\350\213\204\374\241\373}\341-\204\035\345W\020\223\302S\030\023\345S \023\351-\224\207\214f\231{\262\024\027\037y!>\205\226pON\006\354""\227\237\214\365\317\325\257\2202\302[@\237\244:QD\374\030\212\365\004b\302=u\230\320\223\206\t6]\2300\023\005q\027\223r\rF\021RHu\200\341\0250\205Z\004\014v\021T\031\010\211\201\027,\221\023\232M\032\237\316P\205)K\0364\231*(e\253\202:c\0050Y\213\333\237\214\317\312\016\303,;\025\264\263C(\313\016\203Vv\010\340\331Y9p\364>\2709b\033+CI\354c\002w\222\t\334I\257\300\235d\002w\322\022\270\223\\\340\252\253\251\230\227\345@\000\235\013\013\363\234\010\254s\2430\313\221 &\327D\"\254\\\226\037\206tf*\300sB\230\316\006\003,\017\014\232\014R1r\030\372T\314`O\305<\310S1\203;\025\343\250S1\206Y6$yA\023\363\262|\010\240\363ba\236\037\201u\236\024f\371\022\204\345\315sa\031xq3\264\026F\206\214\3412\250<\230\014\"\216\307\240\241\033\273\230\327\340U\000\205\235\207Y\036\n\254rRa\223\237\202\350\\e\213\345\215\225\265So\023e\255\323j\230\274M\322\ra\314k\220+\200\312\201\207Y6\n\254\362Ra\223\241\202\360\\\025\373\302n\366\205]\354\013\373\263/\354b_\330\303\276\260\233}\342\374\277\272\250\214yY\336\021\273\021\3630\317;b7b\025fyG\\\215X\334X\246=\214\002oOb0CG\263\376\304b\0145>\275\212\001m\232\\\371\332Y\372\346fg\344\316\203\243\027Ws1/\317K\002Ln&l\345\047\301&G\031\346yJ\210+\327I\346u\347:\351\312u\322?\327IW\256\223\236\\\047y\256<\027\226\201\0277Cka4\310\2049\344$3\201\2344f\217\223\036S\307Ic\3368\311M\032\047\231\031#\336+G\216A\212\001\205U\371\031Z\004)\274\3507\2101\2440G\344\025\025\021~GE\204]R\021\361\336R\021a\327TD\254{*\"\374\242\212\210X;\217\260\265\363\210Y;\217x\326\316#f\355<\302\327\316#l\355<:\224\222\277\032%\372\t\245\362\032\224\010!\224\350\325(1\240Q\312\267\212\325\214\321\334\177g\005t~\014D\331\272 &w\026AD0\210\246\205\301\024I\354\036=;\344\246B\300l24\310C\207\210\261\t\021 7%\002\250I\231P\"@\335\323\247I\230\260\004\000\017\262\254\047\254\356\257\202&\313\t\273\363\323\335~\306\347\312n\322\316n\3227\273I;\273Iwv\246W\305\304>C\214\3553\304\314>C\314\263\317\0203\373\0141\276\317\020c\373\0141\321\350c\254\321\307L\243\217y\032}\3144""\372\030o\3641\326\350c\251\250\374e(\r\225)\017\225)Ce\212S\231\342T&\345/C\2314(\223\036\224I\2032\311Q\0329\"\026o\3453\367j\265\226\201h\271V^|\250=:w\n\022\001,dh \221A!M\t\205\0251q1\361\2103e1n\264\305\270G]\214\033}1\316\025\3068\323\030\343\321a\371\033#\307\240\306\200\302\255\374\0149\202\024v\364\033\364\030b\370\343\344\014^\275j|<\033\02169\351\240\225\231\200\232\374D\220g)\000$\246\330x\230\212\306\223b]Sz\014b\031T\270M\210\241\227@\225\203\014\231LdX\3473#\216\030\240c\362\2301G\n\264\237\341\2371G\010\204\337\340\236aG\006R3\242\227\242\3030\233>\252\375\034\263\351\241\302\3170\263\3769#n}\236aW\010\317\230;\204g<\227\010\317\230[\204g\3705\3023\354\036\341\231\341\t\325\344\225\327 W\000\225\003\017\263l\024X\345\245\302&C\005\321\271\206\047&\342\3125\371\211\220\312L\007XN\002\246\262\021\001\223\207\010\352\014D\025\360\032`\025\340\345?c\277\305}\316\374\333\023r\000\021\256F+C\204\330\004\014j\t#\3442\240\321\313\240\314\000\221\233\047\352\222\315^\253\243\261F\016\014\224\226\007\334\251q\304\0202^\245\r7E\014\262?\256\237\372a^W:\220\344\tu\357\276\361\271\023\205\223\372\242\375d\223+\367\265\264U\002\221\222\333A\373\033)\322H\260\311\004V\300N\r\242*\245\337PH5yM\001\204OJ?$\220j\362\244\200\024\036$B()\017\270R\2038\020\"\201R\3164y\273\024;\267\350\340*]\223\272\201\016\213}VF\031\237+\021u2\335\331(\271\035t}\203\235F\366\034J\315\374\256\244\223AC^3BE\203\226\255ZFs\277\235t.\030\217\007o\341h\030J\3507\372\\/\016r\270\337\213\203,\336\347\305A\026\333\354\201A\226D<0\350\016C?M3\030~\343\n\342\263\203\322\340K\224\047A\005\222 b<\276/\231\230\243G9\023s\261`d$\010a\020&\243\361\340dH\001(],:\021\214[\321\022@\321bE&\2750\221I\0273V\340\312\334\\\006\346\006\205\2719\017\370!>\034\345\206\322\273\016\363\333\245e,\214;\272\230)\301$\242d\047\230)dK\031\235\265\t\331y\333p\235\271\005\366\311\335\212\367f?\027""\333~\010\177\370\210\320\\$\363\260\024\317,\212\317\320\2208\031\216F\346\"\300\254\004&\024\257X\202\223\313\345\005\2129\365\262\245\273y5iUs\363+\351b\321<\301\245^\311\340\317c\200\037\tA7?\217\216*\277*\260\310\005]l\231\342\331G\377F\312\263YR\205\236S\257}\355\323t\251\305\316\255\246\263\202=\253\231RZ\022\216\201\374\302\306\212\300\263Z\310#m\342\3039j\302\350f\266\320Y+d\326\322\005\001Y\003\366\n~\0247Ve\250\220)n\254\224\244\237\350Boi{\215|\033\271\265\354\374\003\314\307j\225\3368\326nD\344\246\230\236b\256\370 \252\242I\2754\342m\035\n\220y(\003k\202\323\370\204\245\372\266\310X\347\323v\304\353\240ss\320\23373\205bV\002K\320{\321\325O\205\312:\305ZZ\220\353\234E!\256\240\206\213s\331\"\264\202B~\003\246\352\2319|\336sc\r\321\311\026T\334\230\237\317\000\347\001 \252}\003&\340s\331\005w\330\225\240\0005\017\005C\340\222\261ggAafNacwN\000\257!;E\370\032\271\2538\257\225;\305@\351\330\302\203\002n\320J\302\334\232XJ@pV\033\264b\250 W\207\241c\341R\206\342\033V\201X\323\300$XM\024\355\001\273\363,\372\347Y\244\365\013\340\367J\276\230I\317-g\227\226\323P\r[\3519\034U\322\224\266\210\004\245W\344\357U\351\014B\235\347W6V3i\250\243\225L!\215]\237\373\261@\240\315-\271aE|5\207\003\335\211V\323\017}@\236\317\010\260\276\201\225\235^\003r\027\322\205%|\275U>\325\232.\316g\263\351\"v\253tq;7\237\315_\321-\255\230.\t\201\222.\025d\t\323\233K\322s\377~f)\273\360\360~\266t\177\033\032\3625h\341\363\304\205y)Z$\317\213%\350\206\363+\330jAN\224\n\351\371\014\236\207\230G\375U0s>\277\262\222\021\362\2608\217|\312a_\207\004\302_Di\267\260\220\301\376\241\352V W\035d!S\234/d\327\360\363\205lqm%\275-\272$v\031\370\003\256\347J\202\t\231\325\265\3226\224\034H\206\337\342V\266\264\234\311A4\260\0100\315C\033Z\004\026,\2004C>H\277,\r\372\0370\377Jv5[B\217IJ\221\331\202\366\202\274\0252W\n^\352\256\330\273E\357C\336\013\017\276\331+<\310\037\341\311\337\377-#S\231\247\202u\010K\246\002E\367\273\301\256\347\202\355W\202\227\260\367\212\237\342\262\250\226\345\314\312""\0326\342e\371\"\353J&\267,v)\263YdQvu\r\332\314\\\246P\310\027\240)\346\026\240\r\000\251<;\223\025\313\264\331`\221\225\213\206 \303D=\340xS|\220\331\206\177\305\007[\310\215\225\314b\351~\272\000nn\251\264,F\026\365\2041t2\370\227)HvC\003\317\256n\254\202#9\275\232Y\315\257B\2662\220-BVK\344\314!z9\020\255\026\227V\241\265d\327V\262\231B\016I\022\215\244\264\261\006\031\3028}\177!\263)~\026\244\177c-\227\307v_Diaq\031\332\214\014\013\237\036LeH\276\234\014\336\265mY\217\371\305E\220(\371\\!\203b?\203\242\002\377p\rU\010.\256\220\346Qlj\204\256a\272hr\312\313\307\014\2611A\206\360/]\310C\343\007\351\244\374\033k\340\273\237I\027\326\220o\302\217]\025=\033++\n\270\000\177\213\351\325\264p\212\024\204\246\016\356rZ\364L\341\303F\"\024\031\374\253\351y\345\210V(\275\305\354R\016\362\302\200\240\rjZ\376\312\022H\217\312a5\273\000mY\341\313\346\344/\245\024\036\2232\267Q\334\314\202/w\037$#\312\005\254\256\025\002\256\tN\352\027\262\331\303\330\374\215l\252`r\260f\262\2301\350\020\013 G6\n\230\030E>9\274\260\030\266\250E\300\006\010c\225\200\030T\204\217\026\310E\336\025W\263\362W\363\245\270\001\037\301\347\362\253-h\240TE\302/kIE\353\014\326\340/]\024\362@\374\210\362\030\361 |E\250\330LI\216\031\360\331<\260(\273\222\221=\213\206\267\265\374\nt\322\265\374\232\350\342\342\347\252\370\035\344}\336\323\377\251\r\0138\374\346\261\000\333\005|\251\020\2734rB\214\227b\264\004\345j\005\306\010\251\373\025AE)\340\236\0046y\034\256QB--\013QQ\310\317\017J\262\300wM\373\310\003\203x\021t\243\3254\01609E\177feQ\222\345y\310\334\375~\271\353\331r\373\265r\010\251\361G*\024X\014YARJI?e\372 \2736\047\306\006Q\2674\302H?\245\300\272f\360\007\014.F\033\364\230h\212\304Ar\005\344\312\n\370\n%\311a\324:\361\047;\017\204.c\"\030;7\325\007\205kb\250.\212\331pq[j9%h\304\367\257\240\222\003ni\031\242\026\260@\331\325L\242\004\215\005=\362{\343\0334\336k\306\373y)?\047D\037\322)tt\322:7""\304r\223\374\025#\236\364\026E\343\334(f\264\276,\312 \013BZ\362\246\034\232\245\376\004\003E\016\377P\201\003v\310\\\377wd/p\364\351\253o\225\327\367\216\035\177r\375\311\372^\357\033{\047?\250\344j\301\275\236\367+S\316\007\237\325\326\367z>\250\2441\345+\377\333x2\014i\216\235,\037-O\355\365\234\330;y\3069s\2616\210\251\373\252\307k\203{\307\376\003\361\201\343\316\361\367*\301\312\224\374h\273\334]\246\230W\337(\177\004_\036;SN\377\377\352\177*\000\201\036\247\347\243\352\327\265\341\332\303:0\344\265\047\347\236\254\227\217\354\035{\253\374\250\332\213lA\256\215\326\373\321{\251\026\254\245\352\203\377;\3624\200\025!j\343\304\353{=\3578\357\\\251\245\201\377\201\323\345)\347\314\345\332\024&\371oe\335\351\273Z?\276\363m\343\2013\025\337\013\274Y\376\276z\254v\244\326\213\274~\\\376\262\322\277w\014j\315\271\372S\343\365]\240\344\370\223\301&\337\375P=[\353\255\365\263\357\256\326\2178\203C\215+NlJ}\370*\026\007\311y\313y\013\210\326`F%\344V?\261sg\367\270\223H\022\261@\270+\3217;\375;\203\024\373\365\016\360\340\351G\037\377\375\311\277\216\366<\371\266\234\206d\201\023O\222\3453\345\365\212h3[O\346\313\275\320f\234\377\364U\217T\337\254\006\367^}m\357Xo\371\375J\272\362\260\372\250~\252>\205_L\227\317W\336\250|Y\375\020\022\004N\225\341\347\250\244\265\274U\311T\177\254\177X\017\356\035{\303y\343\243\352`u\034Z)\306\275]9S)TOUo\325\036\354\234\332I5\006\033\341\335{\316\355;\316\235%gi\331Y\336\372\373_\377zxd\270\013\234\341\256\237\321\371\271+\206N\254k\n\235\251\256x\327SDt\026I\205\362\224\263\225u\305\226\217\276\335\031\374\373B\307K5\331\350m\265\\\363\316\374\202\263\260\346\254\255\003\355\205#A,B\260k\002\235\211\256\004:\211\256[\350\334\352\272\215\316\355\256;\377\227\212\007e\3138\231ug\275\000\264\027\217\014a\021\206\272&\321\231\354J\242\2234\345\002\347N\327\335\346\305\373\370\\g[\244\363\321\347\365k\220\316[\266\267\252]\325\217\253\331\332\357;\037\357,6\202\215[\273\253\316\235\273\316]h\217Y\047\373\020\010\337>2\202\364\217t\335D""\347\246i\213\340\304\241\"\355B\375V=\242\013\365\335N\260\263u&\213u\257\321\337j\301^\274M\036\356\362\375\346\374\366\300y\260\345l\311\212\033\3072\214\253\202Q\211~E\347\327\2564:\351\256\373\373\225\317\371.\351$\247\377\376\364e\224\361\362\356z\253\245\204\266\211\375\316)\374\351\374\371\027\224\342\247\256(\026&\252JHE[Bg\251k\031\235\345\256\354>\005\375~g\352eT\344/\215\301\226\212\230s\356B-\2568+\017\235\207\333@\374\243#a,CX\211\025\222\047\272\006\301\271\3375\337\274|\347>\351\264t\271^\037\252\247}\312v\266\372F\365zu\033\006\377\353;\233\215\251Fv\367\017\347\356=\347\036\210\026h\252\262l!\244?\244:\241\026+\242\311&]\205zP\355\325\205\372\336\371~\332\231N\375}\255\325\242\2158\027`\374\337\371h\047\351\004\343N<\341$RNj\346\271\313\273\332\370\036\265\025^\350cg\235\263\003\240\331\\\250C\217\005\r\365|u\275v\254~d?f\240\220U\265<\212\205\036\355\032Cg\254+\205NJ\3252\265\342\034:\271\256<:\371\256G\350<\352\nu#\007\273\343\350\304\273g\321\231\355\276\205\316\255\356\005t\026\272\363\350\344\273\037\241\363\250\373\247\000\366\232@\020\235``(\340\313\344o\234\323\347\252\250\371\235\373a\047\375\367\245\003sy\352\2719\273\342\022x\255\264\253\307J\213*9\245\r(\326\246jW\244A\315\2403\323u\017\235{]\277\240\363\013\310\004p\262]%tJ]\277\243\363{W\020y\024\354\036Bg\250{\270\333\2379e\344\314\047\347;\335\261\276\250\307\353~r\361m\370`\244\366j\375\335\235\221\306\277\033\351\306\266\023\203n\365\213\363\213\034\001\036aIT{\"\235Dw)!C\246]=k\245\332\257z\326\047?8?`\317@\271\377\372\223;\225#\225^\2444U\276Q\351\255\364\267R\2663\365\365\266\311\375OX\371\240pE\247X\202\002l\250\261\233\364.RJ\356\242s\027d!8\363\252z\177C\347\267\256\007\315\005\344\371\013\235\256\307\033\365\373;G|\312\371N\365Z5Y{\273~q\047\3318\323X\337}\325\231\202J\234s\346\344\000\360;P\376\370\010\t\204\010:\021S\201\340L\203\224\260K\265Z\035\264K\325\311\032|\266\330\277\321\236R1\271\017\245\372\364%\311\"\252\264^\247\367\303j\177\365+\\e`\376\203W\240oG\234CgN5""\3225t\326\2726\321\331\354\332Bg\253\353\241\177\035\177]\016\"?~\334Y\357\264\362\202\2148\321\230j\271\375.:\213 \214uW\245\371\003)i4\256QW\325\002\271y3\376\321\371\021\304\321\252\263\232\373\373\372?0\326\313\302\337\336}\344\334\272\275w\354]\347]\\6\231\305\311\324{\316{\227kS\265e\354\003\014\276\037g`\200\002\275\365w\347\367\307P\354?\224^G\223}\232y,\240\263\240F%\032\343ip\032\305Qi\264{\n\235\251\356\373\350\334\357^Fg\271;\213N\266\273\204N\251\373/t\376\352\216\342\030\037\rL\2433\035H\241\223\n\314\004\374\270\355\034\377\300\371\340\032.\r=\2750\320i\201\370e\275\260\3437\327~\267:T]\250\r\324\277\335Yh|\262{d\367m\047\016\235\351W\347W\350L\320\004$\333h^C\rJ\313\014\321\256f\\-)\207\371\313\226\004\245\272\362\0174 oQ\367\327\023}X\220v\322\367\235\3739\047\227w\362\177b\275\036\241&C\343\036i7\263\350\314\252\341\217tE_\265f\022\235I\245+\316\2433\257\032\320o\350\374\326\375\240\333\227\221Z-\274\000\375r\306\231\231\355\364\364\020\331\367^\343\036\324Ak\315\005z\031\310\336\347W\252\327\366i@?9?AK\000\364\262\022\314R\301W\377P\273z\277\261\352$\240w`\327p\036\377\361b\255\014:\032\3642\3116\233_\031t2]\213\350,v\025\320)t\025\321)v\331-*\211N\262\3736:\267\273\357\240s\247{\021\235\305\356ut\326\273\377D\347\317\356\021\224E#\201\020:\241@\014\235X\340\016:w\002\213\350,\006V\320Y\t\254\242\263\032\310\005\366o\220\003\237>[h=\371\2632U\231\007m\342y\030\376\325N\327\016\260\362t\371\027\253\r\276W\215WK\265\257\3537wJ\215\033\273\275\273\003\242F\240\313\342\220\345\344\376\300\322\252fH\263\021-\253\250\333\332\005\313W\201\2323\345\305\312\317\325\264 \264\347\311\230\363&T\353^\317\273\225\301\312\250Q\325[)\362\213\365>*\263\247\343\265Th\032\336Z/4\225*\350\004\3578w6\234\215\315\277\257\276$]\017\313y\271\361\227\223\3128\231\305\275co:o~\\\rVgkS\226\177\277\262k\321L\032-\215Nz\361W\250;\017\320y\240\364\273?\321\371\263k\004;\304H7M\343c\350\304T\327iI4\023\357\200M\300\275O/v\272M|\275\363\306\216\337J\326\373\325\373\265@-\\\277""\323\0104Fw\373w\277v\222\007\033\270n\331m\3029\363IU\357#]\034n\014vZ\317\375f\347\303\235\311]?\265\344\203j\241v\252v\253\376\240q\252\221\332\035\334\r;\323P.(\324\232\263\206\202W4w\322\357\2510\244\330\333\242s\311]B\020\312\252\204\227.w\272\342\276\335\271\266\343\247\305\377\267\326U\373\270\226\255\377\336\370\270\261\270\033\334\275\345\244^x\245\3349s\241v\204\025\355\323\026E\363\251\352/\365\301\3720\314?_\240\204\247\312\0215c3\336\003\226\225\204\027-H\352\026\312U\364\025tV\2726\320\331P\212\326ct\036w\375\341\313\216\323\345T\345k\252=#\325\337\251\364Wn\340\024\367\031\321\307\237|W^\007v^\035\354tK\371q\247\340\267\025\346\274}\2516T[\250\017\354|\333X\330\375\304\211M9S\267\235\333\007_y\233ss\007&O\252\261\\\377\242\323\245\033n\\\363\233\315:o_\255w\325?\256gw~\337\375xw\321IN;\323R\233|\261\265x\347\314\325\272\356\nr\321\232\013\262\327\236\\\004\031\236F\272\357\251\232n\245\244\263;\267\033\305\335\376\366\356l\336qfa\350\225b\033\325h\261\217d\353\320\366\372\205=\331h\245+\360\215O\344\206\230\331\177\372\362\031\362\376n\372\205Yb\317=u\365\013\226\220\232\374\007:\177\250A\376gt~\356\276\211\316\315\356\211\356\246\234\371\341G\253\027t\232\047\007\331!~\340\334\272\353\334\005n\200\340\304\t\203\263-\327\233\251}\320\354\234\372=\361\204\326b\365\034K,s\2557_\222\225+\320\027^:\007Z\335lu\363\300g\256\371\302\375\204\263\343\226s\353\366?\300\216\271F\360y\330!\227=;\307\216\237\202V\347\350yrS\016\020\317\301\213\215\335`\273;\007\214\031\322:\004\364\336\226\226\372hV\260\216\316\272\231^\357W\374\203\313\313}&H\255\267\t\332\217z\313y\013\324\231\332\331:dp\3329\rjz\365am\275\371\336\024\310\317\0033\305w)\334^l\230Ag\246\373\036:\367\272\177A\347\227\356\271n\337\235\255\037+\270\260\371\323\2543{\353%\367#\344\331\037\276\375\250\005N\211\216d\263\311\236G\323\304\202\332\316Ct\036\252\211\345_\350\374\325\365Sw\323\275>\234gK\341M\323\025\372\204V\226\307p\345e,\260\214\316r \033\260\026\340;\3179\261\364\356\204f\234\231\034""\016\033\312\310\212tqj z\366\334\332\366\004\210\2519g\016g\371\316\"\314\337d;\244\271:\361r\033\235\355\256(\"\216v/\241\263\324\375;:\277w\307\221\025\361@\002\235D`\016\235\271\300\257\350\374\032\310\243\223\017\022z\311#\333\263\373\3444\223\3410g\227\266\376\005\247 \333\030\255\177S\033\243\335,Z\276\245\035sZ\306\321\035\222\246hM\373\345\255\333\376r\331#\240N\343\206O\353\"\372\202\023\227b\345~;\017\345\270\026\3746\235M9\270\321\364\203N\350PW\2647A\3646\217\350\221\304\0302\275\240\026\023A\047\322M\263\213X\363\025\300[r;\302L\376\256\275\010\013\017$\345\016\312\327\311\306{\3204[\227x\355\341\271\255P\320Xa\333K\321r\3534:\323\255\210?\232\330i\271\207\265\032\310\240\223\t\254\241\263\026\370\t\247r?\035\035Eg\324\314\357\374\352\221I\310\333w\376\361.\360\002k\274[""\316\226\234)SE\220I\037\311\010\373\234\223}\356\302^\270!q\251\033\277\330\352\236\352n:+\002\256}\332\226V?\325F\366\361\325/\346\177\311\254$9B#;\265\360_\321\371U\265pj\332\177\240\363\207\262\273\371\313\237\333R\201\276-O\263\321\314\206\026i\027\272,3\214CP\th6\216\047Il\343\334\016\325\005U\002)\241\303\310\305\341nZu\322-X\330c\332\334\047s\047\252\204\207\350<\354\036F\0312\034\210\240\023Q\362\205\326\217\322\350\244\003\367\003\276\025$\315}oK\223ZZ\260\"\th&Q7\016\343\020\241\266\022\242N\0028\217j\242\316\364l\255\267\251\277-uh\333\335\320\340@R\310>)\243\347\227\302Vm\003\235\ruR\206l\325~F\347\347\300Mtn*cZ\2525\032#\036\240\363@Y\256m\241\263\025\030\3021bH\215\030\023\350L\034\235Dg\362h\344\250om\177\t\014\305\263\312w\356\036\202a\343@KE\240SJ\203\212Ug\365\241\363Pj\331T)d\031@:\245m\032\245\317\351\211\215BZ\310\246\336F\303\270\335\333\342\315u\356\273\367\016\001\327\016pv\307\265\352\277\355l\313\025&\342\027m\244Q\247\267-\347\355C.\264\252B\322\211\226S4\277\304\371\260D\363\335\200\273\233\330\\\217\220m\026\351\262\2644\003J\354\265\3033\010 o\377j\344\235i\340\031\2363x\206\305\336\213\262\234\254VH\323\244\375I\342\256m\352J\273\005d\222o\353\226$>\310\324u\n\235\251\300]t\356\006\226\320YR[\010\033\350l\0046\321\331\004)\342[c\322\334\357\336/\207IC\242\271\347)\347\3249\265\224\350\331\037|\366\246\314#\347\221\234\212\332;\310dPd[\022\351\323]\\\300\223)e\013*\022\311y\332\335y\214\316cP\230|g\262\322\370\352\236\354$\346f\206O\377qI\203\\\177\275\221s\222\323\317\265\007\266?\273\211\317d\353fO\257\306\220_cjfK\333\261\264wH&\253t\362t\r\2355\320\211\232\256\021\334\223\367_\230\003\300W\016W\263\376\017Z\007\317-\266\372\240\367|\232\177;\207\231\217\274+\242\344\224\244BB\214\266\215\315h_\214\030\355{\261\002\3318\330\007L\355]\016\222F\264\266B\214\336Dg\323\254\2175=\031\363w@^\364p(\231\376\303\316\375\306\021\017\323\235\267/\326\256\325\222\365\267w.6\222\273gv\327\235\330-\347\026\360\034p\313\323P\326\325Z\366\005\001\264\316\272u=\n\265w\232\351\223\036n\233\242\372\032\257\323R\213=\005\262\265\034\262\\\241\215&j\357z\216I\213\362.\336_\256M\031\336\213\025\263C\311\373`\343\r\274\315\312\303\373+\265\373\365@=\274sg7\260;*\264/\020\352\240\357\200\240\221wvY7b\370\336rH\313\356$\315\355\2131\310\314\225f\241\266P\327\252\245\030h\355\211Q+;!\342\362H\303{\261\006t(y?\324\370\260\021\364\341\375g\265\002`\276\265\363`\367\324n\312I$\235$ \007\3140\232\002r\030\263\255\333\023|\257\363\263\215\330|\355\322i\\\325\206\017bRJL\047\035\224\344|\016\235\234\332\371\320L\027\223\322\237\334\372\014\336\367\252y\377\210-\003\\8\224z\315\213\030u\357\277\326h_\323g\033\024P/\240u\001{A\200xO\252\r\255C\026\320)to\243\263mxO\327\1775[\010\376\373\337\377:\372\037\347\365\017""\200S\353\310\312\207O\212\345~\272b\367\325\047\320\230\325\325\254\240^\343\364G\367\232c\276\337\275*\277\n\210\213x]\327\267\006\352A~s+`x\355]\274\020\366$^Z{\262\374\n\324\362\277++\362\256\330\315\0473\345P\345T\005\365I\304\013\250\236\342\017\306\255\213\232\276R[\250\367\327\277\204Awf7\370\324\206L\2750\366\317`T\031\254\217\355|\333X\332\235zjC\220\366\236\177\035=\211,\002\354\345\267\2411\342IN\021\220\373\022{\201cO^y\262\356\234\034\254\277Q\037|\032x\243\205\016\014\005\306\022~\014\030\200\031XG\327!\307cg+\257\302\314\360c\230\230\036{\247r\261:U]\240K3\312\363*\365;\225\217 \343\205\252h\030E\371a\323\354\235\267aZ\\\377j\347\213\306\221F/Q\000\220\247r\027\027J*\032\304uQ\270\301\362\230\307\266\267T\376\n\032\3008\212\254\336\362\233X\357\320u\210\376#H\356q\2208#x\231\307>$|\016U<\276\023j\3646\024\023>\307V\347K\3028^*\361\224H8]^\200\212\177X}X\333\306\265|$g\260<\214\225mH\350-\277[\tV\222\270O\273\017\t_\324\247\352\313;\231\306`Cur\2004!\341\347\312\242\224\264\230S\300y\017;\356\047;];\347a\3262\305\313\256\253\352d9P\016ZU\3726\240\004\322$I\257\275e\010\301K\257\307d\223\2074B\362\240X\022\262\257\007/\025O\001\277CP\013\047qfz\004\306\361\365\332\321\332L=\010\344\342\305\344\357;\357\313\033\261\345\335\344\327\352ZR\332\371\340\372\017\212C\231\013\236\372\305\\\260\305\333\271\234)/Ak\202\002W\247k\347\261\231\252\\P$\036""\241\\\240\272T.\047\377u\364\330\3776\236\014=I\253\213\316\237\014>\tJ\244s\325\321Z\277s\361;\354\230{=X[\327D\3178\214\353\001\325\037\353\375\3557\301\263O\230\033\243\025T\335[7\016\273\213\316]5_\242\245\201\205\246\346y\207t\275\345z=\330\376\215z\232\r\371\336haO\212\364\321M\241\240L \023\047\224f\322\2229\277\331\304?\024\346r\203\355_\272\"\236\332\206^4\313!\203Z\342\242\276\202\224,\216\232-H\035\002N\335\360\265\017y\321\3350\232\233\330\033\276\324\243\311@\204L\237\354\025\220\261\246\273\214\207bW\346H\207\366dh\255\316\3362\260\257\n\246E:{\321\"\334t3\246\331i\032\217l{\016vaw\3518\273\366[\323l\227\255\377\263\331\325\261\303G\317\307\232\027\2749\275Iy\017\315\362\310\227hu\345^\004\367\337.\266\032\214\363x\037QDrz\277Y9-\223\330\233\366\264qL:\306\034:s.S\303\245\246\333\310\207\223\277_\343~\274\233\277>w\177\201\234\367n\246\355\047\277H\316\323\202\267m\017h\3379h\237\032\244M\006R3\322\350\244]\206X\331\356\2467\213\035\326\275\234\376\177l\047\207,\235\215\341\037\016\031d{I\313K\2767\317\376\266\317\026\316\241d\362\267;\336%l\277\013\302@L\200\306\"\357\201\222W\\\221U\311~[\3034\014\323<\3046S\263\0174\332;gd\255IV\311\255\334\377\307\257Z;\234\214\376n\307o\275z\240\366F\355zm{\347x\343:\236Y\337\315:3\240\024\200b(\357\372\225vv$0hBb\037\271\246\363\305$\224i^b\233\361\330G\324l\215\2326\312\310\222\212\346%\232\305tF\310\305\351\201Z\357\241\346\364\367x\375\235\207\323\237\326>\024Kt\3576F\360r\204\335mg\026D3\014}\362\266N\353\345)\032\376\354\223\246\366\275\2714\374\331\326(\366E-\3661\t\332\213$\033Y\337cX\253nN\177Z\353?\324\234\376a\047\375\017o\373\322\024\310\276>\224v i5\203T\014\315c\261\031\226\333g\277\367P\262\372\307\235u\037V\373^E\010r\0324\016y1\247\365\276\014i\034\366\345\254\366\205\331\276\327A\023\223i\267\327\236g\222VG&W\244qh&\213\315\257|w\323\213\016\017\353\246\372\221\177zK\235\346\252z2/\346\252\264\303H\213H\244xh&\223\215q\363\275\364C\272\211\336\373Oo\241\357g\310M\263\225V\014\271\255\275\363C""\272i\336\377Oo\231\357g\212F\247\022Z1E\263\366\312\017%\257\207}MC|/W\005a\r:\010\036\341qJ\326\245\341\276\357\201\331\027^\220\376aO\r\355\025h\333J\201tj\232!\332\3074i\247\274\330\335\364\352\326\027\346\365\376k>\317\313\354\003,R\273V\374\237\275\245B\374\266\3575\265\325>[f\333\327\215\220\276G\374\326;+-\255c\037\036\006\037d\231\215\337\246!\233\363~\347\017\210\275\276\253n\266\004\261/\364#\343Jj\316$:\364j\022\255{\264\264h\327\376G\022Z\236\352\315:\263\322\"\006z\276\224\262\276\352p\264\253\265\031X\047\036\204mm\257rjwE\274\342\013\272\320\206\263\341\267\363\023\352ji\027\261#\317N\266&\034\322\370\200\336]\361\356\344\246\263\351\267\0258\332\325R\267\355\310\343\222\255mi\302d\353\256x]Rn\301\371\231X\215u\265\264\333\330\221\207\374\246Z\263\025\203i\214|\311O\312h\277%\351\361\246o\367u\376\031\273\026\267\371\342\342\035\2369g\016\315\335\3044\314W\016\206\273Z\332\250\353\310S\017\375\255=\363\220rRrcWKt\337\245\250\311\256\326\326>;\362\252\303`ko:\31483r\370\327\253\361\276k=\221\256\326V\027;P\0241xx\257\345\177\306\350!\373\310\363\214\036/\365\266\321\301\347\271k\024\357)S\367M\332\326\030\276[Q\313\315\245\364\313\275]\364\000Z)\267\007x\261\347T\\\305}\211w\256\035\240v\377\177(\356\263\206\344fW\247\276`kf\303\365\313z\003\364K\327\025\036-=\244\226p\022\362\321B\264p\021\013c\276\333\236\373\275\000\252\325\177\3777\317\204\205\337\313\342\201\334\3605\3278\360S\225Mw\177az/\315\367\264-\206\257\200\266W\005\251\324\366\372\366v\223W\241\276\257\240\371\353\2656\315\031}\217\r\337vn\313]?\354\253m\234T\312\271\005\277%\203\373\371\r\003\236\3333|m%]\326g\262\315\331/$\223\272B\0339\276\317\326\330;g\366\3027-Z\321F\216\257\255$-\306\322Y\003\272\363d\034\235\361@\030\235p \211NR]\233Nw\236\350\347\375\360su\344x\004oG\0329\032A\047r4\211N\362\3504:\323GS\276w\355=\371\256\374\270\372m-\375?a&\037\334\353y\023\237;\366:_\242\201\273v\276\252\014z\201_\240Y\260\376\340\333J\032\235o*S\354\003\210\303\214\204\025\374^\317\211\275\3537""\352\013;\375h\361\375?i\256M\2168c@\260\022\"V^\264\360\016\312\300F9XN\250\230\215\362Py\241\322/\003[\320\234K\225\257\252\203\"\350\374\347\234\260M\377\244~\244.r\047\013h|$\n\212\034As}|\"\360\213jO-X\273\263s\004\372m\317\177\304\t\202+\240\302\235\3549]\236\256\\\006\331w\004\261\376UY\252N\327\372\367N} \372\303:\232N\237\251l\241\225+\264\341\336\276\352+\242\247\331\321\333\240\224\n{g4]\026\234A\302\047\321\362\037\0178\2148g\311\314\232b\221\2047\313\037\303\014\007\273\3211!\370\304( *\351X\365huJ\232<\177#\315\251\367N\276\005\374\302\263\023=\275\345\263\322,\274\262Y\235z\n\010\273!\321-\350JH\325\311\323\345Y\370\3427\305\200\023\316\t\240S\361`\274r\023Jy\\\332\213\037\177r\243\374\226s\026\347o\342\010\306\th%\316;8\000b\360)\321\264\004\215\3438\036\0339A\215H\034\356\330;\331\273w\252\017\250\274\203\347\\\352)T\324\211\327gE}S3\376\237\032A\261V?\r:A\274\014|\357X\177\365}\301\215c\357\343\241\224\017\253\227d\350\235\312%%\210?\250\344\345\355\003\177\277\366\257W?\305\373\323\316U\177\251\177\2653\270\003\224a\3778\366\352\036Z\226\277\013\202\350\234s\036f\n;7\033\217\235Dr\257\207\215c\230\342\035a\256\016Usag\240qc\367\314n\301\231\272\345\334\002M\005u\024\237\307:\354\273\275mkk\373\351b\275\"\273w\022\273\317\347P\327\247\360\230\305\0146\017q\336b\357\024\014\047\302\004\376=y\354\345\253\362\347 \275{\376[Yw\372\276\001\202\276\303\035\353\333\342\372^\234\301 \027\037Bo\277\2062\022Xv\361\322\201\231u\016\333S_\365UyJ\304\313\254\352_\3654\014\375>l\302\263\004x\313\303-\320`Gw?\334\035w\222\372yb\375H\230\275\316g\237V\327\006\207\317\307\217/ \347\025\\n\204\021\026\344>N\263\333\300\217O W\370\346\235\332WB6\3704\036\320\204v\216\3701D\036zX\256gA\307M\355^\333\235\025#\277\264,\320oC\331\226^\266A\271\036\205\236\217!7 \347\307\250r\300\200\r#1j^m`\310y\206|\t9\367\340\332\005L\370\241y\340\273\254m`\310\005\020\34206|\007\005\203\206\340\307\020\324\237\372\375\030\"\204z\375\330\316\253\21530}\214\357>\024\013\021r\376\243\337\002\262\255\247l\005E\237\351x>\206|\0059\277\207+ W\241y\010C\355\027g\310\000\014\204\307>\256N\326\317b\271\375\030\362\rh\004\203~\014\021\307|\340\273\267a\306\360\357\335\373NL.g\310\031\222\236\021\332VN\366^\214\276\362\342\3718\3625d}\t\327Q@\306C\373\020\266\330/\316\221\326F\240\340\001\006\037\271\341\255\347\214\2665\222}\340GO\225\017\3230s\0214\244c\237T\3630W\300\303q>\034\371n\047\010\3232\037\216\014\342\300\004\234\374\032F\231O\234\030\314I\2002\230I\313}im\300m[\r\331\027\242\350\331\364\363\261\344[\310{BX0\3014\036\232\010.\270\275L\236\340z\354\013\260\204$I\307Y\362\024\204\300h\355\323\272\230w\204\312\247Ag\177\204*\252z\253\373\3059v\to7>\217C\360\303\235\365\206\257\354\025\207/\375\232\021\236D\305\203\240a\030\233o8S0\257\005\312\227\234%\271\345n\335\370o\033E\331+PzE\346\371\370\366\035\344\177W\030h\201\312\002}K\276\262\375\302\214\271\202S\344\001g\340\333\235\257\360\220\251\037c~D\216\3711\346:\236\356\254/\357daHJ\tm\n\224\207\254\223\025\317\2163\313S\332\312\263-k\354-[mE\375|\314\371\001hx,\254|`\264\006\316\340\221\20460\347\032\336O~\331\271<\334\370jwp\327\2279\303\342h\256\017s\204n\263s\2411\200mfF\014\023R\247\323\n\235\275%Ec\024\3655\333\022W\333.>\037w\206\200\210\357\234\0319JA\375\340\202L\033\270s\0037\344\006\235\301\233\270\200\223t\222\323~\374\031k\254\357\3726\036!\241v\226\033\331\335Mg\032:\0244\0359Z\351\241\312\266\t\047\205\327\3671T\275\324\367|\374\031\005\"\036;w@\022\201$\204\032\022KU/\310\237\236\003h7l\205\212\373_@\323\361\325\375l+c\373\204\244y\002\260\235\312\320v\245\247:T]\256e\353\217\033\327\032\263\273\317\311\310\326e\324\331\312\353\212\221\306\373B\322\212\264\002{q\235\014L\310\262\204\226\371\354\203\201""\332l\252}\002\355)\314\035n\324\336\306uOk\224T\217\233?+\332\324\307\312\316\245\306\375\335cNLT\2100\303\356\304\344\377qc\360@\323\177\375\374\271\275\356j[\277\372\326D\266\203+\001\302\234\267#k\001=\376#G\323\325\200\227\317\237V\026\006\236\207?\255\211\306\357\032\353\007\233\372\341\316\001?\035@v\006\266\351\243}nK\257\330wn\026(\354f\017C\377z\371zY+\375k\310\031\002\345\001t\022\251I\353\327\240\016\306\263\327[\235;O\354\366(~\340J\222\305\300\036v\031m\017qr\034f%\317\234a[\017\241\331\013\272\266m\255m\205HG[\3110\237\016A\320^\020\035\361!\233q\272\001\314\276\330t\022\235Iu\375,=\201B\317g\254\243\263\036(\242S\014\224\002m\235\322\253q\3447\020aC\215e\047\002\025\373\233\363\033\211p\252T\250\362T\307\004\047\314 \247\016$;\345\242\262\335\360\355\223,\264\026\342\373\372\250>\003\32791\n\034\0039\206\307P\017\334\360[\225\246\333b\332}\033\346\325\346\236e\253\3113\3703e\255d(q\322\266\344\"\235\211f\301\366-\047d\310O\312\022\235q\263\373\201}`\323~e\200\256\300\263\337\201\320/JwDy\315\357\334\335}\003\2478r\301\025z;\316\340\250\312`\342r\367\300\365\325\332\302\370{8\335\217\037D>5]5\2676\020\236w\367\211\016\023\321Qq{\377\232N~\322\376\265\375f\007\355_\353\227\177\332\272\"\377lI4\202W\014\036\n\365M\257\323\3336,\366\014\303>\255\250\017wuN\356\2148#\020\265\351ln\035x^\326\3322\344\335\335\017\234\031\261Z\325\303\236\027\343\376g\255M\212\007\325\354\0256\373B\033\373\014\276=\037\263\337\313\243\243\341t\254\302\276]\226\316\257\320\005\277\033\335\355]\362U-\365\001t\354x\343\341.\356a_\0145\246\016\3348/\243\r\325\005\264\2659\2137\323\371\261\035ftP\357\276\312!\336i\027\204\n\273\005\022b\324\211\203\346\005z\331\262\263,\037E\263\047\026\266\235\021\251\317\2642e\237\034\322\247\361\237\217g\337\0039+\342@$4E\271\014\263\344n\250\227\236\207W\255u\344\023\215\003\350\022 N\365\242\213-Qi\274#\005\332>\n\253m\322:\326\221/_\351\220\302\034l\203\212\374|K\345\3669KZX!]\201\3723\035\340\241a\310~\303\205T\206\315\356\227\253\373bE|T""\375\036\031\361Rw\312\217\3753\373\240\373n\225\337\256\241\230\273\014c\014\304\316\036\230/\355\233\r<\264w\315\245\001\201\275J`\237\377\245\006\351\373Z\2636\256\354@g&\216\035X\330\365\264\332\212\336ui--[_p\343\034\373L\020m\023\322\230l_\327B\343\004-:\323\274\227TI\272\334P?t\320I\315p\027m\323\256\330\312`_\365\204\274k\364\375\312l\265\025\016\267&0\177n\340T\252\362\003\331\367\366\274\203\266\203\\\321\361\023\222\300`y\231\010\264Ny\231\010\265N\333\312\327>\226NS+[]\367e.\235\221\266\337\264\241\265\005}|\267\003rr\2616V\377\021fW \230dk\377\005\252\341\352\340sWB\333\355\254\240\305\310+\266\0368\017`\224\222C\224}\232\207\206(\252\001\373\3062\022\005tVZ_\252\325\001\301\220\252}Y\357\177a\346\265\331\276\244i\253\265\205\251\375\336\246}\203\223\357\202\300Hw\007LP\332\303\301v\333\243\000\215\362j\033\030\262\345\3425\tW\373\216\004{\302c_\315\324\326\255\274\375MV\332\300\303\236\003\030\302\361\205*q\tS?\366\372}\214\342@\372\313{\306\240M\312\275\022\232\313\330k}\366\325\261\366\005y\264DKl$iJw\267\371^)\246oaj\253i]g\344\347\353\007h\300\255\257\022v\252a\373n\251\332\007(|\2072z\225\207\336\234\246UBzlZ\277\336\330\211\351\275\247\272\244\275\207uM\204\2364bM\2166\322\235\037\013[_\250\332o4\264Wu\355;\302\355[Z\354;_\365\033\033\235\034\024\307\032\353/\302\3076o\267\001\235\362\032\013\230\030\342U\261\302\234\205\326\310\377!6\356\273\023\327.6\266&\327/5\322-\2328?K\232\333b\334>\371H\"\204\2449\335:F\017\275\320\032B\244\273\003\306\320\206\227\316\230\234\213t\274Y~\267\273\336\276\206iO-\354;T\350>S\022\3044&\322\256\r\3150nu\262}^\373\234q\363\303\352ey\364\350\037\2338\274\250\246A\007\003i\326\240\3570\355\210\234\374\272\036|a\006\266\331\\\037\372\315\241\322|\367\265\345P\034\374\374:\343 [\316j\215\203\355=\022\003u|\250f_\373.\005\246j\337\324\247\210\201\272\345\261&xK\262\346e0\360\0256\276\374\337a\340L-\334\006\006\266\245\017\237\347\013\000\362\262P\334\026\027K\203\264&h\337:g?\023n\033\242\322\332\t\261N_\017\332\201>""\2549\030v\302x\317\021\353\311\310\021\361\300W{{\362\273\215\233\376c\263\177o\366\027\207\366\375\371\266\306h\337\376I\312\216\357\263\341\372}\301\216\364\355o\353\270\276\372\371\2243%7\022iI\230\252\230\356\207\2467S\357\341\014\354^\340\227\300\213\250F-\332\2748c0\320\344\220Gjo\223\014\036\250\r\352\033\332\0170h\311\353\265\241\242\2441\035\231\300\320xO\333\370Tp\322\335\311\262\213v\226\307\260\374c\001\315\006\354\032\201,:\331\300o\350\374\246\036\017\017\342i\375\340\321qt\306\325I\376\030:\261\243SG;2\312IE\353\372\027L\264\260Q\2565\031\323\026Ek\353\260\216r\373*Z3\265\237EO\370\342\347\335\376\316O\354_\367\237I\265:\261\267\017\276\035\312\211\375\227_\371q\321\322\\1\273\227|Z\3355\215\222\313;\366\223\0214\251\262\037\024\262\257\007\261\357h\261\315\253HZ\323\"\027m\333\314ufn\365\005\276<\331N^wt\207F\232P\331\317F\320\n\225\375\034\221}\311\252}\027\013\215\2204\203\245\313\232IJ\323\235\315\277v\246Y\267\235\331m\237R\310\307P\244=\203\337u}\264+F\266\004d\355b\337\256o\337hK\342\202L\257\354\235H\272y5\335\031\255\244\355\314n\357\t~ky\313\331\360\273P\220D4)-d\261a_\257o_CNk3\3640\007\355WP\223\326\267\010wd\331\253\355\314\356\370^%i\204\366\273\006\244U\320hH\303\240}\245\230}A6\255)\372^\330\254\337\300\354\310vf\3339\336\371\275M{\017\204tf\322\340h\203\235\026 \355\225G\373I0\262m\360}vT?\216\331\231\355\317\366\362\274\347\000\203%\337\216\363n\301\375#\003g\013F\340\3038\223\031V\267\227\321\301\225\211@[\307V\265\367\026\252\277\275\363\331\356{b4\220*\032\236tnge\265\274z\302\356\367\363\331\270~\346\304\322\331\364\273\221\225\272\013\351\353\244\250\333+\000\366;\t\244\241\373^9\347[[A\254\237`\200f\250Ti?w\342\\\205\254\255Kh\366\233t\222\267\305\245\236x\357{\333j\353\037\335\351\356\204\230\263_\345\243}o2u}\214\316\343n\252\260(:\321\300\024:S\201;\350\334\t,\240\263\020XCg-\260\211\316\246Zg\330\356\320f\270o\207\224\263%\032t\355\267W\354;\020\346p\207\374\313IgR\266\234\2664\211\026w\324\276\335M\037\244U\264\177\212h""\257\215R{\260\237\342 E\232\232\205\257\351\363_\350\374\325M\047p\246\321\231V\355\201\226\237\350\006Ij\026\217\321y\034\030\302%\246\241\243t\203d\350h[\247\235\355l\034\021\047\002\0324^[\363RGcaq,V\220\255\273\033^\306\250l\277XFj>\tx\275L \264}j\021\233\350l*\tAg\262\3102&\202ND\035 \235Gg^\255D\3229\322\225\316\r\325\250\333\026\304\335(\300J< \2045:\205g\336\332S\227\0079(\303\373\367[\345?\351\036\331\375\316\314\000\301\362\351.\350\335\362|\035U\242\375\304\021\365nZ\274\047\333\004\3377Xi\036AB\237\226\314i\002A\257\031Q]\322a`\373|][\255\234\232\035\310a\325\347|\363\363\356%1\027\224-\032\257o\204\n\374*\346\304p\034o\323\214\2445\205\353\373\335\023x\330\370y\226\360\017\240i\221\212E2Y\257~\212Z\323\273+b%\211\316n\223nE\302\230\214\322\376@\347\217\356?;\263I\255\246\047_\203f\"\257\371y\211z\357\017x\322o\366Y\307\374\332Y%\244=\331\307\351\355\267}\250#\321swd H7,\323\370HZ/MN\350\206\345\273\350\334\r\334G\347\276\322\2362\235S\205/\342q\337\204\223\200\024\320\241\360\276\027S\215\315oFx\221Jmm1\353\312\356\353N\nD\000\336\020\367\254\252m\343\032\227\275\243i\013E\373\315d}^S\3642\232oN\2403\241\352\3626:\267U\225.\242\263\030\310\243\223\017l\241\263\025\370\003\235?\002\177\241\363W\340\247\243\035\261\345\335\277\236q|WkR\332l\250Mzo\253\373I9\047\t\215\023O\217\355\365\260K\324\233\371\333\257\346\320\332\246=\201%U\327~\237K?7\0474^\352\303t\312\234\024\033\252~\032\023\351\202\014\322o\350\316t\272 c\003\235\rU\375\264\341:\201\316\304\3218:qs\203z\307\024\242\363\320v\342x\035\232\234S\202z\001\262\360\241\363Pv\032b\236>\224\013\315\346\307\237\366m\036\226y\2220~8\374\2337\264\177\353{\377\235m\025\336\272\264\047}\211\356\216\370\t\353\370\247@0\320\241\375\235W\352\217\0328\004\377\010\tf\332_?\035\265\261mE@\323D\325\367\242\002\373\351j\332\313\244%qZ~\322\257\353\211\032\"\215\226\006\342Q\254\232Q%\274\251\023G\003\035\332\256P\025\025\034b\265\364\014i;[\233\251\007\333wH\177\335\347\212\326f\263\r\371x-t\"9G\246M9{\216LVW4z""\220\222d?\213B+M\366aA\232@\322\036\206\336\001\025{s\244\305\3220K\235\210&\220Tac\201N\234\373O\325n\324OCo[\357P\035\r\342\007\227\234K\301\306\331\335\336]\337:\032j\364\243\321\277\247\216\204\010\204\252}\033\027\001S\242\211A?\222\226p\320\211\266\234-\251\262\321J\217}\235.\365#Z\310\240~D\343\036\031\254\320\362\017i?4\n\322\344\202\006C\275\265$\226qi0\364\235\031\276\340\315+A(\345%\2613,\rv\345\025E/\253\222>G\243\274+\316\225\020^\037\271\353\273\210;\322\0106\374\356:\026[\261;_5\276\306n4+6\321\344\"\023t#\250!\353F(\232\264S7\242\032\242=@\322L\310v\233\272\021\325\020-\307\320\024\236\324T{,\242\311 )/\324\215\310\024\216\272\021\325\020\311\275\311\347\254\250a(\351\204\230KI\345\001g\344/\257\242\256\343\373]\2379\237\215\341\335&Nl\312\257\246B\215)\034\227<5%6Mv\306\033a\274\230S\256&\313\025\005\230t\200\376#\227W\354\347u\355\3539ijD\306\010$\360\354\247\220h\003\313V\036\250\212h\204\262\365K{\332\356{\363Z\3449kj\004JzW\354H\203\320\223Co\356\345\325\324\027\230\352\252s5\274{V<3\231\360\253\252\321F\272\3417:\211-\367\235\331\306-|\200Z^F-_C\206\201I\237t\263UU\032\224\2507\321\330d?\230d\337\244Jc\023Y\233\221\202\327\202\026Ak\234m\325\"BP\322\025\241\216\303\020,\027(\362\276U\365\364X\317\223\237\313\253\325\033h\265\200/\362\234\302K\033\020\226\255\254W\003\325 \276\304s\342I\264\362uu\264&^\006:\341\364|P\271_=V\023O\370D+\203\210\204^\020:\376\344\272x\272h\013\237\365\021\017\361\200\343\364\366W{\341\313\023o\224\377[=^\033\304\230\017*\277\327\372\321\363.>\271#\022}X\355\227\211\316V\376\013\363\363S\265)\014\366\226\217\226S\225\301J\250z\272\272P\353\207\257O\302\004\036\r%\360\365\366\364\336\311\367+\311jo\265\037\331t\275\274\356\234\275P\353\206D\247\240i8o_t.\312\213\234O\236.\337\205TW\360\342\210^\274c\026\327\000\002\265`\363\034P\235\031\001U\254\227\345p\272|\247z\244\372\001\256\231\023\222\363\325RmPR-\302\003\265w\361}\240\223\276(q\023\016\237A_\337;\371Ae\241\332_\035D\224\323\225\376\312\217\220\346\307\235""\217\205fE/\024\345q\312\332\253\260\236\302\253\204\305\003BO;q%g\353\327q\202\224\226\017\336X\332\234\375d;\351\013\323\035\273|\363iG\356Sj\375.%y\253\010\336\250$\346\2054\353 \261A+\347\372\236\272N\335\234\364\264#\357\332\264~\257\n\210\026\371\260\2154\266\243UO_\225q\246c\317\331<\355\310[6\255\277d\003c\210|\314F\316?i\003\220\326|\251\th;\345N=a\363\264#\327\030\037\340\nc\371V\030\250\247\326\354\301W)\275\325\261\013\213\237v\346B\272\203\\F\007\023)}\327\265\255KP\177 %B\333\374w\354\332\271\247\235yO\343 \257i\200&\257/n\246a\202\204\203}\331\277>\047\331\261\0474\016\314\214\317PG\375\324\371\364{P\030A\363\367c\306O\376O\213|\201\242\265\376pg\033\272\307\242\020\336\362\2325P\226\361\252Ja\276I\303\005\t\t\352\036\324$\264\225\300\3631\343G\310\270G\030q\200\244\200f!w4_\0163<*\367\001xA\372\303\341\346E\253\027i\331\327\224\265|\327 \220\210o^\361KCi\221\314w\316H\213d\366\231\214\366\334\347\324\332\r\202x3\331\201\031\330\332{F\226\355!\267qx\306\313FP\305xc\2438\311gO\273}[\026]\222G\363m\337\373s\306\272\333\373\352\221\342\341\352\316w\215\202\230\307ZL\354\314\255N/~\247\023uS\373\200{\013\353K\333]\035\274\314\351\351K<\365\323\3413?\264\000d[0\223M,5H2\330\240\323(z\341\273\223\207}\236\276D[\230N\033\301\274\354s\307\255\331\273<}\211\347\037^\312\351\207\227}\375J\213\307\036\236\266};\263\215\253*\0076\271\245Q\314\367\302R\332\210\321\347\303\305\2521\255\357\323\342\261}\2118\335\002G[\316d\225P\352\324\211M\332\273l\177}\264sq\343\300\207\tI\237\240\306O5A;c4 \322\2420\3550\353\253c\305F3\035\340\244e\374\266^\006\375\314\203\206\373T\210\253\036\016\221 \332o\363\330\276M\313~\305\206\272\003\355K\322PJ\333\223z\363\253S\202\350\265\035[gi\323\256H\233\325\027o\303oA\022\371>Mu`c\341\337\320\371M\331\014k3\251\216h8l\373\243\335\025\322\342\034\3213]nr\366\323\277\007\354\247\361\354\367\"\207m\350B\252%\211!\032\230\311\032\337>gE\333\277\264a\265\325\231s\241\035\254\224\266\013&\327\355A\324I\366;\222\273\337\373\n\366\351\010""\272K\210\352\203\304\024\031\267\320\316!\335\033J\243\003\235\202{\330!\331\325\301ziy=\300\335[|\227\000\244\360\3629\333\260\237\346\272\337\313\254\264\371\256/w\022k\002T!t\206\205\254\215h\360\366=\360\260\335\335\211\247\223;Z/\255\256\215\037\n+0\232\277\331\207\212\354c\207\244\336RG!3\372G\335\0356\377j\177\275\264\272L\357\251\027\337Uz9\223\206\316\002\203\275\265\225\271\337Y \232v\320(O\035\205\006{Z\262\240\n\241\0134l#=:\306Kr\314\266\377\"\353\242\337\273;\261\025\320\321zi\357\"\271\274\357\001:\313\206\263a\355\256\372\356\263\267\360\300\021\231\245S\205\320D\234*\204\216\351\332w\203\323\354\203:\n\331\022=\356\356\304J|G\353\345*B.:\027\177\334y\210v ~\365\022l\364\372\324\313\r\274Vi\347X\343U\320\3056\305\364I\337s\007\235e\323\331\2646|}\267\376[x\230\221\326\353\355\003\262T!\264@Bz\030)\307\266\031\036\031\016\375\361\234\365\362\023\224\356=\241\365\313\013%q\323\356%\325Kk6\254\207\305\202u\277\303r\366;\217\3559,\327\262\351j\373+\346\032N\370/;\227\207\033_\355\016\356\372\0160\303\276\246\305\342\266\246\235\013\215\001T\307f\304\272\047\020/\3251<\016\"f/\366\276\226\257\231D\013\017\030\321\224\322\236K\332V\306\244\216\321\013y\266\235\035\231\202\377\365\234\2253\004E\374N\234?\220\227\210\312\343\212/\245rZ3*>L&\305\264\344\250Wy\305\032\013\351d\264\320E:\031u\031:Q\361S\247m\211\237\376S\206\304\207\311\214x\2773H4\361o\353\031\244\226\355\207\237\376c\306\303\207\311t\230\326elco\373\341\020\337\003\301C\235\267\031nw\365\334\300E\376Ag\360&>X\014\223\306i\277\352\031\363\265\354\026w\341\354,7\262\250\247\3119\031\220/\365\264G\316#9\257\261\r\220HO\243nc_PL\3723\351i\324mh^c\237\017\243\365\031\333\300\333^\304$=\215\272\r\035o\031~\316\352\031\205\">\026\213\034\240C\313\373\340\326^F\365\234lu\267\213_\036\305\375\374\360\265\367R)\377\0351\3576:\rO\366\035+\324\321\250\n\251\207\221\356@r\320~\036\211t\007[\261\263_\343\364\335\021\243\341\211l\364\351\246\"\272\231\206\356!I\243\223VW!\027\320)\250\233\212\036\241\363(@""7\323L\2423yt\006\235\231\243\367\320\271wt\016\235\271\243\277v\346\326\232\321\3729\261\0254!\006\177P^\240\r\001w\255\347s\355\325d\333J\317\036\371\355]F\373z]\022^\366\345]\367\272\255fy\340\007\010\332\274\313\341\177\0256\311p*?)@-L\026\266\272:\262G!\336\035x\372\002w\346\267\201i\3746\353\377\003L\243\233\362\237v\372\245\206\027}\247\341e?\335\332\312\003\rO;}s\372\213\336\233~\250\336\273\245\013\323\237\236x\035/^\372\013\271\204g\237\240\220o\224/U\322\025\030\206\377>\366\257W{\351X\224s\374\375\312LU\234\014z\255\322_\371\242\372\037\250\244\255\357_\177\362\240B\307\272N\343\211\254\377\254\366\357\365\236.\047*G+S\352\254\326\307\3254\036\3068\203\373B\352\234\024\276M{\276~F\036\3358\376D\254C\364\212<\345\335\036\210\264\037\017lM!\260X\356/\337\250\274\201\244\234*\017\003\243nA+\336\000V\235\302\257N\275U.@\344\347\202\304\263}x\324\r\032\304\331w+\327\235\377\252\327\347\336\353\027\254\270C\357\017\277\007\252\013\346\373E\271[\026u\235\010s\336\275X\273^\323\307\330\2009\320)\376\363d\241|\241r\001\264\243u\3318\036Uz+\347*\242\211|\014\025\267\256\030\tiO\002\327\276\202fq\244\332\353\006\374\027\271f\003\217V\t\340\256\346\210\304\217\325\374z%S\375\016X~\\p\230r\352\241O\236\036\003B\361\376\267\022\356\277\365<\031~\362G%\014\355(\203\207\363N\225G\234\263\342\270\213\251\370\333B0\000\342\315r\312y\367Z\375#\250\271\033x6N*y\037\341\325qo\2257\235\367\277\254\027w>i\374\033&R\047\345\235r\t\254\252W\205\022\210}\377\310\323\236>,\245\242\350u\323G\200C\033\330\330N:\047!\t\226*\003\245\375\022\232F\023\356Q""\257\n\325\200\216wL\257B\232\337\257\246U\013\370\242\322\215-@\336\2166\017\344~\\[\004\031u\222\264\322\323\265U\301\241\001h\237{\003\203\365SP\224\023\377\255l\t^p\264M\260\365{1]\255\007 \003\350\322 K\312\233\225\004\224\3674\244}\253~\204\025\370\351\261w+\327*w\341\253\007;\275;\027\305\t\343\367\372\252\257\3272\365ow2\215A\224\302\327\252\211\332\321\332]\210\377P\\\370\371\361\005\010N\327\305)Ll\013\203\310\267\267\312B\241\272.WLE\353\014\224G*\257U\373\253\327\201\341\201\232\220:\335\345/+\003\325A\020A\342\234\344#\350`\330.O\235~z\022\272\002\360\333\351\307E\242O\240\257\275u\026\244\243\363\016\316\266\2407\014\202`<\373^%$N@\202\324\024H\236\032\211\006]\353g\350B\033\325(\332j\237\257n\324&AV\t\016\246}#\337n\364?\355\301s\223\327\245@\300\016\365\371\223\364\223?\201Q\335\202Bl\001\375\"\277\036q\246\023Y\016T\2348Y>R\376\240Rr>B\351\047\272\364:H\230\371\352)\321<\201\347\365$\212\3117\2347pM\037\312\211\3749\211\315\241\267\322\217\355f\000\361\210\326\0109|X\375\260:^\323\355M\236\004\355\301n\240\016zR\327\367\036\366d\351PR]\254M9W~\262\245\324\025l\366(\013\007\241\316\257\261F\376My\252\234\303B\002k\261b^)\227\234wo\300\364\351\344\233\316\233\347\344\330tV\324\336\017 jO\341A\321\363\265\367\200M\344\225\005\303*{\005\273\223j\227?T\337\304\3128\355\234>\047\010\023\327;b;]\177z\362\2148\312{d\357\263\033\365yq3V\327n\377\336\327\337\354]\275^\017\211k\337E_\214\224\373\261q\366\240T\325\025p\254\307\351\021C\243(\212\363\257\336r\357^\340(\360\340\265\343{\307\336,\377\010I\002\257\374\257\004\337\2408F\336\274\216\035w\005\2700\010\t\005T\214\365\037TV\360\274\357\373\352d+\214Tb\354\004I\354\004\000\312F\023d>4\204\275co\224\317\213\232\003\317\207\3451\220\004\037W\227j\267\352\277\t\361\362\346\231\362\2024\003\370\022K\200\243\317\327\225\240\231.\367;o~\204}\342\377\001+`\243\t"; - PyObject *data = __Pyx_DecompressString(cstring, 25616, 1); + #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (29459 bytes) */ +static const char cstring[] = "x\332\334\275\313C[\267\3628~\003\316\275i\233\3666\275\351\353\366\266\037\322\333G\322&iH\323\367\323`\003.`\033\333\030\362*5`\300\r\330`\233\000i\332\336e\226,Yz\311\222%K/Y\236e\226\375\023\372\047\374f\244\2214s\31611\211\235\362\375\265\304\222F:\243\321k4\032\215\244g\237\355\203\377rK\245Z\037\374\025\372V\267\352K\225ri\256o\243ZX]-V\373\n\325\312zy\276/\027\035K\014\274\017)fk\365ja\256\336W*\327\213\325\205\302\\\361r_\002B5\205\007\201\345\371\342|_\275\322W+\255\254.\227\026\266\372\326k\245\362\"D\315\227\356\226\346\327\013\313\032W\337\302zy\256^\252\224k}\263[}\253\325\nDb\272\202B\264^.-\224\000\217\315\245o\241R\355\253\025\353uH\363\321\\\245\\\257V\226\2275\336\325\365z\337|\241^\270h\342-j\205j\265P-\254\024\001\r\020\017\005\251\026\353\325R\361.&\253\026k\353\313\365\032\024\300\342\350\003\324\265R\255^\353\253,@m\374\364\323|i\256\376\323O\020R\270~\372\251\274\276\262\272\005\200B\265Z\330\252\365\235\007\2520\331*\240.\324.\307\000\305\020f\207\237T\021^Y.T\005\374\302\305\276J\271\250\260)\034\252`\305\302\334\022\346XY-\226/\366-\225\026\227.\366-W6.\366\315-WjEE\367\335\312\362\372\nT\266j\252\271B\271o\266\210\345\355\333(\325\227\024\266\372\222\002\314\250\n\231\321\364\235\277\320\007E_\252\314_\356\233Z*A\036w\212[P\253*\362|\355\002x\212\320<\010\251\351\212\254\365m,\025u\275\315\025t\005#^S\241\330GL\345\303W\272e1\201\316\264\014%\254a[B\307\251o]~\326\365\255\271\345B\255\326\267X\254c>\245z\251\260\\\272\007\010\220x\250?\331!\372\020\215*se\025\303@\307\026\004\251\203\271\302\365Uf\177.\316\325U\377\323\375\0072W\324\002u\225\r$m\265ZZ)T\267X_\203\332V\210LW\241R\207\367\214/u\t.\301\177<\347\217r\321K\006\343%\333\275\020\345\245Jy\231\347\206_^\3228\202m\303\003\027X\"\3639D-\326\316\337\344\311.\336\356\273\2512Tq3@u\245:sg\003\003\267/hbc\2259\350\047\345zAU%v\256\026\037\270NT,\353!\010\203\215\332Sa\032\262\215^\256\325\013e\030\203\210\254ZY\004t+\200~N5\314\335R\201z\300B\345\242\350\007\220\231\177\000R\327(\025k""\227]\325^\242\352\276\004\r\260^-\363\001,k\020\263\251\254\327U\203\231N\246\370\0242.\335\317\241\373b7/\226k\353\200\324\264\243\352\347\205\345\r\3544w\241\353\315\023\302\352zY\326\357\355\013}\377U\035\277\026h.\323E\200B\214\\^\270L\244\020.S[\t\252\254#4\234\310S\264\376\341\231\332\377\336\005F\324w\276\270\271\n\303\001FU\337,\360\034d\0470\362\352\225\352\326\305\276B\275o\271X\250\325\373\334 [(\224\226\315\010,V\253\320\264s\225\371b__\271XD\006~\276\200_(\216\014\330\240\352\013\310\344\373\222\205$\2641\220\265E\214\027`\345J\335\344t\341\335\363\363\245\332\352raK\365\201\013@\327\273\347\027a\006Y\275\000]\374\335\332\273\265\313\205\371\273X=\340\203\242\314T\013\345\305\342\373\210e\276\270Z-\316\025\220~,\364R\001\021\367\025\027\026\240L_\366\235?\377n\355\302y\314\026\370,\326\350\205\363\365j\021\206z\265\260\210\275\375\302\205\013\317^\354\273\330\267\010\264\\\376\370\313\276o\276\213\366A\377(A\217\200z\350G?\014\205\025\205\263\266R\251\324\227\240d\321\330t\306d\264\216\3156\273\\d_\225p\026\330(\177\005\036b)5\352\351e\030\355\360\361\345\276,0\340\367\301\367\276\032#P_\227\243\220nN\217\275\270\252\325\363\271\350Ltl,58\023\317d.D\313\324\203U\221uU]\252-\225\026\240\334\321j\271\260>\3377V\\\254\254o\366\215W\024\047\212\336-B\021\213\003\205\371\276\224bw\n\341@46\223\032\370!>\230\273\2001i\313\203Ld:\232\211\216_\030X_^\376h\240\010\355\227.\324!\272\334w\036C\245\332R\337\327}W.\366%\213\3530\231/\367}\203\001L\2141\337\366]\2710X(c\253\256\2246\373\364\014\246\332DOr\203\225\362B\251\272\242\313h\361~\370\321\245\253W\256\000\246:\262{\3542s:\035~\n\363[u\271TDV\244\222_\210\025jK\320\320c\245r1V\251\327\255w\035[ \276\271\n3d\031\047\t_-\264\216\261\274*\td\017)\211\005\253bh298\223L\345f\206R\223\311\330\005\233\n\033\275\320\007\222L\261\260\242\260\244\0232\256\354\357\020\303\330\211}\330\2073\251\3114C?\0025\350\243KK\026\370\031t\014\2203\334\324\207\010\022\311\364dN!\200\036\002\241D.\0013\341\215\370\005\375\331\312:""\214X\340\320\253\225\032|wW#\253}\t\034f}a\2414W\202\232\350\033\321\003\217\320e\047\207\206\022\203\211x273\222\310\346R\231\353\200\nk\034*\314u\307D2\027\317$\243c\330#S\031H\241xb\337\0104/\224W\247\310\003!\261\231\221h26\026\267)\306 \263\276\334\326\252L4\0069\315\344\256\247]:\327\037m\255\362\017T\347Tm\223K\244\222!_\215T\226\347\213\325\220oFRc\261x\246\365\027\001\332\370g\222F7oCx]\313\227\243\205\365\205\025h\373\350|a\025+\334\327\230c\245\331*J\023\330\234\376\246\004\001F5$k\304\361x6\332\n\325\370P\002\204i?\323\331(\340\224U/U\225\344\013b\321%\310\262o\360r\262\342\373\274\357<\010;0\016\352[\027\2220\"\220\240\354\372\352j\245Z\047r\220\224\354d:\235\312\344\342\261\013\030_,W\326\027\227\014\243F\001\035\205M;\nZw \232\2513\305\271\nf\016\344~\tc\033\344?\340E+\025\230Xg\r\177\250\003\336\302b\241T\276\3142\004\261\002$\007\230\314\224TR\373\262\317NS\220\250\250\047\226A\265\350\320\263\300ri\026r\251\027A\264\000\312@\372.\252\331\007XM<}\351\332\347\327hJDV\010S\342\372\254\222,\213j\272\233]/-\203\004\323W\207^\200R\375B\337Ve]MhX\334U\224@\331\007\300\312\313J\202F\236\376\276bx\212\247\315\300\347P\325\357\003{\206\tI\265\035|=TX\256\025/\247\326A\304[\270\224\301Y\253/\016\204$`\265\263\251\352.\005#954\223\211&\207\3433\361d\014*3\026\237\276 \276\310\326\013\325z\253o\262\271h&\347\276:\214o\300w-\030\007}H\242\035\316\326\320\255A4C\241\273(#\313\305\305\002\226NB\r\257\221\320{\305j%e\347\255\002\202\201U\324@\006\274\223j5\235\271\010#\306\367\235/\003\207\304\036t\201E\336\305!\250\0267\016\010\363\304\322%\220\010p1Y\256\023\274\006B\022\210\253jq@\313\025\035S\373\3222\002\364\232\231\256RY\276\000]xp$\223M<\3664\017\337\3224\017>7\315gqq\353\037\3244^I$\342\353\034\265J\244%\007\010\336K\2527\340\222\273\254\005\352b\255\226\203,\r\267\004\326\220\332(\367\305\212\013\005\020_\375\271T*}+(\t\265\036Y\271j\trX\207\211\333\377m\265\264z\350\014K\t\206\213Pv\242\375\221\263\362d\371N\031*PO0\"\240:\353dr4\231\232J*\361g\022\007""\036\254\027@\354\253\315\351\306\005t K,Y\3014\217\334\030\331 \210\2035\234\341\n\270\022\206\226X.\255\224\352\301X\230\251\225\236\202\242\241\344H\255\036c\261-\220BKs\206\320\251b\341\216\220X>G\201\245\320\267\001p\300\200\002\"v\010l|#\250L\025a-\216U*\213\373x`,:8j\276e!\207 \010\014b\201\205W\"\026w>\366\265\000\004\277\034K$\343\331\\&1\032\227!\206!\000\014b\201\005\205!\200\274\354{\t\t~\214\013\027\030%YH7\342\01734!\340 \256\251\221D.\236\205\345z\"\236\311\006\000\014[\030<\200.\212\3355\225\214\307\006\242\003\327\375a\207,\014\034\304\025\313G\223\203\361\201\261\0244\246\0142LAh\000\321@|,\207\n\t\346u\010|\220\340\307\231xt4:\025\275\316\375\354s\037(\360\375\340X\n\332`x<\232\231\034H\335\230\014B\034\256\360\210 \306\024\0248:\206U\227\235\202\t!\004\304p\206\307\204 \235D\035U4\227\213\252\332\026a\216.\010\016\340\212E3\243P\226\311\330`*\037\317\004\000\016[(<\210.\365C\202\034\354\321\314\3130IH(\016\231\272e\312Lt8\225\034\032\273n\262\345a\206\"\004\034\300\025O\016O\216\rA\223r\277\303\341\007\005\277\317\307\223\020\315J\356\2030\\\241\021\2550Jl\241\230\016\3032\034M#\177\302\177\212+\204\200\034\276\0261A\244\231h\036\270&r\005]\363\022\300\020\206\301\003\350F\242\343\343\252\363i\217\373\\\204C>K\016\2531\230\024\001\376\271\017\026\202\"\023\035O8O&\225\315\312\020\307\346\007\266@\347\377\244e\352\304\360\310\024\324\017\363\262O%$\344\343\321\321\350h\334\371\306S1\021\340\250|\260V\310\002\237\264L\237\032\207zM\047\206\343\251\244/\310p\004\241\001D\320\321\222\271\304`t\354c#%\370 \016]xD\020c2\031W\\Q{\330\367<\034\362\031p\265\\\210C\035\036\321\nw\340\273V\351a\336\215\3053\003\251\\.5\356\013:\034!\320 \242Trx,><\034\217\321\250\227\000\206,\014\036\216\016\244/\346\365\241p\220\300\307l\216\016N\316\217\232\225\307\243\271\301\021\250\261\261\324\224\014q\024~`\030\026\222T\310\047\276>LN\031Oe|s\205\017\3020\205F\264\302(\261\205b:\014K""\312\214\235\224o\354\244\016\035;i\2202\007uo7^\367\251\017\022\370\030V\\\243\331\221\350\224\346\342,\344P\004\201!X\262\361!\020\231>\036\217C\315\307\262! \216/4&\2004\033\307\r\262\\B\367\304l\020\342P\206G\0041\216\244R9\327N<\310p\005\241a\21029\032<\326/P\010P\360\3734\260C\310#\227J\313\020\303\021\000\006\261\344\240\026\343\2614\210\230\361L2\000`\270\302\340!\350\260\241a\2651\225\030\034\361\2079\262 8\200+\027\035\235\314$\254\307}-\302!\237e\047G\023 \006q?\377X\202\202\337\217d&\2639=\026\254\237}\357\003\005\277\317\030\216@>\366m\346P\0160\231LLL\306?\316$\264\030\317\203\016G\0104\210H\211\200PF\273\350\367A\030\272\320\210\000\306iJ\305\006\247\037\344p\266\210\361!\215\047\306\360\237\371\314y}\351\206\007m\355\267\250\363\021\030\001\360/\227\321\277&5\017\004\277`\251\302\323\214f\323\370\317\244s^_\272\361!\3703\251\254\317\237(\005\177\223\370\317\246LM\266J\352\222\204\247H\245\323\270F\327\216I,B\376\0172\231\370\230\376\265\311Y\300\237:\013\177#\370\317&\316\216\264J\352\222\204\247\310d\023\370\317$\313\264P%\016\002C\310\331T\271\026\211&\307\263\223\343\372\327$\345\001_\352|\002\376L\272|\013\224\\!\210\306\0251\230V&\307r\261\370x\024\377\321G\314+\277\217%\262\321\001`\213\261D\036\376L\352D\270\3222\006\222\366HB\251b\224k\222\313\240\377\033\030kN\347\333Rw\036K\247bV\245\034k\241\\\216M[=x\013\205\270\265\343\215U\352\361\241\004\374Q2\347\223\037@\305\270\272iUK\361\361<\374\331D\341\265\023\317\3043 h\330\014[px\313\365Z\260\277\370t\032\376L\232\351\360A\033_[/,\017%\262#\361\214\376\245T\" ?\031\032K\2452\352\307\244e~_Rh\244!\327PC\255\332l(\023\035\204Y\225\034\223Z\204\002\037\214G\325\217K\334\242\312\207\nU\263\331n\334\31333\270193\343\007,\204$\\*\316\335\231\251\254\032\023Q\265\237\307\342\027\213\365Cb\3212@d\243\223\251\375\374\231\232\332a\324&\264,\tZ\025.\2630\356\200\013\034\265\272\014\257\227Kh\320\311`\326\262ta\271\260\350p/\372\014]C\"$1\010w6\275\026\214\006\3006\260\\\251\334\231-\314\335\261\000m\365""\350\313\232\200\022=Y\270\332pu\335\325|\300@V\304\204\226\242\326\242\0245Q\212\221\350\210\351(#\341=fd<:b;\323H\213n5\222\233\211\r\246al\246b\314k>\n@\302>\036\211f\343\316\047>e\200\300\227\030\231\312X\217\373N\204\003\237eA\202&\307}\222m%VC\\.\023O\242\212 \316\375\356S?(\374\373\361T,\316\375\276\357\031\310\367}iqi\254\262\241l\036\321\n=1\220\205?J\352|\362#\020\241\023\343\251\321I\343\232\3442\350\373f<\221\260Z\255D\013\375\026\267\303$3\314Q\3407\243\216\347\214\266b?\243 \237\2304\341\314o4\366\003\374\2314\326\347K\224\315\301_|\232~Mj\036\010|\340\022\205\247\230\314\344R\331D\326\270&\271\014\372\276\311\247\340\317\244\314\207O\256\330)\242 U\r[\317L\024u(\276 }\033\016m\201Q\033\264\016\306\323\271\020P\000\241?\246\025\322\354X*\035\367\005\003\3108\264%\"\3777a\251\223cF\300\031\013\227t\306R\303\375W\324\217I\307\374\276\244\245rq\034\272\336`\014\377A_ \207\022\313\220\374\024\343\206\022\323\344\260\017\\(\370\001K\326\"\215\376\337\246k1*\306\243\231\321xn(a\\\233^\004\375\337d\263\t\365cSg\263\255\222\346\323\370\317&\314\247[\244\203\362O+CL\343\332OD0\360\231K\326\"\205M\320*\036elr\264\030Q\252\027Wff\034H\313\016\343\203\3031\374g\3609\257\017c<\006\222\263\3765iy \220Z\231\007\030\327}\321\332j`\034\232\313\265T\253FJ\200\310\r\343\316\270&\271\014\006\277Q\304$$1\211\303\210I$\341O\267\034\271\366\263\344!-\007\237E\247\365\257\371\330\337\362\001H\030\n\221\270U\272\311\354L,a\\\367\005\017\206~3n\\\371\315x\253o\\\262\360\024\251\361q\253\010\037o\241\022\037\207\265\036\3763\311\234W\246KFs\231\2443]I\266\262bI\246\222\361d>\221\264\313\315d\213\205g\262X\250\246\006\362\360G\321\316\047\023\246\264]Z\2544\207\306\300\312\314:\215\354=\231\0330.}\347\013J4\024\231\030\213;\237\374.\321b\026\242\350L49\312\274\362[\006\361}<\246\232\235\034\363\321X\353\276\240\343\306\311\021\037\204\267`:\215\232\017\223\260\305\3027\235M\301\237I\224m\221(\237H\333\326J\267h\267t>\225\266\002@:\337\nS\016\376l\242\360.5\241\224\240\372\227""\022\210\200L\235\201I\302r\325L\013\376\232I\r\302_\032\377\231\224\316\033L\212\377\372\257\\!\307}\301B\301\217X\262Vi\\\222\026)\206\343\231l\026wg\342cc2d?\r\001\372\260d\023N\231\324J\255\224\311\047\360\017\377\231\224\316\033H\352\222\264H\221\032\303\1776Y\252\005e8Fq6\313\024\013\312\206+\033\315\300\037H$\372\227>\022\001\211!ku\304\331\026\332b\220T\321n*9\202\377LZ\347\365\047N\272$-R\330\004\341\361 t\330>\227m\321\373\262\343\211\254]Id[\254)\262\023\231\034\3763\311\234\327\237\356\006\360l\375k\323\336h\305\306\263\271A\3703\351r\203-\022\305b\361\274\376\265Ic\255,\014\325\301\n\3653\244\177\355\047,\020\362\ttE\343\362/Z\365P\025\311\023\206\247\232\034\200?\223lr\240E\"\246\013m\245\025\315N\002\313V\213P\347\263\237\370\000\276/\247\242\2433W\323#i\3531\337\371\302!\237\r\244\311\341\237\014\034\366\301$n31\257\370\220CB>\036\216Nf\263\316\307?\345\200\220/\251p\262h\255\n\246\364X\331\245\302|e\003\r1\265O\331gj\257\261\320t!\026Y\243\0144\342\231\231\271\312\352\326\314\214\r\316\027\213\253>\020\010\001\353s\305\231\231\334\307\271\217\tj=\222\262\\4\t\177#\370\317$\214\266`\r\316d\267\225\361.\236\356\035T?\332\246\234yg\006\227+\345\"\007\244\340K\1778Z\236\0372x\010\234.\026\357\360\360\344\352|\241.\020\251c0\n\220\312\222\303rK\261\234R\301\\R,\207\224\300\236\342\230\031B\207.\200\314\241\342\210\034\232\230\372\241_\207\022\374\006\047y\031R\200\030\254\340uh!\340\360\246\262\203\306eh1d\021\233\000G\2150\213\034\003\014=\006]\006\031\375\313\220g\034\352L\000q\306\241\315p\244\031\206rZ\377f\310a\250\247\031\356\351 \362i\206}Z\240\237\026\3709F\2060\210\217\241\023\330\0302\206\313\241\n`r\2108\036\207\006\rE\264\343\360a\300`4~\206\023A\006+\372\035^\014Y\314)\365\343\260\246,\316\224\037c\312\342K1l)\207+\235\322\277\016[\332\241K\007\360\245\035\3024\307\230f(\361\214\201q\251\257\232\363\t6\023\00309\3610\313\316\200M\236&\35426\020\221\273\314Gd\022\226\203@\357\303\355\020g\023\3727I\216\313\004\003&\017\343gY \310\344\200~""\227\001\206\030~\216\221!\014\342c\350\0046\207Lqz\3458\244\0300X\215\237\241E\220\301\213~\207\030C\016sF\3772\274n\004\347\002\0038\347\306o\216\017\337\034\033\275\3524\207\3658\304:hp\273\020C\257\201&\007\035r\231\3500\313G)P\230\227\347\245\001.7\027\026\371i\260\313Q\207y\236\032br\0350\223\343\200\234\032\007\304\3048\0206-\016\210Iq\3007%\016\310\tq``J\377\262\034\246\034\372\251\000\356)\207x\212c\235r(\241\252\310qH1`\260\032?C\213 \203\027\375\0161\206,\346TZ\377:\274\3407h\311\313\260\002\304 \005\257\303\t\001\203rp0\241\177-J\364\023J\343u(\021B(\321kQb\300\2424g`\270\337\241\267\020\223\211\000\260\254,\334dh\001.[\013b\231\263\3633\001\000\047\203\203\035-~\250 \210G:\2528\224\223\306\341\234>}BG\004\004]\004b41\210\244\207\"\030-\004\021t\020\214\323\340\316\370\004\000\202\026\006f\364\370\240\222&\026\311\350bPA\033\203s\372\350\014\221\014\t\312\014\214\221\305A\222&\023\303\0102 A\215\001rR\3709\244\020\220 JD0\312\002pI\236\210f4\n\270 T\304pj\3059\2470\230\240W\3060\202\203\021\222b\031\317H\226\021\202f\031\305\210\026\347\251B@\234d\031\341(\016\302\005\3012\332\321+\341\234\\\031\303\251eg\266\202\020A+\2073R\375`I)\217e\204r\260\240\223G02\315\3110\031\342\344Y\230#M\200\004Y6\306\221dA\234\034\013\344\244\230Sf\276\240 \306\002\0315\002&\311\261Q\214\036\013\023\004Y(\243\310wV-\024\310\251\363G9\032\303b\004\245\376\004\216^\177\014\247\332\037\307i\367\235\211\013\207\n\352\375q\214\374\260(I\277?\005+\200?J\224\300\037)\212\300\316\341\205\200$\361<\202S\356\207\373\310\346\321\234f\016\227\004\363\030F\255<\347\027\006\343\364\372b\034\301!\021\202b_\274#\331\027\301i\366Eq\242S?$\234O\335\025$B\202d\003c\304r\220$\323\3040\002\rH\220f\200>\242\374\031\3732\r\317\320\227Y #\221\t?\333\030\002\022\004\210\010FI\000.I\022\321\2146\001\027D\212\030F\255=E\351\013r*\035\320Q(a\202:\027\345(s0N\225\203r\212\344Y\314P\240\240\316\027\305h\014\211\221\224\372\0220z}1\202j_\\\220\366\000\335-h\016\247\367PZ\303\351lE\243\237>\377i\322p(""\2474\020\347\310\r\215\0224\007R8\302\003Q\234\372@$/\2028\277\032\006\023\344\313\030F|0B\222.\343\031\3412B\220-\243\030\321\372h\"\367s\"\t\342\210c\000A\024\301\0351\004\340D\020Hdn\316\334\372\303\222\010\013\345\204\010\240\217\030\033\307\t\262@I\224\005\013\302\360,.\367\253\243\274\001\200$\323\2019\235\022\352#\324ErJ\035T\222\352\340\001Z\203\224\004\210h\225\177 \353\220\\E\206t\332X\206\004\001\006\306H\340 I\204\211ad\030\220 \304\000\005)\352\350\261\010\214\247b\376\260\244\315B9u\002\350\243\317\306q\n-P\322h\301A*C\250\010\222\3202\377`\346a9\213l\331\231\352 DP\303\341\214$?X\322\305c\031q\034,(\344\021\214L\337Y\355P \047\326\037\345\350\r\213\021$\373\0238\252\3751\234p\177\034\247]\235u\345~A\251\2060\002\035@\322\245\341\214\034\r\020Th\220\310\234\237.\017\203IbD\014\047*\020\341#N\304s\"E\204$VD1\242\351\374\271\010\230C\354\241@^\006\177\224+DX\214(\205?\201+\206?\206\227\303\037\027,H\010yA\262Z\222\023$#,{\236-?{\037\204pj\004\334\221\024\000\013\272D\254#N\2009\205\"\202\223)N\365\207\301\004\2512\206\021\033\214\220\344\312xF\260\214\020$\313(?\321\211d\\\206\002\204\"\314G\242\001\005\211\303\030\037Y\010\n\020\204@F\212\324\277\204)^B4.\255U-!:\226P\345J\230V\205\335n\020\000H\202\034\230\323$\241>\262\\$\247\314A%q\016.\351s\332M\236\201\370\350\360\353\361|7/\204\002\005M\276(F[H\214\244\321\227\200\321\352\213\0214\373\342\202\264\007\350nAs8\275\207\322\032Ng+\032\375\364\245\330\034\233\n\314\261)\377\034\233j1\307\246\374sl*8\307\246\002s\254\271\221B\2068\001\026\346H\020 A\204\215qdX\020\047\304\002\031)\354f\213\000\200\023\304\301\216&?T\220\305#\035e\034\312\211\343pA\237\274)#\034*)\365\305qrC\242|4\373Rp\302}Q\222z_$+\202\357f\216P /\200?\312\321\037\026#\310\367\047p\324\373c8\361\3768N;\273\t$\010\021Ts8#\331\017\226\364\362XF,\007\013Jy\204$S\3376\342\013\372\010$\240\240\216\301\374\244Q\224\240\213`>\242\010\312)rw\227\004\000\202*\006ft\371\240\2222\026\311hcPA\035\203s\372\304}""(a0A\245\214a\204\006#$\2552\236\221+#\004\3052J\020\315\356]\t\001I\222y\004\247\330\017\367\021\314\2439\275\034.\311\3451\214Z}\317\013\367s\372\010\342\010c\000A\021\301\035)\004\3404\020HdN\367\304\370\202\222\004\003\344Tp\230\217\020\023\305i10I\216\201r\212\314\3153\276\240\240\310\002\031E\002&)\262Q\214\"\013\023\024Y(\247(\303\344*s\271\r\247&\343\227\2438DR\222\361\313M\006\"\250\310\004\344$~\037N\020\302\251\021pGR\000,\350\022\261\2168\001\346\024\212\010N\246\274g\047\024(\210\365E1zCb$\311\276\004\214j_\214 \334\027\307h\367\337\347\023\016\345\324\007\342\034\371\241Q\202\376@\nW\200@\024/A \322\026!\236\030#\307\021\211\001C\225\36132\020d\362E\277\313\010C\026\263\032\213l\004\272q\027\030mn\214\361\221\305\306\323\210\236\351\324\265E\326\343P\353\240A\357B,\013\r4\331\350\220\313J\207yv\0029G\035\202\230\243\225H\035\312\321l\232\034\207\031\003\006\263\3613\314\0102\230\321\3570c\310b\036\037\322\277\016/\370\rZ\3622\254\0001H\301\353pB\300\241L\351\337Ir\030\352\224[\276\033?G\236r\013v\3643\364\251I\216\237cd\010\203\370\030:\201\315!\323\267;9\237CMa\203\236\005Y\026\0045\331P\320eE\000\227\035\336\016e=,3\025\264y\331\020\317J\001mN*\3042Ra\227OV\377\216\220\303r\312:\231\303\370y.Y\047[\240\237\345\220\035\341\3709F\2060\210\217\241\023\330\034\262\2142\rWWXY\244\031g\302m\375\014m\306\031q+\277C\234af\334\203\271\204\376uxs\016m.\2005\347\220\3468\316\034C\251\316\202Y\217C\254\203\006\267\0131\364\032hr\320!\227\211\016\333|\362\t\375\353r\310;\322\363\001\322\363\216\364<\047=\357H\307\273\266\310\261HU\200\260Z\277C\253@\204W\371-b\025\262\230\023y\375\353\360&\254\341\271\3612\254\tkr\216^\2073\341\214\315\315\335]\314\353\220\033\200\311\201\207Y6\006l\3622a\227\241\201\270\\\325y\013q4\210\237\014\n9\030\304\317\005\311cA\342TPL\035\024\211\261\203\"1wP$\0268(\022s\007Eb\374\240H\214\035\024Q\207\202\330\311\035wp\047pn\307\035\333\341\247v\330\241\235\370PB\377Zl\350\047t\306\353\360!\204\020\242\327b\304\200E\251z\033\357l\254""\257\005\273\032\353i\242\243\361~\026\037\317\353_\2062\357P\346\003(\363\016e\236\243t\375L\311\266q\265\030\212\263eP\334-\200\342\201\245O\334-z\342|\271\023g\013\035&!;\2418 \007;\321\227K\273L\300\215O\247\365\257\3036m\247}\343e\370\246\355\244\217^\207q\332M\371\372*6\353\261\210)H\270Y\310\241\047 \345@!\233\t\205m>x\215\233q].*d2\261\001\226\207\202\231,T\300\345\240\2026\003=X\207\370`\035b\203u(8X\207\330`\035\022\203u\210\017V\272*\316\371\034~\n\233,X\220\345BP\223\021\005]^\004`\331\251\261\242/\235cY\271\361\342\002\"\0337ft\200g\301\306\215z\314th,\212\332)u\253[\016\237;R\017\316r\300P\265\210\251\207\213u\004\351G=]8Q^\250\350\220zM\324>\234\347\340ctu\233\016\245V[&\324\217\357\205Dd\326\313\365\322J\321\000\360\345TA\252\203\020\255#Q\365c+m\304\326\330\210\277\272Fl]\215\260\212\032q\2654\242\032a\2045\301\210k\200\221@\365\217\270\312\037\341U?\302*\236]\334&C.\013\0063Y\371@,K\026c\262f G\002\003JR\360\"8\021\360\021\242@\202\016\013\361\223\241\"\004\025\n\342#B\301\030\r\372R9\356\347\024\020\304\021\300\000\"\177\202\273\354\t\300s\047\020\313<\253\365\260\346\242:\226q\226i_yPd\232e:W\023\344\031f\271\246\225_i\347\013\362\214\035\320\345.a\202\004\027\345\350p0N\214\203\372)\302K\362|\301\000E\n\350\243\310\302\202\024\251(\037E\n\026\240HA\rE\211\201\254\376\265\371\243\237\2625^\227\033B(\023\364Z\334\030\260(\351r>\346u\310\r\300\344\300\303,\033\0036y\231\260\313\320@l\256\312x.\301\314\322\022\316 -\0210EK8#\264\0047?K0\3033\375\302\263a\332\356\035W\010\214\352\351b\224\317\026\243l\262\030\r\316\025\243l\252\030\0253\305(\237(F\007\325\217\303j\047\323Q\377T:j\047\322Q6\215\216\272It4\366\203\376u\330\300o\320\221\227\341\003\210A\010^\207\021\002\026e6\247\177\343\323\316\343\320\353\240\311\301\205X&\032h\362\321!\227\225\016\263\3348n\2068\210\225\241\024\370\0342\272\006\221y\035r\00309\3600\313\306\200M^&\35424\020\233k>\245\177]^y\273\3520^\226C\336\256:\320\353\360\346\335\252\303\336F\310\375\372\256\305 \304f\353\207\023""\ta`G\216?\226H\363\203-\231\376\210\000\311!\344\330;\035\303\241\207}\021,\204\214\n+\210K\021(\214\213\n)\220\213\014\026*@F\253\314\003Y\252;(\203\220\220Bkx \047\007\016\313O\307\206\347\032VH\035\021,`HR\233(\251~\034\305V)0\346W\007\214YE\300\030S\001\214\271\305\277\272\026\323\270\016\243\n\031\2446\300\360*\230A\255\002\016\273\n\232\014\024\327\306\273.\311\321\\\314\\\252i24a\312\222\007]\246\006J\331\232\240\315\330\000\\\326\352\"N\347\023\331a\230eg\2022;\204\262\3540(\262C\000\317N\344\300\321\207\340\346\210%V\206\222\252\217Mz\343l\322\033\017Nz\343l\322\033\027\223\3368\237\364\314-\241\314\313r \200\315\205\205yN\004\266\271Q\230\345H\020\227k6\2330.\313/\233e\231e\263\301\234\262Y\226M6+\362\310fy\006\37149\014}>\355\260\347\323\001\344\371\264\303\235Os\324\3714\303\254;\222\276\325\222yY>\004\260y\2610\317\217\3006O\n\263|\t\302\362\346\271\260\014\202\270\031Z\201\221!c\270\034\252\000&\207\210\343qh\006\207c\3448|\0300\030\215\237\341D\220\301\212~\207\027C\026\263\272r\325z\034v\0354\370]\210\345\240\201&\017\035r\271\3500\313\307\\\355a\357ley\211\253=DX\344\047\256\366\260a\236\247\274\332c\\\2179>\334\330H\013\01626\276\304\320\342\243\212.\206e^\207\334\000L\016<\314\2621`\223\227\t\273\014\r\204\347j\252/\341\257\276\204\257\372\022\341\325\227\360U_\"P}\t\177\365\251\253t\314\375\264\314\313\362N\312a\310\303<\357\244\034\206&\314\362N\372\206\241\272\250\326z\030\005A^\300`\216\216V\034\201\3058jB\370\002\003J\232|\371\312,Cs\223\031\371\363\340\350\325\355\252\314\313\363\322\000\227\233\013\213\3744\330\345\250\303\0047G,\261r\224\034#C\030\304\307\320\tl\014\031\277\207<\000`\031\t\260\3153\000\345\331\213HK\211\2002\242\004\334\322\247\326\346\334\"\211\031$\005\355\221\2309\222\260F\342\306H\031\305A\360\232tr\034j\014\030\334\306\317\220#\310`G\277C\217!\206\237cd\010\203\370\030:\201\215!K\215\221\303\220\246\\\013\030?G\233r\265\215~\2068\305j\266\210\357\035\025\365\373\200\261\342Ba}\271N\317\004\326 :\253\254\236\365\025\356\326cI\240 \021\301B\216\014\002\022!\024\262\244P\330\020\223ef\325YgO\235\r\030Rg\235\005u\226\233Ng\231\315\264\3522\372~S\2741\236\034\207\037\003&\003\343g9 \310d\201~\227\007\206\\&I\216\221!\014\342c\350\0046\206\214\341r\250\002\230\034\"\216\307\241Q\\9\313\270r\326q\345l\200+g\035W\316r\256\234e\\9\2536\324\262lC-\3536\324\262\201\r\265\254\333P\313\362\r\265,\333P\303\033\361\311qH1`\260\032?C\213 \203\027\375\0161\206\034\346\033z\215C\027\351;\3547\330J\207\205x\0167\330z\207B,\227\033|\325\223\315\r\352_\227C\316\362a\343e\270s\226\017\243\327a\315\r2\2241}w,]\330\357\020\307\330\335""\261,\304\321\307\330\335\261\024b\231\304\370\335\261\352\006~\343\016Y\017\313O\005m~6\304\363S@\233\237\n\261\374TX\344\247\231\270}%@\344\305\330\271\010\373\362c\214\335\206e\236\234\305\353w\006D>\"\223\260\034\004z\037n\207xr@\377:\344\223v\335e\274\014\361\244]m\241\327!\235\034`(\307\365/C\351\372j\300x\225Y\256\n\263Un\263\352\3369\020\001\226\201\005\331|\004\204gg#l\256\026\3022\2670K\203y3\201\373\035\005\026b\010\020\000\226\277\205\233\354-\300\345nA\"\363\201\264\363\311\214\007d\266\003\241\231\016\310,\007\374\031\016\370\263So6\310\220/[\r\023Y;\220?{\035#H\320 \037\031\032(HQo@\210\200$D\2038\035\016\342#CGp*4D\022\241a\202\006\327\360\376f\3675zx\223\373\032<\320\334\274\261\213u\361\310q\215`\225\225\325B\2754[Z.\325\2674HX\302%\312\365\342b\261\032\022\203\257\332h\360d\271VG#\267t\261Z\252\314#li\275>_\331@\342s\037\253\037[6\360R\261\310\347J\004\000*\014\370l9\300o\212\240o9\327OZ(\307a\215:a\305\372\031\346\250\023V\224\337a\2172a\205_\237\316nO\017^\236\316\356N\027W\247\363\233\323s\332\2408\307-\212s\314\2448\027\264)\3161\243\342\234\260*\316q\263b\324\266\014\307\255\307a\327A\203\337\205X\016\032h\362\320!\227\213\016\273|\022\272\010\350\262\\\022\254\0206\300\363H\260b\250\000\313!!\n\242\266x\321\341\350\247\031\366\351 \362i\206{Z\240v\312\357\\vH\377:\274Y;]\033/\303\232\265\0235z\035\316\354\020C\231\320\277\014e\302\241L\004P&\034\312\004G\351\346\337\334\365\264\331\2071^\207\334\000L\016<\314\2621`\223\227\t\273\014\r\304\344:9\226\323\226\310\332cs\244 \345\307B.7\002R^\024\2629Q\330\344\223WK\243<[\262\344\335\222%\037X\262\344\335\222%\317\227,y\266d\311+Y,\317\004\261\274\223\302\362\001\021,\357\344\257<\027\276\362L\362\312\047b\327\243\306uhU\310 \266\001\206Z\301\014r\025p\350U\320f\220\312\344\324f\223\366\270,t\320\344\341B,\023\r4\271\350\220\313F\207m>S\352\2102:.\217)w$\331\372\031\376)w\004Y\371\035\356)v\3448?\245\330\000:\014\263c\002\326\3171;\026\240\374\0143c\000S\352\325\234)\366\004\313\224{\203e*\360""\010\313\224{\205e\212?\3032\305\336aQ7\337\221Lg\375\014\275\201\330L8\200ge\3406C\003`\331\032\220\315|p\314\014h\343uY\033\200\311\231\207Y\306\006l\3625a\227\255\201\330\\\023cc\031\343\272\374T\310df\003,\047\0053\331\250\200\313C\005m\006\252\375y\363\263\326\0176>k{\321\364\274\345o$\206oD\207\255\307\"\246 \341f!\207\236\200\224\003\205l&\024\266\371\214\351iX\271.\22716\021\273\000\313c\214M\305:\340r\030s\2231\"\217\333g\360\230\327\367v\226\236\261\365\364Jiy\300\237\032\347]5S\232\264\211\226\210a\006\315\330\027\213\231\327\227\016\346\303\254y\254\316\371\374\211\0229\373:]\256\305;uv\3162\323\n%\227A\371\215\236\030hz\320\tD\300\227:\tB\371\300X|&:\231K\315\2443\361\301\231k!\260\317ab\310\333W\021\363-\336G\004V\237\267\257\364\345[\274\327\247\030\266\346\332\224\220\371}I\025\323%\326K\211y\300\227\032\330\250b\245\224\322y\375\351\306\243\2121\232t-\232\033\030\035\362:\035\345|\376D\304\226\034\1772\037\310\260\3573b+\226\275\320G2\350\373\006\331\204\346\025\224\232\371}I\307\243\256T\255\312\247\007/\ra\235@\004|\251q \352\321Hi\307Z\r\300\231h&\023\275\216\262P<\253\016\020\325K\225\362\314\314\\\001\242\026L\220\301\227\212swf*\253\365\231\022.wf\356\342`g\361\213\305\372!\261\032\272Z-\315\025gj\352q\300\231ra\005~]\222\345\nd\355\017\003\177)0\030~\343\013\326\352U2\264W\345\311R\2014\210\232)\236I\000(\026\037\212\302\030\2035i4\031\213B\030\230 \036\262\212\033\000\245K\247\306\242\031\021\255\001\024\255\024\340\205\371\261b\241V\024\201\31333EX\031Vgf\002\340M|\267\333\017\245G\013\347\266\352KX\030\177t\255X\207%d]&\230\252\226\352E\233\265\013\311\274%\334f.\300!\271\213\370`\3663\351\255M\370\207\257-\317$\213\233\365LqA}\206G\323r\211Tr&\t\225\225\305\204\330\205\320)\227+\n\305\014u\253\031\177\367j\321\253f\346\226\013\265\232{\001\335<\001\311\337~\004?\022\202ne\016\035S~S`\225\013\272\3303\027\226\013\213\265\360N\312\263Y4\205\2361\217\255\037\322u\251\307\316\254\024J\252zV\212\365\202&\034\003\225\371\365e\205g\245ZA\332""\324\2073\324\205\321-n\240\263Z-\256\026\252\n\262\n\325\253\352\243\266\276\242C\325bm}\271\256\375D\027z\353[\253\344[/\257\226\346\356`>\242W\006\343X\277Q\221w\225r\002s][/,\033\232\3143\232\301\336a\000\305M\035XU5\r}\304\226\247\306\252.\244\357\3400\205\377`4\337-Vk%\r\254\303\350Ew\275\\\232\253\314\027M\233b+\315\353m\245\232bW\320\302\265\231R\rzA\265\262^/\225\213P\365\225;\353\253\210N\367\240\332\372\334\\\021j\036\000\252\331\327\313\200\2714\357\017\373\022T\241\345\241`\010\\t\047$YP\235S\244\260;\270H\200\340\321H\212\010=6i\342\202\347&)\006J\307\324N\006X\325\307)\241\027\272\204\353\244[\232YU\312%\004\227\354\341\"\014U\365\006\035\0146Tn\231\272\304fQZ.L\202MG\321\001\260\237\216Zx\2365\322hA\033,Wj\305\302\314Riq\251\000M\263Q\230\301\231\246@ikHPaY\377^\321N?\364\203\312\362\372J\261\000\355\266\\\254\026\220\035p?\026\010$\323E?\254\206\317\304r\240?\321Ja3\004\024\370\214\000k\353\330\001\200Q\255c\345i*V\201\366\371Bu\021\376j\205j\265\260U+\324\346J\245B\r\307]\241\266U\236+U.\333\256X+\324\025\307)\324\253\272\270\005\350\340\205\305\242\t,j\317\354\354,y\212\213\245\371\315\331R}v\013\272\377U\030\027s3w\212[sTYs\232+\351\246\251\325a\004\317-\001y\305e\212^\306\336\017\374\246^-\314\025\361\244\356\034\312\357\252\001\346V*\224\250\262\274\\T\014\2666\207\225\\F\346\001)\225\277\206\354snkn\231(\234\237/\342\3303}D\345n\006\337|q\271^\230/\326\346\252\245UD7_\252\255.\027\266\324\230\3071\t\377\240\t\313uUo\305\225\202\306X\\Y\255o\025\313\210\025*\022\n\013\277\265\215R}\251X\206\324P\375\200}\016\372\247\376-C\025W6\310_\251\256\024\226\265\177\243\204T\324\352\363\300_\261\342\265_\347\200\376;\314\277\\Z)\325\321\343\222Rd\251j\2750\003\250Y@O\005\304@\220\337(~\200\215\255<8\320\224\007kZy*\263?\027u*5gi$&\204Ua\0025\034\234z\272\320\375\306\205\325\214\201\301U3\362k\213\310O\324OmI\265\366\02242\016\241\245\022\216\336\255\345byI\031\350\224JX\211\245\225U\350\2613E\250\255*\014\204\362[\250\202[^\254/\251j_\251\334-\252\211p\231\216\216\303\370\207\277\"\264d\277\376t\245p\325x>6\236k\306\203\355\005\343\263\264\262\276\002\016A\213+\225\225\022e\014\036\020^\261~0\313\225R\r(_$\007\007NM\317\264+\265\305\025\350\262\245\325\345R\261Z\306\022\252NZ__\205\017a\000\315\316\027\357\252\237y\355__-Wp\334\326\220\365\211F\203N\252\303\312g\245\005\035R\334\033\275\253[\272[T\026\026\200=\322o\271Z\304\331\255\210\334\017\377\341F\201\342\305\\\356\256\340\354`\321\372\244\221\232\313\257R\205\266/\316c\017\205l\341\257P\255\300\020\004\206k\374\353\253\340\233-\026\252\253X\337\312\217\274\005=\353\313\313\0068\017\377\026\n+\005\345\324(\010\343\007\335RmI\245Y*(\016\242|\330\005\225\007ZQ\271\2524\340\0018\026E\261\275\325\245\202JN\275\310\371fPb\207\340\317\360\017\263P]\250\246\020\334\251\325\365o\255\264X\006\354\340\277[\321\277\026\262\0142\014\264,\242V\235h\026jM\373)\353\225\302\334<9j\234h\257\375~E\027\024\272\222\376\325\325\241=\206\264\225\322<\364&\302\014\335K\377RJ\345q)\313\353\265\273%\364U\220\317\255\257\200\267<\013\223\010\206\2603\224\356V\352\372K\3435\337\256.\323\247\253\252\361\260\205\025\347 ?\366N\346%\260q\2603\224\220<\220\316\346\201c\256W11N\234\344\360\312\301\260(\023\002\326a\0263\t\240\372\241)j\253\205rA\204f1\244+\273\006\010\347\311\305f\253\255\224\364\257\255\331\332\332z\261xO\245]\007\324jLb`\003\306\017u\031\345\327\275\246\016\231\024\250\335MR\020\201\027u_\341\304m\324\373\325\357U\370\275WZ\274WX\004\312\346\0135\305(\325\217\252 \3077\225\257\006}\262X\327S9\340\232\203\346(\231\031\215\244\216\325\3122p\252\325\312\252\342}\352\347\212\372\355\347\3140\300\030i\034*8\374\342\224Z\337\252\026\312\300\274\201U\201\347\216\306\217\225\254\004\032%\316\200D\274\014\023\262\026\330k WVq\033\021\0070\312S\310\304\027\227\024\347\254V\346\210-\202\357\252\365}l}\327\254O3G\360\020\004\306Q\r\244\335\025\030ys\300""\010\250\230\305\345\005\335\242\263\006P\256\201,x\027d7]*\224\336\354t\205L\274\346\233\245jr\226\252\211Y\nBF\032\320b\"\322\004\235\002\250P=C\023\251\375D\300\235\322\352\214\232xU\247\242\351[\373)\005v2\006\277\303\340jNA\217\213\246H;\237\324\354\204R\2633J\315N)J\324Y\006>\274\014\276j]\267&.F\360\2474\007\245Z\302D \366\3345\037TV\215\257zUIe5\034Bw,\260\010\375mK\213\277u\030\227\263\227Q\372\005Wwr\235\254\276\004\311\346\261~@Z\317\326\241\353\242\207\342\254\257\337y\257:\357\307\365\312\214\232R\260\304jqG\313\225u\245_\325\277J0\321\336\232\032?\353\265\242]h\251R\352\242\322\362\352\256\226\242\264\220\255\177\347\241S\300\254\002\023y\031\377\241\310\277ad\266\377\235x\0309\371\3073\257n\257=<\365\334\203k\017\326\036\236y\351\341\213o\355\224w\243\017O\277\2713\341\275\365\321\356\332\303\323o\355\0240\345?\376\267\376`\020\322\234zq\373\344\366\304\303\323\317?|\361\025\357\225\017w\3731u_\343\271\335\376\207\247\376\t\361\221\347\274\347\376\263\023\335\231\320\037mm\367nS\3143/m\377\027\276<\365\312v\341\377\257\376?\024 r\332;\375\337\306\027\273\203\273\233{P!\317>x\367\301\332\366\211\207\247^\335\276\3278\203\325\202\2656\264w\016\275\027w\243\273\371\275\376\377\235\370#\3622 \211\274\272]\333y\277q\246q\356a\344\365\2353\017\237A|\317\277\360\360\364\277\275\177c\322\354\336\211\2753\0171\251\252{\250\355\007\352[lD\325\222\224\366\362n\001\332N\247\273\264;\201I\376og\315\353\273\262\367\334\376W\315;\336D\346a\344_\333\3374N\355\236\330=\203\355t\177\373\263\235s\017OA\213{W\276o\276pP\260\250C\276\373\266\361\332\356\231\335s\354\273+{\047\274\376\201\346e/=a>\264\244\277\352\275\312H\345TBn{\317\357\337\324\337\037\377}\347\317\367\376v\362\364\203\257\266\013\220,\362\374\203\334\366+\333k;\252\277m<\230\333>\003\375\315\373g_\343D\343_\215\350\303g\236}x\352\314\366\233;\205\235\315\306\275\275\263{\023\370\305\344\366\373;/\355|\326x\033\022D\316n\303\317IM\353\366\306N""\261\361\335\336\333{\321\207\247^\362^\372o\243\2771\002=\034\343^\337ye\247\3328\333\270\276{g\377\354~\276\331\337L\034\334\366n\334\364n.z\213K\336\322\306\237\177\373\333\346\211\301\036p\006{~@\347\207\2364:\351\236\tt&z2=\177 \242\327\220T(\317vig\315T\313\177\277\332\357\377\363|\327K5\336<\323n\271\346\274\271yo~\325[]\003\332\253\047\242X\204h\317\030:c=Yt\262=\327\321\271\336s\003\235\033=7\377_*\036\224\255\350\025\327\274\265*\320^;1\200E\030\350\031Gg\274\047\207N\316\225\013\234\233=\267Z\027\357\235w\273\333#\275\377~\274w\025\322\005\313\366j\243\247\361N\243\264\373\313\376;\373\013\315h\363\372\301\212w\363\226w\013\372c\311+m\002\341[\047bH\177\254g\024\235Q\327\027\301\311@C\312B\375\3348a\013\365\365~\264\273m\246\213u\273y\256\335\202=y\237<\336\345\373\331\373\371\216wg\303\333\320\r7\202e\0301\005\243\022\375\204\316O=\005t\n=\263\207\225\317\373:\353e\021\347\237\027\237F1?8\370\301\313O\265[V\030}\025\257\262\351mnAA\356\235\030\302\362\014\365\014\2433\334\223G\047o\n\271\204\316RO\031\235rO\005\235J\317\352\341%\317y\271\311\077\077x\032\305\276t\260\326n\231aT\"\307\361\252\277y\277\375\016\245\370\276\047\205\205I\231\266\245\362.\242\263h\212]\372\177\263\240w\275\273zF$\366\023G\047nX\353\014:3=\013\350,\364,\243\263\334\263\202\316\n\264\363\243\n\274\214\351N\020\306\333\350\334\356YGg\275g\274\0279xo\021\235b\357B\357\237_\266[51\357<\310\027\373\377\335\237x\242:\372\325\273\005\234\367.d\277a\212N,\367Gt~\204\242\003r\357\314\333\215s\215\317Qj\006\371\350<\210a\257\201`wx\215\256\303\347w\215\200A\222\005\025\376gt~\356\331@g\243g\010\013?\324;\214\316po\026\235lo\016\235\\\357\034:s\275et\312\275ut\352\275\367\320\271\327\373\013:\277\364\016E\360\363\310\004:\023\221\333\350\334\216\314\2413\027\231Gg>R\214\2046\321\027\333Ql\244o\366\047\236\006c\375\261\331\337V\177,{\267\200\253.{\313\226\331$\260\236\022\246/\322\374n9*8\263=s\255;\341\273\357u{\266\277\2667\260W\010)\333k\215\227\032\327\032[ \214_\333\277\333\234h\226""\260\267\335\366nC\207\0036\257\313F\243\202&E;\315\253)$\347+\324\235\306\031[\250o\274o\322 \276w\233\225`\321V\232\237\037\364\267[<\230\360W\274\225\262W\276\347\335\373\005Jq\377\004\t24G\320\010\230Cg\256g\036\235\371\236\342\341\005\235\364&\363\177^=2c\310y\321\214\227\20195\217\363\334\343\227\376\033\\&\361\342\237z\315{\355\002,\251\316\357\201\250\000\313\352\367\033k\273\247\366N\034V-(\335=\366\334y\017\235{=q\034\357\361\336\014:\231\336it\246{\257\243s\275w\036\235\371\336\n:\025\303 \276\307\321\377}$\212N42\020\t\255\344/\275\227\337mLPMCM)q\355\342\323\350U\337z\023?y?\265=p\354\220!v@k6\252\277)t\246\314\014\265\206\316Z\317&:\233=\277\241\363[\317\357\350\374\336\363}\357\241\235m\312\233\232~:\243\352;\350\234\355\026\0368b\347d/^\342o\367\013\355\267\366\023\316\271X\354e\237x\335N\371\357\2335{\335\253\353Y\225\270&\315\252\324\366\304Zh\336.\241S\352\251\243S\357\371\005\235_z\24280\242\275\003\350\014\364\016\206\367\204/\267q8\274\367~\267\247\215O\3662{a\"\332\353\360Al\367\231\2757\366c\315\2777\013\315-/\r\223\306\217\336\217z\275q\017Kb:\001\255\200\355\204\241f\310I_{/\243~J\267\367{\330\336\347\273_\256_\233\321\266K\246\247C+\200R\277\246\251\220\326\207$\200\332\325\324!\005\364\276E~\217C\370\205\0077wN\354\234A\222\363\333\237\356\234\3319\327N!_\331[\353\230\214\375\036+&\224\261\346\325\352(\366\232\2450\2511H\340\274\205\316-35R\377%Q\361Nk\371\346\375\363\335\356\250\237\356\315\356\237\010)\347\277\033W\033\271\335\327\367>\334\3175_i\256\035<\343M@/\235\361f\264\374\246\247\177j\316$:I\327C\301\231\004\336%K\265\322\350\227\245\352f\013>Zj\373\2643\245b\354\026J\365\301Sb\266\324h|\351\302\374Go\300PNC\303\222:\351*:\253=w\321\271kV7\233\341m\254\327\036\357\177\267\277\326mv\204\025\361|s\242\355\376\273\340-\300lc\207*-\ni\345O\263-\rU;\343\264\356\306\337y\337\001;B\221\370\317k\177\201\004\253\013\177\343\340\236w\375\306\303Soxo\340\266\3044\352&\377\343\375\347\322\356\304\356\022\216\001\006?\254f`\006\256z\325_\274_""\356C\261\177\365\311a\304\250I\242\247i\227$W\232}i\241;\201\316D\357,:\263\275K\350,\365\226\320)\231\025\356\357\350\374\336\233B\3115\025\231Dg2\222G\047\037\231\212\204\325\266\367\334[\336[Wq\227F\3259Hq\025\354\214F)G\035\225\272&i\035Hh\376\r\235\337z\323\210>\215\353\350o\237\342\020}\276y\333\313\300\210\303\365\256\322\"\222hCs\002\3650\322\270\220<\273\365(\225Dx\363\241\014\251\262 \331\201fX\222\227h\014S\r\321Z\203\232\352\047t~\352-\240S\350]Ag\305\350$~E\347\327\336\021\254\275\221H\022\235d$\207N\3164\334O\350\374\024\271\203\316\235\310\006:\033\221_\321\3715\362\033:\277E~\217\034\302%\316_\350\366\014\367\331^u?l/\342\215\306@c~\367\302\336W\373\363\315\367\016N\034\274\256\332\nV-\320\\0\246\3658\240.F\034\302N\002\264,\221\345*c\376\2325@\251.\377\005\034!X\324\303\227\263!UP\360\n\263\336,\254\361+^\3457\034\250\047\210\007P\247%y|\032\235i#\317\320\222$T\020\247\361HKZ\322y\021G\370\031\235\237{\357\364\206V\244]\275\236\327\203\276\353K7\254\276\377\340\230\315\266\327]h\334ul\355\306;\320\367\315\023\335\236<\261\270o6\013m\017\215\243\257\323f\016+\240\367=tu\250?\335\313\334^\321\347\177\321\300y\263\271\342ea\370\343\330\367\356\377\372d\303Hs}\335/d\207(\242S4\312\214*:\325\236\032:\265\0369dHM|\003\235\033\2757\321\271\211jt\370\256w\r\23553\275\305\220\321\306\"qt\342\021\232\354n\242s3\262\200\316Bd\031\235\345\310\n:+\221r\344\360\021w\341\203Gs\345\007\277\355L\354\314\201\374\3738\025\376\371~\317>T\345\313\333?\212\216\367\237F\246Q\337\375bot\277\336\374\364\340\314\301\005\325\"\300\223\264\336\361W,\255\031g\324\361\244\216h\332\327\343*\r\240\346\225\355\205\235\037\032\005E\350\351\007\303\336\277\240Y\037\236~c\247\177g\310-.\333)\362\223\2157*s`\264\265Uh\022\310\332/4\225*\352E\247\275i`\346\253\335V\374a\361.5\357y\0237\275\233\267\332.&\254\234\201\243\374\352\375\252\331\000)\224IeN\333\0014VhO\212\306\nI\241\353\207\227\035hY\367\326\357\376y\345)\211}\272\022~\367\362E\257\270\360\360\324\277\274\177\275\323\2106""\246w\047\204\377\260\n\261\363.\255?I\364\260\226\017jqr\007\235;F\240#\035h\014\231A\254\227\304\2734:i\3036\332\232w\251\356\240\232\240\366>\370\260\333\343\341\213\375\227\366\303\366\036\336l\314\356Fv\023{7\233\221\346\320\301\271\203/\274\334\321\244\222\353\262Ox\257\274\327\260FT\037^\354v\261\276\334\177{?LA\366V\243\272{v\367\372\336\235\346\331f\376\240\377 \341MB\231\346\2749\034\234\336\252\336\204\246\376O\342\273-\017\315\215\276b\301,d\2135\330\354\357\266\274\200\005\033?8\323v\321t\271p.U\034\214\224\014T&Z\264\311\331p\361\220\022^\274\324\355\206\373j\377\352~\230*\341\377v{v\337\331-\355\375\322|\247\271p\020=\270\356\345\237\330\372\305{\005Vu\254h\037\2649\333\236m\374\270\327\2777\270\267\366$%<\273\2354\313K\347=bYi>\n\355\250\244\047\240\205-Y\003\320\342\340>:\367{~\r\255\216\227\267\363;_P\353\271\211\372\337;\347v>m\234yd\364s\017\276\336^\203\352\274\322\337\355\236\362\335~5\314\274\315{\375\342\356\300\356\374\336\205\375\257\232\363\007\357y\351\to\342\206w\343\211\345f\357\225\213\273Vp\276\366I\267K7\330\274\032\246R\363^\277\262\327\263\367\316^i\377\227\203w\016\026\274\334\2447\251W@O\266\237\357\275re\317\016\005\275\037\314\031\331\263\017>\204\251\251\200t\3376-\335NI\247\367o4k\007\347:k\255x\323\233\006\211B\317F~\225\013\211\371R\211*\027\310\355\014\005n\314\210\265\241\324\213\037<\375\ny\363\240\360\304U\"\365%\266\371U\225\320\312\347Wt~5\262\313\017\350\374\320;\212\316h\357Xo\313\232\371\366;1\n\272]\047G\261\372\274\343]\277\345\335\322S;\256\001\275-\275\253G\375\2034J4\356\251NhC\310\352\005\224\256}\255\365\276\220\336\006;\377\324k\240]\003J\177\035\204\350G\236x\234\360\352\270\356]\277\361\027T\307L\350N\350#\253C\357\275t\257:\264\262\354\351V\2076{h\317\224\350\027\357\306m\357\266\226+\200\275\351\341A\002=\t\300R\240\047+Lb\031[\350l9\223\017\024\234{\243\255-?\276\217>e^q\204\315\177`\2350\207j\013xX\336\264\265\377B\213?\262\203\261\032\244\226\333\346\276\362\237~0\252\345\205\307(\377\372A\264\323""\274\262;\305g\243\001\212\177\364\351\363\0205\300\221\373\001\333\3029\365\262\3672,F\033\233\273k\235\355\023\241\333\263R\2358\205\316T\357mtn\367\376\210\316\217\2753\275\241\335\346\273\035\334l\373~\332\233\276\376\224\371\310\221\014L\3745\245\370j\207M\310\330@\212\016\374U=\2116\374\317zg\337mL4\226v\013!=)dc\020&\235\031o\006UQ\336\002\254\306\355R\\\362ZZ\241\322R\234\346\034\253^SS\0171Y\222\313&\321\2314\252\245[\350\334\202~\025\272\313\247\227dQX\006\335\024J\2706+o\367\205\275\302^\r\370E\031\026\243Y4\326|\262J|\001\367;x5\342\021\2723\215\363\273\250\327G58\323\317=\272Bum\222\206\216\026t\322|\200\326\3004 \251\032\245Q8\331|\222\232\377\260\235\363\373\350\334\357\035F\035\376pd\034\235q\263+\233\n\333d}u\373\356\316MXX\313\0053\236\t\315\233\326\371\245\201#\035\365\244z\032&\275\014\r\006\242\206r\\Bg)R\212\010s\207\356\363\004\265\227\356\305A\252)\243|lN\210\221p@\254\317j?\3333\006\361\017\r\305a\251%\211K\220\234\221B\304\251\336Et\026\215a~\006\253\"\023\311\242\223\215\314\2403c\366\302+\350T\"\367\320\271\027\211\236D}\311\311at\206O\216\2403r2q\262\245U\311\300\340S\226V\216\260?\016R\333O\336O\332\210f\325[\355\234\326\236m\014\352\362?\357\204\024k%\206\345\377\254\321\226\225\330\313{K\373?\037\374\375\240\320\021i\345]\047\267v\247\370LZ\201\342K5\256(\376\221\232\377\356Ag\0178t\255\370LV\327\305\267\255\357\223U\217\324\372\047;T\374O\230\264\321\375\362+\221\353b\333\014\340\221j\341\243\361\2017P\362zu\37373;\372\247\304G\363\004-\203\221\222\203D1\251\006\"9\203j&t1Gr\006\035\227\"Q\225,\272\354q\262P\016\242\005\327\301\330S\346\241G\330\332\005\201\265\340\025\264Nx\315[\263\307\017\251\373\320.\tI\021\264\360\r\225\311\356\266\336\371\364\225\277\373+\276#X\021\303\304\333\235\362\2639\024\312\177\371\361\005\365\303\315I\216\334)\3326\314\354Pg!Y\223\024\253\264\270I\340\250I\030\223\022\032Cw\320\271\323\273\214\316r\357\006:\033\275\003(\266\014DH\300\231Fg:r\035\235\353\221\033\221\260.\307\3143\007A\316W\007\3719\007{""\341\301\035m\335\375\030\335o\243\255)\\\037>\271x\320\366<\306+U,\211\244\032N\036\360&A\223\324p\264\270\036Ag\244\227\352\367\207\326Z\250A`\224\352\034\304\247\235\351\231P\323z\353\005\267Y\237\260\227~t\360\22675-5\025\314\312\351\324\353\336\353\037\354\236\333\375|\257_\370\333\353\266|\327\220\004ly\342C\0369&\365\246<1K\047\341h\215D\335w\025\235U#\221\333\223p\252\373\322\342\210\272o\250\r\324&:\233\221A\224\310\007ON\2403qr\n\235\251\223\323\350L\237\274~2\224\305~\267sY\265\010\264j,\376\224\345\225Gs\332I63\317z\263\372\372\211\252W\325\234\203\032\2028\007\331\230\320b\225\214\024i\027\302\262YR)\265\344\266\327o\204\317\266\201i\347e4\303h\177\342=\357e\364d1\333\311{b|\373U0$\265\310B\213J:\323M\014V\356\341[+\005\305g\251b\310\332\225\370@\022\235d/\255\031\323\2557\260\256\353q\341\224UW\237\244\n\2174w\035\265^\307\233\377\201\256\331\376<\326\231:\227b\"I\000\362\314\001\355\026\222:\252\215I\215\226\353v6\303V\215\024\321)FV\321Y\215|\217#\377\373\223C\350\014\271U{X;\262y\357\306\315\277|\010<\301\026\345\206\267\241\365\037\324\020t,\206x\204\274zG^\210!\025\3154\t\332\316\257\014\320&z[\256u\241\326>\350H\257\237\350`\365\3619\260\215\373 \272T\225\304GH^\243\036NG5\250\207S\327\2463\032d\t\374{xm\353e\321\r}\301\022\255W\3351\375+\307\253\021\350\352\216\333G\276\233\343q\332\202\032\201\226\026\203X\213\203\275\244K\264=\230\037\224\241\332\047\003lj\204Mt6{\007\221\207\014\032\225,\361\027\322\n\026\320)Df\017\273\256\343\2062\022:\177,8\311c\356m\037^\351\264R\261\327\351(\253\007)hH\363\325\2666\2558K\321\007\373H\316\2449\304)\027>=\216\223\254\251\357\224\227\205j\304\345\223\315\364\265\3353-\375\235l\020\332S\245\351\225\370\270\274\205\302]\343\203\347\017\326\321Y7\267P\320\371\203\037\320\371!2\212\316\2509\322G\375\236fY:\047F\2228\035\027\033\300Yv\300\314\271c\350\214\235\034Gg\374d\362dh[\177\006\025\212\362\367\315[\307`\342=\222\n\225[>lz\233z\365)/f\"\251\\\232|\3131C[\227\304\257H\020\222\374*\323z-zS\235\200m\261\261""\353S8?V\305a\357\353\256I\021t\353GW\035uk\377\tK\245q$\201\235\026\230\264\262\224\207!g[\363\231\2335\234/N8=\314\345\3433\207\362\233m\370*>\260c\334\231\376I\035Srq{\013\207\352\237\264\305I\\\234\3666\351\214\251\274\326\206\2160\265u8\230:\364\267\212\021\334\272}\014\030\301\343\033\376ly[z3\201\252\230\214\303h\036\223{\312\362\366\010\352\316$\262\220\346\334\262\000U\357\331\326&\r\267\364\355ht\214\202\026\270\326\244\252C\213\322\211N\325\355\357\315\2127\tu\206\354\353\021\207k\236\264\312\311\022[*\245\250v\345\211<\332\030\246^-\027\2344#\272\343\347x\215\333-tnE\026\321Y4\273\305\353\350\254G\356\242s\027&\306\320\026\323\047sn\377x\014\272\372\3214\376|\253\375\236wO\253\242\244\001\244\274EO\036\\\227\342\tI\210c\350\214\271>NW\353\265TSA\265\035\243\325fg,z:U\227m,7I\342#m+\231\242\374z\230\321\317m=G\222\212\213t\276\304\256(\213|o\270)I\333mB\366A\347:\325$\3175\077\077\370J\235y\251z\325\232o\376\364\035V}\322\346\241\3713\364\014=ItR\357M\26271\234\273\350\3345z\3571t\306\"\322.\345Gt~4\352o\322pY\026\243d\357\315\360\313\031\364\244z[\317\016\356\352\354\017\216\005\337y\241Y\366r\223]`>4RH^\224\312F\332\220 \261\221\326\245d\037EfZ$\312\320\276\304\332!\254H\337\206\345n\204\274|\274\030\323?\361\004\353\324#f\330\047\255lb\010\324\357\345v\245<\007\"\267}\350\212\222\032:5\337\24524\337\266\265yI\355\241\347\324\037g\216\301\234\372\370\226XZ\235N{;\362\240\211\377\306[U\351ra$\257\360!sayW\355doK\203\255\231\237\216A\325=\276\001\206V\216\320N\204\264[\241\361\331\376ne\3504\232\357mi\247\001Uw\371xj\244:o\273\320\311z\016\325\nJ[YZH\222.\212f\307)t\246\"\263\350\314F\252\350T\315>\360\026:[\221{\2172q\370I\2175w@\345\030\361\356/\366_\362\276\032\365F\365\r\014\207^\017\027r\310\036X7\337/\326+\177\322\032J\243z\262\222 \311E^^BK~\271\t4\203\316\214\271w\200&H\022`\344\212\2116\356Cw\352nF\302\317\365k\345yA\235\264\273xl\304I{\\\236\337\035\343\314\315[\236\234\007\276\016\342\247\2768\023\026\272z\215J\n\030i\270OV*d\236\"\357\026\222""\207\305h\"\315\243\223\017\277\014\202\344{\332N\n\035>\343\221\320\343\371\336so\354 7\253\257\213\211\340\271G7\303+\215u<\330\334\356\234P?\370\334\313\352\231O_W\207\3173t\3306\300\247c\324F\361\362JOy\351u\350\021g\232_\3555\211J\361(\357\347\240I\202F\006\211\366\264kmoaki>\260~\367X\326\365\0217\241}\272\306C\214\002\210\335\222\"L\236$\016U\357R-\223L#W\264\264\200\222w\335UZ+{76\037)\341\004\224\346\213 \047?\216\260\003\343\036\006=\262\262\277n\307\237\016V\220\310h\357q\347\307\203${\221Fp\362\2527\311\363i\333\264\332\272\262\357\377\372\304=\273\345\315TO\322\261\351Z\027\277\022 \234\201C\227\326\027:\327\275\272^\002\0356\217RE\207^\016L\223\253\274SOZ\031\221\374C,$tr\335\354my\261\312\237\021\315\331\216e\245\177\273?\333\014j^\274\327?\334\275\272\233\333{}\377\303f\356\340\225\2035/}\335\273\016u\016\270\365\035A\342\265%y\311-m^\310\363\367d\005 \215\215\210{KN\"\325\215\264\376\247>\036\372\204\307}\177\325\273\027\330T\325;\023\263\363\307\222\241c\023<\177\020z\037\310\323l\005\232<\345\322\312\356\323\251V \336B\252I\262\305H\240\223p[\323\2075\206\342\203\307r\034|\337\354i\236\013\031\007\227v3\273\365\275/\366G\001\363\247\336\004\254\001A\364_\360\026\200\371\340\205=\336\232\270P\236\230\217<\257(\317\021\207^DAS\252\324\200\311\226\240\303\031$\277\020\363\261Jb\262P\362\325\375\245\335\tW\367js\361X\326}\264\371\022\336k\020\250\373\313\273\263{\221\275\304\376\315\203\310\301\220Z|\303\014\013\313]\340\372\372e)q\305v\350+\204\362\344\255\274i\233\316(\223\022R\316\260N{\216\342\274\324\213\265c\026\246\036wtu\257\366\276\216e\335\0174\337nFC\352\376\243\335*`\276\276\177\347\340\354A\336\313\346\274\034 \007\314 \332\240\336\336\253\211\333{C\237\333\223\347\264B/\025 !\307\332\366+\235$U:\251 h\322%\031\222\314\300l\245+\235\344\367~\236\203o\271\332\272\3374\332ug\337q\271C\262f\373\272\205#\013\235\364:B7\355\363\332\027B\245J\236\244OyZLj\211\333\320\r\225\321)G\352\350\324\335\346lk\333=h\312{L\241\177\376X\256\027\236\344r""\205\303\267\313\345\213\210\322P\236\030\032i\370\245j_6\032-\314\252\350T{\267\320\331r\303\210\036\250m\237\243\227\220\237y\300\036\360}\315{\r\025\231\226\001\236\n\375\356\031\375UD\275\227\354{)7\262\027\345\217\344\002\206g\337\300\267w_\304\267\205_\334\376\007\264\362\337w\226\365\263\274w\037Lm\307w\316\356\240\004\205x\001\325\037\370\203qk\252\245/\357\316\357\235\333\373\014\304\250\251\203\350\037\0222\361\304\330?\002\001\241\177ox\377\253\346\342\301\304\037\022\202\264\237\376\333\311\027\261\212\000\373\366\353\320\031\361\202=\025\320\326b\017#\247\036\374\343\301\232\367b\377\336K{\375\177D^\332\276\260\323\277\023%0P\004\236\027\240b\201\260\347T\204z\300\372\336\316\031|;\371\341i\354\203x\365\300v\277w\366\235\306\330\336\211?\240\227^\327\343BQ\250\342\266\025\276g\260\347\333\264\303\273\237\356\235A\225\331\231\355Wa\260\274\t#$\017dGU=\000\245\357\301\3708\203\271}\262\375\214:^v\372\305\355\236\355w\267k;\357\356\254A\334Y\245\221\376l\357m(i\377\376P\363\\\023\250\177\341AI\217@\030\000\027wc{\317\354\237\361\276\034;\030\004f\306\013\364,V%\032\031\376w\373\306N\035\357L\300\027\241\211\326\304Nfg\r\2131\265\035\335\316\355\274\254\373\215\016N\0304\275\333W\267\047\2416\373q\030\306vN\302\334X\260\357\017a\235_\364>\374f\177b\277\340\036g\306\313\027\025\377\204B\333;\021\377\200\001\014\005\306\022\276\003\030\2402\260\215\256A\216\247^\333y\246q\0068,@\377\275\363ac\2421O\327So\317\231\324\377\336\371/d<\337P\035\243\246?l\231\275\367\372U\350t\237\357\177\322<\3214\017[\003\344\017\315\341\240\244\252C\\S\205\353\337\036\016\234D\256o\177\016\035`\004Y\326\231\355\177a\273\303\320!\372O \271\317\001\307\211\341V\372!$|\014M<\262\037o\236i\232J\370\030{](\t#x}\363\037D\302\313\333\363\320\360\233\215\315\335-\264\253@r\372\267\007\261\261\035\tg\266\337\330\211\356\344\320z\366\020\022>\331\233\330[\332/6\373\233f\220\003\244\005\t?\354,hN\2139E\274\377\340\300}o\277g\377\375\346""\331\346\004/\273m\252\027\267#\333Q\321\244\370\2708\220\246Iz\366UG\010\276M>\254\273<\244Q\234\007\331\222\342}\247\361\355\367<\324w\034Z\341E\234lO\200H\266\266{rwj/\n\344\342\373\361ozo\352\307\307\365\023\362W\367,\247\224\371\340N\016\262C\235\013^\306\210\271`\217\227\271\274\262\275\010\275\t\n\334\230\334}\037\273\251\311\005Y\342\t\312\005\232\313\344\362\342\337N\236\372\337\372\203\201\007\005\363\036\375\203\376\007Q\215t\2461\264{\316\373\360k\034\230\017Ock]U#\3438\352\331\032\337\355\235\353\374\3212y\361\247|3\261\375COt\371\016\255\200I\3456\337Ro|L\365\230\327\366\242\2357\237\226\257\213\311\213\206\345\372\326\336\250\247\004\024\262+#\311\244\255\313\007\234i\365\2618\006\326\337y\2250\325\251<\300D\013V\262\374\245Z\224\333\200\261\226\212\336ca\303X\350\202\021\221|\335G\332\221\322\036\005\035H\221\232\305\341\226\366B\307\302\276\342D\227\254+H\007.7\377\345\343\250\244\374\226\372\247DK\263\212Vw\177<\305\203\rOV]\207\355\025t\352f\202GWW\327\256Jy\274\252y\302\247\332[\224\367\330h\272>\303\203\003\376\315\245p\303/\321a\274\373\217\2660=lUN\032/i~G&`$c\320\026\265<\000\266\330\322 \354x\326\357\027hY\347\257\337p#\230\240\365\305a\374\213\370\305\273\304\217\320\272\377\177(\356\243\246\344V\017\275\364\016\371\007_o\337o|\265[\370\2372\223\217><\375\257\355Oa\212\0138""\237\241\201\273u>\337\351\017\002?A\263`\373\301W;\005t\276\334\231`\037P\234\373\034\263U6\361\017O?\377\360\332\247{\363\373\347\320\376\373\177\332x\233\034u\342\200`u\314\306x\321\336;\252\003\353\333\321\355\254\211Y\337\036\330\236\327\310\377\371`\003:w}\347\363F\277\nz\377|WY\252\277\267wb\357\314\377\242\326\036\032\037&\204\nH\242\361\376\303\323o\354|\3228\275\033\335\275\271\177\002F\361\351\177\252\363\004\227A\240{\361\354\366\310N\364\341\331\213\3320\372\217\027\317\357\376C\031\037\033r-\272k\336\373\003\315s\177\376\375o\317\340\351\206S\247=|\366\020\255\232\047w.\001\047<\201X\177\337YlL\356\236{x\366-5:\326\320\220\372\225\235\r\264y\205\036}\246\257\361\0175\356d\364\026\210\250\312\372\031\r\231U\315 \341\343x\016\000\217;\304\274\327\310\350\232b\221\204\177m\277\003\353\035\034T\247\024\033Ts\202j\262S\215\223\215\tm\000\375\2456\256~\370\342\253P_x\222\342\364\231\355\327\264\221\370\316\335\306\304\037\200\260\027\022]\207\201\205T\275\370\362\3664|\361\263\251\200\347\275\347\201NS\007#;\243P\312\347\264\365\370s\017>\335~\325{\rWs\352@\306\363\320\366\336\277q:\304\340\037D\323\"t\225\347\360\020\311\363\324\245\324Q\217\207/\236yx\266\017\250\274\211\247^\366\362(\266S]\277\246\332\233:\365\377\314|\212\255\372A\324\213\342Cf\017O\235k\274\251j\343\324\233xD\345\355\306E\035\372\367\316E\303\226\337\332\251\350[\205\376|\366o\317|\200w\\\277\333\370q\357\363\375\376}\240\014G\313\251g\036\242\235\371\033\300\226\336\365\336\207u\303\376h\363\276\227\315=<\315f5L\361oe\274\016Ms~\377B\363\323\203W\016\252\336\304u\357:\310-(\261\204<\241+\337%\223\266\327d\354@\032B\253\237}\370\"\016\237\217\241\255\317\342\241\213)\354\036\352\364\305\303\2630\271(\203\370\377\350C0\237o\177\014\274\374\364\377\355\254y}_\002A_\343\376\365\r\365\364\020\256g\260\0267a\354_E\216\tU\366\341\305#W\326\273\330\237\372\032\317\3503#\301\312j\374\276W\000A \244\232\360d\001\336\336t\035\344\331\241\203\267\017F\274\034L\005\332\200\001\226\357z\355+\265~""\3628\2365?|\274\372\370\004r^F\345#\314\2670\013\340\242\273\003\365\361\036\344\n\337\374\033\337&\332\013\355< \027\355\237\010\253\020}\004bi\257\004\022o\376\340\352\301\264\222\003\264\235\201\272V\010\247&i\367%\315\313\355\234\364x\025\362)\344|\037\005\020\230\276a^F9\254\003\025\362>\0368y\273\361!\336\323\265W\010\253\220\3175\203\rV\210: \267\273\271\267\0052\361\302\301\300\301\222R(hk\200{\336=\255\204\2276Z\362\010\240\325\276?^\205|\0069\237FM\006,\377\241{@\357,t\240B\316\003\023\207\271\341k(\030t\204\260\nAi\352\\X\205(\246\276wj\377\231\346+\260\230\314\034l*\265\204^\r\331\027\272\245-\225\024W\354\t\217\307\253\220\317!\347\377\240>\004\370*t\017e\266\375\344\025r\001&\302S\3574\306\367^\303r\207U\310\227 \021\364\207U\210:\364\003\337\275\016\353\207\277\037\314zi\255\334\320\353%\273>\2246Org\306\236\351}\274\032\371\002\262\276\210Z\025\340\361\320?\224e\366\223\327H{3P\364\010\223\217\336\376\266+Hi\233$\217\377\330\205\363q\232f>\304\267\261\337kT`\345\200G\345Bj\344\353\375(,\322Bj\244\037\047&\250\311/`\226y\317K\303\n\005(\203u\265\336\245\266\346\334\322\206H\236\370\266k\353\307\253\222\257 \3571e\317\004\213z\350\"\250~{\232u\202\332\331\047\250\022\342$]\257\222?\200\t\014\355~\260\247V!\361\355\227Af\277\207\"\352\033 \210\0165\316u\240\306.\342\035\001\357\343\024\274\271\277\326\014\345\275\352(fX7\302s\251x,4\001s\363\247\336\004\254r\201\362EoQo\300\213w\355\244\211\224\324GY\375\314\343\325\333\327\220\377-e\256\005\"\013\214-\324\207u\240b.\241~\346<\256\343_\303S\257a\025\363\355~a?T\216\303\323\262Q\350\203\327a\216\036\36229/\007\244\301\212^=#\304,~i5-m\232\244\362\312\032\256?^\345|\0034,+\373*\020_\240G\241\362\254\003\225s\031\265\t\027\274\013_\355\177\216\347q\303*\347;\354Na\225s\r\017\302\356-\355\227`\276\316+Q\023H+y\245uo]\030\351\322\256\2474B\222\273\333\326\340\374\361*\347[\240\341\2762\210\002Q\006\272\r\236\336\350@\345\\\305\047\312.y\227\006\233\237\037\364\037\204V\316\240:\305\034R9J\360\333?\337\274""\200\003jJ\315\241Z\340\265\322\256\334\275\243\t\234\030\2214Z\266f\236\217W;\003@\304\327\336\224\236\302\241}Pw\325\201\332\371\024\367.\373\275\376Q\324u\301\310\230\014\253\237\341\346\332Ah\347Q\354{\177\251Y:\270\353M\352^\255\247r;\217K\363y\032S$\331H;A\253\025}\274\372\031\002\"\356{7\365\240\202\026RZ\275\047\254\237\323G\020\375\2302\217\373\237@\014\014\025\214\245A\266w:m\352\003\273\213\250\300\323\354\255\213\323T\223#{\321Gs0-\355\322\250\224\373J\322\340_\232F\323y{:-D\047\263h\203\232\316\035\322A\026\272aR\336`Ho&\320\r\206\364\3360\275\264\272\206\316Z\244\206N-R\217t\224O\032\211\355g\020\026\006\232K^\022\032\366g\357g\022\226\250Q\241\311\363]\023Q\306\360\225\313\243H)z\202\221\035_\036\257\243y\206\330\003-K\250\331\354\301\334\356\t,Pc\300C\360l|\327*-\241\354*\217Tmw\275\273zX\206\032\003\321\272N\036\265\240*#S\014{\232\350X\326\\{\372\334[h&\245\336V9\232\256[\317E$\324\204Z\022\021\317\225\247(h\345F\254\302^l\320EE\370\343\326\340\013\355\313\314[\212\206\033\017O\263\047\204\004\273e\360GJ\324z0\323(\226\246\315\356}\036T\004\313k\277\250/\322\222\230\016}K\036,o0\220O \322\365\276\362mO\373\360^WT\024\025\350{/\241\"K\31370\323\240\236\216\232\014>Y\305\016c\244\035b`4\376h\251OVO4\177\330\007]\272\2446""\372\032\325\0030H\361d\006\2274\244\271(\265\212\023M\205\256\351(\035AXw\310\013\026h\tEz%js\272|\205.Q\220\027\202\320]\301\324\330t\215\274|^\221\036\226\243g\211\346\321\2317\026ad\n\366;:\277G\242h\374\025=9p\262\373\232+\336\023\210K\223\244Ke\247\036n\217\\\035\271\355\2170)\323>\004V\241\321\007P\333;\271\356\021\255\375\210)\234\026\207d\215!\3378\225\027g\310g\321\311\n\220\204,\032\331\362\345\006\272j\230\214\001\251\351\351-jz\316\236\254\000K\350\224\"?G::\253\265j^\230Pn\0367IJ\256\260\344%e\322BS\352#\355I\356\256\312\003\372!\264#Ne\355.\334oy\023\231\243,\033Z\256\350\205y\321\343\332\246\321\305\003\304\331\244\255+\335\022C\266\256\362\3015\262u\265\017dtT?\360\350\005\302\2407\010\274\002W\244]S\260\334\3662\212\236\243(Y\204\201\023MW\322\352\233\366\300\344\001n\222%h\316\245;\316\307z\273\247s\211\341m\356\307B\375k\215\240\344\nA\356P\310\213a\354=\032\335\343\0011/vt\036p\204\276\365c\013C\324\226\035\353/\265Cm\253Gy1\250LX\357m\034Y>hw\025\365\2267\245\214\047N\2637#\270\377Q+*\034q\047\244\301\207\274mU^\020\047w\300hl\022\237$\241\200\316\374\313Wl\350r\005+\017vv\341eX\343\035\350E\231\346\346\001\232T\177\030oNt\313\200\344\376A\377\221LH\270\350&\245wZ\272\322\206\005\361Ay\255\205\275*\256{\326$\027\037\247\256\332c}\3177\217 \t\341\2306\333\334rX\323\264A\212TyO\223=0\3255\326w\351r\227\024\247\321\016\250J\037\317rK^\002D[\331\264\252\241\361L\267K\220\334#\237\n\247\025\335\335\336\247\253\003\305\206\370o\343\033\254\210\247j\270}\352\2571\313=t\216\271\261\213l\356\022\3141\020;}\344z\351\334ZfSn\030iqO\356\313\312\313\251\250C\322(&\311\205\324\301\366\344_\027\0063\325\330\221\231\335\351v{\321\033>9\257ma\206\237\0259\362\206-\255\320i\377\203\326.t\363\276}\335\262\233K\221\003<*uY\212\317}\215\347\365C\030o\356L7\332\251\341\366\030\346\017\270{\371\306\316\267t\370\364\364\277\361(\033\027t\302\230$T\260\276\351\022z\247\276\351\222zg\250\342X\236\270\2262ch\345\322\005^\362\351t\332c\262wKu\201O.\354\016\357}\327\274""\210\214I\367\366\037\241\031\256\364?v#t\374\330\017\364\030}\377\363\035\357\016\314Rz\212\222WM\310\345\240\274N\233X\001]\344eo|\356\002c\310\357~\266w\356\211+\257\263\047b`\254\351+\207\241\337j[ \222\034\345\016\233|EB\336\225M\333ETs\366\222\341.\354\312w\246\002;|^\244\345\260\227\263\021\315\330\304a\345\375\314\241\273\033\261\336.\030\310t\246\006;}\276\004h\324\027\327\202\314\243\355\255hv\2227 \312\025\243\274x\271\243\326\247\207\357\274u\240\016O\037a\030\363]7u\305\3629d\233\335\035\322\264\201I\325H\323\021)\345C/\014\267w,wt\324wg\002:\212%5\273\201\"\244\362\303v\267\200v}\2638tg\275\221F\233\235\362\226Z\252v\342\n\362^\374\320\276LR@\350\343\003\366\326\366.lYa\355\177\rs\332U\264q\306\355\214\047\253\374\027\216\300=\332\337o\356\026W\t5\301\226wS\204\nb\364\220x\0145\3641\263\337\234G\047ov\"\257G\272\241\234\n\214\025}>D\334\300iU\036\330\222C\315B\367%\271\366\025\323\207\311r\322>@>\277&/\300\225\317\351\330\347K\273)\322\r7\327\236\244\036;l4\010t\352\033B\177\366~\306Wx\224\345)Y[\374E\325x\250=a\247\252\261\323\266\251\217\232J\345\034*/\225\"\026BS)]\350N\373K\244\001KvUH\036\366\206\365J\272\353\335\362\353\203\265\316uL\2710\226\327\323\222E\0251b\022H\310\376\207\326\307\327\273\332?\023\007g\236\244>\333\335\243\232hS\247\003\215\257_\345A\335e\210\345\206\2242\344\305\277O_\237#\353\362\352\307\254&\337n\\\322w\342\374e*\204c\265\n~\304\234\363\305^\364\211+\260\303\367H\000\017:VK\270C\317\321\330\032\374\301\373A\313O\2179\244_lW\232\375\361\340\033\274\\I\210\264l\353\3454=\374\273\211\227\3770\377c\211\267d\321#\337e\224\357\rRU\323\224N\002\255|4\216\226\026$\320\222\231U\033F\354t\275Z\035\235z\344.:w#\337\243M\335\367\047\023\350$NN\2413u\3626:\267O\316\2403s\362\247\223OE\036\2061\276\341m\200H,.s%aH\336\326 \215\242\353(.\177|\215u\025\266\023\322I\356\177\246}\336\177\254\364N\217`\372_\356MP\005ZV\305x\326u]5O\243\002\377\301\204\273\377w*pj7\321\201\n\354\010\323\177\237\253>\365#Hh\335\034b\342)\237\002\244\3758yj""\234\324\356Tu\366\331\243.0}[\203\t/\201\367\267\263\221\2145\202\327\003vx$\277\321\034\r\027\214\303Gs87\227\372\"\271\\\223\274\235V\032\244\254 \021\216^\310 \031y\252;c\373\253=\334\232\373x\302\233\320B(\355&R\023\223\3116M!\267qF\270\035\3711\362$rt\233&\355\3360H&e\254##\027\223\301\026\365Aw@\243})\347P\345\036\315\271TpZ8\223\3352\031%\rc\371\207#\266\032ph8\243dT\003F6\321\3314\206\350#\350\214\230\033J\323\350\244ON\234\354\212X\244%\363k\2370\326\302f\271\366xLG$\363\215\343:\313\035*\231O\355\376\240F\302\265\261\203\350\223hH\333\353\336\337\340am\256\240~u\3737\272\3327\270a}\244\336Lu+_\254\226\317\361P\245\222\224N\372\014\022$C\037!\0165\354\371\035\235\337\215X\331Q=iHO\377\343\324\273\232Y\371.\264\200\257w\362\215\376\326:o}R\264\346\325\304\023\023\003(\021~\362\303\301\271\356+P_\010\327X\265\253@\225\267\265\035K\005\352\047\260\024\003\332\365\324G\363\20736\016\251`\261\340EJ:\265\353\363es\352\340\007e.\203\026Xr\231\026\270\033\356\221\303\312\034\302\224\227\222\323tA\r\"\257\323!\256E\2639\325=)\267\344\333K\366)15\244\2428^\242\346T\000\235}\271\211\316M3\333\310\213\2607\320\331\210\374\212\316\257\346\364\323\367\047\273\262\207\024\337{}\3772\036\337\206>\000\302\027T\021\036Y\204v\377\354\363N4n\247\257\326\365\251)\365\366\211|\355\232\224\226$\342\222l+o6\227\327\313\313\323\036$\220\321&\022\031\365\314tGw\371\311\3363\373g:Y\327]\265\337\321\346\366\362\305k\332\001\"\276@\363\222\234\220\3445\362$\004\223\206\2306MI\020\243y\351\247\356\260\263\216Wv\307\265\006Ncl\236B\224/\r\021\217\"KS\232\375\345\303\300\3621>\232&\3100_\332\251\321\243q\205\356,<:^\331]4\256\362\326\303\336B\242\251\231\326%d\317+_\006\226/\250\322\336\007\275)N\306\030\324\245\355\003\210]\331V\352xew^\005\375X\363n\373\032RZ\311R\237\266\257Rte)\326\361\332\356\272\331\033\211\305\362\001lZJH\005\253|{F\276\244J;\244\241/{\222\315\321|w,\343:^\343\3357\223\223\026\035\324\273iIL\306\256\264\235*\367Q\251\256I\306\244M?Z\266\205\236C-v\311\222\256\263u""~\372\010\242\t\337\211i\353${\367\305\2246N\000\323\335\006\364\314\r\355\303\214u\343,\273\226\331?:\370\217\232{\265@\214\367\274v\262\261\236\226\031^W&\2036Z\213\226d\244\362\243F\373!\322\265\025\326E<\202\227\363r7\324\353o\370@p\307Z\353/\265\333\353\006\233\013\265\240\244\245\364}t\356\367R\203\245\320IE&\320\2310+j\272Ad\025\235U\263\315I\212\333\255.\231\366\205\016H\2756\245I\227\370\020M\272\362\006\350\031TW}6\356\215\353\236\323\221.\321\246}\320W\007\205\243\364\212\316/\310\345f\023\365\007\371f;-[\250[\034\246\255\244\353\027\016\323\260P\267\270\217\316\375\310\000\352\354\007N\322Sc\361\223\035]\344w\262s$\275$\254W\360E\203\247:\033\233\353gn?\306\3752O8+\323tLjlZT\021\203\267J\031\265\266\242\036q\027\235\273\206C\320\205\034d\347\233D\047i\354!\346\320\2313[;t\267\337r\367\246j\224m\253\352fx\250J<\254\217-:\201\027\236t\246-\217rh\235\217o\267+q\330\371u \030\2066p|\030\335\372r\025jD\032\326\304\355it\323n(\031\264\221\205\206=\272\2456\365\354M\036\212\351\323\312\215\026\020\253\350\254\232\266\244\013\266\344\345*\035\335\213hu8\2365\237\367\345\017\007\027\325\312[\367h|\331\213\032P\277Z\321\2216<\332=9B\363\035\220\272:\257\\\"\241\330\032\001(})i\225hh\322\322[\336\373E;\3134&\207\260\255\206\314\254}\035\235\353\346%H\272\nj\266\033W\346\034\242\344\376<\355\245Q\032{\252z\223o\016\236\307k<\273\254=\370\250\025\3737\276\033c\037\321\244\323\273S{\355\210M\375\370\301E\357b\264\371\332\301\231\203\320\271{\240y\256\325A>\265e\002\313\376\327QI\233W|\r8\272nC`\347\033\336\206\236\233H\023\047_\302$\216N\212&Z\262\323\000\047[\047R\317I\223\047Z=\320\262\201F\275\275\350F\215z\272\365\227\364\264\035]\262G\241\260\027\325\212V\237l\3227\254;\021\353\323\275\227a(\343EO\337}\177h+\371\326\026\211\275\211\343o`Cf\264\241o\006\312\223\361\355\013[\244e\241\233\330\251\345\242\221.\311\277\377\330\273\327<\343o\234\016\215\245N[\232\005\333\206\366;\244\336\226\330!\251\276H@\242\263\234t\177\204\274\275C\352\267i\333\203F\025\255F\210G\206\352Q~\355\2161Z\213\201\323\241\266\351\370\300\t\352\263\016\333u8\354E0\251\245\374\2134%\217\0308\254q\362\370\336H\307\031[W\017\350\267\263\260\240}\241\320[\215\311^\223N\010\220\241&Y\240\320n/I\235\304\332H\266\240\005$)\036i\321A\262E*\322%[,\313\341\240\241\364\373\242\035m\253\323G\275\272\261\373;7G\236\225h:\222mF+\005by$\017\322\242\237\266xI\036$\3251\311\203\313\350,\233-\336\337\320\371\315\234k\215vk5\360\352\376\263\372\251]X\047j\345:T\026\336\274\016\r\037\035\350<\373l\377e\353\200%|\253]\035 X\237\235\020O\352\034&\351\023\367\2449\215T\0004\265\311\013\022I\356\047E\233\265\353UzN\342\236\324\316$v\220\334O#u8\322\215\273\2169\027\355F\033\265)\312\367\207\264\321_\"\307\323\244F\253wk\302\247\344\017\222\343Cw\340\236\360y\203\366\005\370n4\322\307x\232\364""\262w9\216o\201\034\204\356\264\305\232Q\274\347#\320H\312\300x\377\363\346\0278\214\246\225\261\242\336\314\207a\204G\327\371kh$}\3200\242\026\"[KR\245\220\020B\303\210Z\210\266\275i\253\224\364jRz\227\353.)!\3220\242\026r/\023=VC\rBI\307\224\362Wk;p\347\363\3515\324\265\275\376\207\247>\362>\032\306\373\334a\"\013k\251xs\002\005\222@K)\343\264\375\221f\002\217\211i\253\035\275s[\365\252\233\336\246\336\306&q\221\2462\371\0104\351ri+\207\030\036i\263I\030\241\r\0069\261Q\023\221h\"\025bR\\\014\275\260!\371\230-\025\203\222\336R\226\277z\"\322J\247\247\325R\237`\252+\336\225\304\301k\336D\306\313d\303\232j\250Yh\206\315N\312\264y\177\272y\375`A\231\307\301\334\004e\200\002\340\241>s?\232\324\255\321\244D\243\211\346\2466\336\307\241\263s\264$nC|\224\373\326\235\021\037\343P\322e\245?\204)X\357\250TB\233\352\217S\247\037\374\260\275\322\370\024\255\303O?\030\3379\213\027U#\254\264\263\326\2104\242\177\376\375o\317<\377 \265\363Ech\367\234\nx\247\337\332\231m\234\302\315\240\323\020\321\217H^\334\216l+\"\256=\330\330.lo\000\271\247\317l\277\266s\006\034\357\314\271\306\031\370\362\371\227\266\377\257\361\334n?\306\274\265\363\313\3569\364\274\2613\nK\002L\364v\343\234N\364\332\316\377\355\236\330=\273;\201\3013\333\047\267\363;\375;\361\306\313\215\371\335s\360\365\213\257z\257\242A\372YXg\026\036\276\370\346N\256q\246q\016\253\351\332\366\232\367\332\371\335^Ht\026\272\206\367\372\207\336\207\303\315\265\203\023\017_|y\373\026\244\272\214\227e\237\301\203\237\270i\021\331\215\266\316\001\305\231\030\310\340gX\016/o\337l\234h\274\205\022.!y\277Q\337\355\327T\253\360\205\3357\320X\342\305P\224h\354\370\016\326\372\303\027\337\332\231o\234k\364#\312\311\235s;\337A\232\357\366\337Q\222\025\200\246w&\260\343\333\\.`e`\353\251\366\352\302s\264\355?E\013\\\032\371\263\267\"\2449bn4b\354\013\223\335zx\366\217\256\274!\321\376\373\021\372&u\3732\014-7\211m\220&\300>\020\323\255\327\"\376\350\312\3738\355\337%\017\254\005\231\212W\321Z\021\332\246\r\025\031\247\272\366\366""\315\037]y\274\272\375\207\253a\016\301\265\267\267\252\025\017\244\260\243Mj\352\002\366\324u\267\236\251\376\377\252\273\226\256(\256 \034\030\210(\003\316\300\360H\300\307 F\221h\034\002h^\276\360\221\227\311\341\240\346\230\307\202\243$&\232\234`\000\225\230\307r\226wy\227\275\354e/g9K\227w\311\262\177B~B\252\352~3\316\225v\322@\367HV@3\323\335\267\352V\335z}U[&B\254<~\334\302!.R6KvX\205\343=D\032\245\267\333S\250\360\331\036\025\342\371\272[\031\300C\216\024\017\020\221\376q\256-\001y\200\021QoV\221\332\250\235-\023\343\024\0370\023f\342\003r\"\203\221,\377(b\\\250F\252\312\031V\255\301\343\312\023\022\217\357Ey\333\3212\032\266\260Z=\3552\365V7\314\213W\221\036\266\020g\336\022\224y\253\233v\307\204\227\207\211\347\261\023\214\252l\031\332\210S,rH\033\0221\365\306\206\0225F|\037\301cwp*\006\267\240H\247\236\034M\251\017\021\222\326\311\363#\311\340\306\226QL\260\047\334\266\301\310\214\271s\355QZPo\257.\025\006\000\010 \214\237\350\000\314\377l\237\323\204!\333\000\305\264H\021\305(\023Ez\022\032\010\2457\020\007\344%q\224\"=YO~\245\245\210\004\t\023\276\232\202\247W_\356\024\003\224\td\014\260\231\365\272\356t\353\234\222gHL\037q\223\273\374\222\036;\321\022\320\314\342i6\267\335\255p\202i\t5\204\203\031E\324n?\013\244\177\221\260z\224N\377\235\024\231\222\270b\212\256_o\326\372\250\331Li\027\205\016""\024\031\370\0015\205\342\026d\016\001\333\303\351\200n#\217S\322])\362%v<\340Eiy\031\256 \032C\336\314rEF\027\312\013r\002\0036> \031\207w$\260\374I\302A\204\026\360%nl|WT\201\301\177s\261 n{\027\230\267\020\024\340\376\3263)\227\177%\317\227\270a\372M|\211\214\322[O\232\204\205\016{\047\225\331\254\347\002\334\016\234\362\020\024\034\366\010Y\200!@!\273Ezh\227\004=\346\326\177\241\272\350\367L\032\251\200T\371\222l\220\334\366\325#aY5\253Nv52\317\016#\014\0368\274\017\010\n\334A\340\350\\X8\030\002\\\200;\316\023\336\007\004\005\265DO3iD\342S\345\313i\2762i&\317W\036s\035H\024_.V\363\021|\231e\010G\245\253\272\227l\2615q\237\352\003\032HX\326\314\232\223\360\215L\375#\261\005\207\004v\030\004\005\345\312\210\327\307\000j\3008N\024\250q\201V7*V\277\235\204\302I\273\026\361%^\r\353n\251`m\006\322@\374$Q\220F\354\322\325\344\0313\305\016\377Isr\256z\366Y\351Y\344\0013\027YZ,=\210+\307\253\023l\216}%qO\333\377\204\3141\306\257\212\367\342\346\265\"\313$\200\317\200\231\014s\014\342\002\357\005.\245\353K\272U\3060\307\320e\301\255\263C)\370_\333d\316%[\220o\203\2726\324\377\240E\314\211WT\274\233J\212\021r\254Gy\033\361\030\010t\301&\203\310\000Js!\355Z\342\360U\025\022\357\2462\342f\250M8\376\211\2426c\327\017\207\257\254xx7\225\016#.\343\026{\273\343\246#;\230\\J\277f8i\366\314r\220\277dJ\237=;k\026\310i\274\031\305\236k\221\225\335\322s\264r\257\372#\333i\326\047\243\327\267v\332\272Yw\032)\301\034\200\235\006\261q\047k\271C\377 6\360k\\` \3423n\201\267\033\304\204\235\006\261\001\274en\233\354\271JK|*A\016\262\241m\337\355_[\301\236\\\334lWc\223^g,QC\267\230\315m\344Z\213\211\216D\337B\001\3025\215\314\210\341xr{\313\241\003(\340\202\350-\207\031^\017\371\307\303\032\\p\235\177\254w\240\003\350u\376q=\3311\230\377\321\035\364jpTRA\237\313\341O\306\013\355!\242n\324\314`\327,\003i\335\223\337\3152\272\303\202\240\274\334&\311\337e\234m\271\345\311\231\tg9\242\247^A\207c\3750\200b8\013\217\332S\311Q\310\300\314p\007\303\036\023 Z\343\030\266\377\001\3210\3421L{\304""\350N\007\214\272\243\035a\314\305\360|\036\267\2477Y4L{\344\337N\007\376\265\232hq&\375\205=\275\334\340\366/\246\022c\237h\221}\352m\275\250\351\030\376\247\353\265\275y\300\242L\367\001\375\225\047\310\240}\272\250g\274\375\014\"\352W3\272\207$\275\024\342\327\233~\321\371^\266\3749\003\232\272\203Y\006%\344\325\250\236\327\367\375\2749!\331*A\007Is\335_\370\024\3571=\007\365\242\363\375\336\362}\rX\327\000#\262\366\227\227U\217\276a\212\266\t\206E\0245|\236qK\014q\032a\266\360\212fU?]\317\026\324\025=\342]\364\276\261\333\342\305\257\r\252E\206\221]S%~\304\n\321pI\2276r\303\372u\246\204 \263\314\020Wsu\222\231WxCnu\203\254\203\311\340\226L\034)\214y\305\215\374\200Z\320\235z\276\206\325\032\367\026\031\2141\310y\241\032N\352\034}\351X0h\241\033\335e\211C\344\345\231\266\031\031\337\264\310\200\255y\276\370\233*\252Y\335\307\257RPsD\250\333\264\213W\211T\005\376VaH=\244\177\276+\2578|\230\241n\264!\206G\364\2649Tk\3359Z\024R|#\263\\\351O2]\370\2713*c\227\272\214\0273#\223\376\264_\207\261\021qH(\366\227\357\252\343\3728YG\313vs\254\353\274>\252e\213\214\023\343\226k\204\244\317\346\210jgi[\264y\371\027/\034b\252\271\027;=\\x\221\315_\330\3733\233{\365\222\367!\221\274[(\214\047e\361\225\260\213^\224\2735\254p\376-[\236+\377\241?\241}\264\304\340\274\202\272l\206\005\356\362\234\361_\213b\240\033\257\251[fd*8B\234\233el\2345\362\216p\243\207!\265f\016\234\t~\253\274U}\235\034\251\234\355\000\261\300\254\332+F \313~[\230=\314\253\254\275Q\357s\031!\n\255\362f\313\231\034}\204W\265D\253=C[\343%\324\203T]\361\351=\336|.U\374\316\007\274\305\332\016\230\321\031\336\001\266\013\365\035z\335q\377{\322Q9X\245\003\376\317B\241\t\332\237\033\023\245\240@K\3519\244\037\t-\032o\373\222\273\0257\337\351t\320A\017 \221&]\242\326\364\002\255w\200>;\024\2645,8\354\032\321S\372[\372\326\375J\2762)\010\343\321\303^\257\277\024|PY\252\226X\013Oy\013~\247\377-\375\177L\006+\214\037\247?o\006\202\302\344\275Pb\272\r)1\250\246m\304Tvg\207\272\254\367yEo\232\010\336\341\213\326\311""\2503z\302+\221\n\022\234\344:\t\030\357\313\302@\230#Q z\233\"\007\211\336\"Y\033\032&\355h\336do\213\244\241D\212qxT_\021\004$iM\271I\370\\\243\221h}J\"\264\352}\311\265\332\307\274U\377:\351*\241\340b\344?\337\250\026\303,\343&\247\255B`\201z\267\274X\376\223\010\225\2217\344\035P\224\347e\005\323\311$\247\267\350\311\2516uP\257\230#\254\375D\244\227I\303\334\361\n\262=\211\346\301\rV\223}\246\217c\372\264N\246O\216\267C^\027y\337L\360}d7\322\023\306\2741\357c\277\276\337,\0224\313bP\003zB\3647\203=\033>\307\232j\322\2377\247.\270Z\352\024o{\326\205%\342\371T\303&\177_\315\253_x\221DZf\314\036\265bFf\311}\312\365\233\376\243\366l\032\026\356\235#U[`\240\3501\177\224\310\204_\355\302\230e{X\234j\373\362\234\327\317\314\0300\003G\345\305\244\031\013\357\323\34507(P\336\266\215wf\203;\322\312\263\375Yq\343\275\3677NO\007Wd\230\231\310\342\027\252\310\2333\313Z\265\316\200\256\254\311\312\321(K1\257\345U~\243\243\223h\260\257{\243\253_\235\247\217t\354\371{\205\276\303\352\230i\323\313\202\373\200\250P\242\017\312U9\353\017\352\007\214\367=PC\266\322I%g\047ib\323AW\033N\023&~\206\247\261\366\251c\3029\372eL]#M0\356\375\340\337\016~\022\365\322?\250\356\3322\2003\274\002>}\336\323\027-\242X\246\271z\237\261\231b\017E\372Y\276\251\212\246\377\010\313\304\277\223\020\035\225"; + PyObject *data = __Pyx_DecompressString(cstring, 29459, 1); #define __Pyx_DecompressString_LZSS_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (36874 bytes) */ -static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\377cted ba\375r\274\210\002histor\377y, at le\357ast \333\205\007fai\375l\372\205\005error \377code ne-e""\275\212\001(a.\001d\266\212\001K\000\367 th@\000is N\377aN in anyy\264\205\003\261\213\001not c\004\377)%(displ\367ay_\210\207\001)s (\377%(group)\377s)\n%s%s.\307adv\310a\007\000\310@_r\337ange\047\367\213\001de\237preca\274\001\353\210\001h\377as no ef\377fect: ((o%s)(s\001nd\366\211\002\377)(tree f\377ragment)\377))\n, , g\376\211\000.3: =?A\177 period\305\212\001\2751\010\001formO\002s\377moothing_ADXR b\004u\340\204\001\327ble+\010i\202\213\001wn?; it f\316\207\002\331\207\003\277inner :\000.\277 Set \047D\000\047\376\237\205\002ead.All\353oc\366\205\003E\321\"(TA\377_ALLOC_E?RR)An \274\204\003\356\002\276\245#-shif\265@B\257ad O\316\210\002 1\001B\377AD_OBJEC\313T)\026\001P\277\214\005\024\006PA\377RAM)Bull\377/Bear Pa\177ttern (\n\001\377ish < 0,\377 Neutral\343 =\t\001)\001\026\001> 0\357)Can\266Amix\361 \240\214\003\342\213\002\303\214\003Conf\347irm\276\207\003O\006+/-\047200G\000\273 s\341a\252\215\001\364$\001\326\215\001 \200\000lier\373 p\201\003)Dash\377ed LineD\351o\227\000\003\005u\342!Exp\373on\265@ial M]o\211\216\002Ave\312@e\000\027\312\207\210\006N\356`F\221\220\002\331!FU\377NC_NOT_F\237OUND)\255\210\006\276aa\333 s\244`am\375\217\001AP\255I\016\013n \346LG\245\204\001 \276P\013GROUPT\010H\304\354 \243\014I\271\217\002\221\001\372@ I|\324\214\010\370AINPUT\233\002\376\203`_INITIA\337LIZE)1\003mu\373st\307\216\001posit\367iveH\002s:In\377sufficie\317nt H\301\206\003\221bIN\377SUFFICIE\377NT_HISTOsRYH\000\365Aal \351g\377INTERNAL\346\362aORj\000\363\210\002 Ha\357ndleC\004VAL\377ID_HANDL\375E\031\006List T\353yp\027\013Lg\000_TY\201P\036\007\206\204\007\237\213\006\351\003P\003\230\204\002_\236\230ATIONw\006\274\204\007H\277older \"\017H\037OLDER\030\027\213\016e\003\3701\003\226\013\222\216\007value\376\277\223\002Kaufman\237 Adap\355!\360lL\307ibr\256\217\001\340a\273MLIyB\344b\272HMESA3\025\337MFI\047s\324m w\377as retir\336\331\224\002 TA-p\000 C\367.No\372\204\014 (id\376\236\205\001ty)None~\361\204\001Suppor\337\212\001\374\322\207\001""\360\204\001SUPPOR\367TED!\000t en\217ough\205\212\005\201\226\001\315\223\001 x\376\204\005\247w\244\222\004Reco\202\206\001\377ble: col\377lect mor\371e\314\213\003\203\224\001try a\317gain\256\000h\006pr\177ice arg\365\217\002\367s: \202\214\006Note\362\267\213\003C\324\227\002\344\212\003libe\277rately\234\206\001i\357cter\336\213\001n P?EP-484\345\215\004\332\222\001_s sub\271\223\002e\217\226\002\377builtin \357type\266\226\001f y\223ou\260\214\002\360\227\001p\342\223\001&\010t\047hen\241\225\002\231\225\001\047\354\210\002\223\221\002\375_<\000ing\047 d\372\205@c\202bto Fa\377lse.Out-\357of-R\226\214\001 En\177d Index\216\212\002\377OUT_OF_R\377ANGE_END\177_INDEX)%\n\337Start\034\025ST\007ART,\007\266\230\001\240\207\025i\000\242\207\024\361O\376\220\002\267\222\005\216\216\001or i\353nf\325\225\001e\017\013neg\341a\322\207\001%\013\344\207\005;\013zer\351oT\004\205\233\002c\246\207\002sti\213ck\r\007d\245\214\013&\007\243\226\005 \377(nullabl;e)\022\010ver\272\230\004X\007\377path-dep\363en\343\204\001\316\004scal\377e same a\214\214\230\004\351\003s:\370\214\006\007\001\342\214\005o\377ol)STOCH\007RSI\222\21669\000\304\216\004C\000\301\216\007%S\275\234\001e\220\214\014\251\206\004i\232\220\001\201\235\001x\302\230\007\205\233\002\233\234\004s ch\273b\372\323\235\001n\257\225\003essTh\373e \316\225\005\047s Ow\377n Defaul=tV\roo m\341\221\001\300\205\027\377Triangul\373ar\222\rriple\365 \310\215\027T\033\003Gene\355r\201\232\004Do\367\215\034Unk\303no\254\000\317\220\002\000\n\247\220\002UN\337KNOWN\336\220\002Us\375e\214\226\001transc\266\327Cal\313\000th\352\236\006V\274\212\212\001\203\211\001pres\336\214\001a\376\352\234\001er limi\235t\014\017n u\207\240\002\032\002W\257eak \210\220\t8\217\220\001a[ w\025\000er\244\237\001m\271\236\001|\213\235\001\203\220\005Weigh\226\225\001\366\335\217\013Wi\377\213\001\047s S\366\215\223\002ed\374\217\014Zero\257-Lag\2618[\222\232\n]\377]add_not\377ebegidx _nbele\234\224\001c\347\221\003\350\217d\356\212\004\244fo""\366\001fecoycle\276\230\001le\376\227\004\304\360\240\001\274\220\002s\275\230\003\246\210\002E\004pi\377ckle %s:z\327\212\007h\331\216\003poin\345\235\002Cto\214\235\002\335\213\005\335 \331\214\002,\315\237\002\367doe\300\204\003cros\376\277\231\001process\273 b\356\242\001ary\256\004sqh\335\241\001\372A\246\214\004whi\204\033\267dis\376\206\001en\204\207\001g\345c\215\240\002 \350\240\003\324\226\001wro\377ng dimen\371s\375\242\001\024\tlengt\375h\351\003differ \242\223\001\233\242\002\251\241\003\365\212\001\356\227\005d\262\204\002Y\003\006\301\221\005a \236\242\002h\004\232\242\002\227\242\003\271\234\002\376\212\242\002 Series[, \266\230\001%s\245\241\t \305\236\007\367mis\264\244\002requ\274\251\216\002\340\243\001 key\366\244\001g\370\267\220\001\320\217\002\224C-100,s 0\236\235\001\007\000)is\366\0037dno\223\231\005: \237\241\006\204$\377is empty\376\316\243\002._core.\237multi\221\243\004\233\232\003t\317o im\362\216\001\033\tum\371a\313\205\001\023\014talib\301.\261\216\004\326\245\001\013\003\256\244\002\026\003or\005d\316 d\321\244\001\047\003\262\244\003\005\004\247\244\002\356?\003sysH\003thr3ea\203\233\001W\003wa\234\236\002\027\003{/_\206\247\005.pxiy\002=/\304\000mmon\006\010\344\246\001\240\025\010\213\226\003,\002\335\210\005\225hs\370\231\r\047\377ACACCBAN\233DS\000\005_S\317\226\002\000\014.\374\270\245\001\216\241\001_fillA\033CO-\000OS#\006\002\006\030\r\270E\006P\0049\014DAD\000\000D\366l\005DD\020\024OSCA\341D\002\000 \006\002\007B\rRAD\025RG\006R`\024X\231\234\001\235\234\001q\006\301X\022\026\031\007\255\024\265\006\316\023LL\257AOAO\317%O\363\023P\327OAP\033\006P\016\024RO\007ONA\001\001\213!\001\004\247E\001\013\360\240L5\001\035\t\3673SINA\360\001\000\371E\001\007\356LTANAp\001\000\241e\001\007\030\rRAT\202F\375T\3644VGDEVA\360\001\002\362e\001\t\351lVGPR\017ICEA\001\004(\007\022\002\316s\327llC\222\232\002S\331\254\003sB\340\352\204\002\000\003\346\204\004\000\n\335\204\013BET\341A\000\001\"\005\014\000\266\204\022BOP\354\000\000H""\005OP\017\023ody\337DojiB\005\000Lo\373ng\004\001Short\336\r\001Very\021\001CC\341I\000\000\200\206\004\000\007\364\205\013CDL?2CROWS\000\006)\005\370\021\005\334\205\0224\0003BLAC\301K4\005\003\0107\007\003\017l\0163I\037NSIDEL\001\004\0033\010\374\004\n(\017LINEST\007RIK9\002\004\007u\010\004\016n\017\007OUTy\005\004\004\265\010\004\013\253\017\376\245\227\001SINSOUT\301H\217!\004\t\374\010\004\020\367\017WH\377ITESOLDI\013ER\212A3\004\n\312(\004\021\304N\375A\210\212\001ONEDBA\203BY\342@\003\n\331G\003\021:\017D\377VANCEBLO\016\355@DLA\004\010?\010\004\017\331n\017BELT\264\237\001\362`\003\005\344g\374\003\014+\017REAKAW\205A\312\001B\004\0054\010\004\014\326\204\016C\377LOSINGMA\377RUBOZUCD\241L\003\014\357\204\007\003\023@\017O\223 A}L\336!SWALLO\001\320\004\014I\010\004\023B\020U\220\243\001AT\tT\332\205\001\242\000O\005\010C\t\005\017\311\206\016\357DARK\364\000UDC\177OVERCDL\003\0138\340\206\007\003\022=\017OJIA\001\004\000 \236\235\001\000\010?\010\026\004\236\207\025DA\000 \013\376\021\026RAGONFL\203YDp\004\004\t\260\010\004\020\322\210\016E\337NGULF\373@CD\341L\003\006\337\210\007\003\r.\017VEN\n\271`D\360\007E\004\013A\010\004\022:\025\300\301$G\004\364\237\0019\016\n\010\252\212\016GAqP\272\211\001\276\211\001\272\207\002CDL\003\r\370\305\212\007\003\024C\017RAVES\tT\271\207\001\353CG\004\nF\010\004\021\316\213\016\017HAMM\370b\003\003\325\213\007\003\n\366$\020NG\252\206\002NCDL\303HA\005\0053\t\005\014g\020RA\365M\256\204\001H\377\255\001ICRO\001S\343\214\001\003\010\201\t\047\002\037\001\331\214\025@\003<#\r\025\026IGHW\306 \272\001\360\004\004\360\010\004\013\242/IKKA:\323\214\002H\004\003MODD\002\022\002\300\n\000?\t\005\0145\025\"\016\317\026OM\377INGPIGEO\340\367\"\004\010\262H\004\017\310\217\016IDE\177NTICAL3\332\217\005p\003\014\341\217\007\003\023@\017NNE\377\213\002aI\004\0025\010\004\t$\020VE\372\251\001\206\202\204\006IN\005\t;\t\005\020\240\221\016KgICK\306\207\003\003\004BY\322\207\001\200\376\216\002\003\014\303\221\007\003\023D\025""\047\016\356\221\025L\377ADDERBOT?TOMCDL\003\t\277\222\007\374\003\020\365\222\016LONGLE\017GGED\351\211\004\003\013B\010\034\n\204\177\026K\001I\253@\221\000\004\0044\014I\003NE\303\223\025\231\216\010\247\216\005\214\224\007\003\014\276\224\016\277MATCHI\312\000O\017WCDL\003\0107\t\032\006i\027\300\242\220\005M\000\350\260\0011\n\006\010n\017OR\002\235\213\014M\004\013\300\010\004\022:\025\355\215\004G\004\250\236\213\013\003\017\326\226\016O\264\205\005O\255\205\014O>\237\205\032PIERC\264\215\003\003\005\370\230\227\007\003\014\312\227\016RICKS\037HAWMA\302\212\001\003\010\333\227\007\374\003\0173\020SEFALL\1773METHOD\247\230\001\303RI\005\013D\t\005\022\345\230\016SEr\225\272\001T\245a\304\227\001CDL\003\0148\376\230\007\003\023@\017HOOL\001\225\221\004\341S\004\010A\010\004\0175\021RTL\300\267\205\003C\000\006\0036\n\006\n\311\017PI\035N\253\220\001TOP\323\001\004\007\310\010\374\004\016\217/TALLED\007PAT\237\270\001\234!\004\n\224(\004\021\374<\020\210aANDWIC\206\250\231\001ST\005\010A\t\005\017\241\234\016T\017AKUR\207\224\001\003\003\250\234\007\003\n~$\020SUKIGA\222!\303TA\005\0041\t\005\013e\017HR\375U\264\000NGCDLT\260\004\005r\010\004\014\245\017RI\261\225\004T\360\004\003\256\010\004\n\222\236\016UNIQ\037UE3RI\301\226\003\003\t\245\236\007\270\003\0207\017\253\223\002GAP\354\236\006U\320\004\013D\010\004\022\255\237\016X\273\236\001GA\301P\222\206\010\003\r\310\237\007\003\024\204\240\014EI\303LC\001\000\262\240\005\001\007\254\240\014MF\307CMF\330\240\005\001\006\025\rOCgMOU\000\001!\006OU\276\240\023sMO\031\007\340\240\023OPP\200\235\001\360\001\003\322\241\005\001\n\317\241\014ORRE\303LC\001\002&\006\017\001H\024SCgOSH\000\001S\006SH\023\025\374\031\007\214\242\023UMSUMC\360\001\002\374\242\005\001\t\370\242\014VICV\301I\244\243\005\001\006\235\243\014\363\244\t\370\277\001DE\377FAULTDEM\341A\000\001\353\252\004\000\010\340\252\013DIS\377ABLEDDIV\354\000\000&\005IV\276\252\022DON\037CHIAN\000\005U\005\020\004\256\036\023POD\365\250\006D\347\250\024D""\227XDX\242\005Xe\023\227\323\005D\037otEFI\000\000\305\254\004\000\007\260\271\254\013\375\000\200 \035\005MA\217\254\022E\317RERI\000\000D\005RIx\020\024\030\0061\023XPEX\216\247\005\374\000\007\202\014qualFL\207OOR\000\002\204\256\004\000\t\372\255\013F\257OSCF\215\255\007F\376\254\025F?RACTAL\000\004O\005\234\017\003\204\256\022Far\230\320\005\240\320\005.\033__\260\324\001__\001\r\342\327\005\035\t\377heck_opt8\250\325\004\233\303\002>\010get\003\030\277\324\001\230Z\n\356\325\003\202\301\002_s\330\263\002\373\314\002s\364\220\010\223\313\001l\240\010reprv\236\nst\002\013uni\216\316\001<\304\010\220\323\006flagR\007\250\001\000\351\326\t\207&\017\007\224\326\002\013\n\214\331\007\266&\276\322\001\376\303&lookbac\tk\324&\363\321\003_m\013\016\004Q\013\234\322\004.\216Frun\232Fs\325 \323\324\n\300\r\n\261\022/\001\324\327\010>\n\322\332\007HA\365H\226\205\005H\221\205\023HMAH\372\271\205\006H\265\205\024HT_DC?PERIOD\000\010\353\263\004x\000\017\347\263\0137\003HASE\000\007\320.\n\027\001\322\263\022t\000P5\000ORp\000\006i\007\023\003\037\025SINj\001\311S\353\230\007\300\000S\353\230\025\334\000TR\017ENDL0\003\003\006\327\007\003\r<\321\016;\002MODED\005\010\001\3701\014\010\010\223,ighLo9w\314\314\002\303\327\001IMI\000\000\312\266\004\360\000\007\276\266\013\200\315\t\204\315\004KAMA\360\000\001\204\267\004\000\010\371\266\013KCKC:\034\005C\314\266\022KDJ\000\000@\005\363DJ\361\266\022\215\257\001ARRE\rG\000\006_A\321\234\001\000\014\222\270\004\000\023x\222\270\013?\007\244\316\002CEPT\000\020\370@\016$\006\211\033_SLOP\001E\243\007\n\002\215\016\n\t\206\025\345\271\003?\010\\\312\321\002\275\014NLN\363\005N\2523\037OG10L\001\001\233%\001\010\336\212,ineM\333@CD\177MACDEXT\000\004p\356\272\004\000\013\346\272\013-\001FIX\000\004\000&\010\022\000\310\272\022^\001M\010\r\024\212\001\361\215\006\374\227\0015\024RKETFI\303MA\002\003\247\006\002\n\241\rSS\340.\000\002\000\325\006\002\007\314\rVPMCAV\255\266\005\000\010\364\r\375\000X\222\314\002\003MA\002\003\261&""\002\n&\016\035\007\2254\270\371&\010\025\261\323\001MA_\270\323\001.\377__getite\347m__\t\007\261\215\003MED@\236\271\002\000\005\322E\020\004\224S\326 F\276\223\005\373MF\313\220\023MIDPO\207INT\000\005\253e\020\004\355SI\340\206\004\001\004)\010\303\272\001\035\024NMI\301N\336#\001\004b\006\021\003\036\026AX\007MIN\221E\000\0106\007\247L\323\204\014\3708\002 \n\212\025US_DI\007MIN\003\002\225\007\003\tK\0160\001\025M-\004M&\013M\362\025\360\007\315\205\023\257OMMOC\006O0\024U?LTMULT\334\206\005\001\007>\307\302\013NATRN\250\276\007\000\010\376\031\014ONENVIN\372\357\227\006N\341\227\024NearOCBV\000\000\315\303\004\000\007\301\303\013O\262\305\003\177DictOut\226\323\002oPERC\202\254\001LE\000\007\360\223\304\004\000\016\216\304\0133\004RANK0\000\010.\013\031\001\374\303\022PL\325B\000\004\022i\005L\276W+\003M\000\004$\n\277S\343PP\211\234\001\303\005\323\302\024PVIuP\316\232\006P\300\232\024PVO\000\000:\215%V\303\303\023PVT\000\000\034\006\005T\362\305\022Q\320\242\002\000\003\370\306\004\000\n\357\306\013\257RMAR\243\231\006R\237\231\024R\013OC\000\000P\000\001\312\307\004\000\010A\014\234(\000+\001100\000\004(\007R\007100\245\307\022\\\001\034\010\014\025r\007\0360\023SIRS\267\235\005\000\007\341\014\327VIR\333\235\006R\315\235\024RV\003OL\000\001\345\005\014\000\242\023\216\346\001\374\336\001\357Real\372\302\002ARS\037AREXT\000\003\367\311\004\000\n\340\356\311\013+\000\033\007\301\311\022\326\300\001INHaS\001\000G\005\001\007>\014IN\031\007\2567\023MAS\221\235\006S\215\235\024S\323MI\000\000\264\005M\214\235\023SQ\303RT\000\001\333\005\014\000\251\023TD\017DEVS\001\002\207%\001\t\200,\344\233\330\001\237\330\002F\000\003*\006OCH\001FJ\024\314\330\003\322\330\005&\t\355U\201\331\002O\t>\3443UBSUB\274E\001\006\354\262L\320\242\tSU\346\212\023SUP\003ER\310\227\002\000\007O\006\023\005\350S\371\321\002?Shadow\340\307\001\004\003 \341\307\002\017\003\340\307\005\004\007\022\010s\370\316\003\376\316\003\336\357\236\001opy_\264\316\005__\337deepc\005\013re\377duce__""T3\343T3\265\317\004\000\006\250\317\013TAN\017TANH\000\001!\005\014\000\204\317\022\210\325\313\007\306\313\025\364\352\001C\000\002\271\320\003\000\010_\337Clone\005\tOp\373en\000\rAndFi{ll,\tPeek<\t\037Updat<\n\326\331\002v\002sOS\000\004c\010OS_a\006\334\005\004Z\tOS_Y\006OS\035_S\010OS_P\007\264\010E\007\240T\002\247\tA\007=\t=\007D\225\355\001D\032\000\003D\210\047DD\232\006\004\004\375\010\333DD\230\006DD\225\010DD\006M\010OS\362\"\211\322\002\340&\227\322\002\336%\000\004\006O\t\271\322\001\330%\305\322\002\323\047\324\322\002\321&\253DR\265\002R\251\010R\252\007RV\371\rDR\252\007R\250\tR\201(UX\210\"XT\003XO\tXQ\010UXK\017XS\010XR\nXS\n\252\326(X\327\047X\234\016X\327\047X\002\325)X\256H\242H\242G\346\016\240G\235I\252\275gO\225\361\001O\201\205\007O\222\204\006O\252\274mO\216\204\006O\212\204\010O\211\204\007P\252H\002PC\010PE\007P?\016P\nG\007PF\tPH\010\307\324\001\267\362\001\307\324\004\000\000\010\264\206\007\332\324\005\266\206\005\004\t\263\206\010\201\325\005\266\206\005\000\221\325\005\264\206\007\243\325\005\265\206\006\213\325\002\235\207\006\231\325\002Y\t\310\335\205\r\272\325\002S\t_N\013\263\206\007SI\001N\215\364\001\302\325\001\374\207\006\317\325\001\371\207\005\004\005\362\207\010\200\356\325\001\361\207\005\372\325\001\353\207\007\210\326\001\350\207\006\270\211\002_\000\363\325\002\326\210\006\201\326\001\323\210\005\004\005\314\210\010\240\326\001\313\210\005\240\254\326\001\305\210\007\272\326\001P\007\354\205\002T\346\205\010T\252\347\205\007T\340\205\016T\347\205\007T\345\205\tT\000\346\205\010\320\326\002\226\366\001\322\326\003\207\212\006\341\326\003\206\212\005\004\007\000\201\212\010\204\327\003\202\212\005\222\327\003\376\211\007\242\327\003\375\211\006\210\327\004\000d\003\375\326\003a\010\216\327\003d\007\006\007c\n\265\327\003\300h\007\305\327\003h\t\327\327\003\364\212\005\272\327\003TA\001_\274\327\004\346\213\005\313\327\004\345\213\004\003\010\340\213\007\356\327\004\340\341\213\004\374\327\004\335\213\006\214\330\004_""\006ETA\000b\001\356\327\001[\006\373\327\001Z\005\004\005U\010\232\330\001`V\005\246\330\001R\007\264\330\001\271\006OP\273\001cOP\241\215\006\267\330\001\261\005OP\336\213\014\214\324\330\001\253\005OP\256\214\007\354\330\001\211\215\005C\037CITA_\264\330\001\365\215\005\300\330\001\000\361\215\004\003\005\351\215\007\335\330\001\347\215\004\350\330\001\340\215\006\365\330\001\000J\006\333\330\005U\001\315\330\006V\006\337\330\006]\005\004\n\000`\010\210\331\006i\005\231\331\006m\007\254\331\006r\010\236\331\010\000|\003\240\331\t|\010\267\331\t\202\007\006\r\204\n\352\331\t\000\214\007\200\332\t\217\t\230\332\t\224\t\375\331\003\225\004\377\331\004\000\214\t\222\332\004\211\010\007\010\202\013\275\332\004\201\010\317\332\004\000{\n\343\332\004\230)\303\332\007\235$\305\332\010\230)\334\332\010\000\231(\007\014\226+\217\333\010\231(\245\333\010\227*\275\333\010\000\270I\240\333\004\272D\242\333\005\262I\266\333\005\260H\007\t\000\252K\343\333\005\252H\366\333\005\245J\213\334\005\303i\351\333\t\000\312d\353\333\n\307i\204\334\n\312h\007\016\311k\273\334\n\000\316h\323\334\n\316j\355\334\n\361\204\t\312\334\n\371\204\004\314\334\013\000\367\204\t\346\334\013\373\204\010\007\017\373\204\013\237\335\013\201\205\010\270\335\013\000\202\205\n\323\335\013\244\207\010\260\335\n\260\207\003\262\335\013\262\207\010\313\335\013\000\272\207\007\006\017\276\207\n\202\336\013\310\207\007\232\336\013\315\207\t\264\336\013\000\242\t\224\336\010\246\004\226\336\t\240\t\256\336\t\240\010\007\r\000\234\013\343\336\t\236\010\372\336\t\233\n\223\337\t\371\211\010\365\336\005\000\200\212\003\367\336\006\375\211\010\213\337\006\200\212\007\006\n\377\211\n\270\337\006\000\204\212\007\313\337\006\204\212\t\340\337\006\177\t\303\337\005\205\004\305\337\006\000\201\t\332\337\006\203\010\007\n\201\013\211\340\006\205\010\235\340\006\000\204\n\263\340\006\226\214\010\216\340\014\244\214\003\220\340\r\250\214\010\253\340\r\000\262\214\007\006\021\270\214\n\346\340\r\304\214\007\200\341\r\313""\214\t\234\341\r\000\260\t\370\340\014\266\004\372\340\r\262\t\226\341\r\264\010\007\021\000\262\013\323\341\r\266\010\356\341\r\265\n\213\342\r\266\n\352\341\010\000\270\005\354\341\t\260\n\205\342\t\256\t\010\r\250\014\274\342\t\000\250\t\324\342\t\243\013\356\342\t\303\220\010\311\342\013\320\220\003\313\342\014\000\323\220\010\345\342\014\334\220\007\006\020\341\220\n\236\343\014\354\220\007\267\343\0148\362\220\t\322\343\014\251\tOJI\244\004\271\343\004\002\000\013_\247\t\275\343\005\242\010\007\t\231\013\352\343\005@\226\010\375\343\005\216\n\222\344\005\206\014i\r_g\013T\242\241\014\371\344\004__\013_Y\r_\243I\000\275\344\t\247D\277\344\n\241I\330\344\n\241H\007\016\235K\000\217\345\n\237H\247\345\n\234J\301\345\n\240\225\010\242\345\006\250\225\003\000\244\345\007\246\225\010\271\345\007\252\225\007\006\013\252\225\n\350\345\007\260\225\007\000\374\345\007\261\225\t\222\346\007\206\t\357\345\013\221\004\361\345\014\222\t\000\214\346\014\231\010\007\020\234\013\307\346\014\245\010\341\346\014\251\n\000\375\346\014\252\017\244\357\001\253\n\345\346\002\242\017\374\346\002\237\016\000\r\006\230\021\257\347\002\227\016\305\347\002\221\020\335\347\002\216\231\010\000\261\347\r\235\231\003\263\347\016\242\231\010\317\347\016\255\231\007\006\022\264\231\n\000\214\350\016\301\231\007\247\350\016\311\231\t\304\350\016\267\t\242\350\n\272\004\000\244\350\013\263\t\276\350\013\262\010\007\017\255\013\367\350\013\256\010\000\220\351\013\252\n\253\351\013\206\234\010\217\351\003\213\234\003\221\351\004\206\234\010\000\243\351\004\207\234\007\006\010\204\234\n\314\351\004\207\234\007\335\351\004\205\234\t\000\360\351\004p\n\323\351\005y\005\325\351\006x\n\353\351\006}\t\000\010\n~\014\234\352\006\205\t\261\352\006\207\013\310\352\006\211*\000\255\352\001\216%\210\352\006\000\016\240\213\t\302\352\t\245)\305\352\007\000\261\256\001\247,\342\352\007\257)\370\352\007\262+\220\353\007\233\016\252x\017_u\r_i\024_k\r_\004d\017\273\213\tH\312\353\004\256d\314\353\005\253i\340""\353\005\000\256h\007\t\255k\215\354\005\262h\240\354\005\262j\265\354\005\000\262\204\t\231\354\003\202\005\215\354\005\000\r\232J\277\354\006\225)\000\007\013\221\014\343\354\006\226\t\370\354\006\226\013\217\355\006\224\017Ps\020q\017\222P\375\355\003_l\016_g\020\000\233J\264\355\010\332\206\004\266\355\t\333\206\t\316\355\t\342\206\010\007\r\000\345\206\013\203\356\t\356\206\010\232\356\t\362\206\n\263\356\t\210\245\010\216\356\014\000\226\245\003\220\356\r\232\245\010\253\356\r\244\245\007\006\021\252\245\n\346\356\r\000\266\245\007\200\357\r\275\245\t\234\357\r\260\t\202\357\002\254\004\204\357\003\000\236\t\226\357\003\226\010\007\007\212\013\277\357\003\204\010\320\357\003\000y\n\343\357\003p\n\301\357\t}\005\303\357\n\200\n\335\357\n\000\211\t\010\016\216\014\226\360\n\231\t\257\360\n\237\013\312\360\n\000\366\250\010\254\360\004\374\250\003\247\360\014\000\022\203\226\t\304\360\r\237\251\007\000\006\021\245\251\n\377\360\r\261\251\007\231\361\r\270\251\t\265\361\r\267\017\242\214\020_\206\016\251\226\017\263\362\004_v\016_\000l\020\270\226\t\333\361\t\301\253\003\335\361\n\302\253\010\365\361\n\311\253\007\000\006\016\314\253\n\252\362\n\325\253\007\301\362\n\331\253\t\332\362\n\335\254\010\000\267\362\013\242\004\242\362\013\237\t\274\362\013\242\010\007\017\241\013\300\365\362\013\246\010\216\363\013\246\n\251\363\013\245\rIN\001E\244\010\230\363\001\231\r\254\363\001\224\014\013\005\213\017\000\331\363\001\210\014\354\363\001\200\016\201\364\001\235\257\010\361\363\005\244\257\003\000\363\363\006\241\257\010\207\364\006\244\257\007\006\n\243\257\n\264\364\006\250\257\007\000\307\364\006\250\257\t\334\364\006~\n\276\364\006\206\005\253\364\007\204\n\000\302\364\007\210\t\010\013\210\014\365\364\007\216\t\213\365\007\217\013\000\243\365\007\222\013\223\365\001\223\006\237\365\002\212\013\262\365\002\207\n\000\t\006\200\r\335\365\002\177\n\357\365\002y\014\203\366\002\243I\000\335\365\013\257D\337\365\014\261I\372\365\014\271H\007\020\275K\000\265\366\014""\307H\317\366\014\314J\353\366\014\252\017\220\233\007\314\366\t\000\242\017\213\233\014\371\366\t\317\224\016\226\367\t\227\016\211\233\016\304\367\t\252\250\265\010O\331\215\010O\323\215\016O\324\215\rO*\315\215\024O\324\215\rO\322\215\017O\323\215\016\355\367\005\000\254\266\003\357\367\006\251\266\010\203\370\006\254\266\007\006\n\253\266\n\260\370\006\000\260\266\007\303\370\006\260\266\t\330\370\006\260\267\010\270\370\010\272\267\003\272\370\t\000\272\267\010\321\370\t\300\267\007\006\r\302\267\n\204\371\t\312\267\007\232\371\t\000\315\267\t\262\371\t\223\n\217\371\013\235\005\221\371\014\235\n\255\371\014\000\243\t\010\020\245\014\352\371\014\255\t\205\372\014\260\013\242\372\014\000\223\272\010\374\371\014\241\272\003\376\371\r\245\272\010\231\372\r\257\272\007\006\021\000\265\272\n\324\372\r\301\272\007\356\372\r\310\272\t\212\373\r\260\t\352\372\010\000\262\004\354\372\t\252\t\204\373\t\250\010\007\r\242\013\271\373\t\000\242\010\320\373\t\235\n\351\373\t\231\013\315\373\003\233\006\317\373\004\000\223\013\344\373\004\221\n\t\010\213\r\223\374\004\213\n\247\374\004\000\206\014\275\374\004\351I\233\374\007\352D\235\374\010\341I\264\374\010\000\336H\007\014\327K\347\374\010\326H\375\374\010\320J\225\375\010\000\211\204\t\362\374\n\215\204\004\364\374\013\207\204\t\216\375\013\207\204\010\007\017\000\203\204\013\307\375\013\205\204\010\340\375\013\202\204\n\373\375\013\250\n\332\375\010\000\254\005\334\375\t\246\n\365\375\t\246\t\010\r\242\014\254\376\t\000\244\t\304\376\t\241\013\336\376\t\213\302\010\301\376\003\220\302\003\303\376\004\000\213\302\010\325\376\004\214\302\007\006\010\211\302\n\376\376\004\214\302\007\217\377\004\000\212\302\t\242\377\004p\n\206\377\004x\005\210\377\005v\n\235\377\005\000z\t\010\tz\014\314\377\005\200\t\340\377\005\201\013\366\377\005\000\203)\327\377\005\213$\331\377\006\211)\356\377\006\215(\007\n\200\215+;\006\223(O\006\224*e\006\225IR\005I\260\254\007T\007\003\234\262\t\013\005\231H\036\004\200\343\245\0166\005\233HI""\004\232J]\004\260\306\010U\377NIQUE3RI>\362\235\001A_CDL\006\t\252\263\t\000\013\n\303\306\007\006\016\306\306\n@\n\317\306\007W\n\323\306\t\374p\n\233\tPSIDEG\377AP2CROWS\002\345\307\003U\007\013\240\n\014\014\245\010\007\020\245\013@G\014\253\010a\014\254\n}\014\223\311\010X\264\004\1773METHOD\266\004\000\006\r\225\266\t\013\016\262\311\007\006\022\271\311\nH\016\306\311\007pc\016\316\311\t\200\016\253\313\006EIL\261\313\001\000\004\000\274\267\007\t\001\257\313\005\004\005\255\313\010(\001\261\313\005\2604\001\260\313\007B\001\205\314\006MF\212\314\001M\001F\224\270\007\t\000\206\314\005\004\004\203\314\010&\000\206\314\005\3401\000\204\314\007>\000I\007\316\325\001CMO\rUU\002OUP\010\n\000S\006\005\004\000Q\t)\000U\0065\000T\010C\000U\010F\t\"\305\270\006M\237\326\r\200\000\275\270\006M\246\326\010\024\001\014\205\316\006\340\347\001CK\216\316\001\004\003\234\272\007\t\004\000\222\316\005\004\010\223\316\010.\004\232\316\005=\004\234\316\007N\004.e\007RRE\306BO\005\001b\010\000\n\002c\006\005\006_\t-\002a\006;\002^\010\270K\002\315\007\234\206\002OSH\325\002S\001H\314\010\n\000\313\006\005\004\305\t)\000\305\006\2005\000\300\010C\000U\010F\t\311\273\006\273\336\016C*\301\336\007C\276\336\tC\276\336\010C\342\342\002\221\321\001\000\352\342\003\217\321\006\371\342\003\223\321\005\004\007\223\321\010\234\343\003\231\321\005\320\252\343\003\232\321\007\272\343\003\361\321\006V\365\321\002VI\306\200\276\007VI\204\275\006\004\004\357\321\010VI\266\374\274\006VI\366\274\010VI\373\337\006D\003EM\366\323\001\003\001\303\341\006\010\002\301\341\004\003\006\200\272\341\007\047\002\271\341\0043\002\263\341\006A\002\260\341\005D\237IVTA_\003\000N\007I\005V\255\341\005D\004\004K\010\032\000M\005%\000\370J\0072\000J\006ONCHI\006\327\343\001_D\004\004\253\007\t\005\261\005\004\t\000\262\0100\005\271\005@\005\273\007R\005\300\006\217\335\002UD\211\335\010D\212\335\007D\203\335\016D\212\335\007\325D\210\335\tD\211\335\010D\242\340\001DXT\350\047\301\337\006D\271\337\rD\277\337""\006D\274\337\010\rD\274\337\007EF\213\326\001\003\000\203\345\006\010\001\000\200\345\004\003\005\370\344\007%\001\366\344\0040\001\357\344\006=\001\260\353\344\005\216c\227`I\007MA\350\344\005E\214\004\004H\010MA\346\344\0050\001I\007M\265A\343\344\006E\347\342\001ER\246\002R\030\266\204\007\017\000O\006RI\353\344\014\031\001\243\005\241R\265\204\0101\001\242\006\263\343\007E\263\343\006E\252\253\343\rE\261\343\006E\256\343\010E\256\343\007E\261X\243\331\001\003\000\273\047XP\351\006X\210\227\331\r%\001\275%X\234\331\010=\001\260\347\005F\007LOO\334\344\001\003\002\237\350\006\010\003\236\350\004\000\003\007\230\350\007)\003\230\350\0046\003\223\350\006E\003X\006\002\231\346\003F\353\345\001\377\350\005\010\002V\005\204\346\001\314\271\013\301F\220\346\0103\002Q\007\261\346\001\262\006RA\027CTA\255\216\001F\004\003\265\007\t\004\000\271\005\004\010\270\010.\004\275\005=\004\275\007N\004\376\241&UNC_FLA\375G\344\351\001FuncTa\377bleAllocwTA_\010\006Fre\346\352\001\367Get \001Hand\375l\005\010InfoTA\375_\033\000InputP\377arameter\376\016\007Lookbac\335k \003Opt\021\025Ou\275t.\021roup\215\nG\264\t\006\224\004H\301\336\001HA\214\354\006H\210\254\205\006\003\004\377\353\007H\252\205\006-\000\364\353\006HB\247\205\007H\223\212\002\003\000D\007\372\205\007H\363\205\016\341H\372\205\0070\001H\007\371\205\010HT_\177DCPERIO\256\353\001\020\003\010\247\007\030\007\327\354\005H\004\014\270\010\"\010\300\310\355\004H\t\313\007J\010\315\355\005\205\003HA\001S\356\340\001\003\007z\014\034\001z\013\t\006w\r@&\002y\n8\002v\014L\002y\010P\177\000\000\240\206\002\230 \006\003\377\t\013\004\313\357\004\031\007\240\300\013@1\007\373\007E\004\367\tX\004\366\010S\313\261\003\"\223@S\301\261\t\010\005m\007S\263\261\017-\005B\356\047S\260\261\nM\005\345(\335\363\002Lk\006\000\006\006\361I\013\007\353\007\006\013\362J:\007\366GpN\007\365Id\007\202\rMOD\375D\000\376\364\002\013\001\201\016\020\002\203\014\013\006\200\017?\002`\203\014S\002\201\016i\002\341\362\005IM\324\344\001\000\003""\000\314\363\006\010\001\311\363\004\003\005\301\363\007%\001\277\363\004\3600\001\270\363\006=\001J\006NPUT\376\322\210\006Initial\033iz\255\364\001KA\364\221\002\003\001\274\364\006\000\010\002\272\364\004\003\006\263\364\007\047\002\262\364\0043\002\254\364\006\264A\002\251\364\005K\250\365\001KCL\007CF\243\364\005KC\315\363\014#\000H\005C\233\364\007\3749\000C\006DJTA_K\003DJ\232\007\t\000\233\005\004\004\227\010&\000\300\231\0051\000\226\007>\000\310\365\005\303\343\001AR\277REGTA_\003\006_\037ANGLE\000\017\327\366\006\033\014\000\365\365\005\003\021\344\366\007%\r\356\366\004<\r\363\366\006U\r\374\242\016|\020INTERC\007EPT\302\n\r\006\026\031\263\017-\007\000\204\311\013\236\047O\007\274\016j\007\276\020\207\007\303\017\360\254\371\004\203Ge\025\257.SLOP\000\250K\r\002\243P\022\003Y\016\r\007\242QG\003\002`\023_\243Pw\003\244O\316P\205\204\006\301\362\001+LN\336gN\322fN\372\371\014#\000\352\271eNs\010N\307\372\006LOG\00310\322\204\001\004\001\260\204\007\t\002\334%\004\006\000\233\204\010*\002\224\204\0057\002\210\204\007F\002\203\374\005\246\232\002gMAC\355\372\001\003\001EX\362a\000\003\004\202\375\006\010\005\203\375\004\003\t\377\374\007-\005\201\375\004\360<\005\376\374\006M\005q\007CDFI\000\331\371\001|\001\007\000b\n\014\001d\010\007\005a\013\2001\001d\010@\001b\nQ\001c\t\304\n_(\303\010\222\375\014\215!_\275\010_\270\n\345\375\006\001M\353\211\003\003\001\240(\316\230\007\024\002\373\317\013\047\002\346\231&MAN\t\321\230\010MAR\007KET\202\232\002\003\005\202H\026\003\266\007\000\005\010\203I \004\207F0\004\206HB\004\203g\033SS\205\362\001MA\005\000\362H\n\001\000\362F\005\005\355I+\001\356F8\001\352HG\001:\344gV\270\363\001MAV\263\363\007\010\002\"\320fV\257\363\r\047\002\312fV\266\363\010A\002|\276\204\007\303cXINDE\000\010\006\207\235\007MA\026\003\355G\005\010\272\204\t \004@\276\204\0060\004\275\204\010B\004q\010\237\205\010XV\010 \306n\271\376\006\213\000\311i\270\376\007M\342\226\007\275i\260\220\204\016\225\204\007\221\204\t\221\204\007ED\315""\370\002T\007A_M\004\004\304\206\007\t\005\307\206\005\004\t\000\305\206\0100\005\311\206\005@\005\310\206\007R\005\305\207\006\254\204\003\215F\304\243\007MF\305\243\006\003\005\247\207\010F\350\305\243\006$\001\240\207\007F\304\243\007MID\017POIN\221\210\002\004\004\215\210\007\t\005\000\220\210\005\004\t\216\210\0100\005\222\210\005@\005\221\210\007R\005\342\216\211\006I\265\047\004\004i\nRIC\003E_k\010\007\006h\013\"\002k\0102\002pi\nD\002l\007\374\376\001MIN\274\204\006\000\004\004\347\010\026\003r\007\005\010\346\t \004\351\006\2600\004\347\010B\004q\010MA\210\212\002I\001N\243\205\005\271a\004\007y\t\274\205\016\034\010\342\210\014\0006\010\204\007\204\206\006\205\t\231\206\006\206\013i\014\360\010\224\301\205\001Z\021_\\\n_U\014\265\212\007I\037NUS_D\355\210\002\004\004\335)\000\027\002\336(\006\007\334*!\003\337\0471\003\335)\210C\003\332Hr\001M\327#\006\002f\rM\262g\014M\217\214\r\263\003M_h\013M\005_f\rM\340\t\271i\265hJ\017\264(\264\257*\356\214\007O\271\002OM\227\217\007O\252\252\007O\236\016O\240\007O\231\tO\006\225\010UL\364\217\002\004\000\354\217\007\t\001\353\217\005\000\004\005\345\217\010(\001\345\217\0054\001\340\217\007B\001\324\377\005\007NAT\245\247\001\003\001\345\353\006\010\002\330\377\004\000\003\006\326\377\007\047\002\332\377\0043\002\331\377\006A\002Q\006\252\267\255\002N\261\255\010N\262\255\007N\253\255\016Nj\262\255\007N\260\255\tN\261\255\010OB\336\254\001\000\003\000\220\355\006\010\001\221\377\004\003\005\203\377\007%\001\373\376\004p0\001\356\376\006=\001\344\376\005OUT\246\233\t\035P\327\227\001NTI\226\231\002\003\007\200\356\006\000\010\010\364\376\004\003\014\361\376\0073\010\364\376\004E\010\372\377\0068Y\010\367\377\005}\004RAN\341\263\001\003\010\004v\r\036\001_y\013\n\006w\016(\002{\013P;\002z\rP\002\202\006L\373\206\005P\004\003\032\377\007L\364\206\nPL\354\206\021-\005\370\005AL\357\206\014M\005a\013\370\206\001i\003M`\014\000\361\206\006\027\005\271\344\013-\005b\n\354\206\010M\005\340&\252\343\257\002P\335\257\010P""\336\257\007P\327\257\016P\252\336\257\007P\334\257\tP\335\257\010P\254\263\002P\252\246\263\010P\247\263\007P\240\263\016P\247\263\007P\032\245\263\tP\246\263\010PV\231\271\001\003\000\373g\213VO\356FV\263\270\r%\001\350eV\350\270\270\010=\001\331fV\271\235\001PVT\212H\010TI\007T\321\362\014%\001J\006T\360\316\362\007=\001\254\204\006\373\252\001Hold\313er\300\253\005P\t\007\303\253\004QS\003TI\265\271\002\003\003\326\364\006\010\004\242\377\004\003\010\200\225\377\007+\004\216\377\0049\004\202\377\006I\004\371\376\005R\252\336\265\002R\242\223\010R\305\261\007R\276\261\016Rj\305\261\007R\350\227\tR\304\261\010RO\341\242\001\000\003\000\263\260\001\003\001\223\366\006\010\002\262\377\004\003\006\244\377\007\300\047\002\234\377\0043\002\217\377\006A\002\252\006OC\034\255\262\001d\000R10\320\234\001\003\004[\t\002\026\001_`\007\006\006`\n \002f\007/\002\200g\t@\002j\tU\nS\t\327\366\014\227\001_\nN\010_I\n_\276\010\217)\245\010>\0170D\010A\nC\007\354\231\002RS\366\271\007\010\001\"\345%S\260\264\r%\001\343%S\365\271\010=\001T\223f\316\272\002R\310\272\010R\311\272\007R\302\272\016\325R\311\272\007R\307\272\tR\310\272\010RV\001O\350\301\001\003\001\214g\021\000\243F\004\005\213h\300\033\001\216e\047\001\214g5\001\300\204\006es\337toreC\366\261\002De\377faultSet\377tingsTA_\003SA\341\266\001\003\000\222\240\003\003\003\254\373\006\010\004\000\301\377\004\003\010\261\377\007+\004\247\377\0049\004\230\377\006I\004\010\214\377\005k\000P\t_O\007\201\373\014%\001I\007\331_D\t\373\372\006SI\204\243\001SI\001N\353\277\001\003\001\255\007\021\000S\006\004\005\250\010\300\033\001\251\005\047\001\245\0075\001\244\006IN@F\tF\010\235\r&\000E\007\242\010I\336\243\007US\256\276\002S\362\233\010S\225\272\007S\216\272\016US\225\272\007S\270\240\tS\224\272\010S\367\254\0024\003\000\245GM\321\277\006SM\212\272\r%\001b\236EM\317\277\010=\001\227FQR\220\251\001\001S\004\000\372G\t\001\372E\004\005\365H(\001\340\366E4\001\362GB\001\361FTDD\005E\331\277\001S\004\002\330g\t\003\332e\004\007""\200\327h,\003\332e:\003\330gJ\003^\007O%C\213bT\005\000\342\307\001S\004\002e\010\004\024\001\360fT\005\006d\t\036\002g\006,\002\010e\010<\002c\nR\320\242\002e\002\335\207\t\010\006D\325\006\231\000R\342\207\016/\006f\tR\361\207\t@Q\006\331\n\306\013\306\n\276\205\r\211!_\305\t\331_\302\013\312\205\007UB\221\207\001UB\000\371\206\007\t\000\370\206\005\004\004\362\206\010&\000\362\206\0051\000h\355\206\007>\000\353\206\006U\206\232\001SU\302\230\007\000\010\001J\006\353\231\r%\001J\006\346\231\010=\001I\007\007PER\227\265\002\250\002\005\005\251\010\n\006\000\262\006\005\n\266\t5\006\300\006G\006\305\010[\006\306\302\210\006et\316\211\003\301\211\t\021\000om\377patibili\333ty\334\211\001et\251\274\nIn\337teger\007\020Re{al+\003Unst\312\275\001\277Period\241\212\001h\377utdownTAg_T3\000\002\242\372\006T3\222\371\005\000\003\004\217\377\007\030\000\201\377\004\"\000\356\376\006.\000\336\376\005\301T\221\306\002\003\000\254\312\001\003\001L\007AN\001HO\006\004\005O\010\033\001T\005\047\001T\007@5\001U\010F\tF\010\256\372\014\206\000_E\007\251_B\t\242\372\006T\357\310\003T\326\304\tT\005E\331\304\007T\322\304\017\047\002\373\005\331\304\nA\002^\376\006RANG\243\355\001T\004\002\010\321\047\t\003\250\377\004T\004\007\330(,\003\337%\320:\003\341\047J\003^\007I\263\312\002TR\021I\371\247\010\010\003\\\006I\231\306\016)\003Z\006\341I\307\254\tE\003V\010\240\310\001TRI\000\234\310\007\010\002T\007\232\310\r\047\002R\007\243\310\010A\002\032\241fS\255\322\001TS\247\322\007\010\001\222%\000\024\000\377\376\013%\001\363e1\000\362g>\000I\007Z\224\315\001T\215\222\010TS\217\315\006T\207\222\016`%\001J\006\215\315\010=\001\307\204\006YP\213\252\005\001T\004\004\236\205\007\t\005\307E\004\t\251\205\0100\005\340\262\205\005@\005\266\205\007R\005\261\376\005ULT\000\317\306\003\003\003\225\376\006\010\004\256\377\004\003\010\246\377\007+\004 \244\377\0049\004\235\377\006I\004\231\377\005V\245\222\002\003\000\000\367\376\006\010\001\331\374\004\003\005\342\376\007%\001\375\377\0040\001h""\363\377\006=\001J\006H\204\326\001VH\376\325\007\000\010\001K\005\024\000\366\354\013%\001K\0051\000I\007\\>\000\235\006ORT\232\257\002V\004\002\000\242\007\t\003\247\005\004\007\247\010,\003\255\005:\003X\256\007J\003\205&WA\372\312\001V\004\000\000\206\047\t\001\211%\004\005\207((\001\213%4\0010\212\047B\001P\007\331\321\002VW\236\257\010\010\002\200Q\006\274\315\016\047\002Q\006\350\263\tA\002\227\377\005W\001A\300\306\001\003\000\375\372\006\010\001\353\376\004\003\005\331\376\007\300%\001\315\376\0040\001\365\377\006=\001J\006CL\002\376\257\005W\004\004S\007\t\005Z\005\004\t\\\010\3000\005d\005@\005g\007R\005\300\006IL\005L\230\317\001W\004\001\303\007\t\002\307\005\004\006\000\306\010*\002\313\0057\002\313\007F\002\241&\334\324\002\252\366)W\303\320\007W\274\320\016W\303\320\007W\032\346\266\tW\302\320\010ZL\260\325\003\003\002\376\375\006\000\010\003\270\377\004\003\007\251\377\007)\003\240\377\0046\003\222\377\006\360E\003\211\377\003\217\326\001\371\321\001Stre\367amT\001\007.ope\377n_and_fi\003ll\335\213\003\342\213\004%\004\360\213\0033\003\036\r \256\213\001\252\213\002$\005\267\213\001\024\024X\364\212\002 \006\233X_>\022SF\303\212\001\240\004S%F\016\024I\225\212\001\035\005I4\023\346\211\005\000\343\211\005\364\004\001\013\361\013\246\211\003\242\211\004\245#\000\n\016\237+VAR\353\210\001\315#\000\007\026\014\023HF\275\210\001\036\004H\273\023\207\210\003\214\210\004\000I\004\232\210\003\3431\321\207\001\324\207\002s\004\340\207\001\022\023\263MA\242\207\002 \005MA\3372W\003AD\361\206\001\225c\000\007\214k\267\206\005\276\206\006\000(\004\316\206\005\214q\373\205\002\377\205\003V\004\214\206\002\026\022\027MAW\226\006W\222\024\237\205\002\233\205\003\370\302\204\003\000\t\273\204\013_ARRA\177Y_TYPES\352\322\002\377tion__ca\177ll_func\n\002\375F\001\005_check\277_opt_i\346\322\001_\337value-\010ge\371t\003\030.\003price\377_series_gnam\003\000W\007lox\000=_\001\014data\222\0100\001>\000\014str_I\354\312\002\313\002\361S\312\004\r\003\333\272\002_SER""\375I\341\000DEFAUL\377TS_PANDA\377S_DATAFR\347AME\t\005!\004POL\343AR\022\n\013\003@\004TA_\377ReadLeas\373e_\001\t.__en\337ter__\006\016xi\275t\004\017redu\214 c\347yth\365!<\rset\277state_\025\tW\017riter\006\004\007n\013\n\013\340t\006\"\nk\020B\nm\017_Py\375x\001\000Dict_N\277extRef\345\002F\377UNCTION_\225N\311 S\373\000_\277a\203 aWnno\275\002_\320d_\317m\376\277t_class_\364\320`\353\000mN\001copy\036V\001deep\003\006\205\001\352 gdocq\001\364%_e\350#\370\300\204\002\212\001\226\204\001flags\223__\221\204\021[\tg\354%\301@i\325n\260B_\242\204\026_\254\204\003_m\367ain\362\001meta\374\263\003\377@module\006\022\002ro\224a\357\204\002\230`\276\204\002\004\001\373ew\247!prepaer$\002p\334 \341\205\002su\361\000>\n\001resul\267`\026\001:\206c_!\001typW\000+\001?unpickd\001\211\204\n\221_\013\016\255h>\002v\232\234\002\250Aq\347ual\214\005\213\204\004___\214\214\204\r\t\005ex\334A\261\000\342\204\001_/set_\310\005s\260(\251p\376\243\206\001___ta_vgers\345\207\002\013\000es\224\205\001\177_unicod\252!)d\331a\307\207\001d\342\250\003s\363\215\002\337@\377s_is_cor\277outine\370 o\347kupK\001\222\210\003suc\333ce\260`ta\361Cun\256W\000id_\001\014s\003\013r_etire!\002g\332\334\003\000\314\334\001\241\001\010\004\216\335\002\t\004\356\333\007\032\004\340\334\017\0003\004\320\334\022\024\005\324\334\017i\004\333\000\356\237\010\r\005Mu\303\237\004_p\306\237\002\275!i\310\324\006Z\313!r\230\253\003_c\225\336\002_\261$ \227A\234\253\002\356!\243A\030\004s\261\253\004\016\006\321oe\014\317Aa\020s\271\240\004a_\377closea_h\377igha_lowka_\233\221\001a\231\004sa\270`\253al\000\0030\007\0031\361@o\337lumea\241@le\343ra\345\213\001\000\t\346\205\001lon}g\004\rshort)\t\216\025\rmax\000\020&\016A\004q\375u\351Aappend\367arg\000\000sarr\377aysascii\373as\323\205\001asyncwio.\341fsat\314\207\002watr\374#avg\205C\377bbegidxb\377itbytes2/strc\237Dc\230\215\003\215C\177stickcl\262\204\001\377in_trace\354\214\341\001\305 ne\310\"col\353le\352\215\002s\010\000umnO_sta0\000\260!n\020\000""\037pydde\234\205\001\324E\366\215\002\376\231\205\005descrip\376\271\216\001display\334\325\215\002\257\205\001doc\363 nt>\354\"empty\367\000\260\000\376\375\000swithen\374\222@\214@efacto{rf\200 d_ma\333\207\001\330\006\003\356c\024\001k_\002\007li\307mit)\001!\007\"\004ir;st-\004lag\357\211\002\363\211\003#lo\252\206\002\332\206\001\327\217\001_\370!\004\002\217info\r\002\234!\026\002o\003bj\212 \370\217\006?\003\207\220\005\260\217\001\224\220\005\201s\356\217\001\206\220\003\301C\006\007\326\217\002\215\220\001pf\210\344\005sg\304\343\001\000\002sh\277\344\002ohelp\301\204\001hi\332\261\001\337ylenh\264\270\002ii\335d\323@imp\371`_e\377rrorinin\007dex\247\001c\t\201\221\003\302\220\001\000\007us\320\220\025i\257\247\003is_\203B\336\323\214\001skey\000\000sk\375w\206\204\001leftba\273rs\205\000gth\207\221\002l\376\263\345\004lowlowe\375r\224Cmaximu\357mmax\214\207\003memoomin\006\004is\200\000\313gm\001\003_[\001\203\214\003ms\377gmultipl\317iern\367\221\001\373\221\001dt\373up\366\000annbd\353ev\000\002d\006\003upn\025o\305\215\001s\342\263\001_\332)\261`\374\222\003\301s\006\001\207\223\006\010\003\276\346\002\025\001py\376\302Coffseto\027nre\363\212\001e\306\231\001\312\231\001\300\251\001D\264\210\002\316\231\to\230\347\001\330\223\006\333\223\014s`\007\177ordered\247\213\001\377outoutar\347oon\332\251\001\004\005upo\177utbearp\264!\270\007\002\247\206\001\021\001ull\r\005d\177outfama\002\002\373st\t\003stkou\207tha\342\210\002\005\002\346\210\001\016\002l\343ow\026\002\300\002\203\214\001pha\243se\214\214\002\215\253\002\000\007_\263\224\001o\337utjouJ\002lecad\230`(\001\305Bba\254\000\037utmac\200\001\003\001\201\204\002\376\014\003signalo\334\033\001\227\002max\010\002xi\365d\000\006xZ\005midd\333leH\005in3\001in\370#\004\004\002 \007nusvi\377outnbele\267men\267!pl\016\004p^\305\"put_\246\221\002o\210\352\002\244\237\226\002\000\010s\021\003\000\004s\200\227\001i\376\302!quadrat\033ur\212!re\271\002\003\001\341\t\370\023\001\241\n$\001upper<\207$\232$slow""\226A\004\001\306\207Asm\260\001\003\000\217&su\277pertre\277\"s\017wing\234D\007\002\240C\027\005~X\006pandas\213\207\002\360\220\207\002\372\227\002\225\207\007\244\207\002spen\373et\232\214\003perce\237ntile\363\215\003\371\215\003s_polar\003\000p\306\230\002\212\313\230\0020\321\230\0021\320\230\t\327\230\016\250\231\003s\364\373\230\002\003\000o\275\001yran\243ge\310\222\001\256!\262!0\267!1\177replace\366\222\003csr\216\000\220\260\001\357\204\001t_\242\221\001\357righ\246\207\002roc\3111\220\217\003\007\0002\001\006\014\004un\377sschemas\337econd\271\004el\001f\371\231\003\267\222\001\335\232\006\207\215\001\310\222\001\302\211\t\006\0078\244\232\002\347\222\001\304\211\007set\231\222\005\203\274\003\340\217\224\001\263\204\003\272\213\003\277\204\003\256$kip\203_f\230\213\001\327B\333\213\004\006\003\320$l\007owk\r\010\346\213\005\210a\351\213\002\221a\316R\004low\205D\241\215\001le\377velstart\370\213\234\002\254\231\002\262\231\001icmet\377hodstdde\255v)\005r2\246\216\002s\335\242\002s\375y\236\262\003talib.\374\226\224\001\005\000thread\377ingtimeS\217tamp\005\001\366\221\003\000\0071\372\013\0072\026\0073to_n\217umpy\234\226\001\237\226\002\377\223\004u_pdate\000\003_\356\214\001\032\013\003s\371\204\002us\216\235\001\345\232\003\317\235\002\324\303\003\237\225\004v\225\216\003v\273\221\002wasrn\000\001\365\276\001wma\214\223\003\377\200\001\330\004\005\340\t\027\377\220q\330\010\013\2104\210\377q\330\021\022\330\020\036\230\377n\250A\330\014\035\230Q\377\320\036/\250q\330\014\036\373\230a&\001\007\200u\210C\376!\000\010\020\220\005\220Q\330\377\014\r\330\020\026\320\026+\373\2501*\001 \240\013\2501\367\330\010\017A\000\004\013\320\013\337\034\230A\230Q/\003y\220{\003\220\023\004\t\022\220#7\000\037\010\026\220a\330\000\t\000\025\000-\364\000]\235\200 \340\330\002\004\014\320\014\377#\2409\250C\250x\260\377q\330\004\n\210%\210q\377\220\001\330\010\027\220z\240\271\021\362!\262!F\260!\375!,\377\250A\250V\2601\200\001\363\340\004\205A\211B\r\016\330\014""\277\032\320\032.\250a\375 \004\177\025\220Q\320\026-\250\315 \377\340\004\037\230q\320 0\377\260\013\270;\300k\320Q\377R\330\004\023\220=\240\010\377\250\001\250\021\330\004\007\200\177|\2207\230!\330\010\263@\377\3200@\300\016\310a\330\347\004\013\210V\002%\020>\240\030\357\250\021\250!-\0100\260\001\377\3201B\300.\320PQr1\005\t\250A\213\001\027\320\027\350@\360\016\006\260a\237\004\241`\260\r\270[?\310\013\320ST\330\247\003\266\000|\315\000\277\t:\270!\2701\027\004\3739\270\201 \340#$\360&\177\000\005\014\210;\220a\375`\377\004\r\210T\220\026\220q\373\230\001\304\001w\210c\220\021\376\313`\320\017 \240\001\240\023\377\240A\330\t\n\330\010\021\377\220\035\230a\230x\240z\367\260\024\260\236\000\r\210U\220\177\047\230\022\2307\240\"\036\000\377\004\024\220A\330\004\005\330\376\247\002\220w\230e\240?\260\377\"\260A\330\010\022\320\022\177#\2401\240H\250A\027\002\377\031\230\026\230r\240\024\240\377Y\250k\270\024\270V\300\3771\300I\310]\320Z[\377\320[g\320gh\320h\377w\360\000\000x\001C\002\356\004\000C\002J\003\001J\002P\356\n\001P\002Q\021\001Q\002R\313\002\340\234A\030\247\001\230@\220i\373\230q\337%#;\2701\360\335(u^M\300\021\260\200%c\320\377cd\320dp\320pq\356\325\000r\001A\324\001A\002L\356\333\001L\002S\342\001S\002Y\356\351\001Y\002Z\360\001Z\002[\3743\251\331\000e\320eq\320q\335r\264@s\001B\263AB\002]M\272AM\002T\301AT\316\007n\327@[\002\\\244W$%\264\203[\177\320#3\2602\260Q\200\204\020\377\027\240\002\240$\240i\250\377{\270$\270f\300A\300\377Y\310m\320[\\\320\\\377h\320hi\320ix\360\337\000\000y\001D\217\204\001D\002\365K\226\204\001K\202\204\007\360\000\000R\334\306@\205\204\013j\240\001\362\206\005$\270a\360,\265\201.Q\242\241\2016l\302\212\014\267\221\017\306o|\276\221\005t\377\320tu\360\000\000v\001t\321d\273\221\004W\323\221\001W\002]\332\221\001w]\002^\341\221\001^\002i\350\221\001wi\002t\357\221\001t\002{\366\221\001w{\002A\312!A\003B\321!\257B\003C\003\2073\220\220\225\001&\275\047\327\215]5\260R\260\204\211\021\031\377\240\"\240D\250\t\260\033\377\270D\300\006\300a\300y\377\320P]\320]^\320^~\374\212\003z\360\000\000{\001\311d\350\215\220\004\354\221\004\224\220\004U\274\223\014l\240!\236\252\226\005&>\320>\226\205\001\364\212\001\016\377\210[\230\001\230\021\330\004\377\r\210V\2206\230\021\230E!\201\225!\026\367\227\001\206\225\034\320\212%&\325\010\377j\320js\320st\360G\000\000u\310\223\005\361\221\004\232\225\004\\\271\225\001W\\\002c\300\225\001c\327Ej\316\225\001\267j\002k\320\214\027\047(\237\221]6\357\260b\270\001\377\226\020\032\2402\377\240T\250\031\260+\270T\377\300\026\300q\310\t\320Q\356\302@_\320_\373\212\003{\360\000W\000|\001\212\207\004N\226\227""\001N\324\223\005\335U\244\227\001U\002V\204\227\014m\240!1\362\231\005\320\003\346\201Y\325\212\0376\220\200C\355\212\010\362\251@*\245\207d\256D\021\320\021\"\217\240!\2408\342\237\001\001\010\246\235\001\031i\230\225\202)\364\205\022_\354\232\001_\002\236\204\004\335p\372\232\001p\002v\201\233\001v\002\335w\210\233\001w\002x\316S9\220\377A\200\001\340\047?\270q\334\206\225]\272\204\001\r\300Q\227\204&f\320\017fg\320g\242\206\006\271\227\004\236\222\004\321\214\004\360\244\206\004\210\212\006\314\234\013\273\204\t?\320?V\377\320Vm\320mn\3604\374\371\215p\367\003Z\310z\320YZ_\330\010\033\320\033\263\241\001X\311\231\001\377\034\320\034-\250Q\250h\370\367\220\001\r\010\375Yh\320hr\320\377r{\320{|\360\000\000Q}\320\222\005\346\236\004\207\235\004d\376\236\001d\216\214\005t\335\216\004\226\214\004F\347\216\001F\003Q\356\216\001wQ\003b\365\216\001b\003h\374\216\001wh\003i\203\217\001i\003t\212\217\001wt\003\177\221\217\001\177\003O\347\216\001wO\004U\356\216\001U\004V\365\216\001\357V\004W\004\3321\320\013\036w\320\0362\227\243\001\340()\260\233]\3577\260r\270\267\237\021\033\240B\377\240d\250)\260;\270d\377\300&\310\001\310\031\320R\377_\320_`\320`l\320\301l\200`\261#\321\230\004\357\226\004\201\211\006\360\000/\000V\002W\225\241\014n\236\242\001\205\244\003\302\323\000.\272\222p\331\017\212\223\033\360\020a\320\377ab\320bn\320no\377\320o~\360\000\000\177\001(\231\243\004\222\243\004\327\220\004X\270\243\001X\367\214\005\245\223\004\252\302\220\022M\257\223\001M\244\223\005c\275\223\001c:\271ej\313\223\001j\003k\353\220\014\302$\376\216\223\006(?\320?W\320W\371X\277\232]\246a\034\300]\320R\371S\277\245\020\234p^\320^k\320\353kx\234\2256p\246x@\320@?S\320Sk\320k\377#\265\244\007\3758\341\202t\035\300m\320S`{\320`\227\205\001\320|}\330\344\227\047N\323\205\023l\320l\354\233\003\367\227\013e\221\250\001we\002f\230\250\001f\002r\237\250\0017r\002s\246\250\001s\002\242\225\004\313d\335T\210\230\001T\003Z\217\230\001Z\003\335[\226\230\001[\003f\235\230\001f\003\335q\244""\230\001q\003~\253\230\001~\003\335D\201\230\001D\004E\210\230\001E\004\335P\217\230\001P\004[\226\230\001[\004\335f\235\230\001f\004l\244\230\001l\004\235m\253\230\001m\004n\231\230\014\201\204\r)\375*\265\252\037\210~\230Q\230c\373\240\021\301\23228\270\002\270!\337\330\010\025\220^\311\252\n\034\240\377R\240t\2509\260K\270\177t\3006\310\021\310)\215B\367a\320a\257\214\001\320n}\360\007\000\000~\204\226\005\311\252\004\325\232\004\256\206\006\311\252\013\377o\240Q\330\004\026\220f\357\230J\240a\372\253\002\014\210G\377\320\023#\2401\330\014\033\217\2301\230F\241\226\007\317\200!\216\2549\320\201#\355\004\272\254\016\320\200\"\260\240\004\313\200\047\255\257\003)\377A\320A[\320[u\320\317uv\3600\221\233d\330A-\300\377\177\320Ve\320ef\330\377\010\023\320\023$\240A\240\007X\250Q\000\t\300\256\004\333S\222\212\006\241\226\004\250\215\244\004\246\242\004\223\230\004k\332\256\001k\330\222\005~n\350\256\001~\002D\274\236\001D\003\300\236\004EP\312\236\001P\263\205\005\366\211\"\254b\013\314\260\001\337\200\001\340*+\354\252]9\270\373\022\270\266\244\021\035\240b\250\004\377\250I\260[\300\004\300F\277\310!\3109\320T\213\214+Y\336\322\260\013\320\026&\240\277\263\006+C\375\300\202\260\\\320#:\270\"\270\373M\310\316\260\021\036\240r\250\024\377\250Y\260k\300\024\300V\377\3101\310I\320Ub\320\377bo\320op\320p|\203\320|\336\206\003\366\256\004\377\215\004\322\226\004\255\211\013g\266\322\r\047\240\272\262\006,-\245\256];\367\2702\270\361\256\021\037\250\002\250\377$\250i\260{\300$\300\177f\310A\310Y\320V\375\261>\017\320\026(\250\202\257\006\330\000\244\253\036\224\212\004\377\024\240^\2601\260C\2609q\344\2452\333\004\024\220N\252\232\005\001\007@\253\232\003\303\200&\355\251\004\212\250\004\324\221\004\225\226\013l\250\266\001Wl\002u\257\266\001u\270\243\005|\275\266\001\347|\002}\274\204\r\212\"\025\220V\363\2309\316\267\004\314\212\007\032\230!\230\3716\327\250\001\000\034\013\210<\220q\337\200\001\34001\317\262]?\270\375r\326\266\021\320\031,\250B\250\377d\260)\270;\300d""\310\377&\320PQ\320QZ\320\351Z\272\270\003\316\245)_\332\206\r,\250Av\252\273\00545\255\264]C\3002\272\234\021\377\320\0310\260\002\260$\260\377i\270{\310$\310f\320\317TU\320U\310\223\003\316\255;\320\026\3430\260\215\265\006\257\254\003\236\272\t\n\210+\257\220Q\220a\340\245\001]\201e\007\375\200\347\273\037X\270Z\300s\310\361!\230\246\001\355\273\037\221\272%[\320X[\003\320[\352\227\003\303\225\001\374\266\002\213\254\013\273\247\013\345\245\004\200\222\254\004\347\204!\253\274\t\277\256\001\325\236\002\330\263\t\252\200d\035c\310a\377\275\"\367\031\356\233\013b\002\204\262\004\257\360\000\000c\237\225\005}\315\276\001}\272\335\216\005J\250\256\001J\003K\257\256\001K7\003L\003\270\276\026>?\230\300\n\305\202]\376\366\272)k\320Y\\\320\\b\337\320bc\320c\255\227\001\320y\000\352\253\003\262\260\004\357\267\004\353\255\004\215$\344\255\004\262\260\004\340\244\004\001q\343\267\027\374\253\003\273\204i\237\273+\364\r\242\266\002\331\204L~\301\275\010>Y\320YZ\360\235\200o\207_\300A\220\277\"\204l\262\254\003\265\200W@\335A\265\306\n\014\210K\272\306\003\r\210\316\221\211.u\310A\241\211\036\356\204,^\320\235^\230\303\003n\320n\306\246\"\217\227\004q\002\367\306\001q\325\235\007\301\301\026\374\000\376\210/\366\270\006\207\266\017\366\242\213%\320#\211\264\004\027\320\027(\377\250\001\250\030\260\021\330\010\377\025\320\025&\240a\240xs\250q\337\310\004\211\264\020[\320[\344\200.t\366\254\022\337\237\013W\365\270\001W\003]\374\270\001w]\003^\203\271\001^\003_\243\266\014\376\323\264\004?\230!\200\001\340@OX\320XY\331\204l\300\266\001}\263\205\022\200\207\201 \374\262\002\370\276\004\215\313\004\257\237\013\215\242\004\265dx\326\272\313\001x\002\322\233\004\177\310\313\001\177\002\001@\374\023\365\316\001\344\235\001\247\267\003\201\260\004,\004\323\253\004\335G\245\273\001G\004h\254\273\001h\004\343i\004\364\255\n\261\213_\363\257\002\320EW\177\320Wn\360\000\000o\335\311\005\360\340\250\004\245\261\004\265\235\006\271\265#\\\320\\_\373\320_\342\236\001\320fo\320o\350\202""\256\003\271\303\004\331\244\004y\377\315\001y\002O\356\323\275\001O\003g\332\275\001g\003{\356\341\275\001{\003R\267\275\001R\004S\356\276\275\001S\004_\305\275\001_\004`\356\314\275\001`\004o\323\275\001o\004z\376\332\275\001z\004A\005\360\000\000wA\005G\003\001G\005H\n\001oH\005I\005\317\260\026BC\202\216l~\330\255(]\320]`\320`\321\262\003?p\320p}\320}\200\254\003\214\313\004(\316\316\004\221\304\004\237\247\004m\305\320\001m\236\247\005\335\275\004\211u\204\256\027\372\003\r\301\212\007\361\273\006\222\225\0017\375\240\325\273\"\025\260h\270j\310\321\006\373\323\001\333\273\"\365\314\033%\256\304\004{\320\001Z\251\200S\243\315\010\374@\261\322\013\362\n\231\233\002\355\226%\003v\310\202\324\037\276\304\003\216\306#\246\200V\304\306\010\371\003\250\365F\303\216\014\321\202*\005\270\200D5\322\301\005[\003\320[\250\204S\364\t\224\214\002\332\305\t\371\232\033\215\241\036\364\252\216\047\207\266\001\033\344\222\001\027\220~\240\377Q\240h\250a\330\010\026\003\220n\370\250\004\341\274\003\204\266\020\205\207\014\245\300\003\353\317\004\000\251\314\004\214\266\013\276\257\004\221\207\004\336\211\004\232\214\006\304\316\001\217\231\005\245S\315\310\001S\311\216\005\274\310\004e\342\310\001e3\003f\201\264\023\331\216\003CD\306\230l\364\254(\277^\320^a\320a\345\332\003q\003\320q\263\320\006\213\331\004\263\327\004\273\304\004\265\320\004\350\312\004\034\264\211\006\366\304\001\002v\002\234\257\020\347\335\003\361\014\034\266\224_\255\304(\\\320\\\252\200S\350\304\010\375@\000\326\272\t\264\241#\361\316$\373\224\047\241\263\004\202\277&\256\263\020\371\2021h\247\303\004\351\237\004\325\257\004I\230\317\001I\003\220\266\004\272\275\205\004k\255\317\001k\003l\264\317\001l\273\003w\273\317\001w\003B\221\317\001Bu\004\332\220\004X\237\317\001X\004Y\246\317\001\317Y\004Z\004\337q\246\277\010CZs\320Z\207\335\002\234\317\t\016\210k\254\313\003\362\344\2310w\236\216\"\364\323\001l\300,\310\000\237\214&\366\205\t\223\266\003\342\341\004\220\315\013\226\331\013\216\306\004\231\317""\004Z\222\317\004H\361\321\001H\003\331$J\221\317\023F\330\345\001DE\224\342\001\357\213h\312\313\037U\323\301\005\277]\320]b\320b\346\336\003r\003\320r\307\331\003\243\342\004\304\340\004\357\313\004\262\321\004\306\331\0040\371\323\004\362\254\004\245\310\006\253\306\026YZ\267\244\023\250\236\016\271\025\355\262\001\323\250\047(\320R\321\207\003b:\340\250#A\275\2461v\320v\202\316\003\335\342\004\000\233\346\004\303\344\004\265\344\013\233\275\004\364\333\004\300\312\004\313\323\004\253d\255N\252\326\001N\003\327\227\004P\350\246\027Y\200\263\345\003\363\232\007\336\330\t\254\253\006\233\201%\271\210*\250\201-M\017\300\034\310Q\362\310(\367\350\017\351\253\014\317\201\"\320\303\217\013\224\331\004\242\311\013\350\251\004U\236\331\001U\003\370\334\210 \322\232\004\357\210\006\360\000\000Z\004\335e\254\331\001e\004p\263\331\001p\004]@\325\232\001@\005F\334\232\001F\326\232\007\314\207\352\021\310\311\010Z[\202\204~\251\2528w\320\001w\254\314\003\230\354\004\214\347\004\350\350\004\267\352\006\343\350\002\352\341\013\360\275\320\004\310\331\004\210\214\004\364\204\006\360\000\000P\007\003Q\003\253\347\026\263 \205\257\022\305\204.\335\244\025\000\227\207(\274\351\006\362\244\t\377\244\010\213\323\003\277\351\017\240\255\014\203\201Eh\301\207\004\352\305\004\333\204\004`\207\337\001`\003\332\216\004*\323\216\004}\234\337\001}\360\305\005\177\3303\232\245\0031Z\310\354\003\344\352\004\301\331\004d\002\372\301\n\301\2077n\274\201F]\300-\305\343\002\330\010\221\326\th\265\201T\301\347\004\237\337\004C\351\341\001C\003\255\302\004\240\246\302\004\211\322\004\360+\350\310\004\330\221\004x\241\342\001x\273\003C\367\341\001C\004N\376\341\001N\253\004Z\205\342\001Z\270\243\005a\223\342\001a\047\004b\004\276\355\022\351\326\003Z\370\334\003\352\350\004\304\221\312\004\273\231\0076\315\364\010\232\212\206\370\357\003_\300?O\320Sb\320b\257\361\001\330\365\006\003\030\250\343\365\007\000\t\024\001\213\205B\352\305\013\252\345\004\370\216\225\004\234\345\013\327\233\006\360\000""\000f\003\245u\320\345\001u\242\345\005\245\314\004J\264\345\001J\213\004K\273\345\001K\305\325\005\257D\235\213\004k\352\327\345\001k\262\314\005w\345\345\001w\004B\352\207\247\001B\252\213\005L\225\247\001L\005M\336\234\247\001M\005N\005\254\361\0227\220\233\047\230\250\370\001[\\\264\212\200\265\352\047{\337\320Z]\320]\365\366\003m\320\017mx\320x\371\314\003\274\363\004\345\352\004\303\340\004|\215\311\013\237\356\006\360\000\000i\002\302\254\004h\347\205\004\257\271\004\340\205\013R\332\225\027\\]\352\214\200\034\221\346(\221\261\014y\320y\340\326\003\225\355\004\222\353\004\000\337\360\004\254\335\013\275\350\004\336\344\004\264\254\004\313\313\004\337\273\004\247\333\004\372\231\353\004S\364\256\027\\v\360\000\000\323w\001\347\373\004\347\322\004@\332\353\001@\003\307A\003\360\272\223C\305\215B\224\351\001\177\300?o\320Ud\320d\217\347\001\223\316\034\000\361\263\037\325;\251\353\004\314\254\004\333\306\004\275\276\004\335\324\013\247\257\004\320\214\336\004\315\235\013\270\207\004\344\324\004Q\201\356\001Q\004]\\\210\356\001\\\004g\217\356\001g\273\257\005\335u\235\356\001u\004v\244\356\001v\004\371w\222\356\014\245\352\004;\220a\200\001\317\340]^\360\227\220\210\341\350\004\024\320\303\024%\303\247\005\217\267\016\341\350\020\206\262\014z\320\301z\322\366\003\204\361\013\304\356\004\266\356\013\325\352\006\360\000C\000k\203\361\014\200\221 \341\212\004\327\262\004|\306\361\001O|\003}\003\371\343\022\367\311\003]\237\205\003\026\321\357\004Q\002\301\201;A\357\363\016\321\306\003\353\223*~\332\353\001\016\300n\320TU\317\2642\320\321;\245\361\004\345\314\004\201\344\013G\366\363\001G\003\240\205\241\004\210\272\004\217\344\004\210\344\004\363\363\004p\240\364\001p\367\003q\003\317\346\026]w\360\000W\000x\001\367\366\007.\207\220BQ\231\201E\005\017\232\327\001W\374\326\034\234\204=\207\353\004\340\366\004\275\246\013\350\255\307\013\333\335\004\217\255\004m\377\366\001m\003s\202\206\367\001s\364\346\014\257\220\004\264\246\"\270\357\004\325\207\003^\001_\260\233""\200\354\2677\267\361\003\307\244\004\216\310\013\250\363\004\200\367\004\000\374\355\004\225\332\004\316\322\004\343\351\013\251\345\004\222\260\004\353\231\006\253\371\013\006\340\347\010_`\353\235\200\343\2577\230\354\003\325\365\004\306\262\013\200\232\376\004\260\360\004\242\251\004\202\325\004\222\215\013\226\207\004\223\234\022V\t\003\253\260\026\270 .\260\227\223\206\256O\234\201I\370\304\022\350\206\357\013\345\345\004\271\230\004L\202\377\001L\004W\356\211\377\001W\004b\220\377\001b\004r\356\227\377\001r\004x\236\377\001x\004yn\245\377\001y\004z\337\256\035ay\200\317\001\375,\300\233:\250\016\260a\260s\363\270!\315\214A\300\336\006\030\320\030)\377\250\021\250(\260!\330\010\377\023\220>\240\021\240(\250\371!\300\342\004\301\336\020`\320`c\320\017ci\320i\344\373\003\345\355\003\270\364\004\236\362\0044\354\300\004\300\375\004a\323\377\001a\002\344\355\004\327\320\0044\302\377\004\231\223\013V\323\377\001V\003\326\355\022\346\233\004\264\241\242\004\221RM\245\362\013\320\026\263\337\003\3207\013\033\230\304\306\001wx\300\255\036\301\277\014\337\025\240g\250Q\251\376!\024\260\034\203\220\014\234 s\320s\356A\351\314M\312\323\t\000\324\247\033\343\360\004\221\226\004\253\365\004\237\354\004\352\360\013\210\336\004\241\262\013\360\363\236\004\361\360\004\352\360\004\232\220\006\360\000\000q\233\003r\373\247\027|}\242\377\n\364\345\002\220wq\330\004\372\255\027\026\240u\334\334\001\370\314\332\007\357\353\026\321\332\001t\3108\320S<\355\305\003\252\367\003w\320wx\202\320 \273\344\001\371A\216\354\017\322\204\023d\320dj\320\177jk\320kt\320t\362\262\003\000\321\260\004\337\313\013\346\332\004\372\230\004\346\332\004\346\233\013\201\357\004\337\260\004\240\210\357\004\330\260\013\224\316\004\201\357\004\205\223\004v\310\370\001v\362\367\267\005x\341\363\013\331\204\005\2101\200\001\177\360\004\000A\002B\002\337\200\223\337>\270b\300\001\204\357\016\320\031\377+\2502\250T\260\031\270\377+\300T\310\026\310q\320\377PY\320Yd\320dh\013\320h\301\366\003x\325\335\002\224""\375\004\347\361\004\345\265\013\000\263\331\013\213\277\004\317\311\004\325\366\004\232\377\004\263\353\004\226\373\004\337\236\006\217\360\000\000S\234\373\005\316\366\004\226\373\004z\352\303\373\001z\314\314\005|\353-+\2501\334\206\342\004\370 C\002D\344\200\224@\300\373\002\300\376\361\017\320\031-\250R\377\250t\2609\270K\300t\377\3106\320QR\320R[\377\320[f\320fj\320j?p\320pq\320q\251\334\003\317\340\004\000\236\360\004\306\373\004\232\362\004\375\375\013\250\334\022\237\317\004\365\230\013\200\256\013`\263\304\004\341\275\004\351\204\004\333\233\006\376\376\001\003~\347\204\ru-\222\212\001\013\360\204\004D\002E\340\203\224\337A\300\022\3001\344\204\020.\250\377b\260\004\260I\270[\310\377\004\310F\320RS\320S\377\\\320\\g\320gk\320\rk\234\277\001\320r\225\333\003\330\367\004\277\374\004\302\235\007\017\000\000Q\002\307\263\004\355\367\004\322\244\004\251\337\006\200\231\212\001\337\236\005\366\275\013\336\266\004\342\215\004\213\231\013\346\260!\320\357\026.\250a\356\204\007E\002F\336\334\206\224B\300\"\300\326\212\017\320\031\377/\250r\260\024\260Y\270\377k\310\024\310V\320ST\377\320T]\320]h\320h\377l\320lr\320rs\320\001s\347\324\003\231\342\004\265\322\004\273\377\004\340\354\004\265\322\013\203\334\022|\311\377\004\360\300\006\360\000\000J\003\327\220\0044\212\332\004\351\372\004n\341\377\001n\003\363\260\004\360\372\004\335\177\366\377\001\177\003@\300\220\r/\250\025q\352\207\007z\374\236\010(\264\260\034\342\217s\231\3329\000\301\252\033\306\271\004\374\303\004\303\277\013\261\345\004\314\347\004\276\347\013\206\335\004t\316\260\004\257\330\004r\213\376\001r\003y\222\376\0013y\003\363&\351\315\001\004A\301\247\023\355\215\001\377\006\000\005\017\320\016\036\230\367a\230q\237\223\001x\210s\220\377!\330\010\017\210q\330\004\377\t\210\021\330\t\026\220a~\207\371\002\030\320\030-\250Q\254\205\007\325\010#\022\t0\003\004<\001\t\027\335\220\242\337\003\032\320\032\360@\260\004\177\260A\330\004\025\220Q\370\205\002\377\200\001\360\010\000\n\033\230\277!\330\010""\020\220\001\001\001\007\177\220q\230\006\230l\250\370\326\002\377v\210W\220E\230\024\230\330\277\364\001\214\001H\000\340\010L\001\004\007\373\200q\316\263\002.\250d\260!\377\2607\270+\300W\310A_\340\010\017\320\017\010\007Q\035>\377/\250t\2601\260G\270\237;\300g\310QY\002\010\007a\177\200\001\360\014\000\005\020\237!^\271\000\220\031\230!\344\362\002\004\t\001\375\021\326\360\002\330\004\010\210\007\210\377q\320\0201\260\022\2601\377\340\004\022\220)\2301\230qA\020\004\355\000\035\000\016\220a\370\001\375\013\024\002\010\013\2104\210z\377\230\021\230\047\240\021\330\014\377\024\220A\330\010\014\210G\377\2201\320\024$\240L\260\377\001\340\004\r\210Y\220a\350\366\223\001\373\002\027\002\220K\002\t\220\021\276!\010G\2506\260\021\376\230\001\021\377\220\027\230\001\230\035\240g\257\250V\2601\366 \010\244\003&\337\240\001\240\021\330k\0005\220\375\t\254\312\002\014\020\220\002\220%\277\220s\230%\230q\031\000\024\377\240R\240t\2507\260\"~\371\0001\270F\300!\300\273\000\367\016\210i\356\345\003\022\320\022,\377\250D\260\t\270\021\320:_L\310C\310q\304\n\n\265a\377\013\2107\220#\220Z\230\237t\2401\330\014\352@\301\004\220\337I\230R\230q\303\001W\220_A\220T\230\025\352c\r\344@\367A\220Q\220%\003\2202\220\377U\230!\2301\330\004\024\177\220D\230\005\230Q\230\220\373\002\367:\220Q\356#,\320+=\337\270Q\270a\340\216\204\006\031\230m\037\230\344\003\260!\326d(\250\254 i\005\323a\336\001$?\000\010\021\237B\3734\230\267`\030\230\t\240\021\377\240$\240a\330\010\032\230\337+\240Q\240d\254\233\003\026\220\357c\230\021\230)\002\032\230#\336v\000d\240!\330\357`s\230\363!\2306\000f\026\320\0312\260\377!\2608\2705\300\001\300\371\021\330\204\004\017\000\340\004\013\2109\374\345\002\214b4\210q\220\003\220\3571\220G\230\317\332\014\210t\220u8\227`H\244\367\001\021\220\023\364A\353\017\210\245 \005\220\205\004\030\230\013\377\2401\240D\250\010\260\001\376h\0303\2601\260H\270E\307\300\021\300\375\005\017\000l\024H\230\337F\240!\340\004\360\363\003\025\220\375d\366@x\240x\250y\270\325\001\362""\206\001t\242\000C\335\351\001\340\004\376{\005\021\220\033\230A\230T\357\240\030\250\021\353\0305\260Q\177\260h\270e\3001\300\335\206\005|\017\000\357\024J\230f\240A\337A\356f\001\004\320\034\307\206\001&\270\002?\270\047\300\024\300Qo\007\240H\267\020\220\004\217\205\001\020\220\312F\031g\230\021\330\325@\215\003\n\027\236\210\004\035\031\211\226\0011\250G\355\204\003!\000\365\207\002\377\330\010\t\330\014\030\230\001\377\330\014\020\220\005\220V\230\3771\230E\240\021\330\020\031\377\230\027\240\001\240\026\240q\377\250\005\250W\260A\260Q\377\340\021\022\330\020\035\320\035\377.\250a\250q\330\014\035\317\230Q\320\036\333@\230\225\005\014\000.\\\t,\250A\212\211\002\010a\002\362\366\001\370b\001\356\204\001X\013\026\220g\230Q\036\355\001\240U\250\047\230\206\001^\005\217\211\001\361\001_\004\276@\376\225\005\020\000\005\010\277\200u\210B\210a\377\211\004\013\357\2101\210A\265\003_\240F\337\250!\320+<\225\206\001\330\014\325\017\272`2\225\205\002&\245\214\220\240?\376\205\242\001\022\320\022#\2401\240\007H\250A\253\353\004\320\312<\343\363\004\234\320\004\253\304\007O\000\000d\002\242\231\013\201\313\031\\\226\366\001\311\\\250\231\005\241\242\004d\210\366\026\331\240\2244\260\376\235\362\021\030\240\022\2404\240y\017\260\013\2704\311\344\007\377\275\047\335\320\004\234\353\004\240\301\336\004\362\353\004\304\366\013\224\271\004\355\370\004L\351\370\001LA\003\240\356\004\231\356\004\261\336\033\211\343\007\252\314\2021\312\3641\000\217\315\033\312\325\004\246\315\013\270\276\004\270\375\004\332\273\004\346\360\004\351\307\006\034\370\362\025\326\316\2006\260a\250\267P\202\300\004\343\272\013\220\321\353\004\343\360\004\334\360\004\364\240\013G\315\267\026\221\261\202\001\000\344\377\020\342\336\037\362\261\037\275\334\004\215\262\013\353\375\004\220\325\004\204\330\004\"\252\272\013I\364\261\026\353\377\025\273\253\016a\230\253/\274\377\001\206\327\371 8\270\363\2009\270\250\031\274\256\004\253\336>o\343\240Q\246\245\005\337\215\022\342\3730s\310!\016\300\200Xr\320r""\365\347\006\363\364\004\273\326\004\310\260\004r\264\326\013i\327\347\026\361\253\2237\260q\363\254\017\034\253\354\023\205\352\t|\320|\332\303\030\325\364\004\372\235\031\320\270\376\004\362\345\013\262\273\004\372\333\004_\255\374\001_\003\346\335\317\013g\003\257\273\025\321\256\2239\270\021\376\323\257\017\035\240b\250\004\250I\377\260[\300\004\300F\310!\177\3109\320T_\320_\273\265\017\264\270\273\031\335\343\004b\300\374\001b\002\202\317\013rB\325\374\001r\306\367\005\250\357\013\242\372\004\207\377\004a\221\377\001\353a\003\373\311\013i\316\257\r&\240a\304\241\206\021\301\261\210!\321\261v\245\372\004\357\316\007\000\000\203A\003\343\330\004\255\325\004\231\377\004\340\314\004\344\306\004j\330\250\262\030\202\230\t\250\264\206;\270\261\254\017\230\037\377\250\002\250$\250i\260{\377\300$\300f\310A\310Y\377\320Va\320ae\320e\377k\320kl\320lu\360\017\000\000v\001\235\351\004\377\272\031\304\306\004\225\270\004P\231\314\013\303\362\013\254\265\013\305\333\004Y\372\377\001Y\232\273\023\335k\234\265\r(\250\001\261\203\232<\270\376\234\254\021)\250\022\2504\250y\377\270\013\3004\300v\310Q\377\310i\320Wb\320bf\377\320fl\320lm\320m\000\207\324\003\356\351\004\263\327\004\343\377\013\331\367\004\247\356\004\331\367\004\271\306\013\000\225\354\013\304\225\013\212\325\004\272\322\004\340\367\004\206\273\004\232\361\006\337\365\n\337\320\026)\250\021\233\206\232=\270\335Q\372\267\020*\250\"\236\246\002\033\300\377D\310\006\310a\310y\320\377Xc\320cg\320gm\037\320mn\320n\364\315\003\321\354\004\346\327\004\032\211\370\013V\344\300\001V\002\350\300\004\337\354\004\350\306\013\244\375\356\006\300\327\001\002\231\341\013\312\372\004[\324\372\001[\212\361\351\023m\360\272\r*\361\252\001\203\265\003\250\206\222>\003\270a\370\271|\235\335\004\204\344\004\376\272\004\343\366\004\307\240\004\310\353\275\004\343\366\004\237\317\004n\325\272\030\223\211\222?\270\376\300\222\017\320\031,\250B\250d\377\260)\270;\300d\310&\377\320PQ\320QZ\320Z\377e\320ei\320io\320\377op\320py\360\000""\000\003z\001\355\337\004\277\314\004\310\364\004\271\345\004\300\303\004\341\350\004@\326\364\004\277\306\013\202\340\004\322\335\004\334\275\013\320\357\004]\340\371\001\371]\352\217\005\334&\360\000\000n\003%o\307\300\r,\205\303\001\274\203\230@\271\300\022\346\274j\000\274\362\004\310\300\004\335\327\004\271\311\004\303\303\004\331\335\004\333\267\004\333\327\0068\236\212\014\301\275\010\353\216\222A\300\021\303\274}\316\374\004 \264\332\022\247\230\004\245\332!\257\275\n\327\221\222B\226\303\022\306\274j\230\357\313\031\262\362\004\347\313!\320\026\241\275\010\303\224\222C\376\206\303\0220\260\002\260$\260i\377\270{\310$\310f\320T\377U\320U^\320^i\320oim\320m\277\346\001\320t\245\353\003x\351\374\004\330\375\004\205\337\007\000\000S\002\307\356\004\000\330\375\004\214\340\004\215\233\013\364\253\013\230\300\013\315\225\004\233\233\004\236\365\004\244\240\362\004\243\275\004s\367\313\r\301\262\001\004\301\217C\320\177\017 \240\001\240\023\240\336\342\023\004\276\3165\243\263\001\010\302\261\016\362\367\022\214\356\014\233\335\003\337\332\004\000\322\372\004\360\222\004\365\313\004\267\361\004\213\236\004\210\367\004\337\332\013\353\353\004`\314\361\013\216\370\004\351\222\004\213\236\004\221\343\004c\003\243\254\"\370\242\3211\213\201S\326\247)b\320bh\320\177hi\320ir\320r\364\360\003\240\344\337\031\226\364\004\341\245\022\307\243\004\361\240\004~\344\327\001~\001\002\342\366\004\364\372\004\234\233\004\355\372\004\326\321\004\370\353\006\311\335\025>\372\377\n\r\210T\220\026\302\276\003\372\323 \371Q\316\326 \302\232&X\320Xd\320\177de\320et\320t\326\377\003\006\361\320\022O\002\334\231#\265\022\330\205\027\251\037\203\270&\377Q\310l\320Z[\320[?j\320ju\320u\265\341\003\305\325\004\034\356\364\006\304\372\013i\230q\236\253\021rN\365\371\001\376\234\264#a\310|\320[\\\320\177\\k\320kv\320v\240\366\021\343F\002\332\263\"qP\253\270%q\320P\377\\\320\\]\320]l\320/lw\320w\256\365\021G\274\254\014\327\267\024\316\266\201P5\260Q\211\356\020\205\364\020Q\320\177Q]\320]^""\320^\271\371\003\002\364\360\021H\202\256\014\211\363\004\246\331\001\351\276\t\374\202P\276\266&\377R\320R^\320^_\320\317_n\320n\201\232\003\363\351\022I\002:\367\356\025\360k\\:\270!\231\361\020\200\343\0207V\320V\246\264\001\320c\311\212\006\366\243\022\tM\227\210\r\232\342\003\210\262\201`\301\250\002\303\301\016\264\250\020wW\320W\224\376\003s\320s\332\373\003\202\327\242\022N\342\211\r\307\247\024\334\207P\243\247\002\217\303\r\320\341\031\226\247\020\262\213\t\246\367\003\212\2131\r\210Kv\277\314\003\r\210\222\345\n7\240!\367\344!\037\025\260h\270j\315\245\001\344\344\"\256\277\033\375%\217\302\007`\320`f\320fwg\320g\250\334\003}\320}\210\377\003\010\263\277\004\225\334\004\214\323\022h\214\212\027\274\325\t\340\014\361\313\014\356\212\224\033v\310Q\254\200@$\270f\377\300A\300Y\310k\320Y\377_\320_e\320ef\320\035f\260\242\003|\320|\203\227\003\207\341\004\344\346\004\322\350\303\022g\322\032\325F\014\335G]\230\013!\230\261\202*\005\252\200B\323H+\301\306\307\035\3775\300\006\300a\300y\320OP[\320[\203\204H\222\307\010*\222\373\010\376\336\222\032D\320(9\270\021\270\303#\270\367\372\017\253\224!\310\273\002\246\314\010\010\026\360\366\355\002\370\321\001\300\357\004\307\273\020S\320S_\377\320_`\320`o\320o`\346\343\003\266\365\022\275\357\004\355\372\004\324\340\022r\002\316\367\022\370\366\324\003\234\200e\353\272\003\320\025&\240a\347\240x\250\254\325\001\314\361\007\r\016\330\367\014\031\230\353\272\020U\320Ua\377\320ab\320bq\320q\200\304\226\030\333\345\013\274\275\004\320\350\004\362\251\006\365\261\014\265\272\004=\305\230\373\324\0012\233\377\010\370\2329\237fT\320\373AR\264\344\002V\320VZ\320\301Z\360\266\003\315\253\001\264\377\022\366\3553\202\321\003\024\320\377\024%\240Q\240h\250a\373\330\010\000\t\023\320\023$\240\017A\240X\250\307\262\001\355\047\345#\227\321\022\000\252\361\014\332\350\003\363\374\004\277\372\004\261\364\004\302\262\004\341\342\004\270\364\004\000\353\275\004\363\374\013\353\254\013\271\361\004\372\374\004\227\321\022\350\342\004""\345\337\004\335B\332\367\001B\004H\341\367\001H\004\335I\350\367\001I\004T\357\367\001T\004\335_\366\367\001_\004g\375\367\001g\004]m\204\370\001m\004n\213\370\001n\353\367\005\377D\005\360\000\000D\005N\356\003\001N\005T\n\001T\005U\336\021\001U\005V\005\272\231\022<\220\277|\240;\250a\200\242\335\002A\177\330\014\023\2206\230\021\000\004\316\003\0107\230!\030\001\000\0048\230\3111\003\010\025\0045\223\327\0016\006;\230\035aI\001:\230QP\001*\004X\000\374e\001\201\335\002\330\014\r\33046\317\260d\270!\356\332\001|\001\017\210\325q\000\004\220\276\340\001\001\016\003t\220\350V\000\003\005\336\332\001A&\003u\220A\367\220S\230\036\004u\220B\220\367d\230!@\003w\220a\220\337t\2308\2401P\002\320\017\376\253ad\250&\260\001\260\021\\\343\001\373\330\004#\2401\226\337\001N\253\336\001\377\330\014\033\2305\240\014\250\177A\250[\270\001\270\021\215\327\001\376\276\337\001.\250\001\330\020\024\220\277H\230A\330\024,\205\331\003\340\177\020(\250\007\250q\260\336\332\002\375qB\n4\320\047B\300!\357\360\006\000\t\314\340\001\010\014\320\357\014\034\230A\266\336\001U\230-\357\240q\250\001\343\327\001\177\230g\277\240U\250!\330\024\242\343\001x\273\240q\267\331\001\026\230w\322\367\001\250?a\330\021 \240\007\357\364\002\021\013\207y\250\002\352\330\003\362\331\001\225\"\317\340\001M\\\366\336\001\335\340\001D\320\030\340\331\004\020\262#\376\177\001\023\220$\220l\240\"{\240A\236\340\001:\220Q\220\237\323\001\376\332@5\230\010\240\005\240Q:\355\330\003:\311\331\003\330\020\027\255 \321\341\001\357\014\021\220\030\266\336\003\230v\240\377Q\340\014\020\220\003\220:\357\230Y\240a\205\366\002\020\025\220\337X\230Q\230j\371\005\r\320\357\r\036\230a\313%H\230K\357\240q\250\013\235\341\003\013\2106\317\220\027\320\030\274\232\001\376\341\002\r\023\317\2207\320\032\343\325\001\216\342\001\340\010\373\013\210\220\001g\230Q\330\013\217\022\220!\330\033\001\335a\330\342\002\330_\020\021\330\024 \243\000[\344\344\001\023\260V\353\277\001\224d\030\353B\272\211\001\000\007\373\031\230\322A*A\320AX""\377\320XY\330\010!\240\035v\360\333\002\010\035\357\344\001\"\240,\010\003\367\032\230,\201\212\005\036\230o\250\377Q\250h\260a\360\n\000\377\t*\250\021\330\010%\240\377^\2608\2701\270A\340\335\010\331\334\001\010\t\330\274\334\001\033\230\2777\240%\320\047;\026\000K\177\300|\320ST\330\014\275\214\010\336\336\334\001\032\320\0320\323a\260(\377\270)\3006\310\026\310r\377\320QY\320Ye\320e\007p\320p\262\353\003\213\367\013\365\275\004\222\273\004\373\371\004\360\227\364\004\272\303\004\347\331\004\213\327\006\330\020\023\220\1778\2303\230a\330\024\343\341\001\367W\250A\003\003Q\330\024)\363\250\021\344\335\002\344a\010\013\2108\377\2203\220a\330\014\037\230\257q\320 :\216\000<\256\274\001Z\237\320Za\320a\276\230\001\207\350\001x\357\220|\2402\240\211\001\200A\330\353+,\374\200.%\314a \240\t\363\250\030\372\335\002\234.\240\177\260a\373\260q\2231+\2501\250A\377\250X\260Y\270f\300F\377\310\"\310H\320T`\320\035`\255\300\003x\320x\357\267\003\335\355\004\326\355\004\370\240\374\013\350\317\006\332\20035\260Y\270l\377\310)\320SU\320U\\s\320\\\343\235\001\315\200@&\240Q\355a\347\032\2508\226\347\001\251q7\260q\363\270\001\244q\357\340\003h\260i\270\177v\300V\3102\310X\365\216\002|\324\277\003\242\377\001\360\000\000{\001\317\373\004\360\340\357\004\303\333\013\375\213\006\353\20236\260i\270\375|\355\313\001V\320V]\320]t\366\221\001\336\202@\047\212\347\001\"\240+\347@\027Q\260a\272\205\0218\333\211\003\267\205\017\216\355\002\377\250x\260y\300\006\300f\317\310B\310h\276\237\002\361\372\003z\320\201z\374\364\003\364\364\004\331\375\004\347\356\013\347\255\006\374\20437\376w\000\014\310I\320UW\320\377W^\320^`\320`a\376\357\204@(\240q\330\010#\240!<\326\000\206`\313\207\021\344\225\001!\306\207\021\267\345\002\377\260\010\270\t\300\026\300v\317\310R\310x\204\240\002\237\276\003{\320\201{\221\364\003\211\364\004\217\326\004\223\220\013\313\342\006\215\20738\372w\000\034\305\312\001X\320X_\320\371_\224\224\001\200\207@)\250\001\330\010\377$\240M\260\030\270\021\270}!\334\211""\021:\270!\2701\327\211\021\374\342\346\0025\000\031\300&\310\006\310\007b\320P\207\255\003\230\374\003\370\234\006\374\305\004\337\310\004\354\376\261\013\320\313\004e\002\237\21139\270\031\373\300,\355\311\001Y\320Y`\320\235`\207\332\002\010\017\210\226\211<\334\213#A\000\322\213(\256\373\003\371\240\006\214\237\004\207\310\004\343\346\013\216\344\006\333\212\211\377+\250!\330\010&\240o\363\260X\235\360\002\201\216\020<\270A\270\365Q\373\215\0211\260\362\001\2608\2709\373\300F\333\304\001R\320RZ\320\017Zf\320f\305\372\003\270\332\006\310\343\004\375\350\004\215^\270\325\001^\002\356\317\004\264\367\006\304\2153;\376y\000L\320PY\320Y[\037\320[b\320b\253\262\001\270\215@\353\200&\037\031\230\036\240q\345\235\002\233\220\004\345\200+\374\331\336\004\262\200^\340\010$\240F\250\375*\314\365\001\014\210E\220\025\220wa\220z\255\366\001\033\2301\323\361\001\376\352\217@,\2501\330\010\047\320\377\0477\260x\270q\300\001\340\307\222\021\375\364\002\302\222\021\206\364\001\205\363\001I\300V\377\3106\320QS\320S[\037\320[g\320g\355\275\003\354\334\003\307\324\004\360\207\311\013\340\352\013\212\337\006\217\2223<\270I\300\375\\\234\312\002\\\320\\c\320c\364\355\246\001\203\222@.\237\235\001)\320);\223\2708\341\363\001\340\224\021?\256!\333\224\0214\376\332\362\001\260h\270i\300v\310\375V\311\221\002]\320]i\320i\207u\320u\355\323\n\274\343\004\205\350\004\224\341\022i\256\256\334\001i\002j\326\2114>\201\000|\373\320S\307\222\003e\320eg\320\373gh\240\224@2\260\021\330\010\377-\320-C\3008\3101\305\310\374\226\022C\226\366\002\371\226\020\327\220\002\270(\373\300)\260aW\320WY\320\177Ya\320am\320m\310\222\006\200\240\323\004\255\272\004\203\326\004\370\207\004\374\325\013\372\361\006\312\2263B\356\202\000<\320W\240\214\003i\320i\364\203\332\001\276\226@6\215\266\0011\3201K\377\3108\320ST\320TU\236\235\231\021G\300q\310\337\224\022\261\212\002\270\377h\300i\310v\320U[\377\320[]\320]e\320e\007q\320q\244\256\006\331\222\004\252\330\004\273\361\004\324\340\004\320\251d\264\361\004\341""\276\006\352\2303F\202\000|\320\377[d\320df\320fms\320m\246\244\002\215\216<\014\000\t\265\220&\005\025\217\247\007\014\001\010\316\233\004\266\2201\347\222\022\302\366\004\360\337\327\004\224\361\013\371\324\006\300\220Jy\230\014\240\377B\240h\250i\260|\300\0372\300X\310Q\267\2330\306 \372\207\047\027\030\230\016\333\251\004\014\001\007\226\236\004\370\2073\000\223\371\004\250\350\013\322\345\004\313\345\004\301\361\004\213\357\013\256\311\006\375\2353\376\275\210\021\340\010#\2406\250\031<\374\372\001\231\215\n\032\230!\230\374\263\001\000\034\367\010\017\210\210El\270,\300\037b\310\010\320P\214B\202\332\002\373\240,\356\330\236\"|\3001\322\236*t\320t4\217\343\n\343\350\004P\312\350\001P\002\240\266\022\332\350\006p\260\236W\312\326\002\232\243,\346\236#\014\300A\341\236*p\256\200o\365\236!\354\2001\323\232#<\300q\315\232+\377w\320wx\360\000\000y}\001\255\307\006\360\000\000E\002\317\366\004\000\364\320\004\244\334\004\353\217\004\343\344\006\254\232W\263\325\002\334\204\201\246\221o\376\306\245!B\320BT\320Tk\263\320k\266\363\003\225\276\004Z\002\220\252+\016\216\226\252%L\310\014\347\247\005\306\243\001\272\252\n\014\357\034\320\034-\211\253\003\330\014\032{\320\032\245\250\001H\260A\330\301\252\033>\260\220\001\360\000\000~\001\212\244\004\303\252\013\240\351\361\013\370\317\013\324\364\004\222\336\004\376\340\004c\336\364\001ct\332\364\005\222\336\004x\363\364\001x\003E\217\263\001wE\004K\226\263\001K\004M\235\263\001wM\004W\244\263\001W\004`\253\263\001w`\004k\262\263\001k\004q\271\263\001\367q\004s\300\263\001s\004t\004\374\355\252J\320\216\005j\270\014\300B\300\377h\320N^\320^j\320\217jl\320l\277\212\001\313\253\001\322@U\347\320UV\321\255.\221\211%L\320P\001Q\235\251*\304\344\003\234\326\013\274\344\013\265\365\004\223\352\004\201\256\004\315s\306\365\001s\002\373\354\006\206\251WB\320\377BX\320Xj\320jk\364\310\204.\246\211%y\205\240\002Z\330\014\033{\320\033\357\253\001X\260Q\330\346\204\n\000\r\010\334\223\036\225\347\003\227\377\004\307\357\013\364\330""\004\224\347\004\344\354\004\000\244\226\004\247\341\004\252\362\004\335\354\004\372\204\013\372\204\004\214\365\004\300\357\004\335u\364\372\001u\003~\373\372\001~\003\335J\227\271\001J\004P\236\271\001P\004\275R\245\271\001R\004S\004\350\223Ro\357\270\\\310\022\337\230\001c\320c?o\320oq\320q\217\256\001\336\204\004O[\320[\\\370\207.\363\254#\034\353\236\001\tR\364\207)\235\255\026z\265\257\t\260\255\004\315\263.\306\347\004\320\244\373\004\262\274\013\363\362\004\306\347\004w\240\376\001w\003\314\262\274\013\254DK\004\305\255J\350\207\037D\300\001A\255\207V\221\222+\237\256\006\302\355\004\240\342\004\324\227\013\222\342\004\354\200\267\004\331\234\004p\002\376\261WD\320D\177]\320]v\320vw\201\271+\367\014\000\t\365\251#\\\310\036\320\375W\251\244\002\014\027\320\027(\250\345\001\255\267\001\330\000\t\374\247\035\360\000\000\303s\001\324\245\013\262\254\004\246\252\004\265\243\006\360\000\007\000j\002\202\232\013\271\344\004\260\204\004\224\373\004\300\365\004\350\252\370\004\325\362\004\271\344\004t\263\373\001t\003u\371\003\245\252K\204\235\005k\270\034\300R\367\300x\310\333\300\001+E\300Q~\364\273.-\250A\330\010(\220\312\001\357\030\300\021\300\241\261\022>\270a\327\270|\310\243\261\0223\220\276\001\260X\377\270Y\300f\310F\320R\377T\320T\\\320\\h\320\177ht\360\000\000u\001\343\304\013\200\270\317\004\352\362\004\263\347\004\235\373\004\254\347\013\205\376\006\353\2733=N\214\000l\320R\200\243\003\201\242\003g\222\274\r\331,\370\2001\356\271#\r\300\241\217(n\320An\327\321\006\302\276\013\204\365\004\333\372\004\375\364\013p\372\372\001\267p\002q\357\205W-.\332\224TA\000\340\224@\365\2543\272\346\004\306\364\004\277\364\004\255\225\004\200\214\004\211\354\004\264\222\351\004\227\372\004s\241\375\001s\003\254\217\004v\271\003\216\224k\205A#\240=\336\307\001\330d\321\303$\345\274B\010\222\270s\216\275\032Z\250\302\312\001\377-D\320DW\320WX\010\371\274\001\353\200*\304\226Gx\250\275\013\262\356\003\230\237\013\340\243\004\000\352\303\004\246\331\004\312\374\004\341""\253\004\200\227\004\324\321\006\233\301P\253$\256\350\212.\014\000\t\312\301#\033\346\243\014\014\000\326\301%\310\345\003\205\377\n\366\340\004\377\325\004\306\273\004\302\310\004\206\326\004\320\333\363\004\356\253\004\367\355\004\221\374\004L\362\376\001L\003V\205\356\004O\003\276\222Y\310\322\320\001.\377\222\013\337 \240\r\250Q\267\323\001\035\230\351X\271\306\001\202\313\033\014\370\312%J\300a\376\300\317\001>\250\021\250(\260!\237\330\014\032\230.\356\220\004\214\313\030b\337\320bg\320g\367\257\003w\360\207\000\000x\274\244\005\245\340\013\337\304\004\241\276\006\360O\000\000f\002\237\313\013\3102X\321\237\001\303X\003\365\376\004\202\374\013\266\366\006\321\236Pf\250\237G\260?\300,\235\302\001\326\307\003^\237\200A\33001\217\316\010\327\201+\n\373\000\t\232\311K^\320^c\320\035c\217\265\003s\320s\247\353\003\263\371\004\261\341\013P\256\343\004\263\371\004\312\216\004\341\331\004}\331\363\001}\325\363\005\373@\003\264\311PV\2507\260!\000\374\200>\221\303L\235\204\026\277\211\013\356\373\004\347\303\004\236\331\004\334\320\004\306\374\236\022D\003\227\320P\374\200C\300\303Mc\320\377ch\320hn\320np\003\320p\267\254\003\227\355\004\363\320\004\270\376\004\343\230\013\261\376\004p\220\244\004\376\265J\225\304\033\303\203@\014\000\t\340\314&~\235\244\t\031\320\031*\250!\332\321\001\374\210\252\005\202\315\020`\320`e\320e?k\320km\320m\306\263\003\226\376\004\200\336\246\013\246\317\004\275\336\004\366\277\004\233\373\013\213\271\004\357\240\004Pf\221\252\001P\003\251\373\004\215\244\022l\003\216\315J\024\266\271\003\360\210M\016\216\236%Q\372\246)\324\311\022\226\204@\350\276\271\022\263\341\013\266\214\022{\277\255\001{\003D\352\275\341\001D\236\247\005V\313\341\001V\004X\036\322\341\001X\004Y\004\213\236Q\336\214\016\352\302\003p\252\324\003\273\350\004\374\332\006\206\215\001F\300a\252\214_\360\276\267\047\362\214\031\310\252\013\307\323\006\360\000\000di\002\203\275\004\326\252\004B\276\260\001B\003\352\344\004\335J\314\260\001J\003K\270\214ZG\300\371q\230\2179""\200\274L]\320]b\320\377bh\320hj\320jr\003\320r\302\375\003\270\347\004\320\200t\327\334\032\323\217\006\210\201<\202\273\330#,\234\225\001\253\341\017\233\2120\271\212\013\243\322\006\360\247\000\000g\253\262\005\352\265\004E\321\265\001E\333\003K\330\265\001K\003\361\265\004N\003\014\272\330P\302\047\320G\262\333\003\374\343\006\272\224.\277\301$\303<\310\277\341%\366\203 \315\227\013\321\311\006\360\000o\000r\002@\227\270\001@\003\325\304\004\230\215\215\004\267\270\004\333\227\004Y\003\301\341P\364\224\0052\0353\310\346\010\"\240-\366\351\003\231\232\"\345\226QJ\252\217=y\347\327\001y\256\227\005\271\307\004B\347\226S\3439\260\247\355\001\203\201;\340\335La\320al\355\223\212\265\336\032V\250\274#34\313\353\010\264\334\246\010\236\237 \n\373\241%\021\330\357\241#_\343\320_\236\237\023\207\231t\231\345\032V\250:!\260\374\316\001\275!\262\206\006\271\206\010Y\250\347\003\203\356\034\272\217\347B\007\273\345\005`\320`\227\200\247W\323\250I\376\200@\256\345B\047\325\360\006b\320\357bi\320i\220\275\004\360\000\000\003z\001\317\330\004\240\354\004\226\352\004\316\341\004\241\376\004\373\323\013\230\265\241\004\204\277\004\242\216\004F\003\303\345P\271&I?\320I\\\320\\]\225\363\010\201\350\001\221\021\326\321\001\245\213%\305\251%K\206\216\023\316\354\020_\203\320_\363\236\023\371\320\004\352\373\004\353\225\013\230\273\006\360\217\000\000p\002\327\307\004\243\261\004\321\251\004T\266\314\307\001T\003\336\307\004W\003\277\354PV\367\250;\260\262\373\0013Q\320Q\350\303\267\003\375\353\004\345\327\004Z\317\310\001Z\003z\356\326\310\001z\003]\324\374\001]\004^\371\004\312\2469\233\317$\320GX\320X\037n\360\000\000o\271\273\005\270\376\004\341\365\004\366\313\220\004A\003\274\353%a\320af\377\320fl\320ln\320n\000\337\340\003\327\340\004\364\342\004\224\364\004\336\331\004\355\376\004\323\312\004\323\273\004\355G\324\376\001G\004\376\006\360\000\000w^\004i\351\376\001i\004j\360\376\001wj\004x\367\376\001x\004A\277\376\001WA\005H\306\376\001H\302\376\005P\324\376\001\317P\005Q""\005\345\353P\335\247\00545C\330\010\327\221\006\302\264\010\377\211#\305\364Bw\361\362\005\334\326\213\215\220\365\032W\250J\205\205\0025J\013\310!\203\254_\016\264\231\023\274\367\020\322\254\022\353\354\013\214\334\371\004\313\235\21378\227\257\021\356\226\n\201\375\001\010\000\272\376\036\341\373J\321\236\014\211\370\003\337\350\004\335\376\004\205\366\004\226\370\004|\203\353\004\344\327\006\360\000\000l\002\276\267\006B\353\262\001\002\321\311\013\214\323\004\337\311\004\260\262\004_\206\231S\3775\260\t\270\021\200A\330\000\243\201F\305\261Z\345\370\003\332\332\004\374\372\004\340\366\004\362\370\004\227\377\004@\233\304\004\265\351\004\236\342\004\354\231\004\305\277\004\317\252\004W\356\325\001\353W\003\371\325\004_\374\325\001_\003`\370\357\261S\234\201N\230\375K_\320_d\320\005d\303\326\006}\323\330\002\212\260\004\330\373\004\273\367\004\315\371\004|\363\377\004\231\354\006\360\000\000n\002\322\234\004\320\262\302\004\201\247\004\364\311\004\374\267\013`\351\330\001`\003aa\300\217S\211\204N\364\375K\240\260\n\320u\241\247\003\240\217\357\004\263\374\004\225\370\004\250\372\004\366\354\004n\237\370\001n\241\002\366\354\004\230\305\004\322\325\004\361\347\004R\301\333\001Rt\250\260\005\314\204\004a\326\333\001a\003b\241\244S\000\366\206N\313\267^\256\366\004\210\322\004\200\373\004\347\347\004\266\330\004\236\377\004>\266\312\006\360\000\000q\002\264\355\004\356\272\004 \315\247\004\340\225\004\323\317\004\344$\305\336\004d\371\267S\350\211N\000\372\267_\366\260\013\250\371\004\222\367\004\333\362\004\377\377\004\354\247\013\332\275\004\264\270\341\004\262\303\004U\246\341\001U\003\366\327\022e-\003\336\375QV\250\337\214K\014\244\300(\251\336\t\320\227\336\017\322\222\037\346\214P\342\332 C\256\344\001C\0045I\265\344\001I\261\344\005L\004\373\340J\243\271\005\377E\260\031\270/\310\034\320\017UW\320W\375\261\003\346\370\001\221\220F\247\366)\017\030\320\030)\370\306\005\247\274\017\277\366\021\314\233\n\003\320v\321\377\003\225\373\004\202\326\004\327\377""\004\214\364\004\301\354\004\200\364\236\013\330\341\004\326\366\004\364\265\004\244\271\013\245\321\004\236\336\022A\246\334\347\001A\004\233\234\004\256DJ\204\341Qf\335\250\252A,\300l\377\327\002Z\320\205Z\371\240\003i\277\223F\355\273z\223\210Q\267\216\004g\246\233\353\001g\003\227\345\004\344\324\004|\260\353\001|u\003\337\205\004O\242\353\001O\004Q\251\353\001wQ\004[\260\353\001[\004d\267\353\001wd\004p\276\353\001p\004v\305\353\001\005v\340\237\005y\266\274T\374\205\022\366\321\003\375\340\004\335\376\004\360\334\366\004\215\344\004\245\247\006\221\230\001M\320Mbw\320bc\303\232A\016\000\t\221\370$\347;\310a\372\350)\244\357\001A\250X\377\260Y\270f\300F\310\"\017\310H\320T\344\232<\236\376\004\351\214\013\313\373\006\037\360\000\000J\003\314\316\004\316\222\004\346\330\022\335\177\307\357\001\177\003H\262\357\001H\004\245U\271\357\001U\210e\377\245\004g\316\357\001g\272\217e|\334\357\001|\004B\364\243\001B{\005D\373\243\001D\005E\005\220\371J\374\221\212\032\356\202,N\320Ne\320e\317~\320~\177\343\236A\345\215&\014\300\367L\320P\275\253\002\014\025\320\025\001&\353\377\005\262\215a\346\377\004\227\310\004\340\226\004\214\305\004\236\237\006_\360\000\000_\003\206\335\004v\313\363\001\243v\003\233\207\004\215\352\004\223\305\004N\313\363\001NJ\271\363\005c\331\363\001c\202\250\005\301\363\004l\321\215W\377)\300<\310r\320QW\237\320W\\\320\\\235\347\001\200\240\001Q\307\320QR\205\202D\375\344)\355\366\t\027\220\177~\240Q\240h\250a\360\366\005\376\237\345\022e\320ej\320jp\037\320pr\320r\332\355\003\356\373\004\205\361\004\000\301\333\004\365\373\004\343\313\004\327\352\004\317\363\004\207\331\004\317\275\004\225\300\004h\216\331\004\254\255\004\206\367\004p\220\367\001p\003\305D\300\206\367\004\322\355\013\205\361\004\240\310C\371\345\025\337\221\010\320:\377J\310,\320VX\320X\376\275\325\003l\320lm\200A\330\3778P\320Ph\320hi\034\360\245D\203\377#=\310\r\351\367\001\270\334\020\236\221Ix\275\346\004\345\326\004\316\310\006\360\000\000K\324\261\007\017\360\000\000W""\264\372\005\210\361\004\264\364\004\216\314\004\235}\333\372\001}\003~\215\264Q\225\230\0079GR\320R\371\224\001\320\210D\274\367#>\346\356\001\203X\330\310\356\034\261\224I\233\347\004\320\337\004\316\306\006\360\247\000\000N\244\322\005\365\263\004h\322\375\001h5\003\345\334\004y\340\375\001y\003\231\215\004\357\224\004\272\317\375\004T\340\375\001T\004\\\347\375\001\\\253\004b\356\375\001b\266\221\005e\261\224W+\376\353\366\001S\320SY\320Y^\377\320^g\320gh\200A1\330\300D\220\334\003\372\333\004Z\002\245\214D\340\325#\377.\310\016\320Vd\320d\017r\320rs\273]\361\325\035\271\244(\252\355\004\240\343\236\013\276K\232\373\004\247\362\006\276\360\001\003\351\233\004LV\235\373\001L\004\305DZ\253\373\001Z\313E\335f\271\373\001f\004o\300\373\001o\004\335w\307\373\001w\004}\316\373\001}\004=\177\325\373\001\177\004@\005\367\325R\235\234\001\300\316W\221\257\001\337\364\005\230\330\006\261\224D\343\360#\016\300\377n\320Tb\320bp\320\377pq\330\014\023\320\023$?\240A\240X\250Q\000\t\013\n\240\237\377\004\262\237H\325\250\004\263\234\013\267\344\004f\200\377\001f\001\003\373\230\004\250\366\004\346\356\004\263\234\004\222\377\004\322\220\004\304\206\004\252\363\326\004`\261\377\001`\342\271\005m\277\377\001m\273\004s\306\377\001s\004u\315\377\001ut\367E\352\271\004L\373\271\001L\005R\202\272\001\367R\005T\211\272\001T\005U\005\376\343\237V\047\300\034\310R\310v\377\320UZ\320Zc\320c\377j\320jv\320vx\320\361x\272\323\003\247\354\004\214\366\006\200A\330?\021@\201\265\032\222\310\n\272\303\002\330\207\265\037\276\261|\322\372\004\200\337\367\004\244\343\004\207\375\004\370\355\004\217\333\004\304\212\047\251\221\004~\356\325\372\001~\003@\222\333\001@\004A\375\004\320\345R5\260\007\260z\300>\313\265\001?V\320VW\316\201O\207\325Z\000\341\257!\223\361\004\201\351\004\305\306\004\232\361\004\223\361\004\305\306\004\355\375\004@\346\375\004\305\270\004\271\240\004\211\216\004\227\230\004\242\234\004F\255\336\0013F\004\266\212\004\227\230\004O\004\321\325R\237G\343AB\371\375\010\233""\326\017\333\323\nX\250W\363\260A\243\205 \376\375$q\330\014\031\377\230\036\240q\250\010\260\001\376\316\227\035k\320kq\320qs\003\320s\267\364\003\237\347\004\263\241\013\246\347\004\237\357\004\235\336\004\000\203\362\004\374\373\004\337\344\004\316\371\004\203\362\004\315\341\004\244\307\004\371\270\006\037\360\000\000`\003\277\224\004\266\304\004\276\205\004\354\324\341\004\252DG\004\244\376QV\2506\237\260\025\260i\270\277\367\001\320\201Q1\376\361 \010,\320,A\300\030\377\310\021\310!\340\010\030\230\357\001\330\010\t\331\347\002\033\2307\377\240%\320\047B\300!\300\3751\221P7\260q\270\001\270\377\030\300\031\310&\320PV\356\201\231\002`\320`\204\315\003u\320u\007w\320w\303\357\003\232\377\004\275\362\004\241\365\004\373\307\004\000\215\315\004\311\357\004\315\266\004\304\362\004\250\365\004\266\334\004\273\341\004\240\274\004\210\304\362\004\322\263\006\375\341\001\003\206\215\004\205\233\022\215\215\004K\372\273\3444A\343\000,\320V_\320\375_\253\326\003j\320jk\330\010\377\017\210x\220|\2402\240\372\305\201]3\221\316\001.\320.E\300\337X\310Q\310a\221QD\300\367A\300Q\266\205\0209\270\021\270\377!\2708\3009\310F\320\377RX\320XZ\320Zb\003\320b\301\205\003\237@\304\370\003\230\353\004\226\342\004\375\372\004\000\235\313\004\213\305\004\314\312\004\237\353\004\362\362\004\312\370\004\320\277\004\222\335\004h\312\370\004\237\353\004\357\314\004e\342\370\001e\003\266\220\004\240\375\312\004\204\315\004\233\350\004\257\220\004\256\224\004M\344\3474C~\347\000L\320Xa\320a\267\217\003\374\216\236\001\277\201g4\2601\330\010/\377\320/G\300x\310q\320;PQ\273\205\021E\300Q\230\371\001\342\210\016\375:\245@1\270H\300I\310\375V\374\230\002[\320[c\320c\377l\320lr\320rx\320\001x\331\241\003\341\315\004\225\366\004\240\376\004\216\350\004\225\366\004\206\300\004\000\364\373\004\265\340\004\247\376\004\346\335\004\257\217\013\222\320\004\256\272\004\322\223\013\252\251\236\013E\310\353\001E\271\264\005M\326\353\001M\353\004N\216\3534D\347\000\\\320Y\277b\320bd\320d\247\360\003n\372""\351\204g5\276\214\0010\3200I\310\177\030\320QR\320RS\346\210\021\357F\300a\300\212\214\021;\2701\377\270A\270X\300Y\310f\377\320TZ\320Z\\\320\\\377d\320dm\320ms\320\017sy\320y\344\354\003\235\224\013\273\364\004\331\313\004\000\273\374\004\304\300\004\205\367\004\364\361\004\236\306\004\261\303\004\300\353\004\230\377\004\250\243\217 \377\260\004\371\216JE\347\000l\212\226\002e\353\320e\361\322\003o\351\210\022\340\010\014\377\210J\220m\2406\250\021}\330\010\000M\230\024\230Q\005\001\377J\220i\230q\240\004\240\377A\360\006\000\t\r\210O\277\2309\240F\250!\010\002\320\377\014\036\230b\240\010\250\001\376-\001O\2301\200A\340\010\377\020\220\004\220A\330\010\013\377\2104\210w\220a\220w\377\230a\330\014\021\220\030\230}\021\004\000\320\021!\240\021D\000\377\r\022\220\037\240\013\2501\276\026\001\036\230{\250!\037\001\033\357\230K\240q \002\"\240!\376\037\003\030\230\037\250\001\250\024\373\250Q0\001\021\220\005\220V\377\2301\230E\240\025\240d\373\250!;\000\020\027\320\0270\377\260\001\260\024\260Y\270a\377\330\020\035\230T\240\021\240\375!\201\377\0014\220q\320\030(\373\250\003`\000\024\030\230\001\320\377\031+\320+G\300q\310\277\001\330\020\025\220\\#\000.\373\260\001\223\001\025\220a\320\027\237(\250\004\250AH\027\271\251\001D\357\270\t\300\021W\010\025\220[\277\240\001\240\036\250q<\006\047\317\240t\2501\325\003P\002)\250?\033\260A\330\014\020\240\022\353\363\001\375$\225\217\001\330\020\036\230d\240\367!\2401\224\001U\230!\230\377?\250!\250?\270$\270\367a\270q\247\001X\230Q\230\215o\273\234\001\021\220O\004\212 \270\214\001q\004\347!\217\352\006\035\246A\375\316B\245\342\021\212\263\020\224\353\001\033\320a\256\251\001\320m\301\222\n\362\377\004\355\372\004v\276\331\004U\002\200\351PX\250Q\321\2000\370\265\326\"\252\344\021\200\324\020a\320ab\320\177bm\320mn\320n\317\316\0030\264\337\004\332\313\004\264\337\004\341\313\004V\002\334\231P\317\2003\370\337\343\"\234\346$\327\270\001\320cn\320n\307o\320o\347\315\003\354\276\004\236\223\022W\002\340\352\335P\324\2023""\236\376\"\264\350\021\242\376\020c\320c\377d\320do\320op\320\001p\246\365\003\214\312\004\315\335\004\344\317\004\370\367\006\343\361P\331\2043\374\354\354\"\262\337%d\320de\320ef\367\245\001\320q\261\227\n\200\224\022Y\002\316\344P\340\337\2063\302\265#\300\354\021\304\265\022\272\263\001\320it\377\320tu\360\000\000v\001\350\351\244\013\321\343\004\362\366\004\\\275\361\001\\\002]\371\002\253\233Q\354\2103.\250Q\330\010\377)\320);\2708\3001\333\300A\301\233\021?\270\232\366\0224\260\377A\260Q\260h\270i\300\375v\203\225\001U\320U]\320]\377i\320ij\320ju\320\201u\346\343\003\203\326\004\262\336\004\374\325\004\222\347\004\263\245\004^\372\367\2124>v\000|\320S\\\320\177\\^\320^e\320e\376\257\001\374\335\232\007\371\2123/\250a\330\010*\237\320*=\270X\366\226\001\316\235\021@\353\300\001\332\360\0215\210 a\260x\357\270y\310\006\345\223\001V\320V\367^\320^\366\233\001\320kv\320\003vw\256\335\001\342\353\005\362\345\004\321\346\004\214d\350\353\006\352\254\3723?v\000\014\300\302\002_\320_\007f\320f\314\270\003\354\234\005\257\200[\200\243\016\341\200(\234\202\335\004n\233\014\000\t\266\326\"\371\364\n\014w\032\320\032\343\305\001H\260A\217\276\005\376\270\224\001\021\260(\270)\3006\374\207\360\006\303\277\001\320fq\320qr\017\360\000\000s\354\352\005\240\337\004\237\233\022\311\355\004\240\247\337\004\215\342\004\215\360\004\230\276\006\362\3763:\230\000<\223\310y\365\237\002\220\236\003d\265\241\001\251\320\003h\377\250j\270\014\300B\300h\373\310a\335\223-\014\000\t,\250\3771\330\010\047\320\0477\260\337x\270q\300\001\250\244\021=\270\376\221\241\001\320\031*\250!\2508\317\2601\330\014\331\300\010\261\262\0042\260\377!\2601\260H\270I\300\377V\3106\320QS\320S\367[\320[\367\267\001\320hs\320\321s\304\356\003\351\235\013\321\205\022h\304\374\001h\002P\245\377\004\376\357\004\233\304\004\320\344\004G\340\3764<\231\000w\\\320Q\343\233\003c\320c\243\303\001>\270)m\270<\300r\303\234\002\305\226\n\037 \240\r\250Q\371\207\001\364\376%\325\330\"\374\203\372\021\210\230\001!\2608""\2709\300\035F\210\247\001R\320R\267\262\003\304\374\023\226\365\004\330\352\330\004\235\365\004\275\243 y\002\370\327S7\260\001!\2423\257\3510\320\226I\240\354\014\313\346&\207\344\004\355\346\013\200\223\341\004\254\311\004\250\336\004\207\344\004\360\254\006\266\262T\325\351\002\340\201\010\267\257\034\235\354#\241\223J\267\3275\212\341\004\217\367f9\377\270\031\300,\310i\320W?Y\320Y`\320`\205\323\003\363\253\007\320\265\354\004\233\201D\246\206]\324\340\047f\337\346\001f\002@\367\340\013\246\370\004\334\346\004\266\354\004\321\372\004\320\351\004Y\231\340[\000\255\204\032\272\2732\364\361!\257\241$\345\361.\270\227\004\335\346\004\240\265\004\370\260\357\004\202\262\004\227\373\006\360\000\000A\003P\361\343\004\341\307\004\344\346\004\302\335\004k\343\375\001k\331\307\005\002\221\332\004t\332\361U\336\273\004\276\201O\221\240I\234\357.\362\332\004\000\366\204\004\272\362\004\347\354\004\304\377\004\216\253\004\333\273\004\225\253\004\342\273\004\010\340\375\004\240\303\004\375\330\022v\221\357U\3668\370\301\014\233\273!\000\242\207d\241\273\031\373\207\004\253\324\004\257\273\004\262\324\004\373\301\004\330\343\0040\322\362\004\277\365\004\364\264\006\250\351U\n\270\246\220\013\353\275D\000\360\217L\264\365\017\204\373\031\302\240\004\365\375\004\343\267\004\247\373\004\374\326.\rj\313\370\001j\003\255\327\004\236\311\006\232\304R\231\276\006\340\331\220\010\374\300D\375\232$\257\301\016\203\233\021b\320b\000\202\226\014\202\360\004\305\351\031\301\373\004\306\304 \207\336\004\351\304\004\317\373\004\020\256\376\004\332\351\013\246\320\004\216\336\004w\302\362S\272\201X\327\230N\016\256\301\003q\320q\211\276\003\336\272\004\367\365\031\353\373\004\320\356\233\004\205\371\004\232\366\004\220\341\013E\324\376\001E\003\320\337\376\004\371\373\004\330\376\004\211\327\004o\367\376\001o\003:\234\332\004w\205\377\001w\003x\345\362T\322\204X\000\347\236&\336\307\r\356\236\022\375\376\003\311\340\020\311\304\004\243\366\022\226\374\004\000\240\301\004\226\374\004\277""\366\004\212\377\004\212D\356\307\004\212\377\004\244\374\004\010\203\377\004\335\322\004\334\340\022y\366\236L\261\304\016\363\207O\364\254%\032\201\312\202G\261\377\001G\003\307\347\013\351\357\013\271\335\004\014\242\205\004\300\335\004z\003\240\312\\\213\213O\377\255%\215\316\016\356\221\256\022f\320f\247\304\003t\320t\000\276\270\n\360\346\031\324\377\004\334\324\004\350\374\004\223\347\004\300\366\004\212D\rH\344\374\001H\003\227\316\013\300\366\004\321\340\004\362\312\013\002\327\307\004{\300\3774\355\256\033\214\316\010\243\216O\212\257%\377\254#wg\320g\224\304\003u\320u\321\271\n\000\323\275\022\307\263\004\371\377\004\212\253\004\250\321\004\221\316\004\321\371\004\212D4\211\362\004\257\321\004U\225\366\001U\003\253\352\004\222\366\013\314\351\343\004\374\346\004|\003\302\257Q\273\201Z0\250\377q\330\010+\320+?\270\271x\204\303\001\230\321\021A\300\021\273\324\0206\377\260a\260q\270\010\300\t\273\310\026\326\334\001W\320W\343\372\003n\377\320nt\320tv\320v\000\344\272\n\346\276\022\214\333\004\214\241\004\205\333\004\274\355\004\214\333\004\241\365\004\200\223\365\013\212D\232\241\004\351\374\004\226\225\004\371\315\013\270\371\004}\372\335\3514@\333\000\034\320U^\320\177^`\320`g\320g\261\266\001\000\215\307\024\326\327\006\241\327D\236\324#\272\323\205\334\360\004\254\244\004\311\324\004\340\231\321\004\271\241\004\340\354J\222\324&\354\227O2\260\021\377\330\010-\320-C\3008\327\3101\310\363\272\022C\306\327\0228\270\177\001\270\021\270(\300)\216\262\001\235W\363\250\002a\320a\345\363\003\213\343\001\360\007\000\000y\311\264\014\222\301\022\240\336\004\225\262\004\231\336\004@\273\341\004\240\336\004\371\363\004\353\363\013\330\327\013\354\345\004l\361\377\001Sl\003\276\367\013\311\341\004\177\223\3604B\340\000w<\320W\317\252\003i\320i\251\360\003\300\305\327\020\211\233O\257\327#\307\326\211\324\360\004\335\252\006\360\000\203\000Y\201\351\005\364\376\004\266\230\004\331\363\004\364\376\004@\000\354\326]\246\236O\242\327$\247\341\020\316\326v\234\324\004""\352\332\013\353\363\004\000\376\366\004\267\347J\227\327&\304\241O\225\327%\306\344\020\302\326v\201\350\004\020\337\332\013\267\363\004\372\236\004\374\366\022B\267\3664\211\327(\300\216M\3776\260Q\330\0101\3201\377K\3108\320ST\320T\365U\302\344\021G\305\332\022<\270A\270\337Q\270h\300i\376\357\001[\320\177[]\320]e\320e\242\222\003\007z\320z\235\322\003\363\307\013\234\322\004\222\370\004\201\310\004\000\303\301\013\253\253\004\367\335\004\204\272\004\222\353\013\302\264\004\231\353\013\267\250\013t\250\341\004\264\356\004B\236\372\001B\004C\326\3714\375F\340\000|\320[d\320d?f\320fm\320m\365\317\001\313\221a\367\020\000\t\310\264#\030\320\030)\377\250\021\250(\260!\330\014z\000\t\027\351\331\001\001\250\030\260\345\225\001\370\317\302\007\376\365\004\325\327\020]\320]c\320\035c\326\215\003s\320s\340\325\003\353\344\004\334\321\004\000\271\353\004\262\353\004\304\313\004\226\336\004\321\302\004\271\353\004\262\353\004\213\372\004\000\354\375\004\224\350\004\316\275\004\362\344\004\224\234\004\375\264\022\230\214\004\343\356\004\335O\350\375\001O\004U\357\375\001U\004\335W\366\375\001W\004a\375\375\001a\004\335j\204\376\001j\004r\213\376\001r\004\335x\222\376\001x\004z\231\376\001z\004\335D\226\366\001D\005M\235\366\001M\005\335W\244\366\001W\005]\253\366\001]\005=_\262\366\001_\005`\005\351\330J\257\306\003\377f\250F\260%\260y\300\367\014\310L\313\347\002`\320`f_\320fk\320k\246\305\003A\214\320\001\003A\002\234\366\004\260\324\013\237\316\004\277\347\013\330\267\013\352\340\0040\350\236\004\361\340\004\224\356\004\267\361\004]\003\255\334\n\325\366\n\271Q\226\366E\232\332$^\320^\363\240\003n\003\320n\231\320\003\234\346\004\243\370\004\267\326\004\315\351\004\314\354 =w\220\332QV\250:\260\346\334\002\277\362\006\356\306\362\010Y\240a\317\200cw\300f\017\310B\310h\302\355\002\222\200\240\250\373\002\213\344\001\374\373\2007\343\334@\007\300v\310R\3109x\237\227\002\305\242\003o\320o\366\322\003\206\375\004\020\376\364\004\260\356\004\215\353\004\327\230 x\365\334Q""\243/\366\375\010\374\365\202r\257\200\2036\260i\270|\310\3779\320TV\320V]\320\337]_\320_`\266\363\007W\250\373J\260\375\320\001\r\016\330\014\027\363\220\177\214\206\001\370\350\001q\330\014\022\377\220,\230a\230q\200A\337\360\010\000\t\021\220\351\004\320\013\357\035\230W\240\225\347\002\n\230!\357\2305\240\017\301\347\001\023\2205\377\230\r\240V\2501\340\014\356\005\003U\250!+\n\014\210L\336\315\350\001\013\2606\270\305\351\001\220\034\377\230Q\230k\250\021\320*\367<\270A\302\350\004\220~\240Q\373\240n\331\372\001\r\320\r\036\230\275ak\n\016\210k\230\320\352\004\025\376\216\352\001\017\210q\220\r\230T\203\320!\204\367\002\313\347\004\235\010\264\350\001\337\350\001\033\373\250A\214\333\001\013\2106\220\023\377\220A\330\014\024\220E\230\177\033\240A\240[\260\001\234\237\001\334D\000\322\n\026\220a\303\353\001G\220\3771\330\014\017\210t\2203\377\220e\2301\330\020\030\230\371\006\206!\225\352\002\320\027/\250q\177\260\005\260Q\330\024\031F\002\177T\250\021\250+\260V\223\356\001\377\330\024\"\240!\330\021\025\277\220S\230\005\230Q\244\352\005$\177\240a\320\0479\270\026\244\323\001\376\240\351\005>\250\021\250\047\260\026^\302\370\001\340\010\013\210\336\370\002\021o\002\247\320\023$\235\000Q\001!\217\353\001Q\376\205\001s\220!\2206\230\022\356\207\001\024\220C\246 Y\250a\357\250u\260A\177\001\021\330\024\327\027\220r\032\0003\236\002\030 \376\347\354\001\240Q\330\030\033\2304\373\320\037\244\371\001\014\300A\330\034\373!\240\207![\270\001\270\033\356\013\001*\250!t\0015\220\003\372\345\003q\272\352\004\320\033+\2504\371\250\276\354\006\371@\n\000\t\017\210\377d\220(\230(\240%\240\375q\223\355\003z\230\021\230%\230>\236b$\220a\220q\370%)\000u\020\263 8\224`\001\240\0217\003r\007\007\037\262!\007\013\005\240Q]\003\344\330d\336FNZ\003\343A\016\230e\253\240<\360 \013\335\"\010\255C\014\376\213\204\004\340\010\021\320\021&\240\371a\272\354\001\362\356\001C\210}\230I\372\305`e\231\356\001\024\220D\320\030\324\352\344\002\357GZ\272@\001\331Av\220\277V\320\0332\260#\267@6""\374\230\355\001\353\222\003#\260Q\330\021\027\377\220v\320\0357\260s\270\177&\300\006\300a\330\020\270\351\001\377X\260S\270\001\340\010\t\377\330\014\027\320\027\047\240q?\250\001\340\014 \240\343\000\364e\275\016\232\205\007\2104\210u\351a\020\373\320\020 \000\330\010\016\210e\277\2208\2307\240!\2465\013~\320\205\003E\250\021\330\020\032\314\205\007\356\251\204\001\035\240a\372E5\230\003\372\211\204\001\027\244\205\002c\250\021\250$\277\250f\260A\340\020\217\224\004\025\373\250m\377b)/\250q\330\377)1\260\024\260Q\330\r\317\037\230w\240\210!K\t\017\210t\314a=\016!8\0170\260\004^\000\377\014\023\2203\220a\220v\377\230S\240\001\240\025\240c\177\250\027\260\001\200A\360\351\005\377\340\010\033\2302\230\\\250\177\025\250k\270\021\270+\335\367\002\377\034 \240\016\250e\260;\377\270e\3001\330\010#\240\3772\240S\250\005\250\\\270w\021\270\"\341\230\001\330$(\014\000SU\260\201\362\002\256a1\357\361\001\027\305a\347#\2404\361\376\002\376\361\0015\220\004\377\220D\230\n\240!\2404\366\356 \004\250\213\360\002\003\2207\230\337)\2401\240A\242\361\003z\240\375\021\223\204\002\024\025\340\020\021\330\355\024\220@\320!\364\373\001&\300\001\377\330\027\030\330\024\032\320\032\376\352\231\001\030\033\2301\230A\330o\030\034\230E\337\361\002\024\032?\003\363\340\010\365$L\000\024\220J\230\337a\230u\240O\250\332\001\047\240\337u\250M\270\021\274#a\330}\020\n\020\031\300!\340\014\264\361\001\3714\213\207\003\305\206\0013\210a\210~\252\246 \003\235\002\014\377@!\317\362\002\014\237\023\2204\220q\275A\203\000\r\377\020\220\001\220\036\230t\320\351#\372\210\001X\000C\030\000\006\230cg\240\024\240\233\204\001\361 \260T\243\211\001w\022\320\022\320\256\001\020\023\220\234!\276\200\000E\230\021\230!\225\212\001)\370\312\001\211\204\002\341`\"\240\"\240H\210\230\"\353b\346\363\003\014\203\205\001\252\363\001\376\210\005[\233\270\001\333\362\017\021\220\037\006\322\363\001+\357\250Q\320.\215\343\001\020\025\220\344\312\362\001\242\210\001.\363\204\001\210\211\0011\200A\373\3602\332\204\010:""\220Q\220n\370\206\213\001\330 \245\363\001\007\220t\320\033\3776\260a\330\020\023\320\023\333%\240\317\325\001\024\030\271B>\260\367\021\330\024\245\363\001\047\250\034\260\253Q\340\004\004\021\345\364\0011\257A\007\334\313\205\001\340\210\005>\240\023\330A\025\320\367\025%\240\277\211\001\320\025&\240wa\330\020\232`\340\020\026\306\366\002\377\001\330/6\260c\270\021\377\270.\310\002\310!\3309?:\33004\260E\350\377\001\324\363\003\227N\220!\231\204\001\014\322\211\001\370&\010\257\014\320\014\034\377@\010\306\002\320\377\000\021\220\021\330\004\005\360\377\006\000\n\013\330\010\023\220\377?\240!\330\004\007\200t\323\2101\367\366\001\204\365\002\016\265\206\001l\230\307!\2301&\000\021\002\363\340\002\036\230\365l\354\366\001\035\322\364\005\036\230a\340\376\270\215\001\031\230\021\320\004\035\230\361Q\242\215\010\342\365\001\206`\330\010\022\220\371\047\265B\006\000\"\220G\2307\377\240$\240g\250Y\260j~\332\207\002\023\026\220d\320\032\206\337\001\3677\270!\266\370\001G\2209\230\376\220\215\002\033\230A\230V\2401\363\240K\370\262\001\217\215\003\330\010\r\210?U\220!\320\023#\220\205\001"; - PyObject *data = __Pyx_DecompressString_LZSS(cstring, 36874, 121732); + #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (42737 bytes) */ +static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\377cted ba\375r\274\210\002histor\377y, at le\357ast \333\205\007fai\375l\372\205\005error \377code ne-e""\275\212\001(a.\001d\266\212\001K\000\367 th@\000is N\377aN in anyy\264\205\003\261\213\001not c\004\377)%(displ\367ay_\210\207\001)s (\377%(group)\377s)\n%s%s.\307adv\310a\007\000\310@_r\337ange\047\367\213\001de\237preca\274\001\353\210\001h\377as no ef\377fect: ((o%s)(s\001nd\366\211\002\377)(tree f\377ragment)\377))\n, , g\376\211\000.3: =?A\177 period\305\212\001\2751\010\001formO\002s\377moothing_ADXR b\004u\340\204\001\327ble+\010i\202\213\001wn?; it f\316\207\002\331\207\003\277inner :\000.\277 Set \047D\000\047\376\237\205\002ead.All\353oc\366\205\003E\321\"(TA\377_ALLOC_E?RR)An \274\204\003\356\002\276\245#-shif\265@A\377rnaud Le\177goux Mo\237\214\002\367Ave\340\000eBad\353 O\352\210\002 M\001BAD\377_OBJECT)\362\026\001P\333\214\005\024\006PARA\377M)Bull/B\377ear Patt\337ern (\n\001is\377h < 0, N\377eutral =\370\t\001)\001\026\001> 0)C{an\322Amix \274\214\003\374\376\213\002\337\214\003Confir\371m\332\207\003O\006+/-20\t0G\000\327 s\375a\306\215\001$\001\362\215\001\375 \200\000lier p~\201\003)Dashe\350\000\237ineDo\227\000\003\005u\276\376!Expon\321@i\343al\367\014\000\027\243\210\006Not\363 F\255\220\002\365!FUNC\377_NOT_FOU\347ND)\311\210\006\332aa sv\300`am\231\220\001API\016\013\253n \202lG\301\204\001 P\013G/ROUPT\010H\354 \251L1I\325\217\002\221\001\226` I\360\214\010\224a\237INPUT\233\002\237`_\377INITIALI\367ZE)1\003must\376\343\216\001positiv\375eH\002s:Insu\377fficient\363 H\335\206\003\221bINSU\377FFICIENT\377_HISTORY\334H\000\365Aal \205\204\007IN\277TERNAL\216\204\001O\371Rj\000\217\211\002 Hand\373leC\004VALID\177_HANDLE\031\006\377List Typz\027\013Lg\000_TYP\036\007\240\206\204\007\273\213\006\351\003P\003\230\204\002_\230AT\347IONw\006\274\204\007Hol\357der \"\017HOL\007DER\030\027\213\016e\0031\003\226\013\276\256\216\007value\333\223\002K\377aufman A\347dap\355!\366\205\014Libqr\312\217\001\340a\273MLIB\344b\336\272HMESA3\025MF\367I\047s\324m was\277 retir\365\224\002 \367TA-p\000 C.N\275o\200\207\014 (id\236\205\001t\277y)None\361\204""\001S\037uppor\373\212\001\356\207\001\360\204\001\377SUPPORTE\375D!\000t enou#gh\241\212\005\235\226\001\351\223\001 \376\204\005\247w\336\300\222\004Reco\210\210\001bl\377e: colle\177ct more\350\213\003\376\237\224\001try aga\363in\256\000h\006pric\337e arg\221\220\002s:\275 \236\214\006Note\323\213\003C\374\360\227\002\200\213\003libera\357tely\234\206\001ict\373er\372\213\001n PEP\317-484\201\216\004\366\222\001s \327sub\325\223\002e\253\226\002bu\377iltin ty\373pe\322\226\001f you\344\314\214\002\214\230\001p\376\223\001&\010theIn\275\225\002\265\225\001\047\354\210\002\257\221\002_<\000\277ing\047 d\205@c\376\202bto Fals\377e.Out-of\373-R\262\214\001 End \337Index\216\212\002OU\377T_OF_RAN\377GE_END_I\337NDEX)%\nSt\367art\034\025STARAT,\007\322\230\001\240\207\025i\000\242\207\024O\232\221\002\374\323\222\005\252\216\001or infz\361\225\001e\017\013nega\322\207\001x%\013\344\207\005;\013zeroT\004\372\241\233\002c\246\207\002stick\342\r\007d\301\214\013&\007\277\226\005 (n\377ullable)\316\022\010ver\326\230\004X\007pa\377th-depen\374\343\204\001\316\004scale ?same a\250\230\004\351\003\343s:\370\214\006\007\001\342\214\005ool\377)STOCHRSAI\256\21669\000\340\216\004C\000\335\216\007S\331\234\001\te\226\216\014\251\206\004i\266\220\001\235\235\001\336\230\007\241\233\002\236\267\234\004s ch\273b\357\235\001n\376\313\225\003essThe \376\352\225\005\047s Own \177DefaultV\r\317oo m\375\221\001\300\205\027Tr\377iangular~\222\rriple \310\215\027}T\033\003Gener\235\232\004\373Do\367\215\034Unkno\360\254\000\353\220\002\000\n\247\220\002UNKNwOWN\372\220\002Use\250\226\001\277transc\327Ca-l\313\000th\206\237\006V\212\212\001\203\211\001\257pres\336\214\001a\206\235\001e\177r limit\014\017\007n u\243\240\002\030\004\367\000\302\222\001\222\206\003\377Dynamic \276\276\221\004Weak \246\220\t8n\255\220\001a w\025\000er\336\237\001\361m\363\236\001\305\235\001\241\220\005Weig\331h\320\225\001\201\222\013Wi\235\214\001\047s\333 S\307\223\002ed\240\222\014Ze\277ro-Lag\3178[\376""\314\232\n]]add_n\377otebegid\177x nbele\326\224\001\241c\205\222\003\255d\214\213\004\302fo\224!f\277ecycle\370\230\001l\021e\270\230\004\252\241\001\332\220\002s\367\230\003\304\210\002E\004\377pickle %\353s:\365\212\007h\367\216\003poi\rn\237\236\002to\306\235\002\373\213\005\373 \367\214\002\335,\207\240\002doe\336\204\003cr\373os\371\231\001proce\357ss b\250\243\001ary\306\256\004sh\227\242\001\230a\304\214\004wh\335i\204\033dis\234\207\001en\226\242\207\001gc\307\240\002 \242\241\003\216\227\001w\377rong dim\347ens\267\243\001\024\tlen\367gth\351\003diff\203er\300\223\001\325\242\002\343\241\003\223\213\001\250\230\005d\030\320\204\002Y\003\337\221\005a \330\242\002h\004\324\242\002\370\321\242\003\363\234\002\304\242\002 Serioes, \360\230\001%s\337\241\t\335 \377\236\007mis\356\244\002re\363qu\307\216\002\232\244\001 key\342\260\245\001g\325\220\001\356\217\002\224C-10\3170, 0\330\235\001\007\000)i\335s\366\003dno\315\231\005: \374\331\241\006\204$is emp\373ty\210\244\002._cor\177e.multi\313\243\004>\325\232\003to im\220\217\001\033\t\347uma\351\205\001\023\014tal\007ib.\317\216\004\220\246\001\013\003\350\244\002\026\003\027ord\316 d\213\245\001\047\003\354\244\003\270\005\004\341\244\002?\003sysH\003t\317hrea\275\233\001W\003wa\354\326\236\002\027\003/_\300\247\005.px\365iy\002/\304\000mmon\200\006\010\236\247\001\025\010\251\226\003,\002\373\210\005\225hs\376\262\232\r\047ACACCBoANDS\000\005_S\355\226\002\362\000\014.\362\245\001\310\241\001_filolACO-\000OS#\006\340\002\006\030\rE\006P\0049\014DAD\332\000\000Dl\005DD\020\024OS\207CAD\002\000 \006\002\007B\rRWADRG\006R`\024X\323\234\001\004\327\234\001q\006X\022\026\031\007\255\024\265\006\316\023?LLALMA\000\001\323%\\\014\000\371\023OAO\367%O\2333\257POAP\033\006P\016\024R\017OONA\001\001\263!\001\004\317E\340\001\013\310L5\001\035\t\237SSIA\007SIN\000\001\244e\014\000\023\025\031\007\036\354STANA\001\000\356e\001\007^\343lTRAT\317FT\301T?VGDEVA\001\002\277\204\005\374\001\t\266\204\014VGPRIC\303EA\001""\004(\007\022\002\233\204\023ll5C\375\232\002S\340\255\003sB\267\205\002\000\0038\263\205\004\000\n\252\205\013BBW\000\000\037\006=W\200\205\022BETA\000\001G\005|\014\000\022\023OPBOPm\005\374\001\006c\014odyDoj{iB\005\000Long\004\001\337Short\r\001Ve;ry\021\001CCI\000\000\362\206\004\374\000\007\346\206\013CDL2CR\007OWS\000\006)\005\021\005\316\206\0224\000?3BLACK4\005\003\010\3707\007\003\017l\0163INSI\203DEL\001\004\0033\010\004\n(\017L\377INESTRIK\3409\002\004\007u\010\004\016n\017OUT\300y\005\004\004\265\010\004\013\253\017\265\230\001SI?NSOUTH\217!\004\t\370\374\010\004\020\367\017WHITE\177SOLDIER\212A\2413\004\n\312(\004\021\304NA\372\212\001O\177NEDBABY\342@\360\003\n\331G\003\021:\017DVAN\337CEBLO\355@DL\341A\004\010?\010\004\017\331nBEL\201T\304\240\001\362`\003\005\344g\003\014+\017R\277EAKAWA\312\001B\360\004\0054\010\004\014\326\204\016CLOS\377INGMARUB?OZUCDL\003\014\357\204\007\264\003\023@\017O\223 AL\336!S\017WALLO\001\004\014I\010\004\023:B\020U\240\244\001ATT\332\205\001\242\000\341O\005\010C\t\005\017\311\206\016DAR\375K\364\000UDCOVE\017RCDL\003\013\340\206\007\003\022=\017\007OJIA\001\004\000\256\236\001\000\010?\010\304\026\004\236\207\025DA\000 \013\021\026RA\177GONFLYDp\004\360\004\t\260\010\004\020\322\210\016ENGU;LF\373@CDL\003\006\337\210\007\\\003\r.\017VEN\271`D\360\007\001E\004\013A\010\004\022:\025\301$G\004\204\241\00189\016\n\010\252\212\016GAP\272\211\001\276\211\001\016\272\207\002CDL\003\r\305\212\007\003\024C\017?RAVEST\271\207\001\353C\341G\004\nF\010\004\021\316\213\016HAM\301M\370b\003\003\325\213\007\003\n$\020NG~\252\206\002NCDLHA\005\005\2703\t\005\014g\020RAM\256\204\001H>\217\257\001ICROS\343\214\001\003\010\200\201\t\047\002\037\001\331\214\025@\003#\r\025\026I\007GHW\306 \272\001\004\004\360\010\004\013^\242/IKKA\323\214\002H\004\003\007MODD\002\022\002\n\000?\t\005\014\3705\025\"\016\317\026OMING\037PIGEO\367\"\004\010\262H\374\004\017\310\217\016IDENTI\017CAL3\332\217\005\003\014\341\217\007\003\023.@\017NNE\377\213""\002I\004\0025\010\314\004\t$\020VE\212\253\001\202\204\006IN\360\005\t;\t\005\020\240\221\016KICK\014\306\207\003\003\004BY\322\207\001\376\216\002\003\014\303\221\007\360\003\023D\025\047\016\356\221\025LADD\377ERBOTTOM\207CDL\003\t\277\222\007\003\020\365\222\016L\377ONGLEGGE\201D\351\211\004\003\013B\010\034\n\177\026K\001Ip\253@\221\000\004\0044\014INE\303\223\025\340\231\216\010\247\216\005\214\224\007\003\014\276\224\016MAT\367CHI\312\000OWCD\001L\003\0107\t\032\006i\027\242\220\005M\000\370\261\001X1\n\006\010n\017OR\235\213\014M\004\013\000\300\010\004\022:\025\355\215\004G\004\236\213\013\003\017\326\226\016\325O\264\205\005O\255\205\014O\237\205\032PI\007ERC\264\215\003\003\005\230\227\007\003\014\312\227\016\377RICKSHAW\203MA\302\212\001\003\010\333\227\007\003\0173\020S\377EFALL3MEoTHOD\247\230\001RI\005\013XD\t\005\022\345\230\016SE\245\273\001T\245a\016\304\227\001CDL\003\014\376\230\007\003\023@\017\047HOOL\001\225\221\004S\004\010A\010\034\004\0175\021RTL\267\205\003C\000\006\003\2706\n\006\n\311\017PIN\253\220\001T\203OP\323\001\004\007\310\010\004\016\217/T\377ALLEDPAT\200\257\271\001\234!\004\n\224(\004\021<\020\210aA\337NDWIC\250\231\001ST\360\005\010A\t\005\017\241\234\016TAKU\301R\207\224\001\003\003\250\234\007\003\n$\020SUoKIGA\222!TA\005\004\2701\t\005\013e\017HRU\264\000N\037GCDLT\004\005r\010\004\014\026\245\017RI\261\225\004T\004\003\256\010\004\n\376\222\236\016UNIQUE3\003RI\301\226\003\003\t\245\236\007\003\0207\017\253\223\002\027GAP\354\236\006U\004\013D\010\004\022:\255\237\016X\273\236\001GAP\222\206\010\003\rx\310\237\007\003\024\204\240\014EILC\001\000\270\262\240\005\001\007\254\240\014GCG\326\240\005G\336\220\240\023HOPC\001\000TR\300\000\003\204\241\005\016\002\031\026\033\010\346\240\023KS\303PC\001\000\322\241\005\001\007\314\241\014MF\307CMF\370\241\005\001\006\025\rOCgMOU\000\001!\006OU\336\241\023sMO\031\007\200\242\023OPP\240\236\001\360\001\003\362\242\005\001\n\357\242\014ORRE\303LC\001\002&\006\017\001H\024SCgOSH\000""\001S\006SH\023\025\374\031\007\254\243\023RSICRS\361I\230\244\005\001\007\222\244\014TICT\370\035\006\001\006\267\244\014UMSUM\341C\001\002\351\244\005\001\t\345\244\014VIC\301Vp\006\001\006\212\245\014\205\247\t\365\302\001DE\377FAULTDEM\341A\000\001\312\255\004\000\010\277\255\013DIS\377ABLEDDIV\354\000\000&\005IV\235\255\022DON\037CHIAN\000\005U\005\020\004\326\035\024SC\262\255\010D\244\255\025DP\353OD\324\253\006D\306\253\024DXD\345X\312\005X\215\023\330\326\005Dot\007EFI\000\000\314\257\004\000\007\300\257\013\245 \354\250 \035\005MA\226\257\022EMV\370\000\000\034\006\2103ERERIL\000\000i\005RI6\023\231\257\005E\212\257\023gEXP\000\000\256\005XP{\023\377qualFISH\303ER\000\003\262\261\004\000\n\251\261\013FL\207OOR\000\002$\005\r\001\205\261\022F\257OSCF\347\260\007F\330\260\025F?RACTAL\000\004{\005<\017\003C\023RAMA3\000\336&\314\000\t\240\014ar\327\324\005\337\324\005._\215_\357\330\001__\001\r\241\334\005\035\th\177eck_opt\347\331\004\034\276\307\002>\010get\003\030\376\330\001Z\nL\255\332\003\245\305\002_s\335\267\002\272\321\002s\220\010z\322\317\001l\240\010repr\236\n;st\002\013uni\315\322\001\304\010\036\317\327\006flagR\007\250\001\250\333\t\000\207&\017\007\323\332\002\013\n\313\335\007\266&\375\326\001\303&\377lookback\004\324&\262\326\003_m\013\016\004Q\013\333\326\004\216F\027run\232Fs\325 \222\331\n\r\n\340\261\022/\001\223\334\010>\n\221\337\007HAHz\224\206\005H\217\206\023HMAH\267\206\006\375H\263\206\024HT_DCP\037ERIOD\000\010\360\267\004\000\017<\354\267\0137\003HASE\000\007.\nh\027\001\327\267\022t\000P5\000OR\000\006\270i\007\023\003\037\025SINj\001S\344\376\233\007\300\000S\376\233\025\334\000TRE\007NDL0\003\003\006\327\007\003\r\321\016\036;\002MODED\005\010\0011\014\374\010\010\223,ighLow\034\357\320\002\202\334\001IBS\000\000\317\272\004\000\007\376\303\272\013ICHIMOK\341U\000\005\047\005\020\004\250\272\022IMI\304\000\000Q\005M\325\211\023\374\321\t\200\322\004KA\303MA\000\001\342\273\004\000\010\327\273\013KC\353KC\034\005C\252\273\022K""DJ\354\000\000@\005DJ\017\023STK/STEX\000\003Tn\005\016\002\370\031\025\033\007b\023URTOS\207ISK\001\004\302\005\001\013\277\014V\207OKV\326\272\005\000\007\312\275\013\245\264\001AoRREG\000\006_A\351\241\001\320\000\014\234\276\004\000\023;\024_\314\324\002CE\203PTR\007\n\006@\016\n\r=\025S\017LOPE\243\007\n\002\215\016\n\t\3400\026\342\327\002?\010\362\327\002\217,NLN\372\363\005N\273\277\022LOG10\360\000\002\233%\r\001\025\023ineM\037AMACD\000\001\234`\000\004p\370\300\004\000\013\360\300\0131\001FIX\000\004\000&\010\022\000\322\300\022b\001M\010\r\024\212\001\364\220\006\374\227\0015\024RKETFI\303MA\002\003\247\006\002\n\241\rSS\232.\000S\273\225\006MA\002\007\314\rV\017PMAV\317\273\005\000\010\364\r\375\000\rX\272\322\002MA\002\003\261&\002\n&\016\340\035\007\2254\371&\010\025\331\331\001MA_\376\340\331\001.__geti\237tem__\t\007\266\217\003M\207CGD\000\001\312E\014\000\210SE\037DIANM\001\002\366E\001\t\026\356LED\261\277\002M\001\004(\007\234\277\027\265M\254@F\270\230\005MF\377\223\023M\177IDPOINT\000\005\010\201\204\005\020\004\303sI\206\004\001\004)\010\326\300\001\036\035\024NMIN\264C\001\004b\006|\021\003\036\026AXMIN\347E\200\000\0106\007\375L\251\205\0148\002 \n\212\025U\177S_DIMIN\003\002P\225\007\003\tK\0160\001M-\004M&\013\361M\362\025\360\007\243\206\023OMMO\372C\006O0\024ULTMU\361L\322\213\005\000\010\247\311\013NATR\361N\273\304\007\000\010\031\014ONEN\327VIN\360\233\006N\342\233\024Ne\037arOBV\000\000\255\312\004\000\007\372\241\312\013O\222\314\003DictO\373ut\224\332\002PERCE\007NTB\000\005\357\312\004\000\014\350\312\013-\004\007ILE\000\007*\013\030\000\323\312\022g\004\017RANK\000\010f\013\031\001\047\023\rL\211bPL\201i\000\013\231\014,\002!M+\003\202e\000\013\312\014P\213\241\001\373\005N\277\311\024PSO\000\000\240%S\212\312\023\257PVIP\250\237\006P\232\237\024P\307VOP\202\217\006\000\007\336,VT#PV\246\220\005\000\007\372\315\013Q\227\251\002\000\003x\261\316\004\000\n\250\316\013RMAR\325\235\006]R\321\235\024ROC\000\000P\000\001\340\203\317""\004\000\010A\014(\000+\001100<\000\004(\007R100\336\316\022\\\001\360\034\010\014\025r\007/\024GERS}S\275\262\001ELLRO\002\t\230\256\006\002\020\202,SI\316\243\007\277\243\025R\013VI\000\000R\003\001\211%\017\000\306\023z\243\243\006R\225\243\024RVOL\000\001\306A\006OL\2203\357\356\001\301\347\001Re\373al\257\312\002ARSAR\007EXT\000\003\236\322\004\000\n\225\322\013+\000\354\033\007\350\321\022SI\215\310\001INHaS\001\000I\005\001\007@\014IN\031\007\2708\024;\006Y\023MAS\323\242\006S^\317\242\024SMIS\301\227\006S\275\227\024\017SQRT\000\001\375\005\014\000\313\023?QZMOMS\001\002#\006;ZM\260\212\024STC\000\000\321%\375T\334\227\023STDDEV@\000\003\"\006\017\001\3143\325\341\001\331\341\002F\000\003\336U\006OCHF\031\027RS\201I\214\342\005&\t\341\250\025\273\342\002O\t\331SU\017BSUB\261e\001\006\247l\215\251\t\373SU\242\215\023SUPER\340\337\234\002\000\007O\006\023\005\335sWAK?_2PHPS\001\005\301\204\005h\001\014\275\204\0143\001B/\003BP\047\t\033BPN\027BU\214\264\001e\002\005\003\370,\n\030\002\213\027GAUSS@\241\002\005\002\233\t\005\t\225\020\326\004H\233\n\371H\221\024\245\335\002Shado\001w\232\322\001\004\003\233\322\002\017\003\232\322\005\004\007\022\010\361s\244\332\003\252\332\003\226\246\001opy_\376\340\331\005__deepc\376\005\013reduce_\037_T3T3\341\332\004\000\006\324\332\013\177TANTANH\000\001@!\005\014\000\260\332\022\264\326\007\245\326\025\332\366\001C\000\002\374\345\333\003\000\010_Clone\336\005\tOpen\000\rAn\337dFill,\tPe\373ek<\tUpdat\230<\n\240\345\002v\002OS\000\004c\010O\343S_a\006\005\004Z\tOS_\356Y\006OS_S\010OS_\000P\007\264\010E\007T\002\247\tA\007=\t=\007\325D\373\370\001D\000\003D\210\047DD\330\232\006\004\004\375\010DD\230\006DD6\225\010DDM\010OS\362\"\265\335\002\000\340&\303\335\002\336%\004\006O\t\345\335\001\330%\361\335\002X\323\047\200\336\002\321&DR\265\002R\251\010\265R\252\007R\371\rDR\252\007R\252\250\tR\201(X\210\"XT\003X\252O\tXQ\010XK\017XS\010XRR\nXS\n\326(X\327\047X\234\016\025X\327\047X\325)X\256H\242H\242G\300\346\016\240G""\235I\275g\370\303\001\375\374\001MA\000\205\205\007\240\337\001\203\205\005\004\005\374\204\010\277\337\001\373\204\005\313\337\001\250\365\204\007\331\337\001\362\204\006O\325\375\001O\333\205\007O\252\354\204\006O\226\204\rO\350\204\006O\344\204\010O\252\343\204\007PH\002PC\010PE\007P*?\016PG\007PF\tPH\010\245\340\001\000\367\376\001\245\340\004\000\010\216\207\007\270\340\005\220\207\005\004\t\215\207\010\000\337\340\005\220\207\005\357\340\005\216\207\007\201\341\005\217\207\006\351\340\002\367\207\006 \367\340\002Y\t\267\206\r\230\341\002S\t_N\013\215\207\007;SI\356\210\001SIN\000\004\333\210\007\000\245\341\001\331\210\005\004\005\322\210\010\304\341\001\321\210\005\320\341\001\313\210\007\314\336\341\001\310\210\006SIF\t\277\210\006SI\266\352\207\rSI\275\210\006SI\272\210\010S\tI\272\210\007\345\212\002_\377\341\002\203\212\006\215\342\001\200\212\005\000\004\005\371\211\010\254\342\001\370\211\005\270\342\001\362\211\007\306\342\001\357\211\006UT\231\207\002T\223\207\010T\224\207\007T\215\207\016\025T\224\207\007T\222\207\tT\223\207\010\334\342\002\313\213\001\000\336\342\003\264\213\006\355\342\003\263\213\005\004\007\256\213\010\220\343\003\257\213\005\000\236\343\003\253\213\007\256\343\003\252\213\006\224\343\004d\003\211\343\003a\010\000\232\343\003d\007\006\007c\n\301\343\003h\007\321\343\003h\t8\343\343\003\241\214\005\306\343\003TA_\310\343\004\223\215\005\000\327\343\004\222\215\004\003\010\215\215\007\372\343\004\216\215\004\210\344\004\212\215\006\024\230\344\004^\007W`\002W\364\215\006\221\344\001V\006\021W\261\214\014\256\344\001P\006W\201\215\007\306\344\001\262\006\007ETA\265\001\250\344\001\256\006\265\344\001\255\005\000\004\005\250\010\324\344\001\251\005\340\344\001\245\007\356\344\001\214&\333OP\216!OP\243\007OP2\263\216\005B\004\004\376\010OP\261\216\005\231\345\0016\371\007OP\256\216\006CC\234\206\001\356\344\001\000\365\217\005\372\344\001\361\217\004\003\005\351\217\007\227\345\001\347\217\004\242\345\001p\340\217\006\257\345\001""\334\217\005\224\345\006TA_\226\345\007\000V\006\231\345\006]\005\004\n`\010\302\345\006i\005\323\345\006\000m\007\346\345\006r\010\330\345\010|\003\332\345\t|\010\361\345\t\000\202\007\006\r\204\n\244\346\t\214\007\272\346\t\217\t\322\346\t\000\224\t\267\346\003\225\004\271\346\004\214\t\314\346\004\211\010\007\010\000\202\013\367\346\004\201\010\211\347\004{\n\235\347\004\230)\375\346\007\000\235$\377\346\010\230)\226\347\010\231(\007\014\226+\311\347\010\000\231(\337\347\010\227*\367\347\010\270I\332\347\004\272D\334\347\005\000\262I\360\347\005\260H\007\t\252K\235\350\005\252H\260\350\005\000\245J\305\350\005\303i\243\350\t\312d\245\350\n\307i\276\350\n\000\312h\007\016\311k\365\350\n\316h\215\351\n\316j\247\351\n\000\361\204\t\204\351\n\371\204\004\206\351\013\367\204\t\240\351\013\373\204\010\007\017\000\373\204\013\331\351\013\201\205\010\362\351\013\202\205\n\215\352\013\244\207\010\352\351\n\000\260\207\003\354\351\013\262\207\010\205\352\013\272\207\007\006\017\276\207\n\274\352\013\000\310\207\007\324\352\013\315\207\t\356\352\013\242\t\316\352\010\246\004\320\352\t\000\240\t\350\352\t\240\010\007\r\234\013\235\353\t\236\010\264\353\t\000\233\n\315\353\t\371\211\010\257\353\005\200\212\003\261\353\006\375\211\010\305\353\006\000\200\212\007\006\n\377\211\n\362\353\006\204\212\007\205\354\006\204\212\t\232\354\006\000\177\t\375\353\005\205\004\377\353\006\201\t\224\354\006\203\010\007\n\000\201\013\303\354\006\205\010\327\354\006\204\n\355\354\006\226\214\010\310\354\014\000\244\214\003\312\354\r\250\214\010\345\354\r\262\214\007\006\021\270\214\n\240\355\r\000\304\214\007\272\355\r\313\214\t\326\355\r\260\t\262\355\014\266\004\264\355\r\000\262\t\320\355\r\264\010\007\021\262\013\215\356\r\266\010\250\356\r\000\265\n\305\356\r\266\n\244\356\010\270\005\246\356\t\260\n\277\356\t\000\256\t\010\r\250\014\366\356\t\250\t\216\357\t\243\013\250\357\t\000\303\220\010\203\357\013\320\220\003\205\357\014\323\220\010\237\357\014\334\220\007\006\020\200\341\220\n""\330\357\014\354\220\007\361\357\014\362\220\t\214\360\014\251\tO#JI\244\004\363\357\004\000\013_\247\t\367\357\005\000\242\010\007\t\231\013\244\360\005\226\010\267\360\005\216\n\314\360\005D\206\014i\r_g\013\242\243\014\263\361\004__\013\005_Y\r_\243I\367\360\t\247D\371\360\n\241I\000\222\361\n\241H\007\016\235K\311\361\n\237H\341\361\n\234J\000\373\361\n\240\225\010\334\361\006\250\225\003\336\361\007\246\225\010\363\361\007\252\225\007\000\006\013\252\225\n\242\362\007\260\225\007\266\362\007\261\225\t\314\362\007\206\t\000\251\362\013\221\004\253\362\014\222\t\306\362\014\231\010\007\020\234\013\000\201\363\014\245\010\233\363\014\251\n\267\363\014\252\017\336\373\001\253\n\000\237\363\002\242\017\266\363\002\237\016\r\006\230\021\351\363\002\227\016\000\377\363\002\221\020\227\364\002\216\231\010\353\363\r\235\231\003\355\363\016\242\231\010\000\211\364\016\255\231\007\006\022\264\231\n\306\364\016\301\231\007\341\364\016\311\231\t\000\376\364\016\267\t\334\364\n\272\004\336\364\013\263\t\370\364\013\262\010\000\007\017\255\013\261\365\013\256\010\312\365\013\252\n\345\365\013\206\234\010\000\311\365\003\213\234\003\313\365\004\206\234\010\335\365\004\207\234\007\006\010\204\234\n\000\206\366\004\207\234\007\227\366\004\205\234\t\252\366\004p\n\215\366\005y\005\000\217\366\006x\n\245\366\006}\t\010\n~\014\326\366\006\205\t\000\353\366\006\207\013\202\367\006\211*\347\366\001\216%\302\366\006\000\016\000\240\213\t\374\366\t\245)\377\366\007\261\260\001\247,\234\367\007\257)\240\262\367\007\262+\312\367\007\233\016x\017_u\r_Ji\024_k\r_d\017\273\213\tH\204\370\004\000\256d\206\370\005\253i\232\370\005\256h\007\t\255k\307\370\005\000\262h\332\370\005\262j\357\370\005\262\204\t\323\370\003\202\005\307\370\005\000\000\r\232J\371\370\006\225)\007\013\221\014\235\371\006\226\t\000\262\371\006\226\013\311\371\006\224\017s\020q\017\222P\267\372\003\005_l\016_g\020\233J\356\371\010\332\206\004\360\371\t\000\333\206\t\210\372\t\342\206\010\007\r\345\206\013\275\372\t\356""\206\010\324\372\t\000\362\206\n\355\372\t\210\245\010\310\372\014\226\245\003\312\372\r\232\245\010\345\372\r\000\244\245\007\006\021\252\245\n\240\373\r\266\245\007\272\373\r\275\245\t\326\373\r\000\260\t\274\373\002\254\004\276\373\003\236\t\320\373\003\226\010\007\007\000\212\013\371\373\003\204\010\212\374\003y\n\235\374\003p\n\373\373\t\000}\005\375\373\n\200\n\227\374\n\211\t\010\016\216\014\320\374\n\000\231\t\351\374\n\237\013\204\375\n\366\250\010\346\374\004\374\250\003\341\374\014\000\000\022\203\226\t\376\374\r\237\251\007\006\021\245\251\n\271\375\r\261\251\007 \323\375\r\270\251\t\357\375\r\267\017\214\020_\206\016\251\226\017\n\355\376\004_v\016_l\020\270\226\t\225\376\t\301\253\003\000\227\376\n\302\253\010\257\376\n\311\253\007\006\016\314\253\n\344\376\n\325\253\007\000\373\376\n\331\253\t\224\377\n\335\254\010\361\376\013\242\004\334\376\013\237\t\000\366\376\013\242\010\007\017\241\013\257\377\013\246\010\310\377\013\246\n\034\343\377\013\245\rINE\244\010\322\377\001\231\r\000\346\377\001\224\014\013\005\213\017\213\343\001\210\014\236\343\001\200\016\374\263\343\001\235\257\010MARUBO\003ZU\244\257\003\006\005\217\234\t\013\006\244\257\007\006\n\200\243\257\n8\006\250\257\007K\006\250\257\t`\006~\nT\033CH\324\374\001OW\206\005\010\006\203\013\000\r\007\210\t\010\013\210\014@\007\216\tV\007\217\013\t\227\016\211\233\016l\t\250\265\010UO\331\215\010O\323\215\016O\324\215\rO\315\215\024\325O\324\215\rO\322\215\017O\323\215\016PI?ERCING\254\266\003\006\005\000\227\243\t\013\006\254\266\007\006\n\253\266\n8\006\260\266\007K\006\370\260\266\t`\006\260\267\010RICKS\017HAWM\361\311\001\274\267\001\006\010\250\244\t\000\013\t\300\267\007\006\r\302\267\n>\t\312\267\007T\t\315\267\t\374l\t""\223\nSEFALL\014\262\376\005\337\270\003RI\010\013\234\013\r\014\243\t\000\010\020\245\014J\014\255\te\014\260\013\202\014\223\272\010\177SEPARAT\351\210\001\017INES\241\272\003\006\014\223\247\t\013\r\000\257\272\007\006\021\265\272\nF\r\301\272\007`\r\310\272\t|\rN\260\tHOO\266\001\330\242\007S\007\010\000\251\n\014\t\250\010\007\r\242\013A\t\242\010X\t\310\235\nq\t\231\013R\330\353\002\326$HO\000\t\003\222\014\016\004\221\n\t\010\213\r=\004\213\npQ\004\206\014g\004\351IPIN\271\212\001=T\277\277\002CDLS\007\007\340J\000\014\010\336H\007\014\327K?\010\326HU\010\320J\374m\010\211\204\tTALLED\013PA\245\324\001N\215\204\004\007\n\206\204\n\014\013\000\207\204\010\007\017\203\204\013E\013\205\204\010^\013\202\204\ny\013\374\250\n\252\210\001ANDWIC\001H\254\005\010\010\245\013\r\t\246\t\010\r\242\014\300D\t\244\t\\\t\241\013v\t\213\302\010TA\007KUR\216\257\004\006\003\371\256\t\013\004\214\302\007\000\006\010\211\302\n4\004\214\302\007E\004\212\302\tX\004p\n\177SUKIGAP\220\303\003\003TA\010\004u\013\r\005z\t\010\tz\014\300<\005\200\tP\005\201\013f\005\203)HR\027UST\355\214\006T\007\005\210*\014\006\000\215(\007\n\215+;\006\223(O\006\224*e\006\026\225IRI\260\254\007T\007\003\226J\014\004\000\231H\007\010\227K7\004\233HI\004\232J]\004\376\260\306\010UNIQUE3\003RI\362\235\001\274\306\002\006\t\252\263\t\013\n\303\306\007\000\006\016\306\306\n@\n\317\306\007W\n\323\306\tp\n\233\t\377PSIDEGAP_2CROW\275\214\004U\007\013\000\240\n\014\014\245\010\007\020\245\013G\014\253\010a\014\010\254\n}\014\223\311\010X\264\004\265\217\013\006\r\225\266\t\000\013\016\262\311\007\006\022\271\311\nH\016\306\311\007c\016\316\311\t\034\200\016\330\312\006EIL\330\312\001\004\000\274\267\007\000\t\001\257\313\005\004\005\255\313\010(\001\261\313\0054\001\260\313\007\250B\001\262\313\006\375\223\002G\222\270\007G\225\267\006G\252\211\267\rG\213\267\006G\204\267\010G\320\314\007H\010\344\214\003\003\001\227\332\001C\004\002\355\270\007\t\003\342\314\005\000\004\007\342\314\010,\003\350\314\005:""\003\351\314\007J\003\355\314\006IH\214\316\010h\001_P\010\305\270\rH\220\316\007\030&\002H\n\222\316\007KS\251\211\002\004\000\244\272\007\000\t\001\227\316\005\004\005\225\316\010(\001\231\316\0054\001\230\316\007lB\001\232\316\006MF\231\316\001MF\374\272\007\000\t\000\356\316\005\004\004\353\316\010&\000\356\316\0051\000\354\316\0078>\000I\007\334\331\001CMO\310\236\002\004\000\026P\010OU\334\272\006M\005\004Q\t\034\000\000U\006(\000T\0106\000U\010F\tF\010\242\273\rQM\265\332\006\213\000\237\273\010M\266\332\007C\340\360\001\003CK\235\320\001\004\003\204\275\007\t\004\372\320\005\004\010\200\373\320\010.\004\202\321\005=\004\204\321\007N\004\211\321\006O\007RRE\256\205\002\004\002b\010\024\001\370\274\006\001O\005\006_\t\036\002a\006,\002^\010<\002\214^\007\310\226\002OS\207\220\002\004\000\314\010S\001H^\007\005\004\305\t\034\000\305\006(\000\300\010@6\000U\010F\tF\010\246\276\r\251\343\007C\246\343\t\215C\246\343\010CR\226\333\002\003\001\202\300\007RD\261\332\004\267\323\001R\263\332\016\047\002\367\323\005R\272\332\t\324A\002\370\323\006T\317\324\002T\220\333\007CTEI\336\277\006T\212\333\r\031\001\314\324\005T\217\333\010\0001\001\313\324\006\207\353\002\315\324\001\217\353\003\244\325\006\236\353\003\250\325\005\000\004\007\250\325\010\301\353\003\256\325\005\317\353\003\257\325\007\337\353\003\263\325\006UV\212\326\002V\260\010V\261\007V\252\016\255V\314\334\006CV\257\tV\313\334\007D\003EM\213\330\001\003\001\330\347\006\010\002\326\347\004\003\006\200\317\347\007\047\002\316\347\0043\002\310\347\006A\002\305\347\005D\237IVTA_\003\000N\007I\005V\302\347\005D\004\004K\010\032\000M\005%\000\370J\0072\000J\006ONCHI\002\366\236\002D\004\004\253\007\t\005\261\005\004\t\262\010\0000\005\271\005@\005\273\007R\005l\007\227\347\002\216\347\nD\216\347\t\206\347\020D\215\347\010\211\347\013\211\347\nD\244\343\002UD\236\343\010D\237\343\007D\230\343\016D\237\343\007\325D\235\343\tD\236\343\010D\221\347\001DXT\302G\260\346\006D\250\346\rD\256\346\006D\253\346\010\rD""\253\346\007EF\232\342\001\003\000\362\353\006\010\001\000\357\353\004\003\005\347\353\007%\001\345\353\0040\001\336\353\006=\001\304\332\353\005\350cE\264\346\010\010\001K\005MA\030\202\353\014%\001K\005MA\322\353\007=\001I\007\256\344aEMV\234\007M\337fEP\004\004\233\010&\000J\006VG\tV\245\354\006EE\251\352\001E\210\231\002\003\000\364\007R\237\207\006#ER\262\343\r%\001\366\005R\267\343\010=\001T\365\006\365\352\007E\365\352\006E\355\352\rE\363\352\0065E\360\352\010E\360\352\007EX\345\336\001\003\000J\216GX\340\336\006E\004\004\215HX\340\336\006\3640\001\216GX\337\336\007FISH\000\361\002\003\003\343\357\006\010\004\343\357\004\003\010\336\357\007+\004\340\337\357\0049\004\333\357\006I\004\332\357\005FLOAO\206\355\001\003\002\\\007\022\001\335\357\005F\004\006\000Y\010\034\002[\005)\002X\0078\002X\006\303\356\003\201F\225\356\001\251\361\005\010\002\273\005\256\356\001\366\277\013F\340\272\356\0103\002\263\007\333\356\001\262\006RAC\013TA\327\224\001F\004\003\233\047\t\004\236%\000\004\010\234(.\004\240%=\004\237\047N\004d\010\000\225\212\002j\000\342\354\010\010\003_\007\241\205\016)\003[\007\370\252\205\tE\003\202FUNC_F\367LAG\357\362\001Func\377TableAll\337ocTA_\010\006Fr\335e\361\363\001Get \001Ha\367ndl\005\010Info\367TA_\033\000Inpu\377tParamet\373er\016\007Lookbwack \003Opt\021\025\367Out,\023Runt\367imec\005roupR\236\nG\t\006\245\004H\335\345\001H\230\357\007\213HA\271\364\005H\321\207\r#\000\230\365\004H\250\324\207\0109\000\213\365\005H\232\215\002H\345\357\010H\001ME\007\240\210\016%\001I\005\245\210\t=\001J\006\377T_DCPERI\005O\312\364\001H\004\007\331\366\006\010\t\336\366\004\003\r\200\336\366\0075\t\304\005I\010\345\366\006]\t}\013H\003AS\212\350\001\204\003\t\001z\014\016\002{\n\000\t\006w\r9\002y\nK\002v\014_\002\204(\001P\177\000\222\207\002\212 \006\003\377\t\013\004\377\007\000\006\010\372\n4\004\373\007E\004\367\tX\004\201H\211S\347\270\003\205@S\335\270\t\010\005\366\047S\010\317\270\017-\005\356\047S\314\270\nM\005\360H\211\377\002\001Lk\006""\006\006\361I\013\007\364G\006\013\362J\300:\007\366GN\007\365Id\007\202\rMO\001D\375D\234\002\013\001\201\016\020\002\203\014\013\006\200\200\017?\002\203\014S\002\201\016i\002\375\373\005I\001B\200\374\001\003\000\350\374\006\010\001\345\374\004\003\005\335\374\007\300%\001\333\374\0040\001\324\374\006=\001J\006CH/IMOK\305\273\001I\004\004S\007\000\t\005Z\005\004\t\\\0100\005d\005@\005g\0074R\005\300\006M\331\364\001IM\371\363\007\010\001\"\301\005M\363\363\r%\001\301\005M\370\363\010=\001\336\223&NPUT\254\212\006In\177itializ\222\377\001\003KA\304\226\002\003\001\241\377\006\010\002\237\377\004\003\006\200\230\377\007\047\002\227\377\0043\002\221\377\006A\002\216\377\005K\326\226\375\001KCL\007C\210\377\005KC\210\262\376\014#\000H\005C\200\377\0079\000C\006D\177JTA_KDJ\232\007\000\t\000\233\005\004\004\227\010&\000\231\0051\000\226\007\354>\000\226\006STO\001STE\005X\000\006T\371\007\023\002\250\006\004\007\374\010\000\035\003\201%+\003\201\047;\003c\010P\tN\010\016\373\rST_I\007\202(\025\000\321&\337URTOS\322\252\001_K\000\004\004\262G\t\005\270E\004\t\271H0\005\300E\320@\005\302GR\005\307FV\350\374\001KV\210\343\374\007\010\001\237eV\337\374\r%\001\235eV\360\346\374\010=\001\266\375\005\254\357\001ARRE|\237\273\001\003\006_ANGL\343\364\001\000\003\014\315\377\006\010\r\276\376\004\003\021\306\376\007=\r\324\376\004\340T\r\335\376\006m\r\242\016|\020INT\037ERCEP\325a\305\007\r\006\002\026\031_\264\016-\007\355\324\013E\021\274\016j\007\300\276\020\207\007\303\017\273.e\025\257.SL\003OP\250K\r\002\243P\022\003\245N\r\007\010\242QG\003`\023_\243Pw\003\244O\316P\254\205\204\006\312\377\001LN\336gN\215FN\250\351\376\014#\000\271eNs\010N\354\376\006L\177OG10TA_\003\002\000\260\204\007\022\001\342F\004\006\233\204\010\034\002\224\204\005)\002p\210\204\0078\002\364\376\005\372\241\002MAC\270\306\001\000\003\001\300\210\003\003\004\356\373\006\010\005\344\377\004\003\t\344\377\007\300-\005\352\377\004<\005\353\377\006M\005q\007CD\003FI\255\237\001|\001\007\000b\n\014""\001d\010\000\007\005a\0131\001d\010@\001b\nQ\001c\t\242\304\n_\303\010\273\375\014\215!_\275\010_\004\270\n\227\374\006M\357\214\003\003\001\240(\227\226\007\024\002\300\344\333\013\047\002\231&\311\237\tA\002\215GRK\033ET\374\240\002MA\005\003\202H\n\004\000\205F\005\010\203I1\004\207FA\004\206HS\004\232\203gS\362\250\002MA\005\000\362HS \357\250\007\025\003\304\r+\001\356FS\360\250\tE\003:\344gV\241\377\001MAV\234\377\007\010\002\026\320fVP\372.V\240\377\0063\002\305h\355V\241\377\007MA\303cXIN\203DE\000\010\201\244\007\037\000\027\002\355GX\000\006\007\272\204\t\020\004\276\204\006 \004\275\204\0102\004\272\205\007\000Y\nV\010\306n\353\244\006\255\000\311i\354\244\007\221\244\010`\275i\220\204\016\225\204\007\221\204\t\221\204\007CG\316\206\002\000\004\000\274\206\007\t\001\273\206\005\004\005\265\206\010(\001\265\206\005\2604\001\260\206\007B\001\251\207\006ED\376\250\003M\000\004\002\232\207\007\t\003\233\207\005\004\007\227\207\010,\003\231\207\005\360:\003\226\207\007J\003]\010PRIC\000\206\323\001g\000\006\002`\t\013\003d\007\006\007c\n\2002\003h\007B\003h\tT\003\207\211\006\356\205\003FF\225\256\007MF\226\256\006\003\005\351\210\010F\333\254\006\364$\001\342\210\007F\332\254\007MIDP\007OIN\243\223\001\003\005\317\211\007\025\004\203\210\006\000\004\t\320\211\010\037\005\324\211\005/\005\323\211\007A\005\320\212\006\000s\000\267%\004\004i\n\327!j\t\007\006h\013\200\"\002k\0102\002i\nD\002l\007\232\305\001M\243IN\376\205\006\004\004\347\010N\371\205\013I\001N\362\205\0220\005\351\0060\004\347\010B\004q\010\366\377\206\004IN\345\206\005TA_M\000\004\007y\t\376\206\016\034\010\244\212\0146\010\204\007\306\207\006@\205\t\333\207\006\206\013i\014\343G\244\001_Z\021\345_\\\n_U\014\367\213\007INU\017S_DI\341\003\006\002\335)\013\003\000\255\216\005%\004^\0172\003\337\047B\003\335)T\003\324\332Hr\001Ml\007Mf\rM_\332h\013M`\023M_h\013M_\002f\rM\340\t\271i\272(\260/\264(\257*\252\260\216\007O\271\002O\256\010O\252\007O\252\236\016O\240\007O\231\tO\225\010U\001L\336""\206\002\004\000\256\221\007\t\001\255\221\005\004\005\247\221\010\300(\001\247\221\0054\001\242\221\007B\001\213\377\005NA\001T\240\277\001\003\001\220\371\006\010\002\342\376\004\003\006\373\377\007\200\047\002\366\377\0043\002\354\377\006A\002Q\006\315\266\002N\252\307\266\010N\310\266\007N\301\266\016N\310\266\007N\032\306\266\tN\307\266\010OB\364\265\001\003\000\273\372\006\000\010\001\315\376\004\003\005\372\377\007%\001\356\377\0040\001\335\377\006\\=\001\317\377\005OUT\354\237\tP\231\231\001?NTBTA_\003\005\247\373\006\000\010\006\276\377\004\003\n\260\377\007/\006\250\377\004?\006\233\377\006\010Q\006\221\377\005o\004I\316\233\002\003\007j\r\035\000\001_n\013\n\005m\016\047\001r\0139\001r\r\017D\010\212*\316\371\006ROGE\377RSSATCHE\001L\300\317\001\003\013\371(\034\t\232\047\005\016\214I\000&\n\231F<\n\256(T\n\340f\216\310\002\201\310\001\000\226\377\005\206\310\010\376\307\017\252\310\001\341e\202\310\t\302\310\001\263\204\006\016\315\306\002RVI\212b\004\000\337g\t\001\000\341e\004\005\336h(\001\277\204\0054\001\354GB\001PU\010F\t\307f\233\307\016R\242\307\007R\240\307\t\035R\241\307\010RVO\221B\004\000\234\010\003OLL\007\005\004\233\t\034\000\236\006(\000\370\234\0106\000\272\206\006estor\373eC\331\273\002Defau\377ltSettin\177gsTA_SA\237\322\001\000\003\000\335\256\003\003\003\356\377\006\010\004\350\377\004\003\010\335\377\007\000+\004\330\377\0049\004\316\377\006I\004\307\377\005k\000P\t!_O\007\256\377\014%\001I\007_D\t\242\377\006v\301\314\002SI\257\340\001SIN\202\337\001\000\003\001\262\007\021\000X\006\004\005\255\010\033\001\256\0050\047\001\252\0075\001\251\006INF\tF\010P\242\r&\000E\007\247\010I\350\250\007S\217\315\007\244\345\315\007\334\315\016S\322\313\006\335\315\tS\317\313\007S*\323\313\002S\337\306\010S\257\275\007S\331\306\016%\001\240\227E\336\306\t=\001\220F\314\265\002S\306\265\010S\005M\261\316\006S\300\265\016%\001J\006\257\316\010=\001\026\343FQR\272\263\001S\004\000\306g\t\001\000\306e\004\005\301h(\001\302e4\001\276gB\0016P\007ZM\337\230\002SQ\005\001S\010\000\n\002W\006\005\006V\t-\002[\006;\002[\0104K\002\245\204\006T\233\266\001ST\226\266\007\010\001\"\205\205\005T\222\266\r%\001\377\204\005T\231\266\010=\001nI\007DDE\271\316\001ST\005\001\000\337\205\007\t\003S\006\030\002\276\305\013+\004Y\006;\002h\337\205\007J\003\261\007O\223\345\002ST\005\000 \357\327\001\003\003e\010\024\001\367\205\006T\005\006\316\206\010\000\017\003\311\006,\002e\010<\002c\n\322\323\003n\002\000\276\212\t\010\006\261&\231\000\322\323\017/\006f\t\337\323\n@Q\006\331\n\306\013\306\n\305\207\r\211!_\305\t\351_\302\013\321\207\007U""\376\231\001SUB\000\200\211\007\t\000\377\210\005\004\004\371\210\010&\000\371\210\0051\000h\364\210\007>\000\362\210\006U\320\237\001SU\305\237\007\000\010\001J\006\265\237\r%\001J\006\260\237\010=\001I\007\047PER\360\300\002\305\212\001U\005\005\251\010\000\n\006\262\006\005\n\266\t5\006\300\006G\006\305\010\374[\006\311\212\006WAK_2P\005H\332\347\001S\004\005\266\213\007\t\006\273\213\005\004\n\200\273\213\0102\006\301\213\005C\006\302\213\007V\006p\nB\226r\006BPk\013B\261\316\006\225\002B \357\255\r\016\005g\tA\000c\013B\300\316\007@\003\021U\244\355\001\266\215\001\366\001B\t\002h\014\016\003\002\346\tB\t\007\345\014:\004v\nN\003x\014|c\003\352*GAUSS\202\005\000\010\002\353+\r\003\356)\010\007\354,8\003\360)\240J\003\357+^\003\356J\357GH\357,H\n\360+H\3512H\267\321\006\270bA\000\341K\215H\363(et\277\220\003\262\220\t\021\000o\377mpatibil\267ity\315\220\001et\375\314\nI\277nteger\007\020R\367eal+\003Unst~\236\316\001Period\222\221\001\377hutdownT\317A_T3\000\002\351\376\006T3\000\222\345\005\003\004\350\377\007\030\000\337\377\004\"\000\321\377\006.\000\202\306\377\005T\326\371\002\003\000\257\360\001\003\001L\007A\005N\236\337\006T\004\005O\010\033\001T\005\047\001 T\0075\001U\010F\t\240\006A\214\272\r\206\000\245_E\007_B\t\276\346\006T\271\334\003T\002\306\327\tT\310\327\010\003\006\366\010\312\327\0103\002\373\007>\313\327\tTRANG\223\315\001\003\003\000\321\047\023\002\326&\004\007\330(\035\003\337%+\003X\341\047;\003\346&RI\375\335\002T\004\001\202[\010I\335\317\007\025\003\247\324\013)\003Z\006I\360\222\331\tE\003V\010\220\333\001TRIX\200S\t\217\333\006\024\002L\016\223\333\0063\002\262\010I\306\226\333\007TS\244\347\001\003\000\356gSF\000\360f\004\004\357h\032\000\363e%\000\362g2\000T\364f\361\342\002T\371\223\010T\352\342\007T\342\342\016\325T\375\223\007T\345\342\tT\376\223\010TY\001P\277\264\005\003\005\236\205\007\025\004\245\205\006\004\t\251\205\010\300\037\005\262\205\005/\005\266\205\007A\005\204\377\005UL\001T\204\330\003\003\003\351\376\006\010""\004\336\376\004\003\010\316\376\007@+\004\375\377\0049\004\363\377\006I\004\354\377\005V\226\231\002\000\003\000\313\377\006\010\001\275\377\004\003\005\252\377\007%\001\235\377\004\3200\001\213\377\006=\001J\006H\373\352\001VH\030\365\352\007\010\001K\005HF\334\355\014%\001K\005p1\000I\007>\000\235\006IDY\343\343\001\001V\004\001\240\007\t\002\244\005\004\006\243\010*\002`\250\0057\002\250\007F\002\376\006OR\374\312\001\007A_V\004\002\203\047\t\003\210%\004\007\200\210(,\003\216%:\003\217\047J\003\346&W\002\236\370\002V\004\000\347\047\t\001\352%\004\005\350(\200(\001\354%4\001\353\047B\001P\007\204\346\002V\001W\221\341\010\010\002Q\006\215\341\016\047\002Q\006\224\341\t\014A\002\351\377\005WA\344\327\001\003\000\326\377\006\010\001\000\317\377\004\003\005\303\377\007%\001\275\377\0040\001\262\377\006=\0016I\007VE\314\222\005WA\005\004T\010\000\n\005\\\006\005\t_\t3\005h\006D\005l\010,W\005\307\006CL\220\274\005W\004\004\320\007\000\t\005\327\005\004\t\331\0100\005\341\005@\005\344\007\\R\005\275&ILL\245\363\001W\004\001\000\300\047\t\002\304%\004\006\303(*\002\310%7\002\240\310\047F\002\236F\204\352\002\363IW\340\333\007W\300\212\345\016\244a\237E\217\345\t\274a\374\377\005ZI\007GZA\261\365\001\003\003\347\377\006\010\004\337\377\004\000\003\010\322\377\007+\004\313\377\0049\004\277\377\006I\004_\006\215L\300\353\003ZL\316\346\t\010\003]\005LAE\315\346\016)\003[\0057\002X\007L\332\346\007\374\237\354\001\257\347\001Stream\375T\001\007.open_\377and_fill\000\253\216\004\232\216\003%\004\001\t\036\r\364\215\001\360\215\002$\005\310\357\215\001^\003\032\016X\272\215\002 \006X_f\023\022SF\211\215\001\240\004SF\016\024\tI\333\214\001\035\005I4\023\254\214\005\230\214\005\364\004\200\001\013\361\013\354\213\003\350\213\004\245#\000\n\037\014N\377STABLE_A\377UTO_PREC\367_4U\002\0178VARp\331\213\001\365#\000\007\354+VHF\253\213\001\002\036\004H\343\023\367\212\002\373\212\003G\004\210\213\002\3351\340\277\212\003\304\212\004t\004\322\212\003\031\022WAP0\214\212\002\236""\004\230\212\001\022\023MA\332\211\002 \005;MA\262RWAD\251\211\001\350c\000\000\007\337k\355\210\006\365\210\007)\005\207\211\005\267q\251\210\005\000\260\210\006_\004\300\210\005\037\022\366\207\001\361\207\003\215\004\376\207\002.J\022MAW\315\006W\311\024\220\207\003\200\214\207\004\316\205\003\000\n\310\205\013\317\206\002\323\206\003%\004L\376\351\205\025_ARRAY_\337TYPES\274\347\002ti\377on__call__func\n\002F\001\005\377_check_o\357pt_i\270\347\001_vawlue-\010get\003\030\376.\003price_s\377eries_naYm\003\000W\007lox\000_\001\014\217data\222\0100\001\000\014sOtr_I\344\335\002\313\002S\312\004\274\r\003\201\311\003SERI\341\000D\377EFAULTS_\377PANDAS_D\227ATA\254\352\001E\t\005!\004P\217OLAR\022\n\013\003@\004T\377A_ReadLe\357ase_\001\t.__\177enter__\006\016\367xit\004\017redu\236\214 cyth\365!<\rs\377etstate_>\025\tWriter\006\004\007\200n\013\n\013t\006\"\nk\020B\nm\017_\367Pyx\001\000Dict\377_NextRef\376\345\002FUNCTIO\037N_NAM\310`\374\000\277a\256\003\001nno\275\002_\320d_\374\317m\277t_class\351_\320`\353\000m\315 _co{py\004\001deep\003\006\234\205\001\352 doc\037\001\364%_\341e\350#\300\204\0028\001\226\204\001flaOgs__\221\204\021[\tg\354%V\301@in\260B_\242\204\026_\254\204\003\337_main\240\001me\363ta\263\003\377@modu\033le\022\002ro\224a\357\204\002\230`\354\276\204\002\004\001ew\325\001pre\227par$\002p\334 \341\205\002s\371u\361\000\n\001resul\350\267`\026\001\206c_!\001typ\374W\000+\001unpickDd\001\211\204\n_\013\016\255h>\002v\230\240\002\236\326!qual\214\005\213\204\004_3__\214\204\r\t\005ex\212A\261\000\276\342\204\001_set_\310\005s\370\260(\251p\243\206\001___ta\237_vers\345\207\002\013\000e\375s\224\205\001_unico\245d\252!d\331a\307\207\001d\321\263\003s\274\253\217\002\337@s_is\203`r\277outine\370 o\347kupK\001\222\210\003suc\333ce\260`ta\361Cun\256W\000id_\001\014s\003\013r_etire!\002g\254\361\003\000\236\361\001\241\001\010\004\340\361\002\t\004\257\360\007\032\004\262\361\017`3\004\242\361\022\024\005\246\361\017i\004_c\353\243\t\372\r\005r\311""\361\003_info\232!\005u\325\243\004_p\330\243\002\321!i\264\324\347\006\337!r\233\266\003_c\373\362\002_@\305$\253A\237\266\002\202A\267A\030\004s\264\266\004\320\016\006x\r\343Aa\020s\313\244\004a_\377closea_h\377igha_lowka_\347\222\001a\231\004sa\314`\253al\000\0030\007\0031\205`o\337lumea\265@le\343ra\371\213\001\000\t\372\205\001lon}g\004\rshort)\t\216\025\rmax\000\020&\016A\004q=u\375Aannu\226\352\001\200\003\377ppendarg\376\000\000sarrays\177asciias\364\205\001\377asyncio.\273co\204\204\004sat\355\207\002a\333tr\211Cav\314\000ge\272\005\005g\237Cbbb\002\004e\377gidxbitb\377ytes2str\277c_keyc\306Dc\374\323\215\003\264Cstickcmh\234\000el\346Ccl\372\204\001\377in_trace\354\246\366\001\371 ne\374\"cmo\336\036\004olle\273\216\002sc>\341!n_staF\000\007\002~\020\000pycycl\233\004\207dde\370\205\001\234e\322\216\002\365\205\005d\377eltadesc\367rip\232\217\001disp\347lay\266\216\002\220\206\001docv\300@nt\271Bema\212\204\003\177emptyen\316\206\001\370\306 \352\000\314 swith\363en\356@\350@efac\327tor\000\003n\340 ow\276\005\004ormal\030\003w\375i\377\206\001std_maJ\355\210\001f\375 d\353\204\004\010\001k\001\010\037limit\035\001!\007\225\205\003\337first\004\004la\031g\201\213\002\205\213\003lo\274\207\002\354\207\001\351\220\001\201_\351A\004\002\345\205\001\r\002\346!\026\002o\003bj\313 \212\221\006?\003\231\221\005\302\220\001\246\221\005\201s\200\221\001\230\221\003\262c\006\007\350\220\002\237\221\001pf\354\371\005sg\227\371\001\000\002sh\243\372\002\331h\342@\277\205\001hi\333\275\001ylwenh\257\306\002iid\257`\337impor\350`rr\377orinindeAx\220\207\001c\t\223\222\003\324\221\001\000\007s\342\221\025\235i\277\254\003is_\253B\345\215\001s\367kkc\315\207\003keyk\377eyskijun\372\013\004w\213\205\001leftbwars\231\000gth\362\"\257move\266\222\002l\264\373\004l\277owlowe\307@1\256\232\210\003ma2\001\0053\n\0054\374\023\005\310\214\001maximu\357mmax*\004emosmir\004\006\000tre\304\374\001]np\000mis\317\000g\000\004\372\265\205\001s\344\215\003msgmu\377ltiplieryn\330\223""\001\334\223\001dtup\305 \177annbdev\000\002\275d\006\003upno\246\217\001s\272\262\300\001_\251Inum\335\224\003s`\006\001\350\224\006\010\003\361\374\002\025\001py\221c\277offset\000\003o\027nre\332\214\001e\345\234\001\351\234\001\245\257\001D\207\212\002\355\234\to\321\375\001\277\225\006\302\225\014sf\007\177ordered\216\215\001\377outoutar\347oon\277\257\001\004\005upo\177utbearp\354!\270\007\002\330\207\001\021\001ull\r\005d\177outfama\002\002\273st\t\003stk\023\001i\267she\317\215\001ha\276\212\002o\317utha\302\212\001\004\002lo\361w\014\002\311\002\027\000ighs\373top\001inpha\243se\207\216\002\206\261\002\000\007_\256\226\001o\237utjou^\002\276bs\353en\013\001s\302\001kst\277signal\035\001v\371o\000\003\t\006leads\263inW\001\300bba\357\000u\357tlowt\004mac\230\315\001\003\001\243\205\002ut\016\001I\006m\336\343\003maxo\026\001xi\365d\000\006x\223\005middcleS\004\345`&\001in#\004|\004\002 \007nusviG\001\377omentumo\177utnbele\n\001\377outpivotX^\003\003\005\371\005pl4\004p\270B\222\003\000_\200\224\0022\001u\261\221\003\000\010s\324\021\003\000\004s\332\231\001i\265Aqu\177adratur\351!\003re\261\"\003\001\221)\023\001\307\n$\001\037upper\267$\374 \353@\317span\201a\004\007bo{ut\346$slow\245a\214\004\001\226asm\362\001\003\000\243Fs\337queez\360Asu\347per\217\206\002<\001win\345g\254ds\010\001\260cten\347kan\362C#\005tri\363gg\352b\221\twt1o\377utwt2out\277zigzag\245\000d\203as\244\211\002\251\211\002\245\233\002\256\211\007\275\211\002s\337penet\261\217\003pe?rcenti\312\214\005\220\221\003\277spolar\003\000p\024\361\233\002\366\233\0020\374\233\0021\373\233\t\202\234\016\323\234\003\361s\246\234\002\003\000\317\215\001tyra\047nge\363\225\001\006\000k\360\221\003\211A\372\215A0\222A1repl7ace\253\226\003sr\230\000\303\267\001\246\275\206\001t_\327\224\001\370\000h\265\211\002r\003oc\220\211\004\007\000\221\211\004\021\000\222\211\004\033\000\340\223\211\004%\000\362\214\003.\000j\004uns\377schemase\357cond\340\004elf\374\332C\331\217\004sensit\037ivity\343\235""\003\241\226\001\307\236\006\200\320\220\001\262\226\001\232\214\t\006\007\216\236\002\321\226\001\234\214\007s\343et\203\226\005\334\312\003\371\227\001sig\340\203\000\301\206\002\227\216\003\314\206\003\362$kip\301_\364\215\002\320b\270\216\004\006\003\224Dlo\003wk\r\010\303\216\005\201\204\001\306\216\002\212\204\001R\004wlow\311Dma1\001\006\3052\013\0063\025\006\314\213\004\346\220\002le\377velstart\370\242\240\002\303\235\002\311\235\001icmet\377hodstdde\335v\242dtop\002\005r2\352\221\222\002s\267\250\001k\014\006eam\373sy\311\272\003talib\341.\303\230\001\005\000\337\204\003\377\225\003thr\377eadingti\177meStamp\005\001\250\025\004\020\000\245\226\0031\013\0072\026\0073\377to_numpy\370\325\232\001\330\232\002\270\230\004updat\321e\000\003\375\226\002\013\003s\330\206\002us\240\307\241\001\236\237\003\210\242\002\345\003\330\231\004v\336\221\003v\364\340\225\002\000\003d\222`sorw\247arn\000\001\252\316\001w\254\222\005\200\377\001\330\004\005\340\t\027\220\377q\330\010\013\2104\210q\377\330\021\022\330\020\036\230n\377\250A\330\014\035\230Q\320\377\036/\250q\330\014\036\230}a&\001\007\200u\210C!\000\377\010\020\220\005\220Q\330\014\377\r\330\020\026\320\026+\250\3751*\001 \240\013\2501\330\373\010\017A\000\004\013\320\013\034\357\230A\230Q/\003y\220\003\275\220\023\004\t\022\220#7\000\010\017\026\220a\330\000\t\000\025\000-\000]\372\235\200 \340\330\002\004\014\320\014#\377\2409\250C\250x\260q\377\330\004\n\210%\210q\220\377\001\330\010\027\220z\240\021\334\362!\262!F\260!\375!,\250\377A\250V\2601\200\001\340\373\004\025\324 \004\027\220s\230\377\047\240\021\240!\330\004\031\357\230\021\330\t\251!\r\016\330\357\014\032\320\032\047\001S\260\001\347\260\021\330\047\001\367\"\330\004\013\341\2107\002\301A\305B%\004.\250a\354\271@\"\003-\250\211@\340\004\037\377\230q\320 0\260\013\270\377;\300k\320QR\330\004\377\023\220=\240\010\250\001\250\376M\000\007\200|\2207\230!\373\330\010\357@\3200@\300\016\363\310aR\006%\020>\240\030\250\363\021\250\240\000/\0060\260\001""\320\1771B\300.\320PQ\214\005\016\262\006\027\320\027\244`\016\006\354a\313\004\376\335`\260\r\270[\310\013\320\303ST\316\004\266\000\211 \277\t:\270\267!\2701\354\0049\270\275 \340\377#$\360&\000\005\014\210\357;\220a\220\335 \r\210T\377\220\026\220q\230\001\330\004\377\007\200w\210c\220\021\330\377\010\017\320\017 \240\001\240\377\023\240A\330\t\n\330\010\377\021\220\035\230a\230x\240\357z\260\024\260\236\000\r\210U\377\220\047\230\022\2307\240\"\376\036\000\004\024\220A\330\004\005\375\330\343!\027\220w\230e\240\377?\260\"\260A\330\010\022\377\320\022#\2401\240H\250\375A\027\002\031\230\026\230r\240\377\024\240Y\250k\270\024\270\377V\3001\300I\310]\320\377Z[\320[g\320gh\377\320hw\360\000\000x\001\273C\002\004\000C\002J\003\001J\273\002P\n\001P\002Q\021\001Q/\002R\002\340\310A\030\247\001\353@\357\220i\230q\272E#;\270w1\360(u^M\300\021\260\200%\377c\320cd\320dp\320\273pq\325\000r\001A\324\001A\273\002L\333\001L\002S\342\001S\273\002Y\351\001Y\002Z\360\001Z\363\002[3\251\331\000e\320eqw\320qr\264@s\001B\263AwB\002M\272AM\002T\301A\271T\316\007\327@[\002\\\244W$\375%\264\203[\320#3\2602\260\375Q\200\204\020\027\240\002\240$\240\377i\250{\270$\270f\300\377A\300Y\310m\320[\\\377\320\\h\320hi\320i\177x\360\000\000y\001D\217\204\001\327D\002K\226\204\001K\202\204\007\360\000s\000R\306@\205\204\013j\240\001\315\207\005\317$<\270A\265\203[\321\003]\300\361!\261\200%\322\203?B\233j\320jk_\320kw\320w\263CH\310\207\001\351H\345\205\005\337\205\004`\335\207\001`\002a\336\344\207\001a\002b\002\245X\320<7S\320SP\001\360,\324\210Y\277E\277*\310J\320VW\375\203%e\377\320eo\320ox\320x\177y\360\000\000z\001F\264\211\001wF\002G\273\211\001G\002V\302\211\001uV\335\005h\320\211\001h\002n\327\211\001wn\002o\336\211\001o\002p\334\033\277T\320TU\360*\223\200a-\273\310q\361\205%h\320h\356\207\001\320\377r~\320~\177\360\000\000\227@\002O\253\213\001O\272\211\005\316Dg\326\300\213\001g\002\360\004i3\263v\320\251v\214\215\003\370\207\004E\225\215\001E\323\211\005_\356\243\215\001_\002f\252""\215\001f\002l.\261\215\001l\002m\270\215\001m\345@\267\204\032~\327@l\360\000\000m\001K\004\335]\356\215\001]\002u\365\215\001u\002\377M\003\360\000\000M\003e~\003\001e\003f\003\360:\203\217%\377D\320(9\270\021\270#\363\270Q\201\2170\303\210\005-\310}\320\377\\i\320iv\360\000\000\351w\362\211\005\370\216\004^\227\217\001^\002_\377\002\330\010\021\320\021\"\240\367!\2408\262\225\001\027\320\027(?\250\001\250\030\260\021\340\217\004\277\212\022\377h\320hu\360\000\000v\350\331\217\005\323\217\004\366\004j\362\217\001j\002w\356\371\217\001w\002F\200!F\003G\356\207!G\003S\216!S\003T\356\225!T\003c\234!c\003n\356\243!n\003t\252!t\003z\356\261!z\003{\270!{\003F\177\004\360\000\000F\004Q\003\001wQ\004]\n\001]\004c\021\001\367c\004d\030\001d\004e\004\376\242\213\0229\220A\200\001\340$w=\270Q\325\212a^\3001\355\214\"\377n\320\\k\320kl\320Ul\344\207\006I\241\222\001I\337\216\005[\257\222\001\375[\310\211\007\360\000\000b\002c\366\277\211\027%&\216\216]4\260B\260\375a\356\223\020\030\240\022\2404\240\377y\260\013\2704\270v\300\367Q\300i\352a]\320]i\037\320ij\320j\303\211\003\341\205\004\242\222\004\373R\002\340\216\004\360\000\000S\002\335T\362\223\014k\240\021\273\227\005%=?\320=P\320PQ\324\210]\327\001\337m\3008\3101\267\200%d\320\377dm\320mn\320nz\377\320z{\360\000\000|\001\350\302\220\004\235\213\004\370\206\004c\364\225\001c\002d\356\373\225\001d\002e\313\033U\320U\367V\3602\350\206.T\320AR?\320RS\320SV\344\214\001\247\227/\313\320#\370\003=\243\231\001\323\227\t\010\030\377\320\030)\250\021\250(\260\377!\330\010\026\320\026\047\240\037q\250\010\260\001\360\227\004\341R\332\222\001\272\203\2156z\241\230\001z\002E\250\211\001E\273\003R\257\211\001R\003X\266\211\001X\273\003Y\275\211\001Y\003d\304\211\001d\253\003o\313\211\001o\231\207\005@\226\207\001@;\004A\235\207\001A\004B\366\206\014\307d\037:\320\025%\240\357\233\001\317a\247 \370\276\227\002\242\217\\\320c>\320Q`\320A`\220\205&\252\205\006\210\207\004\255\232\004\365\217\004W\305\232\001uW\232\214\005q\323\232\001q""\002x\332\232\001wx\002~\341\232\001~\002\177\350\232\001\317\177\002@\003\311\232\013\307\205\014W\320{WX\360\204c?\320RS\216\207%\347k\320k\262\221G\274\207\t>\270a\210\305\223\047\265\215<\244\211\001l\260\227\014\245\236\017\244\211\017|\016\254\236\005t\320t\320\215\003\227\220\004\251\236\004\365Dt\323\217\004\261\216\004i\326\236\001i\002t\335\236\001wt\002{\344\236\001{\002A\353\217\001wA\003B\362\217\001B\003C\364S\333:\220\376\241\001&\047\305\232]5\260\373R\260\370\223\021\031\240\"\240D\377\250\t\260\033\270D\300\006\377\300a\300y\320P]\320\357]^\320^\352\227\003z\360\000C\000{\371\225\005\373\234\004\332\236\004\202\235\004U\252\240\014\311l\234\244\001\365\243\003&\354A\334\237Z\320#\006\324\001}\300\376\241\021\304\023\211\215\003\370\223\006\315\227\004\300\204\215\004\255\240\004\372\223\004\305\231\006\214\242\013\324\n\320>\374\354\212\001\311\227\001\016\210[\230\001\230\377\021\330\004\r\210V\2206/\230\021\230!\320\243!\026\202\247\001\325\243\034\364\266\223\007\257\227\033&\266Hj\320js\177\320st\360\000\000u\227\242\0054\300\240\004\351\243\004\\\210\244\001\\\002\224\215\004\271\204\004\332\244\223\004k\237\233\027\047(\356\237]6\260\367b\270\001\316\245\020\032\2402\240\377T\250\031\260+\270T\300\377\026\300q\310\t\320Q^\037\320^_\320_\272\222\003\371\216\003\234\233\004\325N\345\245\001N\243\242\005U\363\245\001U\002\035V\323\245\014m\2401\234\251\005\320\003\346\201Y\"\224\222\0376\220\200C\254\222\010\251@*\372\227d\256D\030\257\230\t\274\230\010\241\254\001\031\230\225\202)\325\207\022\221\233\004\272\311\230\004p\311\251\001p\002v\320\251\001v\362\326\230\005x\316S\366\227\003\047?\270q\334\325\243]\272\204\001\r\300Q\227\204&f\320\017fg\320g\242\206\006\210\246\004\363\236\004\343\240\004\360\244\206\004\351\213\006\233\253\013\273\204\t?\320?V\233\320V\217\225\001\3604\317\223p\367\003Z\377\310z\320YZ\330\010\033\353\320\033\276\260\001X\230\250\001\034\320\034\037-\250Q\250h\266\230\001\r\010\375Y\377h\320hr\320r{\320\177{|\360\000""\000}\001\372\221\013@\326\253\004\313\226\004\360\215\004\263\224\004\367\215\004\342\234\004Q\360\236\001wQ\003b\367\236\001b\003h\376\236\001Wh\003i\205\237\001i\332\234\005\177\223\237\001w\177\003O\327\234\001O\004U\336\234\001\367U\004V\345\234\001V\004W\004~\3321\320\013\036\320\0362\242\262\001\373\340\047\361 W\320Wo\360\017\000\000p\001\216\246\004\272\240\004\224\204\004\357\237\004\272\256\225\004~\200\240\001~\003P\304\235\001P\372\304\235\001>\270\205h\r\300]\320R\007_\320_\354\234\001\372\252\002\362\241\004\375\257\004\247\241\004\004\353\241\004\311\224\004y\363\237\035\203\212\023\300\223\001\335\253\002\266\246\004@\346\233\004\341\240\004\215\240\004\266\206\004\345\227\004\244D`\242\242\001w`\003a\251\242\001a\003m\260\242\001um\214\240\005}\276\242\001}\003H\202\240\001wH\004N\211\240\001N\004T\220\240\001uT\261E`\236\240\001`\004k\245\240\001wk\004w\254\240\001w\004}\263\240\001w}\004~\272\240\001~\004\177\300R\355\210\234\240\003()\320\255]7\260r\375\270\327\261\021\033\240B\240d\250\377)\260;\270d\300&\310\367\001\310\031\247B`\320`l\037\320lm\320m\202\205\003\361\252\004\225\247\004~\322\214\006\360\000\000V\002W\265\263\014\021n\276\264\001\200\267\003\323\000.\341\233p\331\017\261\234\033\376\360\020a\320ab\320bn\377\320no\320o~\360\000G\000\177\001\271\265\004\262\265\004\205\232\004X\330\265\001\001X\310\220\005\210\253\004\364\225\022\377\246\004\314\234\004\355\244\004\213\207\004\035j\236\247\001j\003k\247\232\014\302$\265\234\006\021(\357\206\003\332\231^\246a\034\260\206\001\247\232\021\234p\347^\320^\357\231J\265i@\300\001\014\222\262]\225\205\001\035\300\311\244\021\205\205\023\326\271\003\374\231)\375_\207\205\030@\320@S\320S\247k\320k\340c\266\270\0078\302\204t\035\177\300m\320S`\320`\370\206\001\317\320|}\330\354\242\047\264\207\023l\320\251l\312\261\003\273\261\013e\222\274\001e\347\255\005rn\240\274\001r\002s\247\274\001s\002\265\234\004t\262\255\004\240\253\004Z\303\255\001Z\003[\312\255\001}[\303\255\001\000\000f\003q\330""\255\001\353q\003\330\214\004D\243\253\001D\004E\326\252\253\001E\004\346\214\004[\270\253\001[\004\335f\277\253\001f\004l\306\253\001l\004\235m\315\253\001m\004n\246\253\014\342\205\r)\375*\266\276\037\210~\230Q\230c\373\240\021\356\25528\270\002\270!\337\330\010\025\220^\312\276\n\034\240\377R\240t\2509\260K\270\177t\3006\310\021\310)\215B\367a\320a\362\247\003}\360\000\000\321~\230\264\005\312\276\004\226\243\013X\311\276\014o\240\377Q\330\004\026\220f\230J\373\240a\373\277\002\014\210G\320\023\377#\2401\330\014\033\2301c\230F\264\235\007\317\200!\217\3009\320#\355\004\340\273\300\016\320\200\"\241\255\004\313\200\047\211\304\003)A\320\377AX\320Xo\320op\374\232\267]\317A-\300z\320Q[\347\320[\\\240\302\020\306Sj\320j?t\320t}\320}\347\213\003\223\275\004@\325\300\004\210\257\004\224\264\004\215\264\004\245\205\004\366\242\004u\335Q\376\362\007[\320[u\320uv\363\3600\224\263d\377\003\177\320Ve\377\320ef\330\010\023\320\023\177$\240A\240X\250Q\000\t\200\275\304\004\327\204\023\357\215\006\317\235\004\220\270\004\223\261\004\301\237\004k\322\327\304\001k\206\232\005\375\250\004D\354\265\001D\003\212\304\253\004P\372\265\001P\257\207\005\323\215\"\250\205\002\013\276\311\306\001\200\001\340*+\351\300]9\367\270\022\270\243\263\021\035\240b\250\377\004\250I\260[\300\004\300\177F\310!\3109\320T\350\217+\275Y\317\306\013\320\026&\240\274\311\006+\275,\300\302]:\270\"\270\237\310\021\036\377\240r\250\024\250Y\260k\377\300\024\300V\3101\310I\377\320Ub\320bc\320c\006\231\206\001\320p\377\273\003\223\303\004\245\263\004\337\221\004\323\306\006\270\247\310\n\227\260\002\357\313\005+C\300\326\307\\\320\215#\325\001M\310\242\310\021\305\023\322\003|\203\320|\261\212\003\312\306\004\263\223\004\357\273\004\200\215\013g\355\002\310\027,-\371\305];\2702\375\270\305\306\021\037\250\002\250$\250\377i\260{\300$\300f\310\337A\310Y\320V\321\311>\320\026\303(\250\326\306\006\330\000\376\300\036\347\215\004\024\240\177^\2601\260C\260q\344\2742\016\333\004\024\220N\352\274\005\001\007\260""\243\003\303\200&@\261\272\004\224\204\022\363\266\004\304\277\004\207\277\004\237\256\004|\221\316\001\347|\002}\223\206\r\212\"\025\220V\363\2309\242\317\004\237\216\007\032\230!\230\3716\233\271\001\000\034\013\210<\220q\337\200\001\34001\243\312]?\270\375r\252\316\021\320\031,\250B\250\377d\260)\270;\300d\310\377&\320PQ\320QZ\320}Z\367\224>\320\026,\250A\331\323\005\27345\201\314]C\3002\277\245\021\320\377\0310\260\002\260$\260i\377\270{\310$\310f\320T\347U\320U\374\230\003\222\276;\320\0260\345\260\341\314\006=\213\273\002\362\321\t\n\210+/\220Q\220a\345\256\001]\201e\271\323!\177X\270Z\300s\310!\235\257\001\374\301\323\037\345\321%[\320X[\320[\000\236\235\003\343\241\r\251\311\004\241\262\013\205\275\004\251\311\004\347\204!\377\323\tp\212!\332\247\002\262\311\t\252\200d\035\310a\323\325\"\354\367\031\242\241\013b\002\310\302\004\360\000\000kc\002\363\230\004}\241\326\001}\002\265\220\004\335J\257\307\001J\003K\266\307\001K\003\033L\003\214\326\026>?\354\327\n\305\202]\312\322)?k\320Y\\\320\\\325\216\003\200\233\001\003\320y\320\266\003\311\315\004\303\317\004\315\274\004\215$\312\270\004\014\307\315\006\333\250\001\002q\267\317\027\201\265\003\273\204i\363\322+\360\364\r\305\317\020\347\204>\225\325\010>Y\320Y\013Z\360\235\200o_\365\270\022\367\326\017\204l\266\305\003\204\331\321\013\303\200I?\343\300\002\260\202k\307\307\003\245\307#{\337\320Z]\320]\320\334\003m\320\201m\357\274\003\240\336\004\224\331\004\331\247\013\377\321\004\246\241\004y\262\324\336\001y\351\302\007\272\322\001\003A\340\302\027@\371A\275\206l\322\276([\320[^\320\035^\374\334\003n\320n\333\261\"\366\232\004\201\305\004\270\271\243\006\236\275\026\361\014\014\210K\235\342\003\r\035\210\240\215.u\310A\260\215\036\375\210,\251\200S\300\262\335\010\374@\215\215/\347\323\030\261\217%\247\301\003q\330\375\010\313\323\010\010\025\320\025&\240\037a\240x\250q\302\344\004\376\302\020\340\2021t\212\272\022\301\247\013W\213\326\001W\003]\222\326\001\367]\003^\231\326\001^\003_\003\376\331\301\022?""\230!\200\001\340@\017X\320XY\350\210l\264\303*\256\205\r\217\320\002\234\364\312L\326\305\010AB\360\323\202t\237\302\004\024\377\320\024%\240Q\240h\250\363a\330\270o\237\302\020\\\320\\_\373\320_\207\244\001\320fo\320o\200\202\236\006\336\211\013\255\347\004\222\254\004\324\336\004\326\245\006\320\304\001\002U@\307\332\001@\220\222\005U\325\332\001U\212\254\005\305\\\343\332\001\\\325`\224\275\022\215\232\003AZ\347\320Z[\370\245\n\261\226#D\250\016\377\260a\260s\270$\270n\017\310A\310S\320\354\001\265\353\r\345\205\047\347\304\001\371\016\354\260\001\273)\023\220>\240\0217\240(\250\352\322\001\220n\245\246\004\251\301\026\000\302,\212\254\003\262\337\004\332\353\004\261\277\013\310\335\004\207\333\004\300$\320\207\333\013\355\322\004\340\256\004\236\275\031|\315\335\001|\003]G\221\333\001G\004M\230\333\001M\216\272\005\375O\246\275\021\027\220v\230[\250\351\001\352\254\014\220\363\001V\210\306\003<\220{=\240\346\206\001A[\320[\366\313\003\207\337\004\350\311\321\004\301\276\004k\004h\212\334\001h\004i\361\004\342\300\n\232\225_\341\302\002\320EW\320?Wn\360\000\000o\232\353\005\375\267\004\000\223\304\004\365\250\006\247\310#\213\205\r\361\300\002\374\342\004\204\341\004\341\217\004]O\303\340\001O\003g\312\340\001g\221\336\005\335R\225\336\001R\004S\234\336\001S\004\255_\243\336\001_\004\205\275\004o\261\336\001o\373\004z\270\336\001z\004A\005\360\337\000\000A\005G\003\001G\005\275H\n\001H\005I\005\275\303\026B\371C\353\227l\365\274(]\320]`\320\035`\277\305\003p\320p\354\255G\260\275\010\372\003\261\r\233\220\007\337\316\006\373\236\0017\240\303\316\"\025?\260h\270j\310\006\270\365\001\311\316\":\262\356\033%\333\336\004{\320Z\251\200S\340\356\010`\374@\356\363\013\362\n\202\245\002\326\240%v\310\277\365\037\000\202\335\003\273\340#\246\200V\361\340\010\371\003\365F\235\224\014\321\202*u\005\270\200D5\241\326\005[\320[\250\204S\200\364\t\356\221\002\230\357\t\342\244\033\366\252\036\204\224\047\244\305\001\033.\327\326\001\027\220~\335\217\005\026\204\215\014\241""\305\020\000\205\207\014\222\343\003\250\361\004\326\346\004\251\305\013\372\274\004\333\353\004\270\232\022\000\371\242\004\250\351\004\244\224\004\200\341\004\306\353\006\263\372\013\366\305\004\263\224\003\363CD\257\242l\260\272(^\320^a;\320a\242\374\003q\320q\366\357\006\310\372\004\020\360\370\004\251\327\004\370\357\004\377\221\022v\340\270\027\361\014\220\232_\016\233\327(\\\320\\\252\200S\326\327\010\375@\363\311\t\000\305\223$\355\357\005\276\347\033\325\232\047\335\300\004\360\321&\352\300\020\371\2021(\363\357\004\322\251\004\231\345\004I\210\362\001I\362\357\005\214\362\004\335k\235\362\001k\003l\244\362\001l\003\335w\253\362\001w\003B\357\357\001B\004\272\332\220\004X\375\357\001X\004Y\204\360\001Y\343\004Z\335\357\014\253\273\003\224\322\010CZ\3209Z\304\376\002\332\370\t\016\210k\232\336\003\276\2370\031w\236\216\"\367\343\003,\310\237\214&\366\205\t\317\303\003@\353\347\004\337\341\013\323\372\013\374\330\004\350\343\004\341\343\004H\341\364\001\353H\003\331$J\346\347\027C]\320\345]\204\366\0026\366\372\010\337\2038Z\320Z\344\305\361\003\330\302\001\330\334\2307\206\306\001/\310\036\347\320WX\234\240\013\361\354\010\010\031\320\377\031*\250!\2508\2601\361\330\000\t\343\333\003\227\204\035\360\000\000r\000\215\341\005\335\371\004\344\342\013\345\367\013\232\267\004\244\365\013\203\355\004\204\311\004\312\313\367\004p\334\367\001p\243\365\005\201\355\006\360\000\243\000B\225\231\005\270\204\004\357\310\022x\330\365\001x\273\004C\234\226\001C\005Q\243\226\001Q\273\005W\252\226\001W\005X\261\226\001Xs\005Y\230\226\014\232\301\004?\230.\234\370\002\037\200\001\340DE\333\365\001\305\217h\216\342\037\375U\306\324\005]\320]b\320b\377h\320hi\320ir\3205r\340\374\003A\331\376\001A\002\325\347\004\263\342\004\300\261\372\004\326\376\004\317\376\004\277\372\004\351\336\006\357\334\026YZ\344\366\261\023\330\247\016\025\203\302\001\222\266\047(\320R\352\247\213\003b\237\266#A\374\2631v\320v4\305\364\003\251\346\004C\202\377\001C\002\255\366\004\214\320\007\007\000""\000Z\233\375\005\215\377\004\204\341\004\360\353\004\201\207\004\255N\360\374\001N\003\255\233\004P\247\264\027YIq\223\205\002\346\360\0072\203\207\021\233\201%D\220\214)\276\250\201-M\300\034\310Q\266\337(\026\377\230r\240\024\240Y\250k\377\270\024\270V\3001\300I\001\310\250\271\014\317\201\"\231\223\013\333\327\004\346\337\013\247\267\004\210\244\004h\262\214 \250\236\004\305\214\006\360\323@\004e\340\375\001we\004p\347\375\001p\004@\253\236\001\027@\005F\262\236\001F\254\236\007\365\267\021\214\340\010sZ[\202\204~\350\2678w\320w\360\342\003\000\366\204\004\220\345\004\371\357\004\230\247\004\224\376\004\204\262\004\244\207\004\321\244\004\370\355\361\004\336\217\004\364\204\006\360\000\000P\003\231Q\204\366\014\254\266\010Z[\272\251\023\305\204.Q\000\351\214\024\227\207(\331\272\006\242\256\t\257\256\010\317\351\003\272\266\036\203\201E\000\301\207\004\374\326\004\352\251\004\244\342\004\260\222\004\251\222\004\235\342\004\342\344\004\371\177\3303\312\256\003Zr\360\000\000\311s\255\376\005\235\376\0070\266\207B\274\201F]\300\377-\310}\320\\]\330\010\320\325\354\t\265\201T\324\267\004\304\367\004C\203\376\001C\003@\303\321\004\274\321\004\233\345\013\256\225\004\372\331\004\256\225\004x\273\376\001Wx\003C\221\376\001C\241\345\005Z\237\376\001uZ\216\247\005a\255\376\001a\004b\233\376\014T\277\274\004\255\355\003Z\200\371\002(\316\2129A\303\204E\000\245\2744\256\207\033\200\365\004\342\217\004\300\372\004\333\217\013\261\324\013\220\264\"`\307\207\t\376\365\003\313\356\004\345\335\004\224\377\006\3606\321\214\221\376\353\367\003_\300O\320Sb\320\335b\273\231\001\330\010\017\345\333\003\030\250\001\021\000\t\013\n\315\207B\302\327\013\314\356\004\246\233\004\254\346\004\324\365\225\004\357\241\006\360\374\337\001u\351\375\001u\003\255@\301\356\001@\004\371\337\004J\317\356\001J\013\004K\326\356\001K\313\356\005\361\204\004\337\215\004\241\353\004T\207\340\004\250\353\004B\237\255\001B\354\215\005L\255\255\001wL\005M\264\255\001M\005N\233\255\014\376\357\302\0047\220""\047\230\021\200\001\047\340[\\\366\214\200\314\367\0374\270\253\007\356\300\t\007x\320x\315\340\003\202\364\004\231\357\004\311\371\004\345\332\013\240\246\205\013\247\357\004\251\210\004\260\311\004\242\210\013R\370\300\027[\300\250\374\002\317\315\024\342\253\014\200\2262\325\330\001\202\277$]\300\201!\354\373\020\305\215!\231?\240\335\004\322\361\r\210\362\001\002\320\262\236\004\335\247\004\336\345\004\377\360\013b\241\220\027[s_\360\000\000t\001\253\246\007.\272\214\207\312\205\306\003=\251\271\001\010\272\236\t\353\277\016\030\240\377\022\2404\240y\260\013\270\000\344\2039\257\233\004\241\233\013\303\350\004\311\215\004\334\270\004\364\277\004\217\367\004\335n\247\367\001n\003o\256\367\001o\003\215z\265\367\001z\003\274\350\004\370\366\"\365\375\004>\346\204\207\002\\]\377\224\200\277\3067y\320y\000\350\361\003\234\367\004\300\366\004\223\374\004\205\374\013\246\317\004\222\376\004\207\311\004\260\366\342\004\263\321\004\200\372\004\324\273\004S\003\203\307\026\\?v\360\000\000w\001\213\370\004\342\345\004\236\347\276\004A\003\3602\220\222\207\321\311\001\177\177\300o\320Ud\320d\275\376\001\000\276\345\034\266\305\037\325;\263\371\004\355\347\004\257\334\004\221\324\004\204\356\013\340\222\273\004\345\374\004\270\251\013\213\215\004\365\373\007\000\000Q\273\004\\\366\374\001\\\004g\375\374\001gu\004\247\273\004u\213\375\001u\004v\222\375\001\357v\004w\004\271\312\022;\220a\037\200\001\340]^\352\232\200\304\256+\372\303\t\007z\320z\346\344\003\363\320\013\310\356\004\216\375\004\253\374\013h\350\350\004\353\377\004\271\374\004L\347\377\001L\003\333\204\006\177\360\000\000S\003T\003\300\275\026\202\264 *\337\227\207\214\306C\204\201E\314\233 \353\222\004{\266\253\377\001{\003\204\304\004}\003\332\306\030]`\236\215\003\263\360\004\352\346\004\266\322\004\274\307\004V\003\265\303\023\344\317\244&\231\307\004!\275\236A\341\311\001\013\3008\373\310;\333\346\002r\320rs\330\000\262\215\013\236\364\014\317\311\037\315\204\033\327\360\004\225\337\013\275\375\004\202""\335\004\252\352\254\013f\253\375\001f\202\304\005v\271\375\001v\265\003\361\254\004L\377\366\001L\004\212\304\013^\302\224\367\001^\373\366\005\333\244\004\332\207\006\366\212\001\004x\226\244\307\021\013\210\317\215\003]\230\213\003\343\365\004Q\365\002\361\241;A\335\201E\016\300n\320\003TU\263\3062\337\207\033\356\212\004\262\350\004\337\247\013\212\260\004(\351\262\004\306\321\004\247\312\004i\237\372\001i\303\220\005\221\260\004\375q\360\207\030w\360\000\000x\001\336\337\356\004S\002\360.\213\207\213\017\300\017\177\320VW\240\364\034\277\204=\373\356\004\224\345\004\350\241\270\013\372\342\013\351\262\013m\214\375\001m\003s\356\223\375\001s\003t\232\375\001t\003\177\206\241\375\001\177\003\373\233\004\230\270\"\251\273\004\316\215\003^\001_\276\251\200\320\3117\314\337\003\325\262\004\333\343\013\324\222\004\311\220\004\000\360\361\004\213\231\013\224\356\004\220\320\004\367\377\004\366\301\004\371\247\006\332\301\022?1\200\001\340_`\371\253\200\307\3017@\364\254\003\367\262\004\252\304\013\377\365\004\204\270\047\241\252\022V\267\350\014\004\337\371\004\264$.\374\242\223\352\277O\234\201I\266\334\022\376\211\004\320\212\207\004\302\233\004\205\244\004\227\215\004W\266\325\001W\004\335b\275\325\001b\004r\304\325\001r\004\272\201\273\004y\322\325\001y\004z\303\300\035`\370\270\346\003\227\344\007\357\235\2109\270\022\320;\177K\320K[\320[\\\260\255\0138\277\255\010\343\366\003\322\375\020_\320_\244\273\t\260\372\003\320\211\271\004\307\335\013\335\360\004\326\360\004s\317\366\001s\002t\345\236\013\367\262\013_\324\356\001_\003j\333\356\001\203j\003\262\276\004\272\220\004\352\303\013\317\330\004\225\266\022[X\326\330\013\317\376\006\267\255\003ay\346\355\001,\212\271:\374\203\223I\246\375\006\030\320\030)\250\021?\250(\260!\330\010\345\333\007\352\371\003\376\202\377\020`\320`c\320ci\377\320ij\320js\320s\350\221\237\003\214\266\004\227\351\013T\310\371\001T\002a\206\317\371\001a\002\335\363\004\275\357\004\341\371\013\312\361\004Vn\333\361\001V\003c\342\361\001c""\003\257\220\004\260\216D\313\252\004\310\263\004\252\205\022M\004\354\377\022\320\267\013\033\230\205\213\001tu\225\376\n\013\377\210;\220a\220q\330\004\234\271\366\006\351\347\016\026\240u\325\370\001\247\366%t\357\3108\320S\376\327\003h\320h\177r\320rw\320wx\315\276L\016\257\362\tw\320w\265\362\003\256\301\004\234\277\004\234\354\004\rV\306\374\001V\002\221\271\004\376$\335\364\004\234\352\004x\360\336\004\246\252\004\231\334\006\360\000\000E\203\312\005\320\223\205\004\324\226\004\204\312\004\334\220\004n\346\364\027uv\000\327\200\222\371\364,\375\254\014\356\301\030\250\365\004\326\341\004\274\367\013\312\252\022\340\300\263\004\344\341\004\263\271\013\304\336\004\335&\360\000\000\230\204\250\001\337\367\013\324\363\010wx\300\304\036\244\255\016g\357\250Q\330\004\271\3040i\320i\007s\320s\307\210\001\231\355M\313\204\014\327\276\030\322\341\004\032\374\244\004d\263\372\001d\002\221\347\013\321\207\013\367\314\013\320\261\263\004\337\207\004\346\212\013\260\271\004r\373\276\027|}d\205\207>\216\331\004\021\201\315\022\217\2073\320#\313\212\001\317A\330\010\025\366\236\014\253\212\023d\320\377dj\320jk\320kt\003\320t\362\311\003\254\215\031\345\247\004\245\377\004\321\252\013\326\215\004\300\337\307\004\313\356\004\330\307\013\304\356\004\227\237\004\310\215\022x\003\376\245\212\022\2101\200\001\360\004\000\357A\002B\002\337\200\223>\270b\373\300\001\344.\320\031+\2502\377\250T\260\031\270+\300T\377\310\026\310q\320PY\320\377Yd\320dh\320hn\277\320no\320ox\337\262\001\001\000\301\304\004\362\375\004\345\314\013\362\375\013\332\367\004\215\334\004\374\354\004\256\352\004\000\274\207\013\341\247\013\247\352\004\321\220\004\205\234\004\304\260\004\241\245\006\246\215\014?+\2501\330\004\013\362&\331\313\007l\303\376\t\265\214\205\320#\377!\r\310\216\345\020h\230\201k\330\352\004\203\305\013a\317\364\001a\003\255\355\004h\214\302\004\237\355\004\205\302\004I\251\355\001I\004\222\274\006\356\3619C\002D\361\203\224@\300\002\374\243\271\001\356\207\014\320\031-\250R\250\377t""\2609\270K\300t\310\3776\320QR\320R[\320\377[f\320fj\320jp\037\320pq\320q\326\375\003\344\377\004\223\365\004\000\242\360\013\334\320\004\337\212\004\214\302\004\374\322\004\317\367\004\352\375\004\364\244\013\300\215\310\013\226\342\004\304\333\004\224\250\004\234\253\006\331\355\001\003~r\364\207\r-\237\215\001\201\205\005D\002E\355\206\224\337A\300\022\3001\361\207\020.\250\377b\260\004\260I\270[\310\377\004\310F\320RS\320S\377\\\320\\g\320gk\320\rk\377\334\001\320r\205\345\003\207\242\004\354\365\004\301\251\007\017\000\000Q\002\354\365\013\312\266\004\304\372\004\330\376\004x\353\320\004\331\333\013\264\255\007\000\000V\003\213\345\004|\221\245\004\363\312!\320\026.\250a\373\207\007\367E\002F\351\211\224B\300\"\300\376\343\215\017\320\031/\250r\260\024\377\260Y\270k\310\024\310V\377\320ST\320T]\320]\277h\320hl\320l\264\256\001\320\001s\312\320\003\200\350\004\252\226\004\336\270\004\357\251\004\311\320\004\345\362\0044\243\277\004\356$r\241\331\001r\002\343\336\004\323\336\006\037\360\000\000J\003\275\231\004\307\375\004\214\256\004\370\305\274\004\200\313\004\203\316\006\360\000\000\177\003\335@\246\234\r/\250q\367\212\007x\001\000\261\367\004\212\311\007\253\277\035\304\223%\214\327\006\376\320\036\304\223.\237\316\001\001q\302\315[\333\223\047\205\256\013\257\310\004\240\353\013\230\253\013\371\242 \335n\340\371\001n\004t\347\371\001t\004x\224\272\006\216\227\022\267\316\002\360\004\000z\306\256\010\030\244\316\035\272\226s\234\300\001}\300\224\335\021\357\274=\275\377\004\000\252\345\004\272\371\004\267\354\004\232\372\004\212\350\004\315\256\013\331\316\004\344\313\004\272\335\371\004r\352\377\001r\003y\361\377\001y\354\323\256\005\344\313\004A\004\264\300\025\360\006\000\377\005\017\320\016\036\230a\230\375q\367\231\001x\210s\220!\330\377\010\017\210q\330\004\t\210\177\021\330\t\026\220a\330\326\376\001\277\030\320\030-\250Q\367\210\007\010\352#\022\t0\003\004<\001\t\027\220\375q6\002\032\320\032/\250q\377\260\004\260A\330\004\025\220\375Q\303\211\002""\200\001\360\010\000\n\377\033\230!\330\010\020\220\001\376\001\001\007\220q\230\006\230l\375\250\246\370\002v\210W\220E\230c\024\230\337\367\001\214\001H\000\340\010L\001\357\004\007\200q\344\316\002.\250d\377\260!\2607\270+\300W\247\310A\340\367\316\001\010\007Q\035>/\377\250t\2601\260G\270;\317\300g\310QY\002\010\007a\200?\001\360\014\000\005\020\237!\271\000\177\220\031\230!\2309\240\331\000\372\t\001\021\241\224\002\330\004\010\210\007\377\210q\320\0201\260\022\260\3771\340\004\022\220)\2301#\230A\020\004\355\000\035\000\016\326 \371\000\375\013\024\002\010\013\2104\210z\377\230\021\230\047\240\021\330\014\377\024\220A\330\010\014\210G\377\2201\320\024$\240L\260?\001\340\004\r\210Y\222\243\003\373\002\272\027\002\220K\002\t\220\021!\010G\357\2506\260\021\257\245\001\021\220\027\377\230\001\230\035\240g\250Vr\306\000A\341\"\247\000&\240\001^\000\356k\0005\220\t\332\353\002\014\020\220\377\002\220%\220s\230%\230\375q\031\000\024\240R\240t\250\3677\260\"\371\0001\270F\300\273!\300\273\000\016\210i\231@\001\377\330\004\022\320\022,\250D\377\260\t\270\021\320:L\310\327C\310q\304\n\n\265a\013\210\3777\220#\220Z\230t\240\3471\330\014\352@\301\004\220I\230\367R\230q\303\001W\220A\220\327T\230\025\352c\r\344@A\220}Q\220%\003\2202\220U\313 \3771\330\004\024\220D\230\005w\230Q\230\354\215\002:\220Q\356#\377,\320+=\270Q\270a\375\340\216\204\006\031\230\037\250\001\250Y\030\360\002\327c(\250\254 \005\323a\332\336\001$?\000\010\021\237B4\230\377q\330\010\030\230\t\240\021\377\240$\240a\330\010\032\230\337+\240Q\240d\335\247\003\026\220\357c\230\021\230)\002\032\230#^v\000d\240!\330\357`s\332@\3746\000f\026\320\0312\260!\260\1778\2705\300\001\300\021\330\204\004>\017\000\340\004\013\2109\345\002\214b\3774\210q\220\003\2201\220{G\230\375\373\014\210t\2208\227`\275H\274`\t\021\220\023\364A\017\365\210\245 \005\220\205\004\030\230\013\240\1771\240D\250\010\260\001h\030\3773\2601\260H\270E\300\307\021\300!\333\205\004\017\000l\024H\230\357F\240!\340\336\241\004\025\220d\376\366@x""\240x\250y\270\001j\362\206\001t\242\000C\351A\340\004{\005\377\021\220\033\230A\230T\240\367\030\250\021\353\0305\260Q\260?h\270e\3001\300\335\206\005\017\000n\357\024J\230f\253\205\001\024\220f\001\367\004\320\034\307\206\001&\270\002\270\237\047\300\024\300Qo\007\240H\020\333\220\004\217\205\001\020\220\312F\031\230\263\021\330\325@\215\003\n\027\236\210\004\031\216\341\234\0011\250G\355\204\003!\000\365\207\002\330\377\010\t\330\014\030\230\001\330\377\014\020\220\005\220V\2301\377\230E\240\021\330\020\031\230\377\027\240\001\240\026\240q\250\377\005\250W\260A\260Q\340\377\021\022\330\020\035\320\035.\377\250a\250q\330\014\035\230gQ\320\036\333@\360\233\005\014\000\\\t\327,\250A\212\211\002\010a\0020\260\361\001a\002\356\204\001X\013\026\220g\230=Q\355\001\240U\250\047\230\206\001^\005\342\217\211\001\001_\004\276@\326\234\005\020\000\005\177\010\200u\210B\210a\377\211\004\337\013\2101\210A\265\003_\240\277F\250!\320+<\225\206\001\330+\014\017\272`2\225\205\002&\347\350\034\364\244q\017\240?\260!\211\353O\272\263\004\364\355\004\203\342\007O\000\000d\002\372\237\013\331\350\031\\\324\366\001\311\\\372\234\005\322\256\004d\336\353\026\261\247\2244\260\000\250\356\021\340\323<\265\356\004\345\363\004\357\377\004\333\320\004\322\234\013\354\363\004@\253\371\004\321\313\004\363\337\004\330\377\"\203\324\004\312\245\001&\272\341\200\0011\232\3314\352\352\030\242\363\004\376\352\013\373\323\004\242\363\004\262\366\004\022\354\326\013D\345\352\026\277\317\202a\362\306P\305\325\004\273\320\013\220\301\323\004\260\336\004\212\344\004\226\260\013G\242\320\026\333\300\202\001\014\313\365\020\333\372\035\320q\274\301\037\353\375\004\205\373\013\374\367\004\310\350\362\004\334\365\004\364\311\013I\276\301\026\370\367\023\r\210\006\356\337h8\270\363\2009\330\275\031\355\272\004\331\377>\374\303\007\316\2275]\230!\324\222\r\217\350\003\023\240\371A\263\377:\224\2033r\320r~\320\301~\277\374\003\300\377\004\223\364\004\371\274\004\214\364\013i\002p\242\374\013\331\024\361\2731""\212\263R7\260q\313\263\017\377\033\240B\240d\250)\260\367;\270d\312\376\010a\320ag\377\320gh\320hq\320q\007|\320|\262\331\030\255\366\004\372\235\031\340\247\004\361\315\0130\374\312\004\322\371\004\266\302\004\363\352\013g\003\371\312\025\251\265\223\0079\270\021\253\266\017\357\304\023\354\301\017\202\313\031\252\334\004\340\362\276\004\314\360\013\301\247\004\232\305\004\375\357\007\000\000@\320\233\377\005\332\360\004\303\260\004\276\337\013i\246\266\r&\2408\255\252\006\235\225\t\274\203\206:\270!\251\270v\273\366\004\036\262\344\007\000\000A\003\273\366\004\303\360\004\247\326\004\260\371\347\004\366\304\006\201\271\027\320\200\222;\270\374\257\017\230\377\037\250\002\250$\250i\260\377{\300$\300f\310A\310\377Y\320Va\320ae\320\377ek\320kl\320lu\037\360\000\000v\001\231\323\004\260\307\031\237\336\004\000\355\276\004\334\347\004\300\355\004\235\371\004\250\366\004\204\274\013\235\371\004\245\363\004:\314\307\022k\364\273\r(\250\001\201\271\005\271\203\222\373<\270\347\257\021)\250\022\2504\377\250y\270\013\3004\300v\377\310Q\310i\320Wb\320\377bf\320fl\320lm\203\320m\312\351\003\310\323\004\311\362\004\252\307\004\246\357\004U\006\253\315\001U\002\244\251\004\234\370\004\234\360\013\251\355 \252\360\004\350\361\265\004\322\315\004\223\377\004l\336\276\r)\250\021\356\315\200\232=\270Q\322\276\020*\250\"\376\236\246\002\033\300D\310\006\310a\377\310y\320Xc\320cg;\320g\344 n\320n\276\335\003\231\320\004<\251\355\004\206\362\007\000\000M\002\233\312\004\231\315\004h\326\354\004\206\363\004\322\352\004v\270\320\001v\002\242\312\004\224\361\376\013\224\363\004[\220\377\001[\336\265\005\332&\360_\000\000l\003m\310\301\r*\361\252\001\034\327\276\003\215\211\222>\270a\320\300|\361\314\031\307\240\004f\351\314!\320\026\275\301\010\370\213\222?\270\300\222\017\377\320\031,\250B\250d\260\377)\270;\300d\310&\320\377PQ\320QZ\320Ze\377\320ei\320io\320o\377p\320py\360\000\000z\001\001\203\373\004\211\334\004\212\373\004\207\363\004\230\312\004\261\347\004\221\373\004\300\360""\322\013\230\373\004\225\363\004\367\314\022\206\366\004\350\314!\320\026\t,\243\322\001\274\203\230@\221\307\022\261\300j\226\360\004\276\341\004\220\247\347\004\352\325\004\233\312\004\344\370\022p\374\300\030\320\221\222A\003\300\021\216\300}\236\355\004\376\351\022\344\333\004\357\351!\372\300\nB\274\224\222B\341\306\022\221\300j\364\370\004\316\322\022`\277\376\001\233`\003\277\322!\320\026\354\300\010\250\227\222C\376\321\306\0220\260\002\260$\260i\377\270{\310$\310f\320T\377U\320U^\320^i\320oim\320m\202\374\001\320t\241\341\003x\336\364\004\334\222\004\317\356\007\000\000S\002\267\376\004\000\335\317\004\326\357\004\215\233\013\364\253\013\343\303\013\375\362\004\345\314\004\334\222\004~\277\325\006\360\000\000r\003s\317\322\r\302\301\262\001\004\301\217C\326\242\033\226\3255\243\263\001\010\022\377\320\022#\2401\240H\250\371A\223\276\002\302\264\001\002\240$\240i\377\250{\270$\270f\300A?\300Y\310k\320Y\330\332J\311\376\004@\377\367\004\312\373\004\332\306\004\344\354\004\351\222\004\316\317\013c\242\254#\200\255\321\207\326\247)\344\346\017\256\357\031\375\335\004\341\245\022\262\311\013~\006\225\347\001~\002\347\254\004\335\373\004\314\370\004\264\207\004\305\370\013}h\256\252#\r\210T\220\026\302\276\003\344\261\343\007\334\332\026Q\246\335 \302\232&X\320X\377d\320de\320et\320it\264\357\003\311\327\022O\360\247\013\320\026\353\231\024\344\265\022\314\251\027Q\311\344!\206\270#Q\310l\377\320Z[\320[j\320j\327u\320u\371\336\021E\263\251\014i\230\341q\233\236\021rN\300\343\001\234\264#a\310|\377\320[\\\320\\k\320k\307v\320v\252\354\003\242\351\004\363\235\004F\002\360\275\342\025\342\366\nqP\253\270%q\320P\\\377\320\\]\320]l\320l\347w\320w\350\352\003\265\006\360\000\000\307F\002G\274\254\014\327\267\024\266\201P5\260\372\345\332\020\230\231\313\020Q\320Q]\320\377]^\320^m\320mx\033\320x\377\253\021H\002\240\312\026\351\276\t\374\202P\3736\260\300\266$R\320R^\320\177^_\320_n\320n\201\232\003\002\275\371\022I\314\257\014\302\373\004\356\272\r\306\204P\333\251""\002\245\215\016\376\261\357\020V\320Vb\320bc\237\320cr\320r\302\362\003\366\243\022M\301\002\326\250#\221\206P\301\250\002\360\216\016\264\250\020W\320\177Wc\320cd\320d\203\361\006\202\327\242\022N\342\211\r\307\247\024\334\207P\243\247\002\274\220\r\320\341\031\226\247\020\262\213\t\221\347\003\212\2131\r\210K\334\277\314\003\304\270\0147\240!\317\353!\025\260\307h\270j\315\245\001\274\353\"\256\277\033%\270\377v\300Q\300i\310{\320\377Z`\320`f\320fg;\320g\363\337\003}\320}\264\364\003\263\277\004D\340\344\004\214\323\022h\214\212\027\210\345\t\261\272\016\021\270\355\047\347v\310Q\254\200@\213\224\010_\320_\277e\320ef\320f\260\242\003|C\320|\252\371\003\337\347\004\274\355\004\350\303\022g\322\032\010\325F\237\365\014\261\202*\005\252\200B\323H+\301\306\307\035\3775\300\006\300a\300y\320OP[\320[\203\204H\222\307\010*\222\374\010\340\336\222\032\240\336\030\253\224!\310\273\002\323\231\010\010\026\320\217\026\047\240q\370\321\001\343\231\004\307\273\020S\377\320S_\320_`\320`\007o\320o\361\370\003\342\270\022\356\373\004\320\311\004\237\344\022\303r\002\207\273\022\366\324\003\234\200e\353\272\003\320\025?&\240a\240x\250\254\325\001\375\375\007\374\366\375\003\353\272\020U\320Ua\320a\017b\320bq\263\304\005\250\357\022\246\351\013\243\346\004\262\337\372\013y\362\226\r\265\272\004=\230\373\324\0012x\334\320\010\354\3749\332\342\006T\320AR\377\347\002?V\320VZ\320Z\360\266\003\315\253\001\374\271\364H\202\321\003\024\320\024%\240Q\277\240h\250a\330\010\000\t\023\377\320\023$\240A\240X\250\370\307\262\001\355\047\345#\026\230r\240\024\377\240Y\250k\270\024\270V\377\3001\300I\310[\320X\200\236\375J\360\372\022\221\370\004\302\262\004\227\321\022\263\346\004\345\337\004Bn\252\357\001B\004H\261\357\001H\004\265\357\004\335T\277\357\001T\004_\306\357\001_\004\335g\315\357\001g\004m\324\357\001m\004\372\241\343\004y\342\357\001y\004D\005\360\337\000\000D\005N\003\001N\005\335T\n\001T\005U\021\001U\005\363V\005\322\373\013\310\231\004<\220|\240\357;\250a\200\242\335\002A\330""\014\237\023\2206\230\021\000\004\003\0107s\230!\030\001\000\0048\2301\003\010r\025\0045\223\327\0016\006;\230aI\001\007:\230QP\001*\004T\0045\007s\001\376\217\335\002\330\014\r\33046\260\347d\270!\374\332\001\212\001\017\210qj\000\004\220\314\340\001\001\016\003t\220d\000\364\003\005\354\332\001A&\003u\220A\220\373S\230\036\004u\220B\220d\373\230!@\003w\220a\220to\2308\2401P\002\320\017\271a\177d\250&\260\001\260\021\361\001\256\211\331\004#\2401\244\337\001N\271\336\001\330\377\014\033\2305\240\014\250A?\250[\270\001\270\021\233\327\001\314\337\001\377.\250\001\330\020\024\220H\337\230A\330\024,\223\331\003\340\020\037(\250\007\250q\256\330\001\250\004F\006\3774\320\047B\300!\360\006\373\000\t\332\340\001\010\014\320\014\034\373\230A\304\336\001U\230-\240q\373\250\001\361\327\001\177\230g\240U\357\250!\330\024\260\343\001x\240q\276\305\331\001\026\230w\240g\231\343\002\021\177 \240\007\240u\250A\020\014\207y\250\002\370\330\003\200\332\001\225\"\335\340\001M\\\204\337\001\353\340\001D\320\030\356\331\004\020\262#\376\177\001\023\220$\220l\240\"\377\240A\330\010\013\210:\220\363Q\220\255\323\001\350@5\230\010\240\327\005\240Q\373\330\003:\327\331\003\330\020y\027\255 \337\341\001\014\021\220\030\304\336\003\377\230v\240Q\340\014\020\220\177\003\220:\230Y\240a\221\002\377\020\025\220X\230Q\230j~\371\005\r\320\r\036\230a\313%\177H\230K\240q\250\013\253\341\003\177\013\2106\220\027\320\030\312\232\001~\214\342\002\r\023\2207\320\032\361\325\001\372\234\342\001\340\215\004g\230Q\330\013\217\022\220!\330\033\001\353a\346\342\002\330_\020\021\330\024 \243\000[\362\344\001\023\260V\371\277\001\224d\030\353B\315\345\002\001\006\373\031\230\322A*A\320AX\377\320XY\330\010!\240\035v\376\333\002\010\035\375\344\001\"\240,\010\003\367\032\230,\217\212\005\036\230o\250\377Q\250h\260a\360\n\000\377\t*\250\021\330\010%\240\377^\2608\2701\270A\340\335\010\347\334\001\010\t\330\312\334\001\033\230\2777\240%\320\047;\026\000K\177\300|\320ST\330\014\313\214\010\336\354\334\001\032""\320\0320\323a\260(\377\270)\3006\310\026\310r\377\320QY\320Ye\320e\007p\320p\213\357\003\373\364\004\206\362\004\203\276\004\240\273\004\340\373\364\004\375\372\004\310\303\004\370\361\004\231\327\006\330\020\023\377\2208\2303\230a\330\024\362\361\341\001W\233a\371\341\002\330\024)\250\371\021\362\335\002\344a\010\013\2108\220\3773\220a\330\014\037\230q\327\320 :\216\000<\274\274\001Z\320\317Za\320a\314\230\001\225\350\001x\220\367|\2402\256\211\001\200A\330+u,\374\200.%\314a \240\t\256\343\003~\233/\240\177\260a\260q\2231\377+\2501\250A\250X\260\377Y\270f\300F\310\"\310\277H\320T`\320`\273\300\003x\003\320x\375\267\003\266\361\004\257\361\004\201\356\013\366\317\006\332\2003\3775\260Y\270l\310)\320\177SU\320U\\\320\\\361\235\001\356\315\200@&\240Q\355a\032\2508|\244\347\001\251q7\260q\270\001\244q\376\375\340\003h\260i\270v\300V\317\3102\310X\203\217\002\342\277\003y\320\301y\300\371\003\270\371\004\271\363\004\321\333\013\375\317\004b\002\376\353\20236\260i\270|\3109\377\320TV\320V]\320]t\204\222\001\336\202@\047\230\347\001\"\240+\347@\027Q\260a\272\205\0218\333\211\003\267\205\017\234\355\002\377\250x\260y\300\006\300f\357\310B\310h\314\237\002n\320n\006\231\223\001\320z\325\370\003\315\370\004\273\326\004\365\356\013\211\315\004\365c\332\20047w\000\014\310I\320\377UW\320W^\320^`\367\320`a\357\204@(\240q\330\217\010#\240<\326\000\206`\313\207\0219\317\270\021\270!\306\207\021\305\345\002\260\010\377\270\t\300\026\300v\310Rs\310x\222\240\002\255\276\003{\320{\352\367\003@\342\367\004\235\326\004\333\367\004\230\324\004\331\342\006\215\20738w\000\375\034\323\312\001X\320X_\320_\374\242\224\001\200\207@)\250\001\330\010$\317\240M\260\030\364\001\334\211\021:\270\307!\2701\327\211\021\360\346\0025\000\031\300\177&\310\006\310b\320P\225\255\003@\361\377\003\206\235\006\346\310\013\203\265\004\245\321\004\354\377\004e\375\2044\3379\270\031\300,\373\311\001Y\320\217Y`\320`\354\244\001\222\211@\334\213#A\000\322\213(\207\377\003\207\241\006\232\237\004\225\310\004\361""\346\013\234\344\006\333\212\211\377+\250!\330\010&\240o\363\260X\253\360\002\201\216\020<\270A\270\365Q\373\215\0211\276\362\001\2608\2709\373\300F\351\304\001R\320RZ\320\017Zf\320f\236\376\003\306\332\006\326\343\004\213\351\004\215^\371\375\001^\002\374\317\004\302\367\006\304\2153;\376y\000L\320PY\320Y[\037\320[b\320b\271\262\001\270\215@\353\200&\007\031\230\036\361\235\004\233\220\004\345\200+\347\336\004\262\200^\177\340\010$\240F\250*\203\352\001\377\014\210E\220\025\220a\220\235z\273\366\001\033\2301\341\361\001\352\217@,\377\2501\330\010\047\320\0477?\260x\270q\300\001\307\222\021\213\365\002\370\302\222\021\224\364\001\223\363\001I\300V\3106\377\320QS\320S[\320[\007g\320g\373\275\003\215\337\003\325\324\004\225\311\013\356\352\013|\230\337\006\217\2223<\270I\300\\\252\312\002?\\\320\\c\320c\373\246\001\203\222@\377-\250A\330\010(\320(\3479\270\030\362\364\001\340\224\021>\270a\371\270\263\222\022\252\365\001A\260X\270Y\377\300f\310F\320RT\320\377T\\\320\\h\320ht\323\320t\345\326\n\271\334\004P\366\323\001P\002\350\366\251\022\260\334\006\254\2243=\201\000l\320R\377[\320[]\320]d\320\351d\207\253\001\240\224@.\312\237\001)\320)\047;\2708\214\366\001\375\226\021?\313a\370\226\021\3754\205\365\001\260h\270i\300v\373\310V\346\223\002]\320]i\320\017iu\320u\230\326\n\347\345\004\260\352\004\277\343\022]i\257\326\001i\002j\247\2224>\201\000w|\320S\344\224\003e\320e\272\342\001\376\275\226@2\260\021\330\010-\320\177-C\3008\3101\310\231\231\022\361C\301\370\002\226\231\020\364\222\002\270(\300)\376\315\205\001W\320WY\320Ya\037\320am\320m\345\224\006\313\325\004\330\274\004\240\256\330\004\225\212\004\247\330\013\245\364\006\347\2303B\202\000<;\320W\275\216\003i\320i\256\334\001\333\230@\3756\270\270\0011\3201K\3108\277\320ST\320TU\272\233\021G\347\300q\310\374\226\022\316\214\002\270h\300\337i\310v\320U\320\204\003e\320\017eq\320q\317\260\006\275\233\004\325\332\004\346\363\004\340\377\342\004\251d\337\363\004\214\301\006\207\2333F\300i\334\344\274\001\317\205\003m""\320m\321\246\002\010\017]\210\202\2339\014\000\t\322\222&\025\272\251\007\201\014\001\010\353\235\004\323\2221\204\225\022\203\332\013\277\363\013D\236\342\370\001D\003E\003\311\2353\223\223\024y\377\230\014\240B\240h\250i\377\260|\3002\300X\310Q\270\324\2350\306 \372\207\047\030\230\016\206\254\004\014\000\001\007\263\240\004\370\2073\276\373\004\323\352\013\375\347\004\366\347\004\354\363\004\360\266\361\013\331\313\006\232\2403\275\210\021\340\010#\240\0476\250\031\247\375\001\266\217\n\032\300\357\004\000\034\367\010\017\210\210El\270,\300\037b\310\010\320P\214B\255\334\002\230\243,\016\365\240\"|\3001\357\240*\343\214o\203\241!\365\330\002\034\267\245,\203\241#\014\300A\376\240*\203\217o\222\241!\334\354\2001\360\234#<\300q\352\234+w\320\177wx\360\000\000y\001\226\310\013\000\372\370\004\237\323\004\317\336\004\353\217\004\216\347\006\254\210J\353\247\n\215\2031r\201\252#L\305\215\023\215\252\024q\320q\362\247\006\300\362\310\013\354\370\004\312\375\004\215\354\013\305\346\006\277\251W@\320\343@S\353\253\001\234\254-\330\245#\034\300W9\310\271\237\022\351\245\026u\320u\223\217o\354\245!\270\224\337\002\302\256,\354\245#,\300a\347\245*z\000\232\250\005\226\322\004\300\345\004\211\353\004\344\377\004\202\353\013\267\345\006\305\245W\360\310\336\002\306\213\201\220\230o\315\256!B\320BT\237\320Tk\320k\336\376\003\252\307\004Zu\002\227\263+\016\235\263%L\310\014\356\260\005|\253a\301\263\n\014\034\320\034-\220\264\003\337\330\014\032\320\032\254\261\001H\260\363A\330\310\263\033\232\227\001\360\000\000~\001\001\330\263\004\312\263\013\376\372\013\215\331\013\351\375\004\247\347\004\223\352\004t\276\365\004\360\375\004o\202\360\001o\003x\211\360\001wx\003E\244\274\001E\004K\253\274\001wK\004M\262\274\001M\004W\271\274\001wW\004`\300\274\001`\004k\307\274\001wk\004q\316\274\001q\004s\325\274\001\317s\004t\004\364\263J\272\225\005j\270\377\014\300B\300h\320N^\377\320^j\320jl\320lx\376\237\001\322\264\001\322@U\320UV\330\266.\036\373\217%L\320PQ\244\262*\331\355\003""\312\376\004\000\266\363\004\321\355\013\312\376\004\250\363\004\241\363\004\274\376\004\220\366\006\215\262W\377B\320BX\320Xj\320\253jk\334\200VI\233\373\001W\333\264*v\003\320v\317\326\003\213\360\004\351\344\004\206\307\004\314\370\004\213\360\0040\333\365\004\254$\375\357\004\254\352\004|\002\245\200\222\276\254#\027\\\310\031\336\244\002\\\275\254,\250\265\003\206\373\004\200\232\317\004\211\321\013\265\265\004\305\362\004\277\341\004\243\365\004\277\341\004@\236\203\370\001@\003A\003\256\254X\304\2035\016\372\247\237%<\333\315\001Y\320YZ\330\357\014\033\320\033\362\271\001X\260Q\001\330\342\211\n\r\010\302\237\036\246\365\003\374\372\004\330\375\013\306\257\004\000\245\365\004\365\372\004\212\242\004\270\357\004\214\235\004\356\372\004\366\211\013\366\211\004t\277\357\004\321\375\004u\206\373\001u\003~\215\373\001w~\003J\250\307\001J\004P\257\307\001\367P\004R\266\307\001R\004S\004\276\316\237Ro\270\\\310\022\305\244\001c\377\320co\320oq\320q\374\222\274\001\332\211\004Y\320Yp\360\000\207\000q\001\204\344\004\315\263\004\254\210\004\306\353\004b\352\302\374\001b\270\213\005L\344\310\001L\004M\351\004\364\301+\216\243&<\236\302\001_\320_>\226\342\001\360\000\000w\001\304\317\004\220\325\013\010\213\376\004\226\245\007\324\243\t\014\335\202)\321\302\n\320\302\004\344\327\004\350\274\231\004\342\376\004\200\241\004O\320\376\001O\003Z\246\327\376\001Z\003\221\366\004\254\363\004t\354\376\001t5\003\346DC\216\313\001C\004\252$\337D\335X\243\313\001X\004Z\252\313\001Z\004\245d\261\313\001d\212\313\005\204\313\004\177\306\313\001\177{\004A\216\313\001A\005B\005\330\243_\007B\320B\201f\261\373\004\370\327\004\365\004\337\217\004\360\352\351\006\313\202.\352\215(\201\260\004\360\000\000u\001\001\306\353\004\223\331\004\316\222\007\317\\\373\301\026\234\375\003\377\336\004\320\344\361\004\256\267\004\210\324\004\346DB\233\364\001B\003\335P\242\364\001P\003Q\251\364\001Q\003\320\335\377\004\370\374\004\310\361\004\355Dz\314\364\001z\003M@\202\317\001@\004\206\317\004\245""\205\004U\227\317\001WU\004a\236\317\001a\376\316\005i\254\317\001\317i\004j\004\252\302J\204\250\022B\320\037BZ\320Z[\272\220\215\324\231\013\204\303\004\240\235\327\004\375\302\004\276\240\004\202\250\013\250\375\004{\262\216[[\347\320[\\\217\227.\221\236%\\\320Q\001R\213\227)\273\305\026\322\307\n\344\3135\362\377\004\323\210\004\336\324\013\255d\244\372\001d\003\345\324\004w\262\372\001w\211\003\336\324\013\307\214\004K\352\2264\231\306\024\377\226\037C_\320C\\\320\\\220\266\001\330\211\241U\027]\320R\273\307\002\014\274\310(\324\310\n\306\342\004@\350\332\013\245\302\004\222\227\004\237\375\004\305\217\004\272\372\004K\233\375\001\347K\003L\200\2604\340\310!D\300A\000\203\231V\321\252+\374\310\006\224\227\013\224\260\013\375\374\004\377\371\004\231\265\004\335p\332\314XD\320D\322\206/\n\000\205\t\225\246%^\362\323\024\247\315\026\213\323z\255\203\"\320\377D]\320]v\320vw\334\353\222.\236\231%\036\320W\270\301\002\014\027_\320\027(\250\001\274\324\001\330\000\t>\213\305\035\360\000\000s\001\343\302\013\301\311\004|\265\307\004\247\276\006\360\000\000j\002\364\264\013\240\346\376\004\373\222\004\216\217\004\355\376\004\241\211\004l\353\267\001l\033\003r\362\267\001r\003\207\223\006\264\307K\366\267\005\377k\270\034\300R\300x\310\236\352\335\001+E\300Q\203\331.\232\303$|\001\310\262\316\022\252\303\026\257\222\t\260\226\013\313\356\004\201\377\004\255\314\004X\371\341\004\356\267\004\267\331\004u\002\364\302W,\370\2001v\375\326#\r\300\251\243(n\320n\364\356\006\240\321\333\013\375\356\004\224\327\004\332\305\004\341\253\004p\341\314\001p[\002q\326\326W-.\342\250TA\350\250@h\204\3123\342\351\004\215\336\004G\221\277\001G\003\265\251\004Z\313\232\004Y\246\277\001Y\003\347\234\004m\264\277\001\327m\003s\273\277\001s\312\232\005v\003\\\226\250k\205A#\240=\355\344\001\330\340\340$\262\364\331B\010\241\325s\235\332\032Z\250\321\347\001-\177D\320DW\320WX\210\332\001\004\353\200*\314\252Gx\267\332\013\312\334\003\212\272\013\247\315\004\371\340\004\000\303\366\004\240\315""\004\323\306\004\210\253\004\361\356\006\252\336P\253$\350\212.\345\014\234\220%\033\330\276\014\375\224&m\320m\264\367\2717\210\242\004\177\350\326\001\177\002\265\230\004L\356\343\306\001L\003N\352\306\001N\003O\324\351\224K\235\260\014\310\357\355\001.\261\225\013 \240=\r\365\352\002\010\035\230X\310\343\001\221\350\033\365\014\207\350%J\272\270\001\033\230>\250\377\021\250(\260!\330\014\032\363\230.\356\220\004\233\350\030b\320bg\373\320g\351\312\003w\360\000\000x\370\256\277\005\244\253\022\260\333\006\360\000\000f\002t\256\350\013\3102X\316\311\001X\003^\325\311\001\323^\003\340\250\004\335\263\004q\352\311\001q\003\375r\324\210Qf\250G\260?\300\371,\254\337\001\345\344\003^\200A\3300\2711\236\353\010\327\201+\n\000\t\251\346K^\337\320^c\320c\201\320\003s\320\001s\327\327\003\277\340\004\316\376\013\376\366\004\317\327\004\312\216\004\376\366\004m}\300\334\001}\002\330\204\004@\003\303\346P\237V\2507\260!\374\200>\304\344K`\377\320`e\320ek\320k\007m\320m\373\327\003\274\373\004\324\265\013\243\347\004\231\345\004`\326\325\004\250\314\004\250\263\004\222\207\004\257\314\004B\003\342\344P\000\373\200C\341\342L\336\206\026\200\214\013\302\345\004\267\343\004\237\307\004\254\360\004\306\311\260\022D\003\347\357P\275\203C\220\343Mc\320\377ch\320hn\320np\003\320p\352\311\003\310\307\004\303\360\004\271\356\004\244\233\013\270\373\004p\331\272\004\261\323J\345\343\033\204\206@\014\000\t\260\354&~\352\265\t\031\320\031*\250!\252\361\001\000\321\300\005\322\354\020\220\206@\345\300\004\276\326\004\241\250\004\216\256\004\251\226\004\302\332\265\022l\250\206K\351\326\003\261\213M\236\331)\030\320\343\030)\375\216\005\353/\275\355\021a\320a\377f\320fl\320ln\320\001n\257\340\003\247\340\004\341\344\004\313\342\004\343\357\004\330\355\004\376\260\004\320\214\250\013\205\261\004\303\331\004\334\221\004W\324\331\001W\003]a\333\331\001a\003g\342\331\001g\205\217\005\371j\231\331Q\373\216\001<\270|\31028\216\342\001\313\260\001\300\216;\016\000\t\365\353&\306\273\047(\241\354""\022\223\207@\356\331\022S\327\334\001S\216\264\005\364\221\022]{\372\334\001{\003D\360\306\001D\350\273\005mV\376\306\001V\004\203\270\004Y\004\311\243Q\300\234\222\016\232\343\003\367\366\003\315\347\004\311\375\006\304\222\001F\300\301a\350\221_\356\327\047\260\222\031\222\277\013\224\366\006\360\000G\000d\002\263\335\004\254\304\004\277\267\004H\200\340\001wH\003J\207\340\001J\003K\366\221Z\347G\300q\326\2249\260\334L]\320]\377b\320bh\320hj\320\377jr\320r~\360\000\000\003\177\001\344\370\004\320\200t\244\377\032\221\225\006\210\201<\314\323M\370\376\224\035\211\225\013\360\364\006\360\000\000g\0024\362\313\004\260\317\004E\214\345\001E\003\331\263\004\267\317\004\035N\310\224ZG\320G\377\375\003\202\342\006\370\231.\016\357\341$<\310q\361\341$\366\203 \213\235\013\201\352\006\037\360\000\000r\002\313\311\004\205\345\004\237\277\004\344\375\321\004\231\235\004Y\273\3474\372\203#I\310\021\360\275\2349\271\333%\206\372\022\314\333\020_\320_d\303\320d\271\322\004\247\302\020\330\217\013\305\365\006\360\000\307\000h\002\336\241o\371\354\003\376\234\00523\376\234\327\010\"\240-\250q\260\001\341\330\242\242#\357\236Q\371\233\212\212\345\032V\2509\037\260A\200A\330\203\201;\244\357&\361\275\017\340\340\224\024\266\231\212\252\357\024\373e\273$J\320J\364\331\377\003\354\2104\020\246\224%^\310=\320\363XY\265\321\013\233\334\010\014\035\320\035\036\306\232\001x\260q\330\000\t\346\377\031\234\235\026\370\227\350\004\333\357\004\251\276\006\360\000\000p\002>\313\326\006\360\000\000|\002\223\221\004\312\224\004\r_\257\362\001_\003\267\334\004\324\227\004\323\247\004\340\311\004\272\242\334 n\344\334\001n\004t\353\334\001t\273\004v\362\334\001v\004@\320\315\001@\273\005I\327\315\001I\005W\336\315\001W\273\005]\345\315\001]\005_\354\315\001_\367\005`\005\253\224bk\320kw\037\320wy\320y\376\377\003\245\371\004\355\323\004\370\242\350\004\331\343\013\301\333\004t\002\200A\330\30334\320\340\010\227\263\010\331\253 \371\277&\021\330\216\320\304#_\320_\331\253\023\201\243t\323\347""\032V\217\250:\260Q\272$\343\212\006\352\212\010YO\240a\330\010\237\256\033\371\200E\007\300\263\005w`\320`\227\200\247W\250I\376\200@\376\260\212B\047\310\026\310r\320Q\377Y\320Yb\320bi\320}i\327\330\004\360\000\000z\001\325\322\013\200\241\361\004\374\377\004\276\352\004\250\373\013\360\255\004\313\332\004\237\225\004F\371\003\352\360P\271&I\320I\\\320\373\\]\232\350\010$\240M\260\0218\203\371\001\241\263\"\303\307&\033\300K\203\225\023\264\222\023\200\355\250\023\242\243\013\350\234\013\316\212\013\232\350\004\336\275\004\214\266\004T\326\204\376\001T\003\241\350\004W\204\314QV\250\373;\260\227\266\0013Q\320Qt\240\272\327\002\370\362\004\272\332\004\254\332\004\243\326\004]\204\351\001]\347\004^\004\205\2639\310\366$\320GX\177\320Xn\360\000\000o\312\330\005\010\311\357\004\234\347\004\227\342\007\014\275\220&\300\246\032\317\376\004\263\334\004h\371\237\004\226\353\004\236\334\004G\204\353\001G\004\376\006\237\360\000\000^\004\214\330\006\372\310\001\004\325x\247\353\001x\201\334\005H\214\334\001H\005\335N\223\334\001N\005P\232\334\001P\0053Q\005\214\367P\230\264\00545\210\212\001\212\226\004\370\375\300\010\377\211#\230\266Bw\300f\310B\317\310h\320V\326\213\215\244\374\032W\250=J\205\205\0024L\310A\347\2706\361\345&\371=\251\372\001\225\254\t\027\220~\240Q\017\240h\250a\236\274\020\376\253*\301\301\004\210\342\004<\207\311\004\257\372\006\360\000\000m\301\223\005\233\257\0044\207\361\004\223\251\004U\365\360\001U\003\302\223\013\304\306\022\205\177\237\361\001\177\224\361\005\221\346\004\342\250C\356\226\020\340\367\010%\240\250\210\002\330\010\014\210\377E\220\025\220a\220z\240\377\021\330\014\034\230A\230V?\2401\330\010\017\210\350\257\007\350\254\t\377e\320eq\320qs\320\351s\205\360\003\227\341\004B\216\223\0015J\310\005!\251\274_\016\270\371\023\335\341\020\370\274\022\247\361\004\245\250\231\1775J\320J^\320^\370\266\003\344\270\377\004\343\327\007\010\261\244\017\245\237\nW\250A\374\237\223\035\340\350&:\300W\310J\320\377Vb\320bp\320pq\376\300\367\n\014\031""\230\036\240q\250\017\010\260\001\330\316\354\030\365\262\n\375\361\005\320\374\004\000\304\357\004\205\263\004\353\354\004\376\361\004\261\364\004\202\322\004\350\367\004\266\254\004\240\366\302\004\200\347\006\336\247\001\346\324\005\245\315\004A\335\367\001A\251\004\335\354\004\365\344\004[\362\367\001[\346\213\005g\352\200\370\001g\357\350\005w\216\370\001w\004}\326\225\370\001}\004\367\350\004@\243\350Qf\250\337E\260\031\270.\273\372\001V\320\177V\\\320\\a\320a\253\365\001\277\200A\33078\330\232\202@\n\003\000\t\235\255\"\360\2474\210\363\003\364\367\004\301\365\004\265\360\004@\270\345\004\260\352\004\263\354\004\310\365\004\334\313\006\211\307\001\002\340\342\013\350\262\373\004\324\350\004\316\306\004_\346\247S5\260\t\003\270\021\240\201I\343\305Z\223\357\003\322\316\004\221\376\004\307\306\004\000\265\370\004\240\357\004\203\214\013\364\365\004\265\370\004\343\323\004\301\353\004\256\271\004D\237\376\004\341\240\004`\215\306S\234\201N\225\323B\006\305\221\010\376\250\253\007\320t}\360\000\000~\001\001\341\370\004\210\366\004\350\370\004\233\373\004\205\331\004\316\375\004\205\331\004\240\233\373\004\213\353\004\341\265\004\247\356\004\232\314\013`\200\371\001`c\003a\243\227S\211\204N\202\311X\320u\201\266\003\000\377\360\004\232\314\004\316\373\004\221\230\004\370\355\004\353\333\004\365\370\004\357\355\006_\360\000\000{\002\226\367\004R\330\373\001#R\003\266\331\004\264\246\004\217\277\004b\246\311S\366\206N\200\261\253O\360\301\007\315\215(\370\250\047\366\367\004\315\204\004\231\372\004c\006\331\237QV\250\344\211N\226\314^\256\367\004\302\370\004\354\343\004\020\214\332\004\323\251\013\302\341\006\200\375\001\002\202\356\004\372\321\004\373\355\004\020\261\240\004\337\346\004\350\304\004\334\376\004d\304\314S\326\214N\305\314_\000\304\302\013\333\307\004\370\334\004\257\372\004\356\360\004\272\271\013\346\324\004\340\312\004\030\276\332\004\260\232\004\363\363\022e\003\375\350K\203\267\005\315\217K\001\014\260\327(\313\315\t\330\315\010\302\354\004\270""\231\037\324\217P\337\366 \335C\344\374\001C\004I\353\374\001I\004\235K\362\374\001K\004L\370\373Q\256\226\003/\177\310\034\320UW\320W\313\303\003\017k\320kl\353\225F\234\315h\270\212R\215\372 \030\214\232\004\354\246\004\256DJ\004\220\254J\234\321\005\336\231\001\377,\300l\320RT\320T\377Z\320Z_\320_h\320\203hi\231\231F\273\315z\223\210Q\255\321\022\360\353\004|\326\371\375\001|\003\337\205\004O\302\316\001O\004\255Q\311\316\001Q\004\313\235\004d\327\316\001dK\004p\336\316\001p\337\270\005\262\252\004y\204\316T\000\301\235\001\200\206\016\361\374\003\273\372\004\250\231\004\201\351\004\273\226\004\366\261\006\376\353\235\001M\320Mb\320bc\372\261\235A\016\316\235$|\300;\310an\355\274\013\034\320\034\353\371\001h\260\n\013\376\277\367\004+\2501\250A\250X\377\260Y\270f\300F\310\"\017\310H\320T\302\314\014\341\235-\265\350\004\351\214\013\320\354\376\004\324\241\013\322\325\004\222\250\031H\322\322\001H\004t\306\241\031\220d|\374\322\001|\004B\372\274\001wB\005D\201\275\001D\005E\262\2744\370\252\315\024\364\206\t\335\202=N\320Ne\320?e~\320~\177\330\254\245C\323\356(\376\216\266\002\014\025\320\025&\240a\017\240x\250q\237\301\n\275\215V\342\373\004\342\334\004\370\316\231\004\332\326\004\214\242\006\360\000\000_\003Z\222\364\004v\345\373\001v\003\233\207\004B\335\326\001\353B\004\341\326\004N\353\326\001N\004W\256\362\326\001W\004c\371\326\001c\323\262\005k\356\207\327\001k\004l\321\215W)\300<~\223\272\001W\320W\\\320\\\251\376\001\036\332\245\001Q\320QR\205\202D\211\374)\324\206\t\370\214\260\007\236\377\004\253\374\022e\320ej\320\377jp\320pr\320rz\000\345\234\001\265\355\005\257\324\004\315\362\004\325\304\004\201\350\004\302\352\004\260\335\004\036\262\352\006\360\000\000@\342\321\005\232\360\004\375\267\004Z\256\340\004p\252\377\001p\003\305Dx\270\377\001\343x\003\305D\327\206\004\277\257J=\270Y\376\226\216\001[\320[]\320]d\277\320df\320fg\342\257\tE\377\260\031\320:J\310,\320\357VX\320X\311\354\003l\320l\241m\272D\310A\311\205D\330\317%\\\263a\014\300\225\310\t""\350\343\017\357\317\035\253\243/\302\353\004\374\276\006\360\000\007\000F\003\317\243\004\351\240\004\310\243\004\367\360\004\314\271\004\264\226\310\004\257\216\004F\361\335\001F\004\257\216\004Y\356\377\335\001Y\004_\206\336\001_\004a\016\215\336\001a\004b\305\3354\222\371\024\367\221\t\320\254\022\2178P\320P\212\222\001\244\254D\225\316#=?\310\r\320UV\330\246\2741\212\260(x\276\361\004\267\361\004\342\335\006\360\000\000K\353\277\007\257\360\000\000W\320\313\005n\200\377\001nt\322\376\005\242\341\004}\225\377\001}\003~\355\240[\0038U\215!\271\263\020\275\312\n\251\263 \232\364&\300\3406\000\377\254\003\356\251\047\266\241\013\362\340\004\240\331\004\254\347\004\203\252\004\254\347\004\264\210\272\004\271\367\004p\264\254U\n\270\355\364\0019\007O\310q\240\262D\252\377#\367\2706\324\257&\364\254\022\350\254\210\013\364\305\004\370\302\004d\246\375\001d\003j\356\255\375\001j\003l\264\375\001l\003m^\246\257[9R\320R\260\236\001\330\324\270i\377>\310\036\320WX\330\014\017\027\320\027(\256\375\004\000\t\346\270P\235\337\004<\264\372\004\323\341\006\360\000\000N\231\255\005\375\307\004\255h\300\375\001h\003\250\375\004y\316\375\001y\321\003\376\277\004\271\271\004\315\241\004T\267\352\001T\004\335\\\276\352\001\\\004b\305\352\001b\004\372\356\232\004e\350\235W+\300\\\320Q\377S\320SY\320Y^\320\377^g\320gh\200A\330\230\300D\323\374\003\275\374\004Z\002\334\225D\251\373#.\377\310\016\320Vd\320dr\007\320rs\273]\363\363\035\336\260(\234\376\004\232\250\013\264\276K\375\216\013u\233\361\001u\003\240\245\004LV\374\355\001L\004\305DZ\212\356\001Z\313E\335f\230\356\001f\004o\237\356\001o\004\376\277\274J8\270\t\300\034\310Y\376\311\222\002_\320_a\320abz\337\222\014\270\316W\360\000\000l\246\314\005\270\355\375\006\350\235D\225\211%n\320T\366\300\006\023\377\320\023$\240A\240X\250\007Q\330\014\000\t\r\010\342\250O\340\267\004\316\372\004P\314\3005\211\232\004\304\206\004\370\361\004`\220\362\001`\352\315\005\335m\236\362\001m\004s\245\362\001s\004\245u\254\362\001u\203\301\005""\362\315\004L\270\334\001L\273\005R\277\334\001R\005T\306\334\001T\243\005U\367\3334\302\342\024\271\246\t\047\271`R\377\310v\320UZ\320Zc\377\320cj\320jv\320vGx\320x\277\356\003\221\275\004\301\303\004N\221\334\001\377:T\320Tm\320mn\376\355\235D,\2501\330\010\047\320\377\0477\260x\270q\300\001\377\340\010\030\230\001\330\010\t\376\354\373\002\033\2307\240%\320\047\177=\270Q\270o\310_\301\325\001\370\245\236\n\263\236\010\263\340\0042\260!\2601\377\260H\270I\300V\3106~\325\210\002[\320[d\320d\250\327\014\000\234\371\004\261\244\013\357\376\004\335\355\004\326\355\004\350\376\004\335\235Q\223\324\004\272\261\236\004e\270\366\001e\004f\360\3654<\376\360\000\\\320QZ\320Z\\\037\320\\c\320c\277\232\003\327\313\007\215\305\001\342\236\236\021=\337\371\001\207\366\010\332\310\034X\250W\353\260A\227\335 1\330\351\001,\320,\177A\300\030\310\021\310!\301Q\357B\300!\300\262\356\0247\260q\377\270\001\270\030\300\031\310&w\320PV\241\234\002`\320`\365\332\003?u\320uw\320w\310\341\003\323\367\004\000\350\313\004\377\326\004\354\325\004\376\332\004\375\353\004\301\277\004\345\310\004\204\354\004\240\345\310\013\320\356\004\210\344\004\363\310\004\210\344\004r\202\375\001rK\003@\334\371\001@\206\261\005\362\316JA\352\000],\372\323\002a\320a\303\365\003k\235\317\001\376\274\354\0056\260\025\260i\270q\237\200A\330?@\245\310\032\315\227\014I\363\260Q\306\340 \342\304|]\002\360\000\007\000]\002\203\362\004\316\310\004\261\336\004\320\364\004\223\375\004T\303\221\047\337\241\004~\271\375\001~\262EA\354\263K>\314\267\007\007\260z\300\021\215M\205\205D\376\232\313Mc\320ci\320ik\037\320ks\320s\367\310\003\242\376\004\307\256\013\350\210\211\004\314\362\004\243\303\004h\246Ah\002j\002\255Aj\376\374\005\354\367\004\322\254\013\216\326\004\246\365\004\207\230\004\004\216\326\004\263\241\022}\363\364S\242\205\024\241\210D\311\313N\233\311\017Z\353\316\031\\\265\205\001\\\002\237\342\004i\303\205\001\203i\002\216\317\004\230\250\013\263\240t\272\363\034\313\210\010V\007\320VW\207\210O\304\375Z""\276\311!\376\347\004\204\371\004\320\205\350\004\235\361\004\251\322\004\205\350\004O\256\376\001O\003\000\373\303\004\242\322\004\217\361\004\301\233\004\206\257\004\277\334\004\362\247\004\356\227\004\342\206\257\004O\345\2754\255\227\024\317\210\020V\320V\317o\320op\266\213L\242\301&\014\300\037L\320PQ\330\327\261`\345\213.\226\315\004\000\246K\247\331\004\207\346\004\272\262\004\302\301\004\334\272\004\272\262\004\264\253\004\252\301\262\004l\324\364\001l\224\346\005~\342\364\001~\372\320\364\005A\266\226U\027\270\n\300)\177\310<\320WY\320Y\346\376\003\377k\320ku\320uv\200\317A\330AB\325\222O\275\262$q\330\034\370\334\017\276\262\025k\320k\266\341\003\277\331\003\344\323\004\320\316\226\031\335\354\004\315\214\004\245\313\004r\217\220\001r\002\340\353\323\004\305\331\004\262\370\004\335\354\004\317\326\006\360\000\000\203`\003\341\253\004\357\351\004\360\217\004\242\266\004\234\257\004G \201\3054\267\262\025\212\223\017\320\201Q\244\226$1\221P\323\225rx\366\331\004\273\340\004\272\316\006\360\000\000d\272\340\005D\355\265\022\302\340\004K\246\3104\227\226\047\365\204Q3\312\363\001\377.\320.E\300X\310Q\373\310a\261\235\021D\300A\300Q\376\266\205\0209\270\021\270!\2708\377\3009\310F\320RX\320\177XZ\320Zb\320b\301\205\003\000\267\374\001\343\365\002\362\316\004\376\337\004\353\372\004\326\360\004\306\374\004\371\376\004\000\376\217\004\354\321\004\214\362\004\246\335\004\371\360\004\371\316\004\305\327\004\250\362\004\240\352\231\013\334\265\013\351\274\004\344\343\004\337\245\004M\317\3134C~\347\000L\320Xa\320a\350\240\003\370\366\270\001\324\231\023\236\210Q4\2601\330\010\377/\320/G\300x\310qw\320PQ\333\240\021E\300Q\374\351\001\372\354\346\016:\245@1\270H\300I\373\310V\255\252\002[\320[c\320\377cl\320lr\320rx\003\320x\301\274\003\257\343\004\273\340\004\225\322\004\203\352\004\234\322\004\000\332\355\004\276\226\004\243\322\004\266\343\004\311\340\004\341\231\013\313\365\004\226\325\004\250\207\347\013\373\250\004\322\265\004E\352\365\001E\241\317\005M\256\370""\365\001M\004N\371\3164D\347\000\\~\361\372\002d\320dk\320k\357\243\003\353\017\210\222\210c5\345\240\0010\3200\377I\310\030\320QR\320R\275S\206\244\021F\300a\300\212\214\021;\377\2701\270A\270X\300Y\373\310f\232\315\002\\\320\\d\320odm\320m\321\356\001\320y\333\346\003\000\316\245\013\370\243\004\263\330\004\204\252\004\232\336\004\341\346\004\216\214\004\364\343\004\032\207\341\004B\356\371\001B\003\371\371\004\234\223 \252\274\013\352\371\222CE\347\000l\273\247\002e\320e\177l\320ln\320no\252\240\022\377\340\010\014\210J\220m\240\3676\250\021\222\361\001M\230\024\230\375Q\233\361\001J\220i\230q\240\377\004\240A\360\006\000\t\r\377\210O\2309\240F\250!\376\010\002\320\014\036\230b\240\010\373\250\001\303\361\001O\2301\200A\377\340\010\020\220\004\220A\330\377\010\013\2104\210w\220a\377\220w\230a\330\014\021\220\367\030\230\021\004\000\320\021!\240\375\021D\000\r\022\220\037\240\013\373\2501\026\001\036\230{\250!\276\037\001\033\230K\240q \002\"\373\240!\037\003\030\230\037\250\001\357\250\024\250Q0\001\021\220\005\377\220V\2301\230E\240\025\377\240d\250!\2501\330\020\377\027\320\0270\260\001\260\024\377\260Y\270a\330\020\035\230\337T\240\021\240!\255\377\0014\220\377q\320\030(\250\003\2501\377\330\024\030\230\001\320\031+\377\320+G\300q\310\001\330\357\020\025\220\\#\000.\260\001\356\223\001\025\220a\230\264\001\004\250A|H\027\241\304\001D\270\t\300\021W\010\177\025\220[\240\001\240\036\230\310\001\375\021\272\363\001\320\027\047\240t\250\3711\325\003P\002)\250\033\260A\367\330\014\020\240\0221\260\021\260\375$\261\243\001\330\020\036\230d\240\373!\240\311\000\025\220U\230!\373\230?\326\000?\270$\270a\373\270q\247\001X\230Q\230o$\354\255\001_\004)\211!\232\364\001q\347!\202\361\006\303\035\230\247\243!\364\354!\221\277\021\362\315\020`\320o`a\320a\226\304\001\320m\301\222\n\030\230\352\004\252\252\004\367\376\004U\002\355\3733\321\314\024\254\333\003\007X\250Q\321\2000\356\373\"\226\301\021\316\365\020\312\262\001\033\320b\354\255\001\320n\245\354\003\312\346\004""\324\362\004\004\212\357\004\267\351\004V\316\2004\312\373\032\317\2003\243\353\"\233\303\021l\326\306\020\277\323\001\320c\321\207\001\320o\275\353\003\004\331\364\004\346\252\022W\323\2024\330\305\024\316\2029\273\352\"\240\305\021~\302\270\020c\320cd\320d\370\235\001\003\320p\325\352\003\364\344\004\327\366\004\272\355\004\355\371\006\214\3413\360\354\236\032\331\2043\323\351\"\221\307%d\320de\233\320e\247\371\001\320q\371\256\n\200\224\022Y\201\002\260\334J\331\2069\252\320#\254\311\021\254\320\022\352\335\001\320\377it\320tu\360\000\000Cv\001\232\266\013\312\374\004\311\272\004\237\247\004]\352\2104\374\341\233\033\354\2103.\250Q\330\010)\377\320);\2708\3001\300\355A\341\266\021?\270\251\371\0224\260A\377\260Q\260h\270i\300v\376\203\225\001U\320U]\320]i\337\320ij\320j\245\240\001\360\000\203\000w\330\363\005\345\360\004\322\363\004\275\322\004\345\257\004^\372\367\2124>v\000|\320S\\\320\177\\^\320^e\320e\257\301\001\374\236\262\007\371\2123/\250a\330\010*\237\320*=\270X\366\226\001\356\270\021@\353\300\001\306\315\0215\210 a\260x\357\270y\310\006\345\223\001V\320V\367^\320^\346\374\001\320kv\320\013vw\204\373\001\001\371\362\004\374\376\004\362\362\004\262\253\004\324\242\336\006\270\3513?v\000\014\250\335\002_\320\017_f\320f\356\317\003\231\226\005\257\200[\215\231\0168\341\200(\330\372\004n\233\014\000\t\236\361\"\345\321\n\370\270\325\t\324\353\004\270\224\001\021\260(\270)\357\3006\310\026\256\332\001Y\320Y\376\253\332\001\320fq\320qr\360\007\000\000s\367\302\005\366\374\004\237\233\022\334\257\004\334\377\013\350\274\361\004\200\331\006\376\3553:\230\000<\310y\364\365\237\002\220\236\003d\243\330\007h\250j\270\177\014\300B\300h\310a\335\223-\267\014\000\t\266\277#\330\014\343\327\010\014\370\241\343\010\271\277\031\250\311\001\320hs\320s?t\360\000\000u\001\351\235\013\321\205\022 \265\265\004\223\361\004\205\361\004\203\337\004\332\247\004G\355\3764\340\276\033\177h\250m\270<\300r\303\234\002\276\305\226\n \240\r\250Q\371\207\001\035\207\230X\240\204\273!""\275\363\"\357\326\021\210\230\001!\277\2608\2709\300F\320\276\001R\373\320R\350\303\003h\320hn\320\377np\320px\360\000\000\301y\221\377\005\254\374\004\322\363\004\221\302\004\275\243 y\002\356\340\362S7\260!\2423\"\240-\003\250q\347\300\001\275!\376\325H\365\226$\265\336\003\276\272\014\000\253\306\004\224\352\004\360\376\004\225\301\004\235\246\004\372\242\004\306\206\004\342\275\004\r{\201\276\001{\002\224\344\004\220\371\004\207\335\004\360\254\006\350\340\3653\347\266\034\342\376\004\340\301\346@\n\000\t\256\241\223Ja\320a\257\3762d\316\300\001d)\002\335\376\013\370\370\004G\352\356\001G\251\242\005\362\373\004\002\367\303\004W\200\376Z\233\201D\246\206]\274\373\047\236\312\004\337\373\013\224\337\253\004\350\355\004P\330\361\001P\224\337\005\217\257\004Y\000\201\373[\255\204\032\354\3052\213\241H\252\360.\336\277\004\314\204\004\364\302\004\000\202\217\004\312\311\004\322\256\004\236\306\004\331\376\004\222\331\004\312\274\004\211\334\004\305k\347\364\001k\212\331\005\224\271\006\350\241PV\250\3035\260\220\306\004\276\201O\221\240I\343\271\003j\320\037jl\320lt\242\350!\332\365\004\233\320\004\000\214\222\004\232\337\004\363\363\004\216\253\004\324\277\004\225\253\004\333\277\004\232\337\004\004\333\314\004\345\363\022v\342\3444\245\241\032\362<\342\3440\242\207d\000\204\323 \223\357\004\257\273\004\232\357\004\255\314\004\352\366\004\322\353\004\227\345\004\014\364\264\006\334\217S5\260\205\345\002\310\215\010\205\310i\225\220\047\200\227\310U\343\267\004\277\220\004\200\362\022\223\345\004\225\362\004\333\322\004s\300\303\347S\265\322\006\277\201O\375\232$\274\267\016\203\233\021b\320\001b\202\226\014\223\317\004\347\251\004\377\332\004\351\247\004\316\267\004\361\272\004\000\277\310 \357\370\004\342\310\004\222\216\004\357\370\004\250\350\004\270\301\013\366\370\004\003w\003\214\233J\302\325\016\324\204O\327\230N\252\334\023\252\322\004\000\371\330\004\217\276\004\210\276\004\336\272\004\252\322\004\270\353\004\267\361\004\370\373\013\200\371\364\004\242""\221\004\371\364\004\326\304\004\272\350\004\260\356\004\347\344\004w\216\220\374\001w\003x\356\220T\322\204X\347\236&\230\377\036\240q\250\010\260\001\330\000\271\337\034\256\373\023\221\334\004\221\256\004\304\373\004\302\351\004\302\325\004\245\322\004 \203\317\004\313\353\004\347\367\047\230\334\004\304\373\022y\366\236L\315\204`@\364\254%\202\301\016\222\312q\271\232\004\233\373\004\215\313\004a\337\376\001Ca\003\347\364\004\352\356\004\242\205\004\361\356\004z\267\3674\300\326\312&\234\216O\377\255%\232\304\016\221\256\022\304\235\003r\320\017rt\320t\276\270\n\320\307\004\246\304\004\313\270\004\000\362\333\004\303\235\004\216\337\004\364\361\004\325\330\004\254\240\004\312\235\004\377\367\004\032\227\316\013b\373\372\001b\003\202\362\004\301\342\004\225\337\0042\301\376\004{\317\3724\355\256\033V\250\232\216X\212\257%\356\377\254#g\320g\224\304\003u\320u\000\321\271\n\323\275\022\355\333\004\246\342\004\212\253\004\250\321\004\331\345\004\227\373\004\000\211\373\013\230\370\004\221\337\004\221\316\004\307\361\004\236\325\004\232\365\004\236\376\004\363|\003\302\257Q\273\201Z0\250q\330\177\010+\320+?\270x\204\303\001\356\270\354\021A\300\021\273\324\0206\260a\377\260q\270\010\300\t\310\026~\207\356\001W\320W_\320_\227\251\003?t\320tv\320v\344\272\n\346\276\022\000\276\345\004\261\354\004\267\345\004\376\336\004\277\354\004\251\256\004\206\342 \260\373\004\372\334\341J@\333\000\034\320U^\320\177^`\320`g\320g\261\266\001\300\215\307\024\375\353\006\242\353j\272\323\205\365\251\004\212\247\006\360\000G\000W\003\221\354\004\271\241\004\350\315\013}\350\376\001\307}\003~\247\3764\323\353&\375\232O2\260\377\021\330\010-\320-C\300o8\3101\310\363\272\022C\300\307\327\021\3778\270\001\270\021\270(\300u)\343\362\001W\254\334\002a\320a\211\222\0034\274\364\001\312\257\002A\324\353\001A\002\340\362\004\222\301\022\000\231\342\004\321\350\004\222\342\004\356\362\004\231\342\004\341\376\004\276\233\013\330\327\013\032\247\357\004l\353\376\001l\003\240\342\004\341\315\004""\373\353\004\365\177\250\3504B\213\336\003`\320`b\013\320b\262\352\003l\317\204d\257\327#\307\326\211\230\357\004\036\335\252\006\360\000\000Y\214\222\005\365\353\004\266\230\004\004\254\205\004\304\345\004@\354\326]\267\241O\242\327$\247\341\020\316\326v\000\234\324\004\352\332\013\324\350\004\270\341\004\351\361J\227\327&\325\244O\225\327%\000\306\344\020\302\326v\372\353\004\337\332\013\232\222\004\372\236\004\303\230\004\372\353\004\035A\257\374\001A\004B\374\3734\211\327(\300\216M\3756\222\371\0011\3201K\3108\277\320ST\320TU\342\377\021G\376\305\332\022<\270A\270Q\270h\373\300i\244\222\001[\320[]\320\377]e\320en\320nt\037\320tz\320z\313\365\003\357\347\004\222\374\004\000\234\322\004\367\335\004\312\365\004\303\301\013\246\362\004\367\335\004\204\272\004\213\357\013@\302\264\004\222\357\013\267\250\013\312\230\004\240\374\004\345\353\004C\233\3774\375F\340\000|\320[d\320d?f\320fm\320m\357\356\003\353\335\020\356\226\253L\020\000\t\236\327#\030\320\030\377)\250\021\250(\260!\330\365\014\000\t\027\351\331\001\001\250\030\260q\021\314\302\n\210\305\004\325\327\020]\320]\274\370U\200\224\305\004\360\365\013\241\357\004\224\234\004\375\264\022\313\222\004\334\362\004On\364\377\001O\004U\373\377\001U\004\250\357\004\335a\235\357\001a\004j\244\357\001j\004\325r\253\357\001r\247\357\005z\271\357\001z\004\377D\005\360\000\000D\005M\356\003\001M\005W\n\001W\005]\356\021\001]\005_\030\001_\005`\375\005\351\330Jy\230\014\240B\240\377f\250F\260%\260y\300\367\014\310L\313\347\002`\320`f\037\320fk\320k\246\305\003\220\222\004\300\253\013\000\230\316\013\277\347\013\330\267\013\352\340\004\350\236\004\361\340\004\224\356\004\260\365\004\303]\003\255\334\n\346\271\n\241\334!\365\331I^\320\001^\271\277\007\232\320\002\313\372\004\370\342\004\267\326\004\315\351\004\213\316\004\320\251\367\004\316\266\004\337\271\004\306\351\004w\220\332QV\250\343:\260\346\334\002\312\304\006\321\304\010Y\240a\177\330\010\"\240,\250a\334\234\001\177\032\230,\240a\240x\347\234\001\375\036\264\337""\001\250h\260a\360\n\373\000\t\263\334@w\300f\310BO\310h\320V\312\317\003\303\343\003v\234\200\226\347W\250I\365\200=\343\334@\007\300v?\310R\310x\320W\321\235\003\245\212\003@\366\322\003\333\347\004\376\364\004\260\356\004\215\353\004\327\230 x\365\334Qp\243/\207\301\010\365\202r\372\244\003o\320o\270\200z\336\346\341\032W\250J\260\375\320\001\r\016\237\330\014\027\220\177\214\206\001\370\350\001q\377\330\014\022\220,\230a\230\377q\200A\360\010\000\t\021~\220\351\004\320\013\035\230W\240\225\347\002\177\n\230!\2305\240\017\301\347\001\377\023\2205\230\r\240V\250w1\340\014\005\003U\250!+\n\367\014\210L\315\350\001\013\2606\270\376\305\351\001\220\034\230Q\230k\250\277\021\320*<\270A\302\350\004\220\337~\240Q\240n\227\355\001\r\320\357\r\036\230ak\n\016\210k\365\230\320\352\004\025\216\352\001\017\210q\220\037\r\230T\320!\204\367\002\313\347\004\235\010\334\264\350\001\337\350\001\033\250A\214\333\001\013\210\3776\220\023\220A\330\014\024\377\220E\230\033\240A\240[\343\260\001\234\237\001D\000\322\n\026\220a\376\303\353\001G\2201\330\014\017\210\377t\2203\220e\2301\330\317\020\030\230\006\206!\225\352\002\320\027\377/\250q\260\005\260Q\330\373\024\031F\002T\250\021\250+\373\260V\223\356\001\330\024\"\240!\377\330\021\025\220S\230\005\230\375Q\244\352\005$\240a\320\0479\237\270\026\270q\300\273\352\002\244\351\001>\377\250\021\250\047\260\026\260q\277\270\001\340\010\013\210\336\370\002\021No\002\320\023$\235\000Q\001!\217\353\001\375Q\205\001s\220!\2206\230\335\022\207\001\024\220C\246 Y\250\337a\250u\260A\177\001\021\330\257\024\027\220r\032\0003\236\002\030\375 \347\354\001\240Q\330\030\033\230\3674\320\037\244\371\001\014\300A\330\367\034!\240\207![\270\001\270\335\033\013\001*\250!t\0015\220\371\003\345\003\251\352\002U\230!\320\033\317+\2504\250\276\354\006\371@\n\000\377\t\017\210d\220(\230(\357\240%\240q\223\355\003z\230\021\367\230%\230\236b$\220a\220\275q\370%\n\000\t\020\263 8N\224`\001\240\0217\003\007\007\037\262!\216\007\013\005\240Q]\003\330d\336FN""\374Z\003\343A\016\230e\240<\250Wq\260\013\335\"\010\255C\014\213\204\004\377\340\010\021\320\021&\240a|\272\354\001\362\356\001C\210}\230I\305`}e\231\356\001\024\220D\320\030\352\344\002\362\357GZ\321\321\002\332@v\220V\320/\0332\260#\267@6\230\355\001\353\222\003\377#\260Q\330\021\027\220v\377\320\0357\260s\270&\300\337\006\300a\330\020\270\351\001X\260\275S\247A\t\330\014\027\251\355\001q?\250\001\340\014 \240\343\000\364e\275\016\232\205\007\2104\210u\351a\020\373\320\020 \000\330\010\016\210e\277\2208\2307\240!\2465\013~\320\205\003E\250\021\330\020\032\314\205\007\356\251\204\001\035\240a\372E5\230\003\372\211\204\001\027\244\205\002c\250\021\250$\277\250f\260A\340\020\217\224\004\025\373\250m\377b)/\250q\330\377)1\260\024\260Q\330\r\317\037\230w\240\210!K\t\017\210t\314a=\016!8\0170\260\004^\000\377\014\023\2203\220a\220v\377\230S\240\001\240\025\240c\177\250\027\260\001\200A\360\351\005\377\340\010\033\2302\230\\\250\177\025\250k\270\021\270+\335\367\002\377\034 \240\016\250e\260;\377\270e\3001\330\010#\240\3772\240S\250\005\250\\\270w\021\270\"\341\230\001\330$(\014\000SU\260\201\362\002\256a1\357\361\001\027\305a\177#\2404\320\047B\300\246\"\3775\220\004\220D\230\n\240\377!\2404\240q\250\004\250\376\213\360\002\003\2207\230)\2401\273\240A\242\361\003z\240\021\223\204\002\024\277\025\340\020\021\330\024\220@\320\375!\364\373\001&\300\001\330\027\030\337\330\024\032\320\032\352\231\001\030\033\377\2301\230A\330\030\034\230mE\337\361\002\024\032?\003\340\010\365$\376L\000\024\220J\230a\230u\377\240O\2601\330\014\047\240\337u\250M\270\021\274#a\330\275\020\n\020\031\300!\340%\000t\370\255\205\001\215\207\001\305\206\0013\210a\210~\252\246 \003\235\002\014\377@!\317\362\002\014\237\023\2204\220q\275A\203\000\r\377\020\220\001\220\036\230t\320\351#\372\210\001X\000C\030\000\006\230cg\240\024\240\233\204\001\361 \260T\243\211\001w\022\320\022\320\256\001\020\023\220\234!\276\200\000E\230\021\230!\225\212\001)\336\312\001\340\010\t\330^\001\"\240G\"\240H\230\"""\353b\346\363\003\014\203\205\001\314\252\363\001\376\210\005[\270\250\363\007\344\362\006\021\220\374\037\006\322\363\001+\250Q\320.@\362\230\210\013.\236\210\001\210\211\0011\200A\360}2\332\204\010:\220Q\220n\206\213\001\374\330 \245\363\001\007\220t\320\0336\377\260a\330\020\023\320\023%\355\240\260\330\001\024\030\271B>\260\021\373\330\024\245\363\001\047\250\034\260Q\325\340\004\004\021\345\364\0011\257A\007\240wq\250\001\340\210\005>\240\023\330A\337\025\320\025%\240\277\211\001\320\025\337&\240a\330\020\232`\340\020\375\026\306\366\002\001\330/6\260c\377\270\021\270.\310\002\310!\377\3309:\33004\260E\\\350\377\001\324\363\003N\220!\231\204\001\014\322\211\001\276\370&\010\014\320\014\034\377@\010\376\306\002\320\000\021\220\021\330\004\377\005\360\006\000\n\013\330\010\377\023\220?\240!\330\004\007O\200t\2101\367\366\001\204\365\002\016\265\206\001\037l\230!\2301&\000\021\002\256\276\002\327\036\230l\354\366\001\035\322\364\005\036\230\373a\340\270\215\001\031\230\021\320\004\307\035\230Q\242\215\010\342\365\001\206`\330\010\347\022\220\047\265B\006\000\"\220G\377\2307\240$\240g\250Y\373\260j\332\207\002\023\026\220d\320\377\0322\260!\2607\270!\336\266\370\001G\2209\230\220\215\002\033\230\177A\230V\2401\240K\370\262\001\376\217\215\003\330\010\r\210U\220!\007\320\023#\220\205\001"; + PyObject *data = __Pyx_DecompressString_LZSS(cstring, 42737, 146373); #define __Pyx_DecompressString_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #else /* compression: none (121732 bytes) */ + #else /* compression: none (146373 bytes) */ #ifdef _MSC_VER -static const char bytes[] = {'\n','\n',' ',' ',' ',' ','T','h','i','s',' ','i','s',' ','a',' ','p','y','t','h','o','n','i','c',' ','w','r','a','p','p','e','r',' ','a','r','o','u','n','d',' ','T','A','L','I','B','\047','s',' ','a','b','s','t','r','a','c','t',' ','i','n','t','e','r','f','a','c','e','.',' ','I','t',' ','i','s','\n',' ',' ',' ',' ','i','n','t','e','n','d','e','d',' ','t','o',' ','s','i','m','p','l','i','f','y',' ','u','s','i','n','g',' ','i','n','d','i','v','i','d','u','a','l',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n','s',' ','b','y',' ','p','r','o','v','i','d','i','n','g',' ','a','\n',' ',' ',' ',' ','u','n','i','f','i','e','d',' ','i','n','t','e','r','f','a','c','e',' ','f','o','r',' ','s','e','t','t','i','n','g','/','c','o','n','t','r','o','l','l','i','n','g',' ','i','n','p','u','t',' ','d','a','t','a',',',' ','s','e','t','t','i','n','g',' ','f','u','n','c','t','i','o','n','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s','.',' ','I','n','p','u','t',' ','d','a','t','a',' ','c','o','n','s','i','s','t','s',' ','o','f',' ','a',' ','`','`','d','i','c','t','`','`',' ','o','f','\n',' ',' ',' ',' ','`','`','n','u','m','p','y','`','`',' ','a','r','r','a','y','s',' ','(','o','r',' ','a',' ','`','`','p','a','n','d','a','s','.','D','a','t','a','F','r','a','m','e','`','`',' ','o','r',' ','`','`','p','o','l','a','r','s','.','D','a','t','a','F','r','a','m','e','`','`',')',',',' ','o','n','e','\n',' ',' ',' ',' ','a','r','r','a','y',' ','f','o','r',' ','e','a','c','h',' ','o','f',' ','o','p','e','n',',',' ','h','i','g','h',',',' ','l','o','w',',',' ','c','l','o','s','e',' ','a','n','d',' ','v','o','l','u','m','e','.',' ','T','h','i','s',' ','c','a','n',' ','b','e',' ','s','e','t',' ','w','i','t','h','\n',' ',' ',' ',' ','t','h','e',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(',')',' ','m','e','t','h','o','d','.',' ','W','h','i','c','h',' ','k','e','y','e','d',' ','a','r','r','a','y','(','s',')',' ','a','r','e',' ','u','s','e','d',' ','a','s',' ','i','n','p','u','t','s',' ','w','h','e','n','\n',' ',' ',' ',' ','c','a','l','l','i','n','g',' ','t','h','e',' ','f','u','n','c','t','i','o','n',' ','i','s',' ','c','o','n','t','r','o','l','l','e','d',' ','u','s','i','n','g',' ','t','h','e',' ','i','n','p','u','t','_','n','a','m','e','s',' ','p','r','o','p','e','r','t','y','.','\n','\n',' ',' ',' ',' ','T','h','i','s',' ','c','l','a','s','s',' ','g','e','t','s',' ','i','n','i','t','i','a','l','i','z','e','d',' ','w','i','t','h',' ','a',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n',' ','n','a','m','e',' ','a','n','d',' ','o','p','t','i','o','n','a','l','l','y',' ','a','n','\n',' ',' ',' ',' ','i','n','p','u','t','_','a','r','r','a','y','s',' ','o','b','j','e','c','t','.',' ','I','t',' ','p','r','o','v','i','d','e','s',' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ','p','r','i','m','a','r','y',' ','f','u','n','c','t','i','o','n','s',' ','f','o','r','\n',' ',' ',' ',' ','s','e','t','t','i','n','g',' ','i','n','p','u','t','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s',':','\n','\n',' ',' ',' ',' ','-','-','-','-',' ','i','n','p','u','t','_','a','r','r','a','y','/','T','A','-','f','u','n','c','t','i','o','n','-','p','a','r','a','m','e','t','e','r',' ','s','e','t','-','o','n','l','y',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(','i','n','p','u','t','_','a','r','r','a','y','s',')','\n',' ',' ',' ',' ','-',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')','\n','\n',' ',' ',' ',' ','D','o','c','u','m','e','n','t','a','t','i','o','n',' ','f','o','r',' ','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',' ','c','a','n',' ','b','e',' ','s','e','e','n',' ','b','y',' ','p','r','i','n','t','i','n','g',' ','t','h','e','\n',' ',' ',' ',' ','F','u','n','c','t','i','o','n',' ','i','n','s','t','a','n','c','e',' ','o','r',' ','p','r','o','g','r','a','m','m','a','t','i','c','a','l','l','y',' ','v','i','a',' ','t','h','e',' ','i','n','f','o',',',' ','i','n','p','u','t','_','n','a','m','e','s',' ','a','n','d','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','p','r','o','p','e','r','t','i','e','s','.','\n','\n',' ',' ',' ',' ','-','-','-','-','-',' ','r','e','s','u','l','t','-','r','e','t','u','r','n','i','n','g',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','t','h','e',' ','o','u','t','p','u','t','s',' ','p','r','o','p','e','r','t','y',' ','w','r','a','p','s',' ','a',' ','m','e','t','h','o','d',' ','w','h','i','c','h',' ','e','n','s','u','r','e','s',' ','r','e','s','u','l','t','s',' ','a','r','e',' ','a','l','w','a','y','s',' ','v','a','l','i','d','\n',' ',' ',' ',' ','-',' ','r','u','n','(','[','i','n','p','u','t','_','a','r','r','a','y','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ','-',' ','F','u','n','c','t','i','o','n','I','n','s','t','a','n','c','e','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','%','s',' ','(',' ','(','e','x','p','e','c','t','e','d',' ',' ','b','a','r','s',' ','o','f',' ','h','i','s','t','o','r','y',',',' ','a','t',' ','l','e','a','s','t',' ',' ','f','u','n','c','t','i','o','n',' ','f','a','i','l','e','d',' ','w','i','t','h',' ','e','r','r','o','r',' ','c','o','d','e',' ',' ','n','e','e','d','e','d',' ','(','a',' ','l','e','a','d','i','n','g',' ','b','a','r',' ','t','h','a','t',' ','i','s',' ','N','a','N',' ','i','n',' ','a','n','y',' ','i','n','p','u','t',' ','i','s',' ','n','o','t',' ','h','i','s','t','o','r','y',')','%','(','d','i','s','p','l','a','y','_','n','a','m','e',')','s',' ','(','%','(','g','r','o','u','p',')','s',')','\n','%','s','%','s','.','a','d','v','a','n','c','e','%','s','.','o','u','t','_','r','a','n','g','e','\047',' ','i','s',' ','d','e','p','r','e','c','a','t','e','d',' ','a','n','d',' ','h','a','s',' ','n','o',' ','e','f','f','e','c','t',':',' ','(','(','%','s',')','(','a','n','y',' ','n','d','a','r','r','a','y',')','(','t','r','e','e',' ','f','r','a','g','m','e','n','t',')',')',')','\n',',',' ',',',' ','g','o','t',' ','.','3',':',' ','=','?','A',' ','p','e','r','i','o','d',' ','o','f',' ','1',' ','p','e','r','f','o','r','m','s',' ','n','o',' ','s','m','o','o','t','h','i','n','g','A','D','X','R',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','A','D','X','.',' ','S','e','t',' ','\047','A','D','X','\047',' ','i','n','s','t','e','a','d','.','A','l','l','o','c','a','t','i','o','n',' ','E','r','r','o','r',' ','(','T','A','_','A','L','L','O','C','_','E','R','R',')','A','n',' ','o','u','t','p','u','t',' ','i','s',' ','d','i','s','p','l','a','y','-','s','h','i','f','t','e','d','B','a','d',' ','O','b','j','e','c','t',' ','(','T','A','_','B','A','D','_','O','B','J','E','C','T',')','B','a','d',' ','P','a','r','a','m','e','t','e','r',' ','(','T','A','_','B','A','D','_','P','A','R','A','M',')','B','u','l','l','/','B','e','a','r',' ','P','a','t','t','e','r','n',' ','(','B','e','a','r','i','s','h',' ','<',' ','0',',',' ','N','e','u','t','r','a','l',' ','=',' ','0',',',' ','B','u','l','l','i','s','h',' ','>',' ','0',')','C','a','n','n','o','t',' ','m','i','x',' ','p','o','l','a','r','s',' ','a','n','d',' ','p','a','n','d','a','s','C','o','n','f','i','r','m','a','t','i','o','n',' ','P','a','t','t','e','r','n',' ','(','+','/','-','2','0','0',' ','=',' ','t','h','i','s',' ','b','a','r',' ','c','o','n','f','i','r','m','s',' ','a','n',' ','e','a','r','l','i','e','r',' ','p','a','t','t','e','r','n',')','D','a','s','h','e','d',' ','L','i','n','e','D','o','t','t','e','d',' ','L','i','n','e','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','F','u','n','c','t','i','o','n',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','F','U','N','C','_','N','O','T','_','F','O','U','N','D',')','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a',' ','s','t','r','e','a','m','i','n','g',' ','A','P','I','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a','n',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d','G','r','o','u','p',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','G','R','O','U','P','_','N','O','T','_','F','O','U','N','D',')','H','u','l','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','I','n','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','I','N','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','I','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','p','o','s','i','t','i','v','e','I','n','p','u','t','s',':','I','n','s','u','f','f','i','c','i','e','n','t',' ','H','i','s','t','o','r','y',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','(','T','A','_','I','N','T','E','R','N','A','L','_','E','R','R','O','R',')','I','n','v','a','l','i','d',' ','H','a','n','d','l','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','H','A','N','D','L','E',')','I','n','v','a','l','i','d',' ','L','i','s','t',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','L','I','S','T','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','F','u','n','c','t','i','o','n',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','F','U','N','C','T','I','O','N',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','p','a','r','a','m','e','t','e','r',' ','v','a','l','u','e',' ','f','o','r',' ','K','a','u','f','m','a','n',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','L','i','b','r','a','r','y',' ','N','o','t',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','L','I','B','_','N','O','T','_','I','N','I','T','I','A','L','I','Z','E',')','M','E','S','A',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','M','F','I','\047','s',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','w','a','s',' ','r','e','t','i','r','e','d',' ','i','n',' ','T','A','-','L','i','b',' ','C','.','N','o',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e',' ','(','i','d','e','n','t','i','t','y',')','N','o','n','e','N','o','t',' ','S','u','p','p','o','r','t','e','d',' ','(','T','A','_','N','O','T','_','S','U','P','P','O','R','T','E','D',')','N','o','t',' ','e','n','o','u','g','h',' ','h','i','s','t','o','r','y',' ','t','o',' ','o','p','e','n',' ','a',' ','s','t','r','e','a','m',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','.','\n','\n',' ',' ',' ',' ','R','e','c','o','v','e','r','a','b','l','e',':',' ','c','o','l','l','e','c','t',' ','m','o','r','e',' ','b','a','r','s',' ','a','n','d',' ','t','r','y',' ','a','g','a','i','n','.','N','o','t',' ','e','n','o','u','g','h',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','N','o','t','e',' ','t','h','a','t',' ','C','y','t','h','o','n',' ','i','s',' ','d','e','l','i','b','e','r','a','t','e','l','y',' ','s','t','r','i','c','t','e','r',' ','t','h','a','n',' ','P','E','P','-','4','8','4',' ','a','n','d',' ','r','e','j','e','c','t','s',' ','s','u','b','c','l','a','s','s','e','s',' ','o','f',' ','b','u','i','l','t','i','n',' ','t','y','p','e','s','.',' ','I','f',' ','y','o','u',' ','n','e','e','d',' ','t','o',' ','p','a','s','s',' ','s','u','b','c','l','a','s','s','e','s',' ','t','h','e','n',' ','s','e','t',' ','t','h','e',' ','\047','a','n','n','o','t','a','t','i','o','n','_','t','y','p','i','n','g','\047',' ','d','i','r','e','c','t','i','v','e',' ','t','o',' ','F','a','l','s','e','.','O','u','t','-','o','f','-','R','a','n','g','e',' ','E','n','d',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','E','N','D','_','I','N','D','E','X',')','O','u','t','-','o','f','-','R','a','n','g','e',' ','S','t','a','r','t',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','S','T','A','R','T','_','I','N','D','E','X',')','O','u','t','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','O','U','T','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','N','a','N',' ','o','r',' ','i','n','f','i','n','i','t','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','n','e','g','a','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','p','o','s','i','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','z','e','r','o','O','u','t','p','u','t',' ','i','s',' ','a',' ','c','a','n','d','l','e','s','t','i','c','k','O','u','t','p','u','t',' ','i','s',' ','d','i','s','p','l','a','y','-','s','h','i','f','t','e','d','O','u','t','p','u','t',' ','i','s',' ','o','p','t','i','o','n','a','l',' ','(','n','u','l','l','a','b','l','e',')','O','u','t','p','u','t',' ','i','s',' ','o','v','e','r',' ','v','o','l','u','m','e','O','u','t','p','u','t',' ','i','s',' ','p','a','t','h','-','d','e','p','e','n','d','e','n','t','O','u','t','p','u','t',' ','s','c','a','l','e',' ','s','a','m','e',' ','a','s',' ','i','n','p','u','t','O','u','t','p','u','t','s',':','P','a','r','a','m','e','t','e','r','s',':','P','a','t','t','e','r','n',' ','(','B','o','o','l',')','S','T','O','C','H','R','S','I',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','R','S','I','.',' ','S','e','t',' ','\047','R','S','I','\047',' ','i','n','s','t','e','a','d','.','S','i','m','p','l','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','A','-','L','i','b',' ','i','s',' ','n','o','t',' ','i','n','i','t','i','a','l','i','z','e','d',' ','o','r',' ','a',' ','s','e','t','t','i','n','g','s',' ','c','h','a','n','g','e',' ','i','s',' ','i','n',' ','p','r','o','g','r','e','s','s','T','h','e',' ','F','u','n','c','t','i','o','n','\047','s',' ','O','w','n',' ','D','e','f','a','u','l','t',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','o','o',' ','m','a','n','y',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','T','r','i','a','n','g','u','l','a','r',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','G','e','n','e','r','a','l','i','z','e','d',' ','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','U','n','k','n','o','w','n',' ','E','r','r','o','r','U','n','k','n','o','w','n',' ','E','r','r','o','r',' ','(','T','A','_','U','N','K','N','O','W','N','_','E','R','R',')','U','s','e','s',' ','a',' ','t','r','a','n','s','c','e','n','d','e','n','t','a','l',' ','m','a','t','h',' ','f','u','n','c','t','i','o','n','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a',' ','l','o','w','e','r',' ','l','i','m','i','t','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a','n',' ','u','p','p','e','r',' ','l','i','m','i','t','W','e','a','k',' ','P','a','t','t','e','r','n',' ','(','+','/','-','8','0',' ','=',' ','a',' ','w','e','a','k','e','r',' ','f','o','r','m',' ','o','f',' ','t','h','e',' ','p','a','t','t','e','r','n',')','W','e','i','g','h','t','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','W','i','l','d','e','r','\047','s',' ','S','m','o','o','t','h','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','Z','e','r','o','-','L','a','g',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','[','[','i','n','p','u','t','_','a','r','r','a','y','s',']',']','a','d','d','_','n','o','t','e','b','e','g','i','d','x',' ','n','b','e','l','e','m','e','n','t','c','a','n','n','o','t',' ','c','h','a','n','g','e',' ','T','A','-','L','i','b',' ','s','e','t','t','i','n','g','s',' ','o','r',' ','l','i','f','e','c','y','c','l','e',' ','w','h','i','l','e',' ','c','a','l','l','s',' ','o','r',' ','s','t','r','e','a','m','s',' ','a','r','e',' ','a','c','t','i','v','e','c','a','n','n','o','t',' ','p','i','c','k','l','e',' ','%','s',':',' ','a',' ','s','t','r','e','a','m',' ','h','a','n','d','l','e',' ','p','o','i','n','t','s',' ','i','n','t','o',' ','t','h','e',' ','T','A','-','L','i','b',' ','C',' ','l','i','b','r','a','r','y',',',' ','a','n','d',' ','d','o','e','s',' ','n','o','t',' ','c','r','o','s','s',' ','a',' ','p','r','o','c','e','s','s',' ','b','o','u','n','d','a','r','y','c','a','n','n','o','t',' ','s','h','u','t',' ','d','o','w','n',' ','T','A','-','L','i','b',' ','w','h','i','l','e',' ','c','a','l','l','s',' ','o','r',' ','s','t','r','e','a','m','s',' ','a','r','e',' ','a','c','t','i','v','e','d','i','s','a','b','l','e','e','n','a','b','l','e','g','c','i','n','p','u','t',' ','a','r','r','a','y',' ','h','a','s',' ','w','r','o','n','g',' ','d','i','m','e','n','s','i','o','n','s','i','n','p','u','t',' ','a','r','r','a','y',' ','l','e','n','g','t','h','s',' ','a','r','e',' ','d','i','f','f','e','r','e','n','t','i','n','p','u','t',' ','a','r','r','a','y',' ','t','y','p','e',' ','i','s',' ','n','o','t',' ','d','o','u','b','l','e','i','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','a',' ','n','u','m','p','y',' ','a','r','r','a','y',' ','o','r',' ','a',' ','p','a','n','d','a','s',' ','o','r',' ','p','o','l','a','r','s',' ','S','e','r','i','e','s',',',' ','n','o','t',' ','%','s','i','n','p','u','t','_','a','r','r','a','y','s',' ','p','a','r','a','m','e','t','e','r',' ','m','i','s','s','i','n','g',' ','r','e','q','u','i','r','e','d',' ','d','a','t','a',' ','k','e','y','i','n','t','e','g','e','r',' ','(','v','a','l','u','e','s',' ','a','r','e',' ','-','1','0','0',',',' ','0',' ','o','r',' ','1','0','0',')','i','s','e','n','a','b','l','e','d','n','o',' ','h','i','s','t','o','r','y',':',' ','t','h','e',' ','i','n','p','u','t',' ','a','r','r','a','y',' ','i','s',' ','e','m','p','t','y','n','u','m','p','y','.','_','c','o','r','e','.','m','u','l','t','i','a','r','r','a','y',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','n','u','m','p','y','.','_','c','o','r','e','.','u','m','a','t','h',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','t','a','l','i','b','.','c','o','l','l','e','c','t','i','o','n','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','r','d','e','r','e','d','d','i','c','t','t','a','l','i','b','.','p','a','n','d','a','s','t','a','l','i','b','.','p','o','l','a','r','s','t','a','l','i','b','.','s','y','s','t','a','l','i','b','.','t','h','r','e','a','d','i','n','g','t','a','l','i','b','.','w','a','r','n','i','n','g','s','t','a','l','i','b','/','_','a','b','s','t','r','a','c','t','.','p','x','i','t','a','l','i','b','/','_','c','o','m','m','o','n','.','p','x','i','t','a','l','i','b','/','_','f','u','n','c','.','p','x','i','t','a','l','i','b','/','_','s','t','r','e','a','m','.','p','x','i','t','o','o',' ','m','a','n','y',' ','i','n','p','u','t',' ','a','r','r','a','y','s','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','\047','A','C','A','C','C','B','A','N','D','S','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','O','S','A','C','O','S','_','S','t','r','e','a','m','A','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','_','S','t','r','e','a','m','A','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','A','D','D','A','D','D','_','S','t','r','e','a','m','A','D','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','O','S','C','A','D','O','S','C','_','S','t','r','e','a','m','A','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','R','A','D','R','_','S','t','r','e','a','m','A','D','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','A','D','X','R','A','D','X','R','_','S','t','r','e','a','m','A','D','X','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','_','S','t','r','e','a','m','A','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','_','S','t','r','e','a','m','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','L','L','A','O','A','O','_','S','t','r','e','a','m','A','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','P','O','A','P','O','_','S','t','r','e','a','m','A','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','A','R','O','O','N','O','S','C','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','S','t','r','e','a','m','A','R','O','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','S','I','N','A','S','I','N','_','S','t','r','e','a','m','A','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','A','N','A','T','A','N','_','S','t','r','e','a','m','A','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','R','A','T','R','_','S','t','r','e','a','m','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','D','E','V','A','V','G','D','E','V','_','S','t','r','e','a','m','A','V','G','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','P','R','I','C','E','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','s','B','B','A','N','D','S','B','B','A','N','D','S','_','S','t','r','e','a','m','B','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','E','T','A','B','E','T','A','_','S','t','r','e','a','m','B','E','T','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','O','P','B','O','P','_','S','t','r','e','a','m','B','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','o','d','y','D','o','j','i','B','o','d','y','L','o','n','g','B','o','d','y','S','h','o','r','t','B','o','d','y','V','e','r','y','L','o','n','g','C','C','I','C','C','I','_','S','t','r','e','a','m','C','C','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','2','C','R','O','W','S','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','B','L','A','C','K','C','R','O','W','S','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','I','N','S','I','D','E','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','L','I','N','E','S','T','R','I','K','E','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','O','U','T','S','I','D','E','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','E','L','T','H','O','L','D','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','R','E','A','K','A','W','A','Y','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','C','D','L','D','O','J','I','S','T','A','R','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','N','G','U','L','F','I','N','G','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','S','T','A','R','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','M','M','E','R','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','N','G','I','N','G','M','A','N','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','C','D','L','H','A','R','A','M','I','C','R','O','S','S','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','G','H','W','A','V','E','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','C','D','L','H','I','K','K','A','K','E','M','O','D','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','N','E','C','K','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','I','N','E','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','R','U','B','O','Z','U','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','C','H','I','N','G','L','O','W','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','H','O','L','D','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','S','T','A','R','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','O','N','N','E','C','K','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','P','I','E','R','C','I','N','G','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','C','K','S','H','A','W','M','A','N','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','R','T','L','I','N','E','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','P','I','N','N','I','N','G','T','O','P','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','K','U','R','I','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','S','U','K','I','G','A','P','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','H','R','U','S','T','I','N','G','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','R','I','S','T','A','R','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','E','I','L','C','E','I','L','_','S','t','r','e','a','m','C','E','I','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','F','C','M','F','_','S','t','r','e','a','m','C','M','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','C','M','O','U','C','M','O','U','_','S','t','r','e','a','m','C','M','O','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','_','S','t','r','e','a','m','C','M','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','P','P','O','C','K','C','O','P','P','O','C','K','_','S','t','r','e','a','m','C','O','P','P','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','R','R','E','L','C','O','R','R','E','L','_','S','t','r','e','a','m','C','O','R','R','E','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','C','O','S','H','C','O','S','H','_','S','t','r','e','a','m','C','O','S','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','_','S','t','r','e','a','m','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','U','M','S','U','M','C','U','M','S','U','M','_','S','t','r','e','a','m','C','U','M','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','V','I','C','V','I','_','S','t','r','e','a','m','C','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','T','y','p','e','D','E','F','A','U','L','T','D','E','M','A','D','E','M','A','_','S','t','r','e','a','m','D','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','I','S','A','B','L','E','D','D','I','V','D','I','V','_','S','t','r','e','a','m','D','I','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','P','O','D','P','O','_','S','t','r','e','a','m','D','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','X','D','X','_','S','t','r','e','a','m','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','a','t','a','F','r','a','m','e','D','o','t','E','F','I','E','F','I','_','S','t','r','e','a','m','E','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','A','E','M','A','_','S','t','r','e','a','m','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','E','R','I','E','R','I','_','S','t','r','e','a','m','E','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','_','S','t','r','e','a','m','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','X','P','E','X','P','_','S','t','r','e','a','m','E','X','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','q','u','a','l','F','L','O','O','R','F','L','O','O','R','_','S','t','r','e','a','m','F','L','O','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','O','S','C','F','O','S','C','_','S','t','r','e','a','m','F','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','F','R','A','C','T','A','L','_','S','t','r','e','a','m','F','R','A','C','T','A','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','a','r','F','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','_','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','i','n','i','t','_','_','F','u','n','c','t','i','o','n','.','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','_','_','l','o','c','a','l','F','u','n','c','t','i','o','n','.','_','_','r','e','p','r','_','_','F','u','n','c','t','i','o','n','.','_','_','s','t','r','_','_','F','u','n','c','t','i','o','n','.','_','_','u','n','i','c','o','d','e','_','_','F','u','n','c','t','i','o','n','.','f','u','n','c','t','i','o','n','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','g','e','t','_','p','a','r','a','m','e','t','e','r','s','F','u','n','c','t','i','o','n','.','i','n','f','o','F','u','n','c','t','i','o','n','.','l','o','o','k','b','a','c','k','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','s','F','u','n','c','t','i','o','n','.','r','u','n','F','u','n','c','t','i','o','n','.','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','s','e','t','_','p','a','r','a','m','e','t','e','r','s','H','A','H','A','_','S','t','r','e','a','m','H','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','M','A','H','M','A','_','S','t','r','e','a','m','H','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','E','R','I','O','D','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','H','A','S','E','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','S','I','N','E','H','T','_','S','I','N','E','_','S','t','r','e','a','m','H','T','_','S','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','L','I','N','E','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','M','O','D','E','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','i','g','h','L','o','w','H','i','s','t','o','g','r','a','m','I','M','I','I','M','I','_','S','t','r','e','a','m','I','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','n','s','u','f','f','i','c','i','e','n','t','H','i','s','t','o','r','y','K','A','M','A','K','A','M','A','_','S','t','r','e','a','m','K','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','K','C','_','S','t','r','e','a','m','K','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','D','J','K','D','J','_','S','t','r','e','a','m','K','D','J','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','N','L','N','_','S','t','r','e','a','m','L','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','O','G','1','0','L','O','G','1','0','_','S','t','r','e','a','m','L','O','G','1','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','i','n','e','M','A','M','A','C','D','M','A','C','D','E','X','T','M','A','C','D','E','X','T','_','S','t','r','e','a','m','M','A','C','D','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','F','I','X','M','A','C','D','F','I','X','_','S','t','r','e','a','m','M','A','C','D','F','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','_','S','t','r','e','a','m','M','A','C','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','M','A','M','A','M','A','_','S','t','r','e','a','m','M','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','R','K','E','T','F','I','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','S','S','I','M','A','S','S','I','_','S','t','r','e','a','m','M','A','S','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','V','P','M','A','V','P','_','S','t','r','e','a','m','M','A','V','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','M','A','X','I','N','D','E','X','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','_','S','t','r','e','a','m','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','S','t','r','e','a','m','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','T','y','p','e','M','A','_','T','y','p','e','.','_','_','g','e','t','i','t','e','m','_','_','M','A','_','T','y','p','e','.','_','_','i','n','i','t','_','_','M','E','D','P','R','I','C','E','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','F','I','M','F','I','_','S','t','r','e','a','m','M','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','O','I','N','T','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','R','I','C','E','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','I','N','I','N','D','E','X','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','M','I','N','M','A','X','I','N','D','E','X','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','_','S','t','r','e','a','m','M','I','N','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','I','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','M','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','_','S','t','r','e','a','m','M','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','O','M','M','O','M','_','S','t','r','e','a','m','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','U','L','T','M','U','L','T','_','S','t','r','e','a','m','M','U','L','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','A','T','R','N','A','T','R','_','S','t','r','e','a','m','N','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','O','N','E','N','V','I','N','V','I','_','S','t','r','e','a','m','N','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','e','a','r','O','B','V','O','B','V','_','S','t','r','e','a','m','O','B','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','O','r','d','e','r','e','d','D','i','c','t','O','u','t','R','a','n','g','e','P','E','R','C','E','N','T','I','L','E','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','R','A','N','K','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','I','P','L','U','S','_','D','I','_','S','t','r','e','a','m','P','L','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','M','P','L','U','S','_','D','M','_','S','t','r','e','a','m','P','L','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','P','O','P','P','O','_','S','t','r','e','a','m','P','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','I','P','V','I','_','S','t','r','e','a','m','P','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','O','P','V','O','_','S','t','r','e','a','m','P','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','T','P','V','T','_','S','t','r','e','a','m','P','V','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Q','S','T','I','C','K','Q','S','T','I','C','K','_','S','t','r','e','a','m','Q','S','T','I','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','M','A','R','M','A','_','S','t','r','e','a','m','R','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','O','C','P','R','O','C','P','_','S','t','r','e','a','m','R','O','C','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','R','O','C','R','1','0','0','R','O','C','R','1','0','0','_','S','t','r','e','a','m','R','O','C','R','1','0','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','_','S','t','r','e','a','m','R','O','C','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','_','S','t','r','e','a','m','R','O','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','S','I','R','S','I','_','S','t','r','e','a','m','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','R','V','I','_','S','t','r','e','a','m','R','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','O','L','R','V','O','L','_','S','t','r','e','a','m','R','V','O','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','a','n','g','e','T','y','p','e','R','e','a','l','B','o','d','y','S','A','R','S','A','R','E','X','T','S','A','R','E','X','T','_','S','t','r','e','a','m','S','A','R','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','A','R','_','S','t','r','e','a','m','S','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','S','I','N','H','S','I','N','H','_','S','t','r','e','a','m','S','I','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','_','S','t','r','e','a','m','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','A','S','M','A','_','S','t','r','e','a','m','S','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','S','M','I','_','S','t','r','e','a','m','S','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','Q','R','T','S','Q','R','T','_','S','t','r','e','a','m','S','Q','R','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','D','D','E','V','S','T','D','D','E','V','_','S','t','r','e','a','m','S','T','D','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','S','T','O','C','H','F','S','T','O','C','H','F','_','S','t','r','e','a','m','S','T','O','C','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','R','S','I','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','_','S','t','r','e','a','m','S','T','O','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','B','S','U','B','_','S','t','r','e','a','m','S','U','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','M','S','U','M','_','S','t','r','e','a','m','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','e','r','i','e','s','S','h','a','d','o','w','L','o','n','g','S','h','a','d','o','w','S','h','o','r','t','S','h','a','d','o','w','V','e','r','y','L','o','n','g','S','h','a','d','o','w','V','e','r','y','S','h','o','r','t','S','h','a','d','o','w','s','S','t','r','e','a','m','S','t','r','e','a','m','.','_','_','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','d','e','e','p','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','r','e','d','u','c','e','_','_','T','3','T','3','_','S','t','r','e','a','m','T','3','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','T','A','N','H','T','A','N','H','_','S','t','r','e','a','m','T','A','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','_','S','t','r','e','a','m','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','_','A','C','T','A','_','A','C','C','B','A','N','D','S','T','A','_','A','C','C','B','A','N','D','S','_','C','l','o','n','e','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','C','B','A','N','D','S','_','P','e','e','k','T','A','_','A','C','C','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','A','C','C','B','A','N','D','S','_','V','a','l','u','e','T','A','_','A','C','O','S','T','A','_','A','C','O','S','_','C','l','o','n','e','T','A','_','A','C','O','S','_','O','p','e','n','T','A','_','A','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','O','S','_','P','e','e','k','T','A','_','A','C','O','S','_','U','p','d','a','t','e','T','A','_','A','C','O','S','_','V','a','l','u','e','T','A','_','A','C','_','C','l','o','n','e','T','A','_','A','C','_','O','p','e','n','T','A','_','A','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','_','P','e','e','k','T','A','_','A','C','_','U','p','d','a','t','e','T','A','_','A','C','_','V','a','l','u','e','T','A','_','A','D','T','A','_','A','D','D','T','A','_','A','D','D','_','C','l','o','n','e','T','A','_','A','D','D','_','O','p','e','n','T','A','_','A','D','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','D','_','P','e','e','k','T','A','_','A','D','D','_','U','p','d','a','t','e','T','A','_','A','D','D','_','V','a','l','u','e','T','A','_','A','D','O','S','C','T','A','_','A','D','O','S','C','_','C','l','o','n','e','T','A','_','A','D','O','S','C','_','O','p','e','n','T','A','_','A','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','O','S','C','_','P','e','e','k','T','A','_','A','D','O','S','C','_','U','p','d','a','t','e','T','A','_','A','D','O','S','C','_','V','a','l','u','e','T','A','_','A','D','R','T','A','_','A','D','R','_','C','l','o','n','e','T','A','_','A','D','R','_','O','p','e','n','T','A','_','A','D','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','R','_','P','e','e','k','T','A','_','A','D','R','_','U','p','d','a','t','e','T','A','_','A','D','R','_','V','a','l','u','e','T','A','_','A','D','X','T','A','_','A','D','X','R','T','A','_','A','D','X','R','_','C','l','o','n','e','T','A','_','A','D','X','R','_','O','p','e','n','T','A','_','A','D','X','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','R','_','P','e','e','k','T','A','_','A','D','X','R','_','U','p','d','a','t','e','T','A','_','A','D','X','R','_','V','a','l','u','e','T','A','_','A','D','X','_','C','l','o','n','e','T','A','_','A','D','X','_','O','p','e','n','T','A','_','A','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','_','P','e','e','k','T','A','_','A','D','X','_','U','p','d','a','t','e','T','A','_','A','D','X','_','V','a','l','u','e','T','A','_','A','D','_','C','l','o','n','e','T','A','_','A','D','_','O','p','e','n','T','A','_','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','_','P','e','e','k','T','A','_','A','D','_','U','p','d','a','t','e','T','A','_','A','D','_','V','a','l','u','e','T','A','_','A','O','T','A','_','A','O','_','C','l','o','n','e','T','A','_','A','O','_','O','p','e','n','T','A','_','A','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','O','_','P','e','e','k','T','A','_','A','O','_','U','p','d','a','t','e','T','A','_','A','O','_','V','a','l','u','e','T','A','_','A','P','O','T','A','_','A','P','O','_','C','l','o','n','e','T','A','_','A','P','O','_','O','p','e','n','T','A','_','A','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','P','O','_','P','e','e','k','T','A','_','A','P','O','_','U','p','d','a','t','e','T','A','_','A','P','O','_','V','a','l','u','e','T','A','_','A','R','O','O','N','T','A','_','A','R','O','O','N','O','S','C','T','A','_','A','R','O','O','N','O','S','C','_','C','l','o','n','e','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','O','S','C','_','P','e','e','k','T','A','_','A','R','O','O','N','O','S','C','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','O','S','C','_','V','a','l','u','e','T','A','_','A','R','O','O','N','_','C','l','o','n','e','T','A','_','A','R','O','O','N','_','O','p','e','n','T','A','_','A','R','O','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','_','P','e','e','k','T','A','_','A','R','O','O','N','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','_','V','a','l','u','e','T','A','_','A','S','I','N','T','A','_','A','S','I','N','_','C','l','o','n','e','T','A','_','A','S','I','N','_','O','p','e','n','T','A','_','A','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','N','_','P','e','e','k','T','A','_','A','S','I','N','_','U','p','d','a','t','e','T','A','_','A','S','I','N','_','V','a','l','u','e','T','A','_','A','T','A','N','T','A','_','A','T','A','N','_','C','l','o','n','e','T','A','_','A','T','A','N','_','O','p','e','n','T','A','_','A','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','A','N','_','P','e','e','k','T','A','_','A','T','A','N','_','U','p','d','a','t','e','T','A','_','A','T','A','N','_','V','a','l','u','e','T','A','_','A','T','R','T','A','_','A','T','R','_','C','l','o','n','e','T','A','_','A','T','R','_','O','p','e','n','T','A','_','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','R','_','P','e','e','k','T','A','_','A','T','R','_','U','p','d','a','t','e','T','A','_','A','T','R','_','V','a','l','u','e','T','A','_','A','V','G','D','E','V','T','A','_','A','V','G','D','E','V','_','C','l','o','n','e','T','A','_','A','V','G','D','E','V','_','O','p','e','n','T','A','_','A','V','G','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','D','E','V','_','P','e','e','k','T','A','_','A','V','G','D','E','V','_','U','p','d','a','t','e','T','A','_','A','V','G','D','E','V','_','V','a','l','u','e','T','A','_','A','V','G','P','R','I','C','E','T','A','_','A','V','G','P','R','I','C','E','_','C','l','o','n','e','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','P','R','I','C','E','_','P','e','e','k','T','A','_','A','V','G','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','A','V','G','P','R','I','C','E','_','V','a','l','u','e','T','A','_','B','B','A','N','D','S','T','A','_','B','B','A','N','D','S','_','C','l','o','n','e','T','A','_','B','B','A','N','D','S','_','O','p','e','n','T','A','_','B','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','A','N','D','S','_','P','e','e','k','T','A','_','B','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','B','B','A','N','D','S','_','V','a','l','u','e','T','A','_','B','E','T','A','T','A','_','B','E','T','A','_','C','l','o','n','e','T','A','_','B','E','T','A','_','O','p','e','n','T','A','_','B','E','T','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','E','T','A','_','P','e','e','k','T','A','_','B','E','T','A','_','U','p','d','a','t','e','T','A','_','B','E','T','A','_','V','a','l','u','e','T','A','_','B','O','P','T','A','_','B','O','P','_','C','l','o','n','e','T','A','_','B','O','P','_','O','p','e','n','T','A','_','B','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','O','P','_','P','e','e','k','T','A','_','B','O','P','_','U','p','d','a','t','e','T','A','_','B','O','P','_','V','a','l','u','e','T','A','_','C','C','I','T','A','_','C','C','I','_','C','l','o','n','e','T','A','_','C','C','I','_','O','p','e','n','T','A','_','C','C','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','C','I','_','P','e','e','k','T','A','_','C','C','I','_','U','p','d','a','t','e','T','A','_','C','C','I','_','V','a','l','u','e','T','A','_','C','D','L','2','C','R','O','W','S','T','A','_','C','D','L','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','I','N','S','I','D','E','T','A','_','C','D','L','3','I','N','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','I','N','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','I','N','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','C','l','o','n','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','P','e','e','k','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','V','a','l','u','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','C','l','o','n','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','P','e','e','k','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','V','a','l','u','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','C','l','o','n','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','P','e','e','k','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','V','a','l','u','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','C','l','o','n','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','P','e','e','k','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','V','a','l','u','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','C','l','o','n','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','P','e','e','k','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','V','a','l','u','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','C','l','o','n','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','P','e','e','k','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','V','a','l','u','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','C','l','o','n','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','P','e','e','k','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','V','a','l','u','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','C','l','o','n','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','P','e','e','k','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','V','a','l','u','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','P','e','e','k','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','T','A','_','C','D','L','D','O','J','I','S','T','A','R','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','P','e','e','k','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','C','l','o','n','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','P','e','e','k','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','U','p','d','a','t','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','V','a','l','u','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','H','A','M','M','E','R','T','A','_','C','D','L','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','P','e','e','k','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','_','V','a','l','u','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','P','e','e','k','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','V','a','l','u','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','C','l','o','n','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','P','e','e','k','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','V','a','l','u','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','I','N','N','E','C','K','T','A','_','C','D','L','I','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','I','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','C','l','o','n','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','P','e','e','k','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','U','p','d','a','t','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','P','e','e','k','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','H','O','L','D','T','A','_','C','D','L','M','A','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','M','A','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','O','N','N','E','C','K','T','A','_','C','D','L','O','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','O','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','O','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','O','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','P','e','e','k','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','P','e','e','k','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','C','l','o','n','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','P','e','e','k','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','U','p','d','a','t','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','C','l','o','n','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','P','e','e','k','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','U','p','d','a','t','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','V','a','l','u','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','C','l','o','n','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','P','e','e','k','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','V','a','l','u','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','C','l','o','n','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','P','e','e','k','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','V','a','l','u','e','T','A','_','C','D','L','T','A','K','U','R','I','T','A','_','C','D','L','T','A','K','U','R','I','_','C','l','o','n','e','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','K','U','R','I','_','P','e','e','k','T','A','_','C','D','L','T','A','K','U','R','I','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','K','U','R','I','_','V','a','l','u','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','C','l','o','n','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','P','e','e','k','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','V','a','l','u','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','P','e','e','k','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','T','R','I','S','T','A','R','T','A','_','C','D','L','T','R','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','R','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','T','R','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','P','e','e','k','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','E','I','L','T','A','_','C','E','I','L','_','C','l','o','n','e','T','A','_','C','E','I','L','_','O','p','e','n','T','A','_','C','E','I','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','E','I','L','_','P','e','e','k','T','A','_','C','E','I','L','_','U','p','d','a','t','e','T','A','_','C','E','I','L','_','V','a','l','u','e','T','A','_','C','M','F','T','A','_','C','M','F','_','C','l','o','n','e','T','A','_','C','M','F','_','O','p','e','n','T','A','_','C','M','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','F','_','P','e','e','k','T','A','_','C','M','F','_','U','p','d','a','t','e','T','A','_','C','M','F','_','V','a','l','u','e','T','A','_','C','M','O','T','A','_','C','M','O','U','T','A','_','C','M','O','U','_','C','l','o','n','e','T','A','_','C','M','O','U','_','O','p','e','n','T','A','_','C','M','O','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','U','_','P','e','e','k','T','A','_','C','M','O','U','_','U','p','d','a','t','e','T','A','_','C','M','O','U','_','V','a','l','u','e','T','A','_','C','M','O','_','C','l','o','n','e','T','A','_','C','M','O','_','O','p','e','n','T','A','_','C','M','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','_','P','e','e','k','T','A','_','C','M','O','_','U','p','d','a','t','e','T','A','_','C','M','O','_','V','a','l','u','e','T','A','_','C','O','P','P','O','C','K','T','A','_','C','O','P','P','O','C','K','_','C','l','o','n','e','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','P','P','O','C','K','_','P','e','e','k','T','A','_','C','O','P','P','O','C','K','_','U','p','d','a','t','e','T','A','_','C','O','P','P','O','C','K','_','V','a','l','u','e','T','A','_','C','O','R','R','E','L','T','A','_','C','O','R','R','E','L','_','C','l','o','n','e','T','A','_','C','O','R','R','E','L','_','O','p','e','n','T','A','_','C','O','R','R','E','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','R','R','E','L','_','P','e','e','k','T','A','_','C','O','R','R','E','L','_','U','p','d','a','t','e','T','A','_','C','O','R','R','E','L','_','V','a','l','u','e','T','A','_','C','O','S','T','A','_','C','O','S','H','T','A','_','C','O','S','H','_','C','l','o','n','e','T','A','_','C','O','S','H','_','O','p','e','n','T','A','_','C','O','S','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','H','_','P','e','e','k','T','A','_','C','O','S','H','_','U','p','d','a','t','e','T','A','_','C','O','S','H','_','V','a','l','u','e','T','A','_','C','O','S','_','C','l','o','n','e','T','A','_','C','O','S','_','O','p','e','n','T','A','_','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','_','P','e','e','k','T','A','_','C','O','S','_','U','p','d','a','t','e','T','A','_','C','O','S','_','V','a','l','u','e','T','A','_','C','U','M','S','U','M','T','A','_','C','U','M','S','U','M','_','C','l','o','n','e','T','A','_','C','U','M','S','U','M','_','O','p','e','n','T','A','_','C','U','M','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','U','M','S','U','M','_','P','e','e','k','T','A','_','C','U','M','S','U','M','_','U','p','d','a','t','e','T','A','_','C','U','M','S','U','M','_','V','a','l','u','e','T','A','_','C','V','I','T','A','_','C','V','I','_','C','l','o','n','e','T','A','_','C','V','I','_','O','p','e','n','T','A','_','C','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','V','I','_','P','e','e','k','T','A','_','C','V','I','_','U','p','d','a','t','e','T','A','_','C','V','I','_','V','a','l','u','e','T','A','_','D','E','M','A','T','A','_','D','E','M','A','_','C','l','o','n','e','T','A','_','D','E','M','A','_','O','p','e','n','T','A','_','D','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','E','M','A','_','P','e','e','k','T','A','_','D','E','M','A','_','U','p','d','a','t','e','T','A','_','D','E','M','A','_','V','a','l','u','e','T','A','_','D','I','V','T','A','_','D','I','V','_','C','l','o','n','e','T','A','_','D','I','V','_','O','p','e','n','T','A','_','D','I','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','I','V','_','P','e','e','k','T','A','_','D','I','V','_','U','p','d','a','t','e','T','A','_','D','I','V','_','V','a','l','u','e','T','A','_','D','O','N','C','H','I','A','N','T','A','_','D','O','N','C','H','I','A','N','_','C','l','o','n','e','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','N','C','H','I','A','N','_','P','e','e','k','T','A','_','D','O','N','C','H','I','A','N','_','U','p','d','a','t','e','T','A','_','D','O','N','C','H','I','A','N','_','V','a','l','u','e','T','A','_','D','P','O','T','A','_','D','P','O','_','C','l','o','n','e','T','A','_','D','P','O','_','O','p','e','n','T','A','_','D','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','P','O','_','P','e','e','k','T','A','_','D','P','O','_','U','p','d','a','t','e','T','A','_','D','P','O','_','V','a','l','u','e','T','A','_','D','X','T','A','_','D','X','_','C','l','o','n','e','T','A','_','D','X','_','O','p','e','n','T','A','_','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','X','_','P','e','e','k','T','A','_','D','X','_','U','p','d','a','t','e','T','A','_','D','X','_','V','a','l','u','e','T','A','_','E','F','I','T','A','_','E','F','I','_','C','l','o','n','e','T','A','_','E','F','I','_','O','p','e','n','T','A','_','E','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','F','I','_','P','e','e','k','T','A','_','E','F','I','_','U','p','d','a','t','e','T','A','_','E','F','I','_','V','a','l','u','e','T','A','_','E','M','A','T','A','_','E','M','A','_','C','l','o','n','e','T','A','_','E','M','A','_','O','p','e','n','T','A','_','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','A','_','P','e','e','k','T','A','_','E','M','A','_','U','p','d','a','t','e','T','A','_','E','M','A','_','V','a','l','u','e','T','A','_','E','R','T','A','_','E','R','I','T','A','_','E','R','I','_','C','l','o','n','e','T','A','_','E','R','I','_','O','p','e','n','T','A','_','E','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','I','_','P','e','e','k','T','A','_','E','R','I','_','U','p','d','a','t','e','T','A','_','E','R','I','_','V','a','l','u','e','T','A','_','E','R','_','C','l','o','n','e','T','A','_','E','R','_','O','p','e','n','T','A','_','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','_','P','e','e','k','T','A','_','E','R','_','U','p','d','a','t','e','T','A','_','E','R','_','V','a','l','u','e','T','A','_','E','X','P','T','A','_','E','X','P','_','C','l','o','n','e','T','A','_','E','X','P','_','O','p','e','n','T','A','_','E','X','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','X','P','_','P','e','e','k','T','A','_','E','X','P','_','U','p','d','a','t','e','T','A','_','E','X','P','_','V','a','l','u','e','T','A','_','F','L','O','O','R','T','A','_','F','L','O','O','R','_','C','l','o','n','e','T','A','_','F','L','O','O','R','_','O','p','e','n','T','A','_','F','L','O','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','L','O','O','R','_','P','e','e','k','T','A','_','F','L','O','O','R','_','U','p','d','a','t','e','T','A','_','F','L','O','O','R','_','V','a','l','u','e','T','A','_','F','O','S','C','T','A','_','F','O','S','C','_','C','l','o','n','e','T','A','_','F','O','S','C','_','O','p','e','n','T','A','_','F','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','O','S','C','_','P','e','e','k','T','A','_','F','O','S','C','_','U','p','d','a','t','e','T','A','_','F','O','S','C','_','V','a','l','u','e','T','A','_','F','R','A','C','T','A','L','T','A','_','F','R','A','C','T','A','L','_','C','l','o','n','e','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','C','T','A','L','_','P','e','e','k','T','A','_','F','R','A','C','T','A','L','_','U','p','d','a','t','e','T','A','_','F','R','A','C','T','A','L','_','V','a','l','u','e','T','A','_','F','U','N','C','_','F','L','A','G','S','T','A','_','F','u','n','c','T','a','b','l','e','A','l','l','o','c','T','A','_','F','u','n','c','T','a','b','l','e','F','r','e','e','T','A','_','G','e','t','F','u','n','c','H','a','n','d','l','e','T','A','_','G','e','t','F','u','n','c','I','n','f','o','T','A','_','G','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','L','o','o','k','b','a','c','k','T','A','_','G','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','r','o','u','p','T','a','b','l','e','A','l','l','o','c','T','A','_','G','r','o','u','p','T','a','b','l','e','F','r','e','e','T','A','_','H','A','T','A','_','H','A','_','C','l','o','n','e','T','A','_','H','A','_','O','p','e','n','T','A','_','H','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','A','_','P','e','e','k','T','A','_','H','A','_','U','p','d','a','t','e','T','A','_','H','A','_','V','a','l','u','e','T','A','_','H','M','A','T','A','_','H','M','A','_','C','l','o','n','e','T','A','_','H','M','A','_','O','p','e','n','T','A','_','H','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','M','A','_','P','e','e','k','T','A','_','H','M','A','_','U','p','d','a','t','e','T','A','_','H','M','A','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','P','e','e','k','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','H','A','S','E','T','A','_','H','T','_','D','C','P','H','A','S','E','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','H','A','S','E','_','P','e','e','k','T','A','_','H','T','_','D','C','P','H','A','S','E','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','V','a','l','u','e','T','A','_','H','T','_','P','H','A','S','O','R','T','A','_','H','T','_','P','H','A','S','O','R','_','C','l','o','n','e','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','P','H','A','S','O','R','_','P','e','e','k','T','A','_','H','T','_','P','H','A','S','O','R','_','U','p','d','a','t','e','T','A','_','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','T','A','_','H','T','_','S','I','N','E','T','A','_','H','T','_','S','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','S','I','N','E','_','P','e','e','k','T','A','_','H','T','_','S','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','S','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','V','a','l','u','e','T','A','_','I','M','I','T','A','_','I','M','I','_','C','l','o','n','e','T','A','_','I','M','I','_','O','p','e','n','T','A','_','I','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','M','I','_','P','e','e','k','T','A','_','I','M','I','_','U','p','d','a','t','e','T','A','_','I','M','I','_','V','a','l','u','e','T','A','_','I','N','P','U','T','_','F','L','A','G','S','T','A','_','I','n','i','t','i','a','l','i','z','e','T','A','_','K','A','M','A','T','A','_','K','A','M','A','_','C','l','o','n','e','T','A','_','K','A','M','A','_','O','p','e','n','T','A','_','K','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','A','M','A','_','P','e','e','k','T','A','_','K','A','M','A','_','U','p','d','a','t','e','T','A','_','K','A','M','A','_','V','a','l','u','e','T','A','_','K','C','T','A','_','K','C','_','C','l','o','n','e','T','A','_','K','C','_','O','p','e','n','T','A','_','K','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','C','_','P','e','e','k','T','A','_','K','C','_','U','p','d','a','t','e','T','A','_','K','C','_','V','a','l','u','e','T','A','_','K','D','J','T','A','_','K','D','J','_','C','l','o','n','e','T','A','_','K','D','J','_','O','p','e','n','T','A','_','K','D','J','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','D','J','_','P','e','e','k','T','A','_','K','D','J','_','U','p','d','a','t','e','T','A','_','K','D','J','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','V','a','l','u','e','T','A','_','L','N','T','A','_','L','N','_','C','l','o','n','e','T','A','_','L','N','_','O','p','e','n','T','A','_','L','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','N','_','P','e','e','k','T','A','_','L','N','_','U','p','d','a','t','e','T','A','_','L','N','_','V','a','l','u','e','T','A','_','L','O','G','1','0','T','A','_','L','O','G','1','0','_','C','l','o','n','e','T','A','_','L','O','G','1','0','_','O','p','e','n','T','A','_','L','O','G','1','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','O','G','1','0','_','P','e','e','k','T','A','_','L','O','G','1','0','_','U','p','d','a','t','e','T','A','_','L','O','G','1','0','_','V','a','l','u','e','T','A','_','M','A','T','A','_','M','A','C','D','T','A','_','M','A','C','D','E','X','T','T','A','_','M','A','C','D','E','X','T','_','C','l','o','n','e','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','E','X','T','_','P','e','e','k','T','A','_','M','A','C','D','E','X','T','_','U','p','d','a','t','e','T','A','_','M','A','C','D','E','X','T','_','V','a','l','u','e','T','A','_','M','A','C','D','F','I','X','T','A','_','M','A','C','D','F','I','X','_','C','l','o','n','e','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','F','I','X','_','P','e','e','k','T','A','_','M','A','C','D','F','I','X','_','U','p','d','a','t','e','T','A','_','M','A','C','D','F','I','X','_','V','a','l','u','e','T','A','_','M','A','C','D','_','C','l','o','n','e','T','A','_','M','A','C','D','_','O','p','e','n','T','A','_','M','A','C','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','_','P','e','e','k','T','A','_','M','A','C','D','_','U','p','d','a','t','e','T','A','_','M','A','C','D','_','V','a','l','u','e','T','A','_','M','A','M','A','T','A','_','M','A','M','A','_','C','l','o','n','e','T','A','_','M','A','M','A','_','O','p','e','n','T','A','_','M','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','M','A','_','P','e','e','k','T','A','_','M','A','M','A','_','U','p','d','a','t','e','T','A','_','M','A','M','A','_','V','a','l','u','e','T','A','_','M','A','R','K','E','T','F','I','T','A','_','M','A','R','K','E','T','F','I','_','C','l','o','n','e','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','R','K','E','T','F','I','_','P','e','e','k','T','A','_','M','A','R','K','E','T','F','I','_','U','p','d','a','t','e','T','A','_','M','A','R','K','E','T','F','I','_','V','a','l','u','e','T','A','_','M','A','S','S','I','T','A','_','M','A','S','S','I','_','C','l','o','n','e','T','A','_','M','A','S','S','I','_','O','p','e','n','T','A','_','M','A','S','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','S','S','I','_','P','e','e','k','T','A','_','M','A','S','S','I','_','U','p','d','a','t','e','T','A','_','M','A','S','S','I','_','V','a','l','u','e','T','A','_','M','A','V','P','T','A','_','M','A','V','P','_','C','l','o','n','e','T','A','_','M','A','V','P','_','O','p','e','n','T','A','_','M','A','V','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','V','P','_','P','e','e','k','T','A','_','M','A','V','P','_','U','p','d','a','t','e','T','A','_','M','A','V','P','_','V','a','l','u','e','T','A','_','M','A','X','T','A','_','M','A','X','I','N','D','E','X','T','A','_','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','A','X','_','C','l','o','n','e','T','A','_','M','A','X','_','O','p','e','n','T','A','_','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','_','P','e','e','k','T','A','_','M','A','X','_','U','p','d','a','t','e','T','A','_','M','A','X','_','V','a','l','u','e','T','A','_','M','A','_','C','l','o','n','e','T','A','_','M','A','_','O','p','e','n','T','A','_','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','_','P','e','e','k','T','A','_','M','A','_','U','p','d','a','t','e','T','A','_','M','A','_','V','a','l','u','e','T','A','_','M','E','D','P','R','I','C','E','T','A','_','M','E','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','E','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','E','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','F','I','T','A','_','M','F','I','_','C','l','o','n','e','T','A','_','M','F','I','_','O','p','e','n','T','A','_','M','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','F','I','_','P','e','e','k','T','A','_','M','F','I','_','U','p','d','a','t','e','T','A','_','M','F','I','_','V','a','l','u','e','T','A','_','M','I','D','P','O','I','N','T','T','A','_','M','I','D','P','O','I','N','T','_','C','l','o','n','e','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','O','I','N','T','_','P','e','e','k','T','A','_','M','I','D','P','O','I','N','T','_','U','p','d','a','t','e','T','A','_','M','I','D','P','O','I','N','T','_','V','a','l','u','e','T','A','_','M','I','D','P','R','I','C','E','T','A','_','M','I','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','I','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','I','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','I','N','T','A','_','M','I','N','I','N','D','E','X','T','A','_','M','I','N','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','I','T','A','_','M','I','N','U','S','_','D','I','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','I','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','I','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','M','T','A','_','M','I','N','U','S','_','D','M','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','M','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','M','_','V','a','l','u','e','T','A','_','M','I','N','_','C','l','o','n','e','T','A','_','M','I','N','_','O','p','e','n','T','A','_','M','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','_','P','e','e','k','T','A','_','M','I','N','_','U','p','d','a','t','e','T','A','_','M','I','N','_','V','a','l','u','e','T','A','_','M','O','M','T','A','_','M','O','M','_','C','l','o','n','e','T','A','_','M','O','M','_','O','p','e','n','T','A','_','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','O','M','_','P','e','e','k','T','A','_','M','O','M','_','U','p','d','a','t','e','T','A','_','M','O','M','_','V','a','l','u','e','T','A','_','M','U','L','T','T','A','_','M','U','L','T','_','C','l','o','n','e','T','A','_','M','U','L','T','_','O','p','e','n','T','A','_','M','U','L','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','U','L','T','_','P','e','e','k','T','A','_','M','U','L','T','_','U','p','d','a','t','e','T','A','_','M','U','L','T','_','V','a','l','u','e','T','A','_','N','A','T','R','T','A','_','N','A','T','R','_','C','l','o','n','e','T','A','_','N','A','T','R','_','O','p','e','n','T','A','_','N','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','A','T','R','_','P','e','e','k','T','A','_','N','A','T','R','_','U','p','d','a','t','e','T','A','_','N','A','T','R','_','V','a','l','u','e','T','A','_','N','V','I','T','A','_','N','V','I','_','C','l','o','n','e','T','A','_','N','V','I','_','O','p','e','n','T','A','_','N','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','V','I','_','P','e','e','k','T','A','_','N','V','I','_','U','p','d','a','t','e','T','A','_','N','V','I','_','V','a','l','u','e','T','A','_','O','B','V','T','A','_','O','B','V','_','C','l','o','n','e','T','A','_','O','B','V','_','O','p','e','n','T','A','_','O','B','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','O','B','V','_','P','e','e','k','T','A','_','O','B','V','_','U','p','d','a','t','e','T','A','_','O','B','V','_','V','a','l','u','e','T','A','_','O','U','T','P','U','T','_','F','L','A','G','S','T','A','_','P','E','R','C','E','N','T','I','L','E','T','A','_','P','E','R','C','E','N','T','I','L','E','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','I','L','E','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','I','L','E','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','I','T','A','_','P','L','U','S','_','D','I','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','I','_','P','e','e','k','T','A','_','P','L','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','I','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','M','T','A','_','P','L','U','S','_','D','M','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','M','_','P','e','e','k','T','A','_','P','L','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','M','_','V','a','l','u','e','T','A','_','P','P','O','T','A','_','P','P','O','_','C','l','o','n','e','T','A','_','P','P','O','_','O','p','e','n','T','A','_','P','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','P','O','_','P','e','e','k','T','A','_','P','P','O','_','U','p','d','a','t','e','T','A','_','P','P','O','_','V','a','l','u','e','T','A','_','P','V','I','T','A','_','P','V','I','_','C','l','o','n','e','T','A','_','P','V','I','_','O','p','e','n','T','A','_','P','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','I','_','P','e','e','k','T','A','_','P','V','I','_','U','p','d','a','t','e','T','A','_','P','V','I','_','V','a','l','u','e','T','A','_','P','V','O','T','A','_','P','V','O','_','C','l','o','n','e','T','A','_','P','V','O','_','O','p','e','n','T','A','_','P','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','O','_','P','e','e','k','T','A','_','P','V','O','_','U','p','d','a','t','e','T','A','_','P','V','O','_','V','a','l','u','e','T','A','_','P','V','T','T','A','_','P','V','T','_','C','l','o','n','e','T','A','_','P','V','T','_','O','p','e','n','T','A','_','P','V','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','T','_','P','e','e','k','T','A','_','P','V','T','_','U','p','d','a','t','e','T','A','_','P','V','T','_','V','a','l','u','e','T','A','_','P','a','r','a','m','H','o','l','d','e','r','A','l','l','o','c','T','A','_','P','a','r','a','m','H','o','l','d','e','r','F','r','e','e','T','A','_','Q','S','T','I','C','K','T','A','_','Q','S','T','I','C','K','_','C','l','o','n','e','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Q','S','T','I','C','K','_','P','e','e','k','T','A','_','Q','S','T','I','C','K','_','U','p','d','a','t','e','T','A','_','Q','S','T','I','C','K','_','V','a','l','u','e','T','A','_','R','M','A','T','A','_','R','M','A','_','C','l','o','n','e','T','A','_','R','M','A','_','O','p','e','n','T','A','_','R','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','M','A','_','P','e','e','k','T','A','_','R','M','A','_','U','p','d','a','t','e','T','A','_','R','M','A','_','V','a','l','u','e','T','A','_','R','O','C','T','A','_','R','O','C','P','T','A','_','R','O','C','P','_','C','l','o','n','e','T','A','_','R','O','C','P','_','O','p','e','n','T','A','_','R','O','C','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','P','_','P','e','e','k','T','A','_','R','O','C','P','_','U','p','d','a','t','e','T','A','_','R','O','C','P','_','V','a','l','u','e','T','A','_','R','O','C','R','T','A','_','R','O','C','R','1','0','0','T','A','_','R','O','C','R','1','0','0','_','C','l','o','n','e','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','1','0','0','_','P','e','e','k','T','A','_','R','O','C','R','1','0','0','_','U','p','d','a','t','e','T','A','_','R','O','C','R','1','0','0','_','V','a','l','u','e','T','A','_','R','O','C','R','_','C','l','o','n','e','T','A','_','R','O','C','R','_','O','p','e','n','T','A','_','R','O','C','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','_','P','e','e','k','T','A','_','R','O','C','R','_','U','p','d','a','t','e','T','A','_','R','O','C','R','_','V','a','l','u','e','T','A','_','R','O','C','_','C','l','o','n','e','T','A','_','R','O','C','_','O','p','e','n','T','A','_','R','O','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','_','P','e','e','k','T','A','_','R','O','C','_','U','p','d','a','t','e','T','A','_','R','O','C','_','V','a','l','u','e','T','A','_','R','S','I','T','A','_','R','S','I','_','C','l','o','n','e','T','A','_','R','S','I','_','O','p','e','n','T','A','_','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','S','I','_','P','e','e','k','T','A','_','R','S','I','_','U','p','d','a','t','e','T','A','_','R','S','I','_','V','a','l','u','e','T','A','_','R','V','I','T','A','_','R','V','I','_','C','l','o','n','e','T','A','_','R','V','I','_','O','p','e','n','T','A','_','R','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','_','P','e','e','k','T','A','_','R','V','I','_','U','p','d','a','t','e','T','A','_','R','V','I','_','V','a','l','u','e','T','A','_','R','V','O','L','T','A','_','R','V','O','L','_','C','l','o','n','e','T','A','_','R','V','O','L','_','O','p','e','n','T','A','_','R','V','O','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','O','L','_','P','e','e','k','T','A','_','R','V','O','L','_','U','p','d','a','t','e','T','A','_','R','V','O','L','_','V','a','l','u','e','T','A','_','R','e','s','t','o','r','e','C','a','n','d','l','e','D','e','f','a','u','l','t','S','e','t','t','i','n','g','s','T','A','_','S','A','R','T','A','_','S','A','R','E','X','T','T','A','_','S','A','R','E','X','T','_','C','l','o','n','e','T','A','_','S','A','R','E','X','T','_','O','p','e','n','T','A','_','S','A','R','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','E','X','T','_','P','e','e','k','T','A','_','S','A','R','E','X','T','_','U','p','d','a','t','e','T','A','_','S','A','R','E','X','T','_','V','a','l','u','e','T','A','_','S','A','R','_','C','l','o','n','e','T','A','_','S','A','R','_','O','p','e','n','T','A','_','S','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','_','P','e','e','k','T','A','_','S','A','R','_','U','p','d','a','t','e','T','A','_','S','A','R','_','V','a','l','u','e','T','A','_','S','I','N','T','A','_','S','I','N','H','T','A','_','S','I','N','H','_','C','l','o','n','e','T','A','_','S','I','N','H','_','O','p','e','n','T','A','_','S','I','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','H','_','P','e','e','k','T','A','_','S','I','N','H','_','U','p','d','a','t','e','T','A','_','S','I','N','H','_','V','a','l','u','e','T','A','_','S','I','N','_','C','l','o','n','e','T','A','_','S','I','N','_','O','p','e','n','T','A','_','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','_','P','e','e','k','T','A','_','S','I','N','_','U','p','d','a','t','e','T','A','_','S','I','N','_','V','a','l','u','e','T','A','_','S','M','A','T','A','_','S','M','A','_','C','l','o','n','e','T','A','_','S','M','A','_','O','p','e','n','T','A','_','S','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','A','_','P','e','e','k','T','A','_','S','M','A','_','U','p','d','a','t','e','T','A','_','S','M','A','_','V','a','l','u','e','T','A','_','S','M','I','T','A','_','S','M','I','_','C','l','o','n','e','T','A','_','S','M','I','_','O','p','e','n','T','A','_','S','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','I','_','P','e','e','k','T','A','_','S','M','I','_','U','p','d','a','t','e','T','A','_','S','M','I','_','V','a','l','u','e','T','A','_','S','Q','R','T','T','A','_','S','Q','R','T','_','C','l','o','n','e','T','A','_','S','Q','R','T','_','O','p','e','n','T','A','_','S','Q','R','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','R','T','_','P','e','e','k','T','A','_','S','Q','R','T','_','U','p','d','a','t','e','T','A','_','S','Q','R','T','_','V','a','l','u','e','T','A','_','S','T','D','D','E','V','T','A','_','S','T','D','D','E','V','_','C','l','o','n','e','T','A','_','S','T','D','D','E','V','_','O','p','e','n','T','A','_','S','T','D','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','D','D','E','V','_','P','e','e','k','T','A','_','S','T','D','D','E','V','_','U','p','d','a','t','e','T','A','_','S','T','D','D','E','V','_','V','a','l','u','e','T','A','_','S','T','O','C','H','T','A','_','S','T','O','C','H','F','T','A','_','S','T','O','C','H','F','_','C','l','o','n','e','T','A','_','S','T','O','C','H','F','_','O','p','e','n','T','A','_','S','T','O','C','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','F','_','P','e','e','k','T','A','_','S','T','O','C','H','F','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','F','_','V','a','l','u','e','T','A','_','S','T','O','C','H','R','S','I','T','A','_','S','T','O','C','H','R','S','I','_','C','l','o','n','e','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','R','S','I','_','P','e','e','k','T','A','_','S','T','O','C','H','R','S','I','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','R','S','I','_','V','a','l','u','e','T','A','_','S','T','O','C','H','_','C','l','o','n','e','T','A','_','S','T','O','C','H','_','O','p','e','n','T','A','_','S','T','O','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','_','P','e','e','k','T','A','_','S','T','O','C','H','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','_','V','a','l','u','e','T','A','_','S','U','B','T','A','_','S','U','B','_','C','l','o','n','e','T','A','_','S','U','B','_','O','p','e','n','T','A','_','S','U','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','B','_','P','e','e','k','T','A','_','S','U','B','_','U','p','d','a','t','e','T','A','_','S','U','B','_','V','a','l','u','e','T','A','_','S','U','M','T','A','_','S','U','M','_','C','l','o','n','e','T','A','_','S','U','M','_','O','p','e','n','T','A','_','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','M','_','P','e','e','k','T','A','_','S','U','M','_','U','p','d','a','t','e','T','A','_','S','U','M','_','V','a','l','u','e','T','A','_','S','U','P','E','R','T','R','E','N','D','T','A','_','S','U','P','E','R','T','R','E','N','D','_','C','l','o','n','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','P','E','R','T','R','E','N','D','_','P','e','e','k','T','A','_','S','U','P','E','R','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','T','A','_','S','e','t','C','a','n','d','l','e','S','e','t','t','i','n','g','s','T','A','_','S','e','t','C','o','m','p','a','t','i','b','i','l','i','t','y','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','I','n','t','e','g','e','r','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','R','e','a','l','T','A','_','S','e','t','U','n','s','t','a','b','l','e','P','e','r','i','o','d','T','A','_','S','h','u','t','d','o','w','n','T','A','_','T','3','T','A','_','T','3','_','C','l','o','n','e','T','A','_','T','3','_','O','p','e','n','T','A','_','T','3','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','3','_','P','e','e','k','T','A','_','T','3','_','U','p','d','a','t','e','T','A','_','T','3','_','V','a','l','u','e','T','A','_','T','A','N','T','A','_','T','A','N','H','T','A','_','T','A','N','H','_','C','l','o','n','e','T','A','_','T','A','N','H','_','O','p','e','n','T','A','_','T','A','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','H','_','P','e','e','k','T','A','_','T','A','N','H','_','U','p','d','a','t','e','T','A','_','T','A','N','H','_','V','a','l','u','e','T','A','_','T','A','N','_','C','l','o','n','e','T','A','_','T','A','N','_','O','p','e','n','T','A','_','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','_','P','e','e','k','T','A','_','T','A','N','_','U','p','d','a','t','e','T','A','_','T','A','N','_','V','a','l','u','e','T','A','_','T','E','M','A','T','A','_','T','E','M','A','_','C','l','o','n','e','T','A','_','T','E','M','A','_','O','p','e','n','T','A','_','T','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','E','M','A','_','P','e','e','k','T','A','_','T','E','M','A','_','U','p','d','a','t','e','T','A','_','T','E','M','A','_','V','a','l','u','e','T','A','_','T','R','A','N','G','E','T','A','_','T','R','A','N','G','E','_','C','l','o','n','e','T','A','_','T','R','A','N','G','E','_','O','p','e','n','T','A','_','T','R','A','N','G','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','A','N','G','E','_','P','e','e','k','T','A','_','T','R','A','N','G','E','_','U','p','d','a','t','e','T','A','_','T','R','A','N','G','E','_','V','a','l','u','e','T','A','_','T','R','I','M','A','T','A','_','T','R','I','M','A','_','C','l','o','n','e','T','A','_','T','R','I','M','A','_','O','p','e','n','T','A','_','T','R','I','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','M','A','_','P','e','e','k','T','A','_','T','R','I','M','A','_','U','p','d','a','t','e','T','A','_','T','R','I','M','A','_','V','a','l','u','e','T','A','_','T','R','I','X','T','A','_','T','R','I','X','_','C','l','o','n','e','T','A','_','T','R','I','X','_','O','p','e','n','T','A','_','T','R','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','X','_','P','e','e','k','T','A','_','T','R','I','X','_','U','p','d','a','t','e','T','A','_','T','R','I','X','_','V','a','l','u','e','T','A','_','T','S','F','T','A','_','T','S','F','_','C','l','o','n','e','T','A','_','T','S','F','_','O','p','e','n','T','A','_','T','S','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','F','_','P','e','e','k','T','A','_','T','S','F','_','U','p','d','a','t','e','T','A','_','T','S','F','_','V','a','l','u','e','T','A','_','T','S','I','T','A','_','T','S','I','_','C','l','o','n','e','T','A','_','T','S','I','_','O','p','e','n','T','A','_','T','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','I','_','P','e','e','k','T','A','_','T','S','I','_','U','p','d','a','t','e','T','A','_','T','S','I','_','V','a','l','u','e','T','A','_','T','Y','P','P','R','I','C','E','T','A','_','T','Y','P','P','R','I','C','E','_','C','l','o','n','e','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','Y','P','P','R','I','C','E','_','P','e','e','k','T','A','_','T','Y','P','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','T','Y','P','P','R','I','C','E','_','V','a','l','u','e','T','A','_','U','L','T','O','S','C','T','A','_','U','L','T','O','S','C','_','C','l','o','n','e','T','A','_','U','L','T','O','S','C','_','O','p','e','n','T','A','_','U','L','T','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','U','L','T','O','S','C','_','P','e','e','k','T','A','_','U','L','T','O','S','C','_','U','p','d','a','t','e','T','A','_','U','L','T','O','S','C','_','V','a','l','u','e','T','A','_','V','A','R','T','A','_','V','A','R','_','C','l','o','n','e','T','A','_','V','A','R','_','O','p','e','n','T','A','_','V','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','A','R','_','P','e','e','k','T','A','_','V','A','R','_','U','p','d','a','t','e','T','A','_','V','A','R','_','V','a','l','u','e','T','A','_','V','H','F','T','A','_','V','H','F','_','C','l','o','n','e','T','A','_','V','H','F','_','O','p','e','n','T','A','_','V','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','H','F','_','P','e','e','k','T','A','_','V','H','F','_','U','p','d','a','t','e','T','A','_','V','H','F','_','V','a','l','u','e','T','A','_','V','O','R','T','E','X','T','A','_','V','O','R','T','E','X','_','C','l','o','n','e','T','A','_','V','O','R','T','E','X','_','O','p','e','n','T','A','_','V','O','R','T','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','O','R','T','E','X','_','P','e','e','k','T','A','_','V','O','R','T','E','X','_','U','p','d','a','t','e','T','A','_','V','O','R','T','E','X','_','V','a','l','u','e','T','A','_','V','W','A','P','T','A','_','V','W','A','P','_','C','l','o','n','e','T','A','_','V','W','A','P','_','O','p','e','n','T','A','_','V','W','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','A','P','_','P','e','e','k','T','A','_','V','W','A','P','_','U','p','d','a','t','e','T','A','_','V','W','A','P','_','V','a','l','u','e','T','A','_','V','W','M','A','T','A','_','V','W','M','A','_','C','l','o','n','e','T','A','_','V','W','M','A','_','O','p','e','n','T','A','_','V','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','M','A','_','P','e','e','k','T','A','_','V','W','M','A','_','U','p','d','a','t','e','T','A','_','V','W','M','A','_','V','a','l','u','e','T','A','_','W','A','D','T','A','_','W','A','D','_','C','l','o','n','e','T','A','_','W','A','D','_','O','p','e','n','T','A','_','W','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','D','_','P','e','e','k','T','A','_','W','A','D','_','U','p','d','a','t','e','T','A','_','W','A','D','_','V','a','l','u','e','T','A','_','W','C','L','P','R','I','C','E','T','A','_','W','C','L','P','R','I','C','E','_','C','l','o','n','e','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','C','L','P','R','I','C','E','_','P','e','e','k','T','A','_','W','C','L','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','W','C','L','P','R','I','C','E','_','V','a','l','u','e','T','A','_','W','I','L','L','R','T','A','_','W','I','L','L','R','_','C','l','o','n','e','T','A','_','W','I','L','L','R','_','O','p','e','n','T','A','_','W','I','L','L','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','I','L','L','R','_','P','e','e','k','T','A','_','W','I','L','L','R','_','U','p','d','a','t','e','T','A','_','W','I','L','L','R','_','V','a','l','u','e','T','A','_','W','M','A','T','A','_','W','M','A','_','C','l','o','n','e','T','A','_','W','M','A','_','O','p','e','n','T','A','_','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','M','A','_','P','e','e','k','T','A','_','W','M','A','_','U','p','d','a','t','e','T','A','_','W','M','A','_','V','a','l','u','e','T','A','_','Z','L','E','M','A','T','A','_','Z','L','E','M','A','_','C','l','o','n','e','T','A','_','Z','L','E','M','A','_','O','p','e','n','T','A','_','Z','L','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','L','E','M','A','_','P','e','e','k','T','A','_','Z','L','E','M','A','_','U','p','d','a','t','e','T','A','_','Z','L','E','M','A','_','V','a','l','u','e','T','E','M','A','T','E','M','A','_','S','t','r','e','a','m','T','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','A','N','G','E','T','R','A','N','G','E','_','S','t','r','e','a','m','T','R','A','N','G','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','M','A','T','R','I','M','A','_','S','t','r','e','a','m','T','R','I','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','X','T','R','I','X','_','S','t','r','e','a','m','T','R','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','F','T','S','F','_','S','t','r','e','a','m','T','S','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','I','T','S','I','_','S','t','r','e','a','m','T','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','Y','P','P','R','I','C','E','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','L','T','O','S','C','U','L','T','O','S','C','_','S','t','r','e','a','m','U','L','T','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','A','R','V','A','R','_','S','t','r','e','a','m','V','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','H','F','V','H','F','_','S','t','r','e','a','m','V','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','V','O','R','T','E','X','_','S','t','r','e','a','m','V','O','R','T','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','A','P','V','W','A','P','_','S','t','r','e','a','m','V','W','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','M','A','V','W','M','A','_','S','t','r','e','a','m','V','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','D','W','A','D','_','S','t','r','e','a','m','W','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','C','L','P','R','I','C','E','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','I','L','L','R','W','I','L','L','R','_','S','t','r','e','a','m','W','I','L','L','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','M','A','W','M','A','_','S','t','r','e','a','m','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','L','E','M','A','Z','L','E','M','A','_','S','t','r','e','a','m','Z','L','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','_','A','R','R','A','Y','_','T','Y','P','E','S','_','F','u','n','c','t','i','o','n','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','F','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','d','a','t','a','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','s','t','r','_','I','N','P','U','T','_','A','R','R','A','Y','S','_','T','Y','P','E','S','_','I','N','P','U','T','_','P','R','I','C','E','_','S','E','R','I','E','S','_','D','E','F','A','U','L','T','S','_','P','A','N','D','A','S','_','D','A','T','A','F','R','A','M','E','_','P','A','N','D','A','S','_','S','E','R','I','E','S','_','P','O','L','A','R','S','_','D','A','T','A','F','R','A','M','E','_','P','O','L','A','R','S','_','S','E','R','I','E','S','_','T','A','_','R','e','a','d','L','e','a','s','e','_','T','A','_','R','e','a','d','L','e','a','s','e','.','_','_','e','n','t','e','r','_','_','_','T','A','_','R','e','a','d','L','e','a','s','e','.','_','_','e','x','i','t','_','_','_','T','A','_','R','e','a','d','L','e','a','s','e','.','_','_','r','e','d','u','c','e','_','c','y','t','h','o','n','_','_','_','T','A','_','R','e','a','d','L','e','a','s','e','.','_','_','s','e','t','s','t','a','t','e','_','c','y','t','h','o','n','_','_','_','T','A','_','W','r','i','t','e','L','e','a','s','e','_','T','A','_','W','r','i','t','e','L','e','a','s','e','.','_','_','e','n','t','e','r','_','_','_','T','A','_','W','r','i','t','e','L','e','a','s','e','.','_','_','e','x','i','t','_','_','_','T','A','_','W','r','i','t','e','L','e','a','s','e','.','_','_','r','e','d','u','c','e','_','c','y','t','h','o','n','_','_','_','T','A','_','W','r','i','t','e','L','e','a','s','e','.','_','_','s','e','t','s','t','a','t','e','_','c','y','t','h','o','n','_','_','_','_','P','y','x','_','P','y','D','i','c','t','_','N','e','x','t','R','e','f','_','_','T','A','_','F','U','N','C','T','I','O','N','_','N','A','M','E','S','_','_','_','_','a','l','l','_','_','_','_','a','n','n','o','t','a','t','e','_','_','_','_','c','a','l','l','_','_','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','c','l','a','s','s','_','g','e','t','i','t','e','m','_','_','_','_','c','o','p','y','_','_','_','_','d','e','e','p','c','o','p','y','_','_','_','_','d','i','c','t','_','_','_','_','d','o','c','_','_','_','_','e','n','t','e','r','_','_','_','_','e','x','i','t','_','_','_','_','f','u','n','c','_','_','_','_','g','e','t','_','f','l','a','g','s','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','g','e','t','i','t','e','m','_','_','_','_','g','e','t','s','t','a','t','e','_','_','_','_','i','n','i','t','_','_','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','_','l','o','c','a','l','_','_','m','a','i','n','_','_','_','_','m','e','t','a','c','l','a','s','s','_','_','_','_','m','o','d','u','l','e','_','_','_','_','m','r','o','_','e','n','t','r','i','e','s','_','_','_','_','n','a','m','e','_','_','_','_','n','e','w','_','_','_','_','p','r','e','p','a','r','e','_','_','_','_','p','y','x','_','c','h','e','c','k','s','u','m','_','_','p','y','x','_','r','e','s','u','l','t','_','_','p','y','x','_','s','t','a','t','e','_','_','p','y','x','_','t','y','p','e','_','_','p','y','x','_','u','n','p','i','c','k','l','e','_','_','T','A','_','R','e','a','d','L','e','a','s','e','_','_','p','y','x','_','u','n','p','i','c','k','l','e','_','_','T','A','_','W','r','i','t','e','L','e','a','s','e','_','_','p','y','x','_','v','t','a','b','l','e','_','_','_','_','q','u','a','l','n','a','m','e','_','_','_','_','r','e','d','u','c','e','_','_','_','_','r','e','d','u','c','e','_','c','y','t','h','o','n','_','_','_','_','r','e','d','u','c','e','_','e','x','_','_','_','_','r','e','p','r','_','_','_','_','s','e','t','_','n','a','m','e','_','_','_','_','s','e','t','s','t','a','t','e','_','_','_','_','s','e','t','s','t','a','t','e','_','c','y','t','h','o','n','_','_','_','_','s','t','r','_','_','_','_','t','a','_','v','e','r','s','i','o','n','_','_','_','_','t','e','s','t','_','_','_','_','u','n','i','c','o','d','e','_','_','_','d','i','c','t','_','g','e','t','_','d','e','f','a','u','l','t','s','_','a','n','d','_','d','o','c','s','_','i','s','_','c','o','r','o','u','t','i','n','e','_','l','o','o','k','u','p','_','t','a','_','c','h','e','c','k','_','s','u','c','c','e','s','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','r','e','t','i','r','e','d','_','t','a','_','g','e','t','F','u','n','c','I','n','f','o','_','t','a','_','g','e','t','F','u','n','c','T','a','b','l','e','_','t','a','_','g','e','t','G','r','o','u','p','T','a','b','l','e','_','t','a','_','g','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','g','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','i','n','i','t','i','a','l','i','z','e','_','t','a','_','r','e','s','t','o','r','e','_','c','a','n','d','l','e','_','d','e','f','a','u','l','t','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','a','n','d','l','e','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','s','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','s','h','u','t','d','o','w','n','a','_','c','l','o','s','e','a','_','h','i','g','h','a','_','l','o','w','a','_','o','p','e','n','a','_','p','e','r','i','o','d','s','a','_','r','e','a','l','a','_','r','e','a','l','0','a','_','r','e','a','l','1','a','_','v','o','l','u','m','e','a','c','c','e','l','e','r','a','t','i','o','n','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','s','h','o','r','t','a','c','q','u','i','r','e','d','a','p','p','e','n','d','a','r','g','a','r','g','s','a','r','r','a','y','s','a','s','c','i','i','a','s','t','y','p','e','a','s','y','n','c','i','o','.','c','o','r','o','u','t','i','n','e','s','a','t','_','e','x','i','t','a','t','r','p','e','r','i','o','d','a','v','g','p','e','r','i','o','d','b','b','e','g','i','d','x','b','i','t','b','y','t','e','s','2','s','t','r','c','_','p','e','r','i','o','d','c','_','v','a','l','u','e','c','a','n','d','l','e','s','t','i','c','k','c','l','i','n','e','_','i','n','_','t','r','a','c','e','b','a','c','k','c','l','o','n','e','c','l','o','s','e','c','o','l','l','e','c','t','i','o','n','s','c','o','l','u','m','n','_','s','t','a','c','k','c','o','l','u','m','n','s','c','o','p','y','d','d','e','c','o','d','e','d','e','f','a','u','l','t','_','v','a','l','u','e','d','e','f','a','u','l','t','s','d','e','s','c','r','i','p','t','i','o','n','d','i','s','p','l','a','y','_','n','a','m','e','d','o','c','s','d','o','c','u','m','e','n','t','a','t','i','o','n','e','m','p','t','y','e','n','d','i','d','x','e','n','d','s','w','i','t','h','e','n','u','m','e','r','a','t','e','f','a','c','t','o','r','f','a','s','t','d','_','m','a','t','y','p','e','f','a','s','t','d','_','p','e','r','i','o','d','f','a','s','t','k','_','p','e','r','i','o','d','f','a','s','t','l','i','m','i','t','f','a','s','t','m','a','t','y','p','e','f','a','s','t','p','e','r','i','o','d','f','i','r','s','t','p','e','r','i','o','d','f','l','a','g','f','l','a','g','s','f','l','a','g','s','_','l','o','o','k','u','p','_','d','i','c','t','f','u','n','c','_','a','r','g','s','f','u','n','c','_','i','n','f','o','f','u','n','c','_','l','i','n','e','f','u','n','c','_','o','b','j','e','c','t','f','u','n','c','t','i','o','n','_','f','l','a','g','s','f','u','n','c','t','i','o','n','_','n','a','m','e','f','u','n','c','t','i','o','n','s','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','g','e','t','_','p','a','r','a','m','e','t','e','r','s','g','r','o','u','p','g','r','o','u','p','s','h','a','n','d','l','e','h','e','l','p','h','i','g','h','h','i','s','t','o','r','y','l','e','n','h','o','l','d','e','r','i','i','d','i','d','x','i','m','p','o','r','t','_','e','r','r','o','r','i','n','i','n','d','e','x','i','n','f','o','i','n','p','u','t','_','a','r','r','a','y','s','i','n','p','u','t','_','n','a','m','e','i','n','p','u','t','_','n','a','m','e','s','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','i','n','t','e','g','e','r','i','s','_','e','m','p','t','y','i','t','e','m','s','k','e','y','k','e','y','s','k','w','a','r','g','s','l','e','f','t','b','a','r','s','l','e','n','g','t','h','l','o','c','a','l','l','o','o','k','b','a','c','k','l','o','w','l','o','w','e','r','m','a','t','y','p','e','m','a','x','i','m','u','m','m','a','x','p','e','r','i','o','d','m','e','m','o','m','i','n','p','e','r','i','o','d','m','i','s','s','i','n','g','m','i','s','s','i','n','g','_','k','e','y','s','m','o','d','u','l','e','m','s','g','m','u','l','t','i','p','l','i','e','r','n','n','a','m','e','n','a','m','e','d','t','u','p','l','e','n','a','n','n','b','d','e','v','n','b','d','e','v','d','n','n','b','d','e','v','u','p','n','o','_','e','x','i','s','t','i','n','g','_','i','n','p','u','t','_','a','r','r','a','y','s','n','u','m','_','i','n','p','u','t','s','n','u','m','_','o','p','t','_','i','n','p','u','t','s','n','u','m','_','o','u','t','p','u','t','s','n','u','m','p','y','o','b','j','e','c','t','o','f','f','s','e','t','o','n','r','e','v','e','r','s','e','o','p','e','n','o','p','e','n','I','n','t','e','r','e','s','t','o','p','e','n','_','a','n','d','_','f','i','l','l','o','p','t','I','n','o','p','t','_','i','n','p','u','t','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','s','o','p','t','_','i','n','p','u','t','s','o','r','d','e','r','e','d','d','i','c','t','o','u','t','o','u','t','a','r','o','o','n','d','o','w','n','o','u','t','a','r','o','o','n','u','p','o','u','t','b','e','a','r','p','o','w','e','r','o','u','t','b','e','g','i','d','x','o','u','t','b','u','l','l','p','o','w','e','r','o','u','t','d','o','u','t','f','a','m','a','o','u','t','f','a','s','t','d','o','u','t','f','a','s','t','k','o','u','t','h','a','c','l','o','s','e','o','u','t','h','a','h','i','g','h','o','u','t','h','a','l','o','w','o','u','t','h','a','o','p','e','n','o','u','t','i','n','p','h','a','s','e','o','u','t','i','n','t','e','g','e','r','o','u','t','i','n','t','e','g','e','r','_','d','a','t','a','o','u','t','j','o','u','t','k','o','u','t','l','e','a','d','s','i','n','e','o','u','t','l','o','w','e','r','b','a','n','d','o','u','t','m','a','c','d','o','u','t','m','a','c','d','h','i','s','t','o','u','t','m','a','c','d','s','i','g','n','a','l','o','u','t','m','a','m','a','o','u','t','m','a','x','o','u','t','m','a','x','i','d','x','o','u','t','m','a','x','i','d','x','_','d','a','t','a','o','u','t','m','i','d','d','l','e','b','a','n','d','o','u','t','m','i','n','o','u','t','m','i','n','i','d','x','o','u','t','m','i','n','i','d','x','_','d','a','t','a','o','u','t','m','i','n','u','s','v','i','o','u','t','n','b','e','l','e','m','e','n','t','o','u','t','p','l','u','s','v','i','o','u','t','p','u','t','o','u','t','p','u','t','_','f','l','a','g','s','o','u','t','p','u','t','_','n','a','m','e','o','u','t','p','u','t','_','n','a','m','e','s','o','u','t','p','u','t','s','o','u','t','p','u','t','s','_','v','a','l','i','d','o','u','t','q','u','a','d','r','a','t','u','r','e','o','u','t','r','e','a','l','o','u','t','r','e','a','l','l','o','w','e','r','b','a','n','d','o','u','t','r','e','a','l','m','i','d','d','l','e','b','a','n','d','o','u','t','r','e','a','l','u','p','p','e','r','b','a','n','d','o','u','t','s','i','n','e','o','u','t','s','l','o','w','d','o','u','t','s','l','o','w','k','o','u','t','s','m','i','o','u','t','s','m','i','s','i','g','n','a','l','o','u','t','s','u','p','e','r','t','r','e','n','d','o','u','t','s','w','i','n','g','h','i','g','h','o','u','t','s','w','i','n','g','l','o','w','o','u','t','t','r','e','n','d','o','u','t','u','p','p','e','r','b','a','n','d','p','a','n','d','a','s','p','a','r','a','m','p','a','r','a','m','_','n','a','m','e','p','a','r','a','m','e','t','e','r','s','p','a','r','a','m','s','p','e','n','e','t','r','a','t','i','o','n','p','e','r','c','e','n','t','i','l','e','p','e','r','i','o','d','p','e','r','i','o','d','s','p','o','l','a','r','s','p','o','p','p','r','i','c','e','p','r','i','c','e','0','p','r','i','c','e','1','p','r','i','c','e','_','s','e','r','i','e','s','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','_','v','a','l','u','e','s','p','r','i','c','e','s','p','r','o','p','e','r','t','y','r','a','n','g','e','t','y','p','e','r','e','a','l','r','e','a','l','0','r','e','a','l','1','r','e','p','l','a','c','e','r','e','s','u','l','t','s','r','e','t','r','e','t','C','o','d','e','r','e','t','_','c','o','d','e','r','i','g','h','t','b','a','r','s','r','o','c','1','p','e','r','i','o','d','r','o','c','2','p','e','r','i','o','d','r','o','c','p','e','r','i','o','d','r','u','n','s','s','c','h','e','m','a','s','e','c','o','n','d','p','e','r','i','o','d','s','e','l','f','s','e','r','i','e','s','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','s','e','t','_','p','a','r','a','m','e','t','e','r','s','s','e','t','d','e','f','a','u','l','t','s','e','t','t','i','n','g','t','y','p','e','s','i','g','n','a','l','m','a','t','y','p','e','s','i','g','n','a','l','p','e','r','i','o','d','s','k','i','p','_','f','i','r','s','t','s','l','o','w','d','_','m','a','t','y','p','e','s','l','o','w','d','_','p','e','r','i','o','d','s','l','o','w','k','_','m','a','t','y','p','e','s','l','o','w','k','_','p','e','r','i','o','d','s','l','o','w','l','i','m','i','t','s','l','o','w','m','a','t','y','p','e','s','l','o','w','p','e','r','i','o','d','s','t','a','c','k','l','e','v','e','l','s','t','a','r','t','v','a','l','u','e','s','t','a','t','e','s','t','a','t','i','c','m','e','t','h','o','d','s','t','d','d','e','v','p','e','r','i','o','d','s','t','r','2','b','y','t','e','s','s','t','r','e','a','m','s','y','s','t','a','b','l','e','t','a','l','i','b','.','_','t','a','_','l','i','b','t','h','r','e','a','d','i','n','g','t','i','m','e','S','t','a','m','p','t','i','m','e','p','e','r','i','o','d','t','i','m','e','p','e','r','i','o','d','1','t','i','m','e','p','e','r','i','o','d','2','t','i','m','e','p','e','r','i','o','d','3','t','o','_','n','u','m','p','y','t','y','p','e','t','y','p','e','_','u','n','s','t','_','i','d','u','p','d','a','t','e','u','p','d','a','t','e','_','i','n','f','o','u','p','d','a','t','e','s','u','p','p','e','r','u','s','e','_','s','e','t','s','t','a','t','e','v','a','l','u','e','v','a','l','u','e','s','v','e','r','s','i','o','n','v','f','a','c','t','o','r','v','o','l','u','m','e','w','a','r','n','w','a','r','n','i','n','g','s','w','m','a','p','e','r','i','o','d','\200','\001','\330','\004','\005','\340','\t','\027','\220','q','\330','\010','\013','\210','4','\210','q','\330','\021','\022','\330','\020','\036','\230','n','\250','A','\330','\014','\035','\230','Q','\320','\036','/','\250','q','\330','\014','\036','\230','a','\200','\001','\330','\004','\007','\200','u','\210','C','\210','q','\330','\010','\020','\220','\005','\220','Q','\330','\014','\r','\330','\020','\026','\320','\026','+','\250','1','\250','A','\330','\014',' ','\240','\013','\250','1','\330','\010','\017','\210','q','\330','\004','\013','\320','\013','\034','\230','A','\230','Q','\200','\001','\330','\004','\007','\200','y','\220','\003','\220','1','\330','\010','\017','\210','q','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\340','\010','\026','\220','a','\330','\004','\014','\320','\014','#','\240','9','\250','C','\250','x','\260','q','\330','\004','\n','\210','%','\210','q','\220','\001','\330','\010','\027','\220','z','\240','\021','\200','\001','\330','\004','+','\250','1','\250','F','\260','!','\200','\001','\330','\004',',','\250','A','\250','V','\260','1','\200','\001','\340','\004','\027','\220','q','\330','\t','\027','\220','q','\330','\r','\016','\330','\014','\032','\320','\032','.','\250','a','\250','q','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\200','\001','\340','\004','\037','\230','q','\320',' ','0','\260','\013','\270',';','\300','k','\320','Q','R','\330','\004','\023','\220','=','\240','\010','\250','\001','\250','\021','\330','\004','\007','\200','|','\220','7','\230','!','\330','\010','/','\250','q','\320','0','@','\300','\016','\310','a','\330','\004','\013','\210','1','\200','\001','\340','\004','\037','\230','q','\320',' ','0','\260','\013','\270',';','\300','k','\320','Q','R','\330','\004','\023','\220','>','\240','\030','\250','\021','\250','!','\330','\004','\007','\200','|','\220','7','\230','!','\330','\010','0','\260','\001','\320','1','B','\300','.','\320','P','Q','\330','\004','\013','\210','1','\200','\001','\340','\t','\026','\220','a','\330','\r','\016','\330','\014','\027','\320','\027','+','\250','1','\330','\004','\013','\210','1','\200','\001','\340','\t','\027','\220','q','\330','\r','\016','\330','\014','\032','\320','\032','/','\250','q','\260','\r','\270','[','\310','\013','\320','S','T','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\340','\t','\027','\220','q','\330','\r','\016','\330','\014','\032','\320','\032',':','\270','!','\270','1','\330','\004','\025','\220','Q','\320','\026','9','\270','\021','\200','\001','\340','#','$','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','[','\320','[','g','\320','g','h','\320','h','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','M','\300','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','M','\300','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','d','\320','d','e','\320','e','q','\320','q','r','\360','\000','\000','s','\001','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','$','%','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','j','\320','j','k','\320','k','w','\320','w','x','\360','\000','\000','y','\001','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','b','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','-','\310','q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','h','\320','h','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','=','\270','Q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','^','\300','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','n','\320','\\','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','%','&','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','}','\320','\\',']','\320',']','i','\320','i','j','\320','j','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','T','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','U','\320','U','V','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','m','\300','=','\320','P','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\010','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\010','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','}','\320','\\','i','\320','i','x','\320','x','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','R','\003','\360','\000','\000','R','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','A','\004','\360','\000','\000','A','\004','B','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','%','>','\270','a','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','l','\300','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','|','\320','[','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','C','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','&','\047','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P',']','\320',']','^','\320','^','j','\320','j','k','\320','k','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','U','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\320','>','V','\320','V','W','\360','*','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\026','\260','q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','-','\310','q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','&','\300','\006','\300','a','\300','y','\320','P',']','\320',']','j','\320','j','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','k','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\026','\260','q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','6','\300','\026','\300','q','\310','\t','\320','Q','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\001','\330','\010','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\010','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','x','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','\047','?','\270','q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\r','\300','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','^','\320','^','f','\320','f','g','\320','g','s','\320','s','t','\360','\000','\000','u','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','^','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','?','\320','?','V','\320','V','m','\320','m','n','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\r','\300','Z','\310','z','\320','Y','Z','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\010','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','^','\320','^','h','\320','h','r','\320','r','{','\320','{','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','t','\003','\360','\000','\000','t','\003','\177','\003','\360','\000','\000','\177','\003','O','\004','\360','\000','\000','O','\004','U','\004','\360','\000','\000','U','\004','V','\004','\360','\000','\000','V','\004','W','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','(',')','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','W','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(',')','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\010','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\010','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','a','\320','a','b','\320','b','n','\320','n','o','\320','o','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','(','?','\320','?','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\034','\300',']','\320','R','S','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','^','\320','^','k','\320','k','x','\320','x','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\320','@','S','\320','S','k','\320','k','~','\360','\000','\000','\177','\001','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','8','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\035','\300','m','\320','S','`','\320','`','m','\320','m','|','\320','|','}','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\010','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\010','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','l','\320','l','y','\360','\000','\000','z','\001','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','E','\004','\360','\000','\000','E','\004','P','\004','\360','\000','\000','P','\004','[','\004','\360','\000','\000','[','\004','f','\004','\360','\000','\000','f','\004','l','\004','\360','\000','\000','l','\004','m','\004','\360','\000','\000','m','\004','n','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','!','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','`','\320','`','a','\320','a','m','\320','m','n','\320','n','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','X','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\026','\220','f','\230','J','\240','a','\330','\t','\n','\330','\010','\014','\210','G','\320','\023','#','\240','1','\330','\014','\033','\230','1','\230','F','\240','!','\330','\004','\013','\210','1','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','`','\320','`','a','\320','a','m','\320','m','n','\320','n','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','X','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','[','\320','[','u','\320','u','v','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','-','\300','\177','\320','V','e','\320','e','f','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','`','\320','`','o','\320','o','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','k','\002','\360','\000','\000','k','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210',';','\220','a','\200','\001','\340','*','+','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','9','\270','\022','\270','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\035','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','a','\320','a','b','\320','b','n','\320','n','o','\320','o','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\340','+','C','\300','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',':','\270','\"','\270','M','\310','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\036','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','b','\320','b','o','\320','o','p','\320','p','|','\320','|','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','g','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',';','\270','2','\270','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\037','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\024','\240','^','\260','1','\260','C','\260','q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',';','\270','2','\270','Q','\330','\010','\024','\220','N','\240','!','\240','8','\250','1','\330','\010','\024','\220','N','\240','!','\240','8','\250','1','\330','\r','\016','\330','\014','\031','\230','\037','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','}','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\025','\220','V','\230','9','\240','A','\330','\t','\n','\330','\010','\014','\210','G','\320','\023','#','\240','1','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\004','\025','\220','V','\230','9','\240','A','\330','\t','\n','\330','\010','\014','\210','G','\320','\023','#','\240','1','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\004','\013','\210','<','\220','q','\200','\001','\340','0','1','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','?','\270','r','\300','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031',',','\250','B','\250','d','\260',')','\270',';','\300','d','\310','&','\320','P','Q','\320','Q','Z','\320','Z','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\340','4','5','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','C','\300','2','\300','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','0','\260','\002','\260','$','\260','i','\270','{','\310','$','\310','f','\320','T','U','\320','U','^','\320','^','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','V','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','M','\300','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','x','\360','\000','\000','y','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','}','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','m','\320','m','n','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','M','\300','\035','\310','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','x','\360','\000','\000','y','\001','F','\002','\360','\000','\000','F','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','L','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','>','?','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','y','\320','y','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','q','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','V','\320','V','W','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','}','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','Y','\320','Y','Z','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','_','\300','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','{','\360','\000','\000','|','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','}','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','u','\310','A','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','^','\320','^','d','\320','d','e','\320','e','n','\320','n','{','\320','{','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','s','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','q','\330','\010','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\010','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','^','\320','^','d','\320','d','e','\320','e','n','\320','n','{','\320','{','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','?','\230','!','\200','\001','\340','@','X','\320','X','Y','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','}','\300','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','^','\320','^','d','\320','d','e','\320','e','n','\320','n','{','\360','\000','\000','|','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','A','[','\320','[','z','\360','\000','\000','{','\001','_','\002','\360','\000','\000','_','\002','\177','\002','\360','\000','\000','\177','\002','b','\003','\360','\000','\000','b','\003','G','\004','\360','\000','\000','G','\004','h','\004','\360','\000','\000','h','\004','i','\004','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\r','\320','E','W','\320','W','n','\360','\000','\000','o','\001','B','\002','\360','\000','\000','B','\002','X','\002','\360','\000','\000','X','\002','p','\002','\360','\000','\000','p','\002','D','\003','\360','\000','\000','D','\003','E','\003','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','|','\360','\000','\000','}','\001','O','\002','\360','\000','\000','O','\002','f','\002','\360','\000','\000','f','\002','y','\002','\360','\000','\000','y','\002','O','\003','\360','\000','\000','O','\003','g','\003','\360','\000','\000','g','\003','{','\003','\360','\000','\000','{','\003','R','\004','\360','\000','\000','R','\004','S','\004','\360','\000','\000','S','\004','_','\004','\360','\000','\000','_','\004','`','\004','\360','\000','\000','`','\004','o','\004','\360','\000','\000','o','\004','z','\004','\360','\000','\000','z','\004','A','\005','\360','\000','\000','A','\005','G','\005','\360','\000','\000','G','\005','H','\005','\360','\000','\000','H','\005','I','\005','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','`','\320','`','f','\320','f','g','\320','g','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\025','\260','h','\270','j','\310','\006','\310','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','%','\270','v','\300','Q','\300','i','\310','{','\320','Z','`','\320','`','f','\320','f','g','\320','g','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','v','\310','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','`','\320','`','f','\320','f','g','\320','g','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\025','\260','h','\270','j','\310','\005','\310','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','5','\300','\006','\300','a','\300','y','\320','P','[','\320','[','`','\320','`','f','\320','f','g','\320','g','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','X','\320','X','Y','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\024','\240','^','\260','1','\260','C','\260','q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\033','\300','A','\330','\010','\027','\220','~','\240','Q','\240','h','\250','a','\330','\010','\026','\220','n','\240','A','\240','X','\250','Q','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','?','\230','!','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','~','\320','~','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','\\','\002','\360','\000','\000','\\','\002','g','\002','\360','\000','\000','g','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','v','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','u','\310','A','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','a','\320','a','g','\320','g','h','\320','h','q','\320','q','~','\320','~','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','\\','\002','\360','\000','\000','\\','\002','g','\002','\360','\000','\000','g','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','v','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','!','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\010','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','~','\320','~','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','\\','\002','\360','\000','\000','\\','\002','g','\002','\360','\000','\000','g','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','C','Z','\320','Z','q','\320','q','r','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\016','\210','k','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','w','\310','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','l','\300',',','\310','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','a','\320','a','g','\320','g','h','\320','h','q','\320','q','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','D','E','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\025','\260','h','\270','j','\310','\005','\310','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','U','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','b','\320','b','h','\320','h','i','\320','i','r','\320','r','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','w','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','Y','Z','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','H','\003','\360','\000','\000','H','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','P','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','Y','q','\360','\000','\000','r','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','M','\300','\034','\310','Q','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\010','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','U','\003','\360','\000','\000','U','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','S','\004','\360','\000','\000','S','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\360','\000','\000','Z','\004','e','\004','\360','\000','\000','e','\004','p','\004','\360','\000','\000','p','\004','@','\005','\360','\000','\000','@','\005','F','\005','\360','\000','\000','F','\005','G','\005','\360','\000','\000','G','\005','H','\005','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','Z','[','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','[','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\010','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','?','\230','!','\200','\001','\340','Z','r','\360','\000','\000','s','\001','K','\002','\360','\000','\000','K','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','-','\310','}','\320','\\',']','\330','\010','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\010','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','Z','\002','\360','\000','\000','Z','\002','g','\002','\360','\000','\000','g','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','x','\003','\360','\000','\000','x','\003','C','\004','\360','\000','\000','C','\004','N','\004','\360','\000','\000','N','\004','Z','\004','\360','\000','\000','Z','\004','`','\004','\360','\000','\000','`','\004','a','\004','\360','\000','\000','a','\004','b','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','Z','t','\360','\000','\000','u','\001','O','\002','\360','\000','\000','O','\002','e','\002','\360','\000','\000','e','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','_','\300','O','\320','S','b','\320','b','q','\320','q','r','\330','\010','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','\\','\002','\360','\000','\000','\\','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','u','\003','\360','\000','\000','u','\003','@','\004','\360','\000','\000','@','\004','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','K','\004','\360','\000','\000','K','\004','V','\004','\360','\000','\000','V','\004','a','\004','\360','\000','\000','a','\004','e','\004','\360','\000','\000','e','\004','k','\004','\360','\000','\000','k','\004','l','\004','\360','\000','\000','l','\004','w','\004','\360','\000','\000','w','\004','B','\005','\360','\000','\000','B','\005','F','\005','\360','\000','\000','F','\005','L','\005','\360','\000','\000','L','\005','M','\005','\360','\000','\000','M','\005','N','\005','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','7','\220','\047','\230','\021','\200','\001','\340','[','\\','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\\',']','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','y','\002','\360','\000','\000','y','\002','D','\003','\360','\000','\000','D','\003','K','\003','\360','\000','\000','K','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','S','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','\\','v','\360','\000','\000','w','\001','Q','\002','\360','\000','\000','Q','\002','f','\002','\360','\000','\000','f','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','\177','\300','o','\320','U','d','\320','d','s','\320','s','t','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','^','\002','\360','\000','\000','^','\002','m','\002','\360','\000','\000','m','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','\\','\004','\360','\000','\000','\\','\004','g','\004','\360','\000','\000','g','\004','o','\004','\360','\000','\000','o','\004','u','\004','\360','\000','\000','u','\004','v','\004','\360','\000','\000','v','\004','w','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210',';','\220','a','\200','\001','\340',']','^','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\001','\330','\010','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\010','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','|','\003','\360','\000','\000','|','\003','}','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340',']','v','\360','\000','\000','w','\001','P','\002','\360','\000','\000','P','\002','Q','\002','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\016','\300','n','\320','T','U','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','W','\003','\360','\000','\000','W','\003','b','\003','\360','\000','\000','b','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','q','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','w','\360','\000','\000','x','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\017','\300','\177','\320','V','W','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','_','\002','\360','\000','\000','_','\002','n','\002','\360','\000','\000','n','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','e','\003','\360','\000','\000','e','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','\177','\003','\360','\000','\000','\177','\003','J','\004','\360','\000','\000','J','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210',';','\220','a','\200','\001','\340','^','_','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\360','\000','\000','|','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','U','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\360','\000','\000','}','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','|','\002','\360','\000','\000','|','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','V','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','!','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\010','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\360','\000','\000','}','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','|','\002','\360','\000','\000','|','\002','G','\003','\360','\000','\000','G','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','t','\003','\360','\000','\000','t','\003','E','\004','\360','\000','\000','E','\004','K','\004','\360','\000','\000','K','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','b','\004','\360','\000','\000','b','\004','r','\004','\360','\000','\000','r','\004','x','\004','\360','\000','\000','x','\004','y','\004','\360','\000','\000','y','\004','z','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','a','y','\320','y','z','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\250','\016','\260','a','\260','s','\270','!','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',':','\270','\"','\270','M','\310','\021','\330','\010','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\010','\023','\220','>','\240','\021','\240','(','\250','!','\330','\r','\016','\330','\014','\031','\230','\036','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','a','\002','\360','\000','\000','a','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','u','\003','\360','\000','\000','u','\003','}','\003','\360','\000','\000','}','\003','E','\004','\360','\000','\000','E','\004','K','\004','\360','\000','\000','K','\004','L','\004','\360','\000','\000','L','\004','M','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\320','\013','\033','\230','1','\200','\001','\340','w','x','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','i','\320','i','s','\320','s','y','\320','y','z','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','r','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','|','}','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',':','\270','\"','\270','A','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\036','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','^','\003','\360','\000','\000','^','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','x','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','B','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','>','\270','b','\300','\001','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','+','\250','2','\250','T','\260','\031','\270','+','\300','T','\310','\026','\310','q','\320','P','Y','\320','Y','d','\320','d','h','\320','h','n','\320','n','o','\320','o','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','b','\003','\360','\000','\000','b','\003','j','\003','\360','\000','\000','j','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','|','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','C','\002','D','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','@','\300','\002','\300','!','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','-','\250','R','\250','t','\260','9','\270','K','\300','t','\310','6','\320','Q','R','\320','R','[','\320','[','f','\320','f','j','\320','j','p','\320','p','q','\320','q','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','d','\003','\360','\000','\000','d','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','~','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','D','\002','E','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','A','\300','\022','\300','1','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','.','\250','b','\260','\004','\260','I','\270','[','\310','\004','\310','F','\320','R','S','\320','S','\\','\320','\\','g','\320','g','k','\320','k','q','\320','q','r','\320','r','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','e','\003','\360','\000','\000','e','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','E','\002','F','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','B','\300','\"','\300','A','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','/','\250','r','\260','\024','\260','Y','\270','k','\310','\024','\310','V','\320','S','T','\320','T',']','\320',']','h','\320','h','l','\320','l','r','\320','r','s','\320','s','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','f','\003','\360','\000','\000','f','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','z','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','i','\320','i','s','\320','s','y','\320','y','z','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','}','\300','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\360','\000','\000','@','\004','A','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\017','\210','q','\330','\004','\t','\210','\021','\330','\t','\026','\220','a','\330','\r','\016','\330','\014','\030','\320','\030','-','\250','Q','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\010','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\t','\330','\004','\t','\210','\021','\330','\004','\017','\210','q','\330','\t','\027','\220','q','\330','\r','\016','\330','\014','\032','\320','\032','/','\250','q','\260','\004','\260','A','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\360','\010','\000','\n','\033','\230','!','\330','\010','\020','\220','\001','\330','\010','\020','\220','\007','\220','q','\230','\006','\230','l','\250','!','\330','\004','\007','\200','v','\210','W','\220','E','\230','\024','\230','Q','\330','\010','\022','\220','!','\330','\010','\027','\220','q','\340','\010','\027','\220','q','\330','\004','\007','\200','q','\330','\010','\017','\320','\017','.','\250','d','\260','!','\260','7','\270','+','\300','W','\310','A','\340','\010','\017','\320','\017','.','\250','d','\260','!','\260','7','\270','+','\300','Q','\200','\001','\360','\010','\000','\n','\033','\230','!','\330','\010','\020','\220','\001','\330','\010','\020','\220','\007','\220','q','\230','\006','\230','l','\250','!','\330','\004','\007','\200','v','\210','W','\220','E','\230','\024','\230','Q','\330','\010','\022','\220','!','\330','\010','\027','\220','q','\340','\010','\027','\220','q','\330','\004','\007','\200','q','\330','\010','\017','\320','\017','/','\250','t','\260','1','\260','G','\270',';','\300','g','\310','Q','\340','\010','\017','\320','\017','/','\250','t','\260','1','\260','G','\270',';','\300','a','\200','\001','\360','\014','\000','\005','\020','\210','q','\330','\004','\020','\220','\001','\220','\031','\230','!','\230','9','\240','A','\330','\004','\020','\220','\001','\220','\021','\330','\004','\013','\210','1','\330','\004','\010','\210','\007','\210','q','\320','\020','1','\260','\022','\260','1','\340','\004','\022','\220',')','\230','1','\230','A','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\016','\220','a','\330','\010','\020','\220','\013','\230','1','\230','A','\330','\010','\013','\210','4','\210','z','\230','\021','\230','\047','\240','\021','\330','\014','\024','\220','A','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','L','\260','\001','\340','\004','\r','\210','Y','\220','a','\220','q','\330','\004','\007','\200','q','\330','\010','\014','\210','G','\220','1','\220','A','\330','\004','\010','\210','\t','\220','\021','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','G','\250','6','\260','\021','\260','!','\330','\010','\021','\220','\027','\230','\001','\230','\035','\240','g','\250','V','\260','1','\260','A','\330','\010','\020','\220','\001','\220','\031','\230','&','\240','\001','\240','\021','\330','\010','\013','\210','5','\220','\t','\230','\021','\230','!','\330','\014','\020','\220','\002','\220','%','\220','s','\230','%','\230','q','\240','\001','\240','\024','\240','R','\240','t','\250','7','\260','\"','\260','G','\270','1','\270','F','\300','!','\300','1','\340','\004','\016','\210','i','\220','q','\230','\001','\330','\004','\022','\320','\022',',','\250','D','\260','\t','\270','\021','\320',':','L','\310','C','\310','q','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\n','\220','!','\330','\010','\013','\210','7','\220','#','\220','Z','\230','t','\240','1','\330','\014','\025','\220','Q','\330','\010','\014','\210','G','\220','1','\220','I','\230','R','\230','q','\340','\004','\r','\210','W','\220','A','\220','T','\230','\025','\230','a','\230','q','\330','\004','\r','\210','W','\220','A','\220','Q','\330','\004','\010','\210','\007','\210','q','\220','\003','\220','2','\220','U','\230','!','\230','1','\330','\004','\024','\220','D','\230','\005','\230','Q','\230','a','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','\014','\000','\005',',','\320','+','=','\270','Q','\270','a','\340','\t','\026','\220','a','\330','\r','\016','\330','\014','\031','\230','\037','\250','\001','\250','\030','\260','\021','\260','!','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\340','\004','\005','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\021','\220','\031','\230','!','\230','4','\230','q','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\032','\230','+','\240','Q','\240','d','\250','(','\260','!','\330','\010','\026','\220','c','\230','\021','\230','$','\230','a','\330','\010','\032','\230','#','\230','Q','\230','d','\240','!','\330','\010','\027','\220','s','\230','!','\230','4','\230','q','\200','\001','\360','\014','\000','\005',',','\320','+','=','\270','Q','\270','a','\340','\t','\026','\220','a','\330','\r','\016','\330','\014','\031','\320','\031','2','\260','!','\260','8','\270','5','\300','\001','\300','\021','\330','\004','\025','\220','Q','\320','\026','2','\260','!','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','G','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','t','\220','8','\230','1','\230','H','\240','A','\330','\t','\021','\220','\023','\220','A','\330','\010','\017','\210','q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\013','\240','1','\240','D','\250','\010','\260','\001','\200','\001','\360','\014','\000','\005',',','\320','+','=','\270','Q','\270','a','\340','\t','\026','\220','a','\330','\r','\016','\330','\014','\031','\320','\031','3','\260','1','\260','H','\270','E','\300','\021','\300','!','\330','\004','\025','\220','Q','\320','\026','3','\260','1','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','H','\230','F','\240','!','\340','\004','\007','\200','w','\210','c','\220','\025','\220','d','\230','%','\230','x','\240','x','\250','y','\270','\001','\330','\010','\017','\210','t','\220','1','\220','C','\220','q','\230','\001','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\021','\220','\033','\230','A','\230','T','\240','\030','\250','\021','\200','\001','\360','\014','\000','\005',',','\320','+','=','\270','Q','\270','a','\340','\t','\026','\220','a','\330','\r','\016','\330','\014','\031','\320','\031','5','\260','Q','\260','h','\270','e','\300','1','\300','A','\330','\004','\025','\220','Q','\320','\026','5','\260','Q','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','J','\230','f','\240','A','\330','\004','\024','\220','C','\220','q','\230','\004','\320','\034','.','\250','d','\260','&','\270','\002','\270','\047','\300','\024','\300','Q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\020','\220','\004','\220','A','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\031','\230','\021','\330','\010','\021','\220','\021','\200','\001','\360','\014','\000','\n','\027','\220','a','\330','\r','\016','\330','\014','\031','\320','\031','+','\250','1','\250','G','\260','1','\260','A','\330','\010','\031','\230','\021','\320','\032','/','\250','q','\330','\010','\t','\330','\014','\030','\230','\001','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\021','\330','\020','\031','\230','\027','\240','\001','\240','\026','\240','q','\250','\005','\250','W','\260','A','\260','Q','\340','\021','\022','\330','\020','\035','\320','\035','.','\250','a','\250','q','\330','\014','\035','\230','Q','\320','\036','2','\260','!','\330','\004','\013','\210','1','\200','\001','\360','\014','\000','\n','\027','\220','a','\330','\r','\016','\330','\014','\031','\320','\031',',','\250','A','\250','Q','\250','a','\330','\010','\031','\230','\021','\320','\032','0','\260','\001','\330','\010','\t','\330','\014','\025','\220','Q','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\021','\330','\020','\026','\220','g','\230','Q','\230','f','\240','A','\240','U','\250','\047','\260','\021','\260','!','\340','\021','\022','\330','\020','\035','\320','\035','/','\250','q','\260','\001','\330','\014','\035','\230','Q','\320','\036','3','\260','1','\330','\004','\013','\210','1','\200','\001','\360','\020','\000','\005','\010','\200','u','\210','B','\210','a','\330','\010','\017','\210','q','\330','\004','\013','\210','1','\210','A','\330','\014','\020','\220','\005','\220','_','\240','F','\250','!','\320','+','<','\270','F','\300','!','\330','\014','\017','\210','t','\220','2','\220','Q','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','i','\320','i','s','\320','s','y','\320','y','z','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','U','\003','\360','\000','\000','U','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','d','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','i','\320','i','s','\320','s','y','\320','y','z','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','j','\002','\360','\000','\000','j','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','D','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','m','\002','\360','\000','\000','m','\002','x','\002','\360','\000','\000','x','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','G','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\360','\000','\000','}','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','I','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','b','\320','b','c','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','q','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\320','|','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','M','\003','\360','\000','\000','M','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','g','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','9','\270','\021','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\035','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',':','\270','!','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\036','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','X','\003','\360','\000','\000','X','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',';','\270','1','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\037','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','a','\320','a','e','\320','e','k','\320','k','l','\320','l','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','Q','\003','\360','\000','\000','Q','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','<','\270','A','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031',')','\250','\022','\250','4','\250','y','\270','\013','\300','4','\300','v','\310','Q','\310','i','\320','W','b','\320','b','f','\320','f','l','\320','l','m','\320','m','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003','Z','\003','\360','\000','\000','Z','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','k','\003','\360','\000','\000','k','\003','l','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','=','\270','Q','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','*','\250','\"','\250','D','\260','\t','\270','\033','\300','D','\310','\006','\310','a','\310','y','\320','X','c','\320','c','g','\320','g','m','\320','m','n','\320','n','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','S','\003','\360','\000','\000','S','\003','[','\003','\360','\000','\000','[','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','m','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','*','\250','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','>','\270','a','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','+','\250','2','\250','T','\260','\031','\270','+','\300','T','\310','\026','\310','q','\320','P','Y','\320','Y','d','\320','d','h','\320','h','n','\320','n','o','\320','o','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','T','\003','\360','\000','\000','T','\003','\\','\003','\360','\000','\000','\\','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','m','\003','\360','\000','\000','m','\003','n','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','?','\270','q','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031',',','\250','B','\250','d','\260',')','\270',';','\300','d','\310','&','\320','P','Q','\320','Q','Z','\320','Z','e','\320','e','i','\320','i','o','\320','o','p','\320','p','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','U','\003','\360','\000','\000','U','\003',']','\003','\360','\000','\000',']','\003','g','\003','\360','\000','\000','g','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','o','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','@','\300','\001','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','-','\250','R','\250','t','\260','9','\270','K','\300','t','\310','6','\320','Q','R','\320','R','[','\320','[','f','\320','f','j','\320','j','p','\320','p','q','\320','q','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','V','\003','\360','\000','\000','V','\003','^','\003','\360','\000','\000','^','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','p','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','A','\300','\021','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','.','\250','b','\260','\004','\260','I','\270','[','\310','\004','\310','F','\320','R','S','\320','S','\\','\320','\\','g','\320','g','k','\320','k','q','\320','q','r','\320','r','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','W','\003','\360','\000','\000','W','\003','_','\003','\360','\000','\000','_','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','q','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','B','\300','!','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','/','\250','r','\260','\024','\260','Y','\270','k','\310','\024','\310','V','\320','S','T','\320','T',']','\320',']','h','\320','h','l','\320','l','r','\320','r','s','\320','s','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','`','\003','\360','\000','\000','`','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','r','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','C','\300','1','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','0','\260','\002','\260','$','\260','i','\270','{','\310','$','\310','f','\320','T','U','\320','U','^','\320','^','i','\320','i','m','\320','m','s','\320','s','t','\320','t','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','g','\002','\360','\000','\000','g','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','Y','\003','\360','\000','\000','Y','\003','a','\003','\360','\000','\000','a','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','r','\003','\360','\000','\000','r','\003','s','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','h','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','<','\270','A','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031',')','\250','\022','\250','4','\250','y','\270','\013','\300','4','\300','v','\310','Q','\310','i','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','|','\360','\000','\000','}','\001','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','Q','\310','l','\320','Z','[','\320','[','j','\320','j','u','\320','u','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','E','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','a','\310','|','\320','[','\\','\320','\\','k','\320','k','v','\320','v','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','F','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','w','\320','w','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','Q','\320','Q',']','\320',']','^','\320','^','m','\320','m','x','\320','x','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','H','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','R','\320','R','^','\320','^','_','\320','_','n','\320','n','y','\360','\000','\000','z','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','I','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',':','\270','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\036','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','V','\320','V','b','\320','b','c','\320','c','r','\320','r','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','M','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',';','\270','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\037','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','<','\270','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031',')','\250','\022','\250','4','\250','y','\270','\013','\300','4','\300','v','\310','Q','\310','i','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\025','\260','h','\270','j','\310','\006','\310','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','%','\270','v','\300','Q','\300','i','\310','{','\320','Z','`','\320','`','f','\320','f','g','\320','g','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','v','\310','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','_','\320','_','e','\320','e','f','\320','f','o','\320','o','p','\320','p','|','\320','|','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','g','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\025','\260','h','\270','j','\310','\005','\310','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','%','\270','v','\300','Q','\300','i','\310','{','\320','Z','_','\320','_','e','\320','e','f','\320','f','o','\320','o','p','\320','p','|','\320','|','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','g','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\025','\260','h','\270','j','\310','\005','\310','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','5','\300','\006','\300','a','\300','y','\320','P','[','\320','[','`','\320','`','f','\320','f','g','\320','g','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\010','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','S','\320','S','_','\320','_','`','\320','`','o','\320','o','z','\360','\000','\000','{','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','r','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','9','\270','\021','\330','\010','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\010','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\r','\016','\330','\014','\031','\230','\035','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','U','\320','U','a','\320','a','b','\320','b','q','\320','q','|','\360','\000','\000','}','\001','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','y','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','=','\230','\001','\200','\001','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','Z','\320','Z','k','\320','k','l','\320','l','o','\320','o','p','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','!','\330','\010','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\010','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\010','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','y','\003','\360','\000','\000','y','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','I','\004','\360','\000','\000','I','\004','T','\004','\360','\000','\000','T','\004','_','\004','\360','\000','\000','_','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','n','\004','\360','\000','\000','n','\004','y','\004','\360','\000','\000','y','\004','D','\005','\360','\000','\000','D','\005','N','\005','\360','\000','\000','N','\005','T','\005','\360','\000','\000','T','\005','U','\005','\360','\000','\000','U','\005','V','\005','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','<','\220','|','\240',';','\250','a','\200','A','\330','\010','\014','\210','A','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','5','\230','\001','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220',';','\230','a','\330','\014','\023','\220',':','\230','Q','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','6','\230','\021','\200','A','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','4','6','\260','d','\270','!','\270','5','\300','\001','\200','A','\330','\010','\017','\210','q','\200','A','\330','\010','\017','\210','q','\220','\007','\220','q','\230','\001','\200','A','\330','\010','\017','\210','t','\220','5','\230','\001','\200','A','\330','\010','\017','\210','t','\220','8','\230','1','\230','A','\200','A','\330','\010','\017','\210','u','\220','A','\220','S','\230','\001','\200','A','\330','\010','\017','\210','u','\220','B','\220','d','\230','!','\200','A','\330','\010','\017','\210','w','\220','a','\220','t','\230','8','\240','1','\200','A','\330','\010','\017','\320','\017','%','\240','Q','\240','d','\250','&','\260','\001','\260','\021','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','1','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\033','\230','5','\240','\014','\250','A','\250','[','\270','\001','\270','\021','\330','\014','\017','\210','z','\230','\021','\230','.','\250','\001','\330','\020','\024','\220','H','\230','A','\330','\024',',','\250','G','\260','1','\260','A','\340','\020','(','\250','\007','\250','q','\260','\001','\330','\010','\017','\210','q','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','4','\320','\047','B','\300','!','\360','\006','\000','\t','\020','\210','q','\330','\010','\014','\320','\014','\034','\230','A','\330','\014','\025','\220','U','\230','-','\240','q','\250','\001','\330','\014','\017','\210','\177','\230','g','\240','U','\250','!','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','w','\240','g','\250','Q','\250','a','\330','\021',' ','\240','\007','\240','u','\250','A','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','y','\250','\002','\250','\047','\260','\021','\260','!','\330','\014','\020','\220','\007','\220','q','\230','\001','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\020','\220','\007','\220','q','\230','\001','\360','\006','\000','\t','\023','\220','$','\220','l','\240','\"','\240','A','\330','\010','\013','\210',':','\220','Q','\220','k','\240','\021','\330','\014','\023','\220','5','\230','\010','\240','\005','\240','Q','\330','\014','\017','\210','t','\220',':','\230','Q','\230','f','\240','A','\330','\020','\027','\220','t','\230','1','\230','A','\330','\014','\021','\220','\030','\230','\021','\230','$','\230','a','\230','v','\240','Q','\340','\014','\020','\220','\003','\220',':','\230','Y','\240','a','\240','u','\250','A','\330','\020','\025','\220','X','\230','Q','\230','j','\250','\007','\250','q','\260','\001','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\330','\010','\020','\220','\004','\220','H','\230','K','\240','q','\250','\013','\260','1','\260','A','\330','\010','\013','\210','6','\220','\027','\320','\030','5','\260','Q','\330','\014','\024','\220','A','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\024','\220','A','\340','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\013','\022','\220','!','\330','\r','\023','\220','7','\230','!','\330','\014','\022','\220',')','\230','1','\330','\020','\021','\330','\024',' ','\240','\005','\240','[','\260','\004','\260','A','\260','V','\270','1','\330','\010','\017','\210','q','\200','A','\330','\010','\030','\230','\001','\200','A','\330','\r','\016','\330','\014','\030','\230','\001','\200','A','\330','\r','\016','\330','\014','\031','\230','\021','\200','A','\330','*','A','\320','A','X','\320','X','Y','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','K','\300','|','\320','S','T','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','e','\320','e','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T','`','\320','`','l','\320','l','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','m','\320','m','n','\320','n','y','\320','y','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','b','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\021','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','b','\320','b','n','\320','n','o','\320','o','z','\320','z','{','\360','\000','\000','|','\001','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','c','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270','!','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','c','\320','c','o','\320','o','p','\320','p','{','\320','{','|','\360','\000','\000','}','\001','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','d','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','e','\320','e','q','\320','q','r','\320','r','}','\320','}','~','\360','\000','\000','\177','\001','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','e','\002','\360','\000','\000','e','\002','f','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','Q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\340','\010','$','\240','F','\250','*','\260','A','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\033','\230','1','\230','F','\240','!','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',',','\250','1','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','=','\270','Q','\270','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','2','\260','!','\260','1','\260','H','\270','I','\300','V','\310','6','\320','Q','S','\320','S','[','\320','[','g','\320','g','s','\320','s','t','\320','t','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','O','\002','\360','\000','\000','O','\002','X','\002','\360','\000','\000','X','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','g','\002','\360','\000','\000','g','\002','h','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','.','\250','Q','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','?','\270','q','\300','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','2','\260','\021','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','C','\300','1','\300','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\320','y','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','6','\260','Q','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','G','\300','q','\310','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','1','\330','\014','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\014','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','m','\002','\360','\000','\000','m','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','i','\260','|','\300','2','\300','X','\310','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','.','\250','Q','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','?','\270','q','\300','\001','\330','\014','\030','\230','\016','\240','a','\240','x','\250','q','\330','\014','\030','\230','\016','\240','a','\240','x','\250','q','\330','\021','\022','\330','\020','\032','\320','\032','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\340','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','l','\270',',','\300','b','\310','\010','\320','P','Q','\200','A','\330','+','>','\270','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','|','\300','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T','`','\320','`','l','\320','l','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','m','\320','m','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','<','\300','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','d','\320','d','p','\320','p','w','\320','w','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','l','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\300','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','|','\300','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T','`','\320','`','l','\320','l','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','T','\320','T','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','L','\310','\014','\320','T','`','\320','`','l','\320','l','z','\320','z','{','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\032','\320','\032','+','\250','1','\250','H','\260','A','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','e','\320','e','q','\320','q','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','M','\003','\360','\000','\000','M','\003','V','\003','\360','\000','\000','V','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','e','\003','\360','\000','\000','e','\003','o','\003','\360','\000','\000','o','\003','x','\003','\360','\000','\000','x','\003','E','\004','\360','\000','\000','E','\004','K','\004','\360','\000','\000','K','\004','M','\004','\360','\000','\000','M','\004','W','\004','\360','\000','\000','W','\004','`','\004','\360','\000','\000','`','\004','k','\004','\360','\000','\000','k','\004','q','\004','\360','\000','\000','q','\004','s','\004','\360','\000','\000','s','\004','t','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','B','\320','B','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','L','\320','P','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','v','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','<','\300','y','\320','P','Y','\320','Y','Z','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','d','\320','d','p','\320','p','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','M','\003','\360','\000','\000','M','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','u','\003','\360','\000','\000','u','\003','~','\003','\360','\000','\000','~','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','o','\270','\\','\310','\022','\310','8','\320','S','c','\320','c','o','\320','o','q','\320','q','y','\320','y','z','\200','A','\330','+','B','\320','B','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\032','\320','\032','+','\250','1','\250','H','\260','A','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','b','\320','b','n','\320','n','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','m','\320','m','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D',']','\320',']','v','\320','v','w','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','\\','\310','\036','\320','W','e','\320','e','f','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','f','\320','f','r','\360','\000','\000','s','\001','A','\002','\360','\000','\000','A','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','x','\002','\360','\000','\000','x','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','t','\003','\360','\000','\000','t','\003','u','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','k','\270','\034','\300','R','\300','x','\310','q','\200','A','\330','+','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','-','\250','A','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','>','\270','a','\270','|','\310','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330',',','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\r','\300','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','n','\320','n','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','-','.','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\032','\320','\032','+','\250','1','\250','H','\260','A','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','e','\320','e','s','\320','s','t','\320','t','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','O','\002','\360','\000','\000','O','\002','X','\002','\360','\000','\000','X','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','g','\002','\360','\000','\000','g','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','G','\003','\360','\000','\000','G','\003','M','\003','\360','\000','\000','M','\003','O','\003','\360','\000','\000','O','\003','Y','\003','\360','\000','\000','Y','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','-','.','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\021','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\010','\310','\006','\310','b','\320','P','X','\320','X','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','D','\320','D','W','\320','W','X','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','L','\320','P','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','x','\300','v','\310','R','\310','x','\320','W','c','\320','c','o','\320','o','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\033','\300','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','b','\320','b','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','v','\002','\360','\000','\000','v','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\330','.','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','J','\300','a','\330','\014','\033','\230','>','\250','\021','\250','(','\260','!','\330','\014','\032','\230','.','\250','\001','\250','\030','\260','\021','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','b','\320','b','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','r','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','b','\320','b','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270','!','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\014','\031','\320','\031','*','\250','!','\250','8','\260','1','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','`','\320','`','e','\320','e','k','\320','k','m','\320','m','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','F','\003','\360','\000','\000','F','\003','P','\003','\360','\000','\000','P','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','l','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','Q','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','D','\004','\360','\000','\000','D','\004','P','\004','\360','\000','\000','P','\004','V','\004','\360','\000','\000','V','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','m','\320','m','y','\320','y','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','J','\002','\200','A','\330','0','F','\300','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','|','\300','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T',']','\320',']','b','\320','b','h','\320','h','j','\320','j','r','\320','r','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270',',','\300','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','`','\320','`','e','\320','e','k','\320','k','m','\320','m','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\320','G','`','\320','`','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','|','\300','<','\310','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T',']','\320',']','b','\320','b','h','\320','h','j','\320','j','r','\320','r','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','P','\003','\360','\000','\000','P','\003','V','\003','\360','\000','\000','V','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','e','\320','e','k','\320','k','m','\320','m','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','3','4','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\021','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','_','\320','_','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\021','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\007','\300','v','\310','R','\310','x','\320','W','`','\320','`','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','\047','\310','\026','\310','r','\320','Q','Y','\320','Y','b','\320','b','i','\320','i','o','\320','o','q','\320','q','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','m','\002','\360','\000','\000','m','\002','v','\002','\360','\000','\000','v','\002','}','\002','\360','\000','\000','}','\002','C','\003','\360','\000','\000','C','\003','E','\003','\360','\000','\000','E','\003','F','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','I','\320','I','\\','\320','\\',']','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','$','\240','M','\260','\021','\260','!','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\033','\300','K','\310','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','_','\320','_','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',';','\260','a','\200','A','\330','3','Q','\320','Q','t','\360','\000','\000','u','\001','T','\002','\360','\000','\000','T','\002','v','\002','\360','\000','\000','v','\002','Z','\003','\360','\000','\000','Z','\003','z','\003','\360','\000','\000','z','\003',']','\004','\360','\000','\000',']','\004','^','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','<','\320','G','X','\320','X','n','\360','\000','\000','o','\001','A','\002','\360','\000','\000','A','\002','V','\002','\360','\000','\000','V','\002','m','\002','\360','\000','\000','m','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','O','\002','\360','\000','\000','O','\002','`','\002','\360','\000','\000','`','\002','v','\002','\360','\000','\000','v','\002','H','\003','\360','\000','\000','H','\003',']','\003','\360','\000','\000',']','\003','t','\003','\360','\000','\000','t','\003','G','\004','\360','\000','\000','G','\004',']','\004','\360','\000','\000',']','\004','^','\004','\360','\000','\000','^','\004','i','\004','\360','\000','\000','i','\004','j','\004','\360','\000','\000','j','\004','x','\004','\360','\000','\000','x','\004','A','\005','\360','\000','\000','A','\005','H','\005','\360','\000','\000','H','\005','N','\005','\360','\000','\000','N','\005','P','\005','\360','\000','\000','P','\005','Q','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','4','5','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','w','\300','f','\310','B','\310','h','\320','V','_','\320','_','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\330','5','J','\310','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\016','\300','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T',']','\320',']','b','\320','b','h','\320','h','j','\320','j','r','\320','r','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','P','\003','\360','\000','\000','P','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','_','\003','\360','\000','\000','_','\003','`','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\021','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','_','\320','_','d','\320','d','j','\320','j','l','\320','l','t','\320','t','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','M','\002','\360','\000','\000','M','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270','!','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','`','\320','`','e','\320','e','k','\320','k','m','\320','m','u','\320','u','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','N','\002','\360','\000','\000','N','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','R','\003','\360','\000','\000','R','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','b','\320','b','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','A','\002','\360','\000','\000','A','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','P','\002','\360','\000','\000','P','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','K','\003','\360','\000','\000','K','\003','T','\003','\360','\000','\000','T','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','c','\003','\360','\000','\000','c','\003','d','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','Q','\002','\360','\000','\000','Q','\002','Y','\002','\360','\000','\000','Y','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','L','\003','\360','\000','\000','L','\003','U','\003','\360','\000','\000','U','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','d','\003','\360','\000','\000','d','\003','e','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','P','\003','\360','\000','\000','P','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','w','\003','\360','\000','\000','w','\003','C','\004','\360','\000','\000','C','\004','I','\004','\360','\000','\000','I','\004','K','\004','\360','\000','\000','K','\004','L','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','l','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','1','\330','\014','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\014','\031','\320','\031','*','\250','!','\250','8','\260','1','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\320','v','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','J','\003','\360','\000','\000','J','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','w','\003','\360','\000','\000','w','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','J','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',',','\300','l','\320','R','T','\320','T','Z','\320','Z','_','\320','_','h','\320','h','i','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','Q','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','Q','\002','\360','\000','\000','Q','\002','Y','\002','\360','\000','\000','Y','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','L','\003','\360','\000','\000','L','\003','U','\003','\360','\000','\000','U','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','s','\003','\360','\000','\000','s','\003','|','\003','\360','\000','\000','|','\003','I','\004','\360','\000','\000','I','\004','O','\004','\360','\000','\000','O','\004','Q','\004','\360','\000','\000','Q','\004','[','\004','\360','\000','\000','[','\004','d','\004','\360','\000','\000','d','\004','p','\004','\360','\000','\000','p','\004','v','\004','\360','\000','\000','v','\004','x','\004','\360','\000','\000','x','\004','y','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','M','\320','M','b','\320','b','c','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','|','\300',';','\310','a','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T',']','\320',']','b','\320','b','h','\320','h','j','\320','j','r','\320','r','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','v','\002','\360','\000','\000','v','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','X','\003','\360','\000','\000','X','\003','a','\003','\360','\000','\000','a','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','H','\004','\360','\000','\000','H','\004','U','\004','\360','\000','\000','U','\004','[','\004','\360','\000','\000','[','\004',']','\004','\360','\000','\000',']','\004','g','\004','\360','\000','\000','g','\004','p','\004','\360','\000','\000','p','\004','|','\004','\360','\000','\000','|','\004','B','\005','\360','\000','\000','B','\005','D','\005','\360','\000','\000','D','\005','E','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','N','\320','N','e','\320','e','~','\320','~','\177','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','L','\320','P','\\','\320','\\',']','\330','\014','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004','c','\004','\360','\000','\000','c','\004','i','\004','\360','\000','\000','i','\004','k','\004','\360','\000','\000','k','\004','l','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',')','\300','<','\310','r','\320','Q','W','\320','W','\\','\320','\\','e','\320','e','f','\200','A','\330','7','Q','\320','Q','R','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','-','\250','A','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','>','\270','a','\270','|','\310','1','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\027','\220','~','\240','Q','\240','h','\250','a','\330','\021','\022','\330','\020','\032','\320','\032','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','c','\003','\360','\000','\000','c','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','P','\004','\360','\000','\000','P','\004','V','\004','\360','\000','\000','V','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\320',':','J','\310',',','\320','V','X','\320','X','^','\320','^','c','\320','c','l','\320','l','m','\200','A','\330','8','P','\320','P','h','\320','h','i','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','=','\310','\r','\320','U','V','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\320','v','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','p','\002','\360','\000','\000','p','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','9','R','\320','R','k','\320','k','l','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','>','\310','\036','\320','W','X','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\320','v','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','\177','\002','\360','\000','\000','\177','\002','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','q','\003','\360','\000','\000','q','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','K','\004','\360','\000','\000','K','\004','T','\004','\360','\000','\000','T','\004','\\','\004','\360','\000','\000','\\','\004','b','\004','\360','\000','\000','b','\004','d','\004','\360','\000','\000','d','\004','e','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270','.','\310','\016','\320','V','d','\320','d','r','\320','r','s','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','`','\320','`','e','\320','e','k','\320','k','m','\320','m','u','\320','u','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','N','\002','\360','\000','\000','N','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','p','\002','\360','\000','\000','p','\002','~','\002','\360','\000','\000','~','\002','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','T','\004','\360','\000','\000','T','\004','Z','\004','\360','\000','\000','Z','\004','\\','\004','\360','\000','\000','\\','\004','f','\004','\360','\000','\000','f','\004','o','\004','\360','\000','\000','o','\004','w','\004','\360','\000','\000','w','\004','}','\004','\360','\000','\000','}','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\360','\000','\000','l','\001','A','\002','\360','\000','\000','A','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\016','\300','n','\320','T','b','\320','b','p','\320','p','q','\330','\014','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\014','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\014','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','|','\002','\360','\000','\000','|','\002','J','\003','\360','\000','\000','J','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','A','\004','\360','\000','\000','A','\004','J','\004','\360','\000','\000','J','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','`','\004','\360','\000','\000','`','\004','i','\004','\360','\000','\000','i','\004','m','\004','\360','\000','\000','m','\004','s','\004','\360','\000','\000','s','\004','u','\004','\360','\000','\000','u','\004','\177','\004','\360','\000','\000','\177','\004','H','\005','\360','\000','\000','H','\005','L','\005','\360','\000','\000','L','\005','R','\005','\360','\000','\000','R','\005','T','\005','\360','\000','\000','T','\005','U','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','\047','\300','\034','\310','R','\310','v','\320','U','Z','\320','Z','c','\320','c','j','\320','j','v','\320','v','x','\320','x','~','\360','\000','\000','\177','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','N','\002','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','q','\003','\360','\000','\000','q','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','V','\320','V','W','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270',',','\300','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','`','\320','`','e','\320','e','k','\320','k','m','\320','m','u','\320','u','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','N','\002','\360','\000','\000','N','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','-','\250','A','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','>','\270','a','\270','q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','F','\004','\360','\000','\000','F','\004','G','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','1','\260','\001','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','B','\300','!','\300','1','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','3','\260','!','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','D','\300','A','\300','Q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','L','\004','\360','\000','\000','L','\004','M','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','4','\260','1','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','E','\300','Q','\300','a','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','E','\004','\360','\000','\000','E','\004','K','\004','\360','\000','\000','K','\004','M','\004','\360','\000','\000','M','\004','N','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','5','\260','A','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','F','\300','a','\300','q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','\014','\210','J','\220','m','\240','6','\250','\021','\330','\010','\014','\210','M','\230','\024','\230','Q','\330','\010','\014','\210','J','\220','i','\230','q','\240','\004','\240','A','\360','\006','\000','\t','\r','\210','O','\230','9','\240','F','\250','!','\360','\006','\000','\t','\r','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\210','O','\230','1','\200','A','\340','\010','\020','\220','\004','\220','A','\330','\010','\013','\210','4','\210','w','\220','a','\220','w','\230','a','\330','\014','\021','\220','\030','\230','\021','\330','\014','\021','\320','\021','!','\240','\021','\360','\006','\000','\r','\022','\220','\037','\240','\013','\250','1','\330','\014','\021','\220','\036','\230','{','\250','!','\330','\014','\021','\220','\033','\230','K','\240','q','\330','\014','\021','\320','\021','\"','\240','!','\360','\006','\000','\r','\022','\220','\030','\230','\037','\250','\001','\250','\024','\250','Q','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','0','\260','\001','\260','\024','\260','Y','\270','a','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\023','\220','4','\220','q','\320','\030','(','\250','\003','\250','1','\330','\024','\030','\230','\001','\320','\031','+','\320','+','G','\300','q','\310','\001','\330','\020','\025','\220','\\','\240','\021','\240','.','\260','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','(','\250','\004','\250','A','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','3','\260','1','\260','D','\270','\t','\300','\021','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\025','\220','[','\240','\001','\240','\036','\250','q','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\022','\220','\025','\220','a','\320','\027',')','\250','\033','\260','A','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','1','\260','\021','\260','$','\260','i','\270','q','\330','\020','\036','\230','d','\240','!','\240','1','\330','\020','\025','\220','U','\230','!','\230','?','\250','!','\250','?','\270','$','\270','a','\270','q','\330','\020','\025','\220','X','\230','Q','\230','o','\250','Q','\330','\014','\021','\220','\025','\220','a','\320','\027',')','\250','\024','\250','Q','\330','\010','\017','\210','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T','`','\320','`','a','\320','a','l','\320','l','m','\320','m','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','U','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','b','\320','b','m','\320','m','n','\320','n','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002','V','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','b','\320','b','c','\320','c','n','\320','n','o','\320','o','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','W','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','c','\320','c','d','\320','d','o','\320','o','p','\320','p','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','X','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','d','\320','d','e','\320','e','p','\320','p','q','\320','q','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','-','\250','A','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','>','\270','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','i','\320','i','t','\320','t','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','.','\250','Q','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','?','\270','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','j','\320','j','u','\320','u','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','^','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','/','\250','a','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','@','\300','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','/','\250','a','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','@','\300','\001','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\014','\032','\320','\032','+','\250','1','\250','H','\260','A','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','e','\320','e','f','\320','f','q','\320','q','r','\360','\000','\000','s','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t',',','\250','1','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','=','\270','Q','\330','\014','\031','\320','\031','*','\250','!','\250','8','\260','1','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\021','\022','\330','\020','\032','\320','\032','2','\260','!','\260','1','\260','H','\270','I','\300','V','\310','6','\320','Q','S','\320','S','[','\320','[','g','\320','g','h','\320','h','s','\320','s','t','\360','\000','\000','u','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','F','\003','\360','\000','\000','F','\003','G','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','m','\270','<','\300','r','\310','\030','\320','Q','R','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','{','\002','\360','\000','\000','{','\002','D','\003','\360','\000','\000','D','\003','K','\003','\360','\000','\000','K','\003','Q','\003','\360','\000','\000','Q','\003','S','\003','\360','\000','\000','S','\003','T','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\320','v','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','Q','\002','\360','\000','\000','Q','\002','Y','\002','\360','\000','\000','Y','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','P','\003','\360','\000','\000','P','\003','V','\003','\360','\000','\000','V','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T',']','\320',']','b','\320','b','h','\320','h','j','\320','j','r','\320','r','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','_','\320','_','d','\320','d','j','\320','j','l','\320','l','t','\320','t','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','M','\002','\360','\000','\000','M','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003',']','\003','\360','\000','\000',']','\003','f','\003','\360','\000','\000','f','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','J','\003','\360','\000','\000','J','\003','Q','\003','\360','\000','\000','Q','\003','W','\003','\360','\000','\000','W','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','d','\320','d','j','\320','j','l','\320','l','t','\320','t','}','\360','\000','\000','~','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','c','\003','\360','\000','\000','c','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','r','\003','\360','\000','\000','r','\003','s','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','b','\320','b','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','i','\320','i','o','\320','o','q','\320','q','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','P','\002','\360','\000','\000','P','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','x','\002','\360','\000','\000','x','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','_','\003','\360','\000','\000','_','\003','h','\003','\360','\000','\000','h','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','w','\003','\360','\000','\000','w','\003','x','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',',','\250','1','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','=','\270','Q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','2','\260','!','\260','1','\260','H','\270','I','\300','V','\310','6','\320','Q','S','\320','S','[','\320','[','d','\320','d','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','Q','\002','\360','\000','\000','Q','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','y','\002','\360','\000','\000','y','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','x','\003','\360','\000','\000','x','\003','y','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','-','\250','A','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','>','\270','a','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','.','\250','Q','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','?','\270','q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','{','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','/','\250','a','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','@','\300','\001','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','|','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','0','\250','q','\330','\010','+','\320','+','?','\270','x','\300','q','\310','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','A','\300','\021','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','@','\300','\t','\310','\034','\320','U','^','\320','^','`','\320','`','g','\320','g','i','\320','i','j','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','1','\260','\001','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','B','\300','!','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','2','\260','\021','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','C','\300','1','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','3','\260','!','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','D','\300','A','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','4','\260','1','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','E','\300','Q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','5','\260','A','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','F','\300','a','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','B','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','6','\260','Q','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','G','\300','q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','n','\320','n','t','\320','t','z','\320','z','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','C','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\020','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\330','\014','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\014','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\014','\031','\320','\031','*','\250','!','\250','8','\260','1','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T',']','\320',']','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Y','\003','\360','\000','\000','Y','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','F','\004','\360','\000','\000','F','\004','O','\004','\360','\000','\000','O','\004','U','\004','\360','\000','\000','U','\004','W','\004','\360','\000','\000','W','\004','a','\004','\360','\000','\000','a','\004','j','\004','\360','\000','\000','j','\004','r','\004','\360','\000','\000','r','\004','x','\004','\360','\000','\000','x','\004','z','\004','\360','\000','\000','z','\004','D','\005','\360','\000','\000','D','\005','M','\005','\360','\000','\000','M','\005','W','\005','\360','\000','\000','W','\005',']','\005','\360','\000','\000',']','\005','_','\005','\360','\000','\000','_','\005','`','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','F','\260','%','\260','y','\300','\014','\310','L','\320','X','Z','\320','Z','`','\320','`','f','\320','f','k','\320','k','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','N','\003','\360','\000','\000','N','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','f','\320','f','l','\320','l','n','\320','n','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','w','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','w','\300','f','\310','B','\310','h','\320','V','_','\320','_','f','\320','f','l','\320','l','n','\320','n','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','w','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\007','\300','v','\310','R','\310','x','\320','W','`','\320','`','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','w','\300','f','\310','B','\310','h','\320','V','_','\320','_','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\340','\r','\016','\330','\014','\027','\220','\177','\240','a','\330','\010','\013','\210','4','\210','q','\330','\014','\022','\220',',','\230','a','\230','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\014','\020','\220','\n','\230','!','\230','5','\240','\017','\250','q','\330','\014','\023','\220','5','\230','\r','\240','V','\250','1','\340','\014','\023','\220','5','\230','\r','\240','U','\250','!','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\014','\210','L','\320','\030','(','\250','\013','\260','6','\270','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\017','\210','q','\220','\r','\230','T','\320','!','7','\260','q','\270','\001','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\020','\220','\005','\220','[','\240','\001','\240','\033','\250','A','\250','Q','\330','\010','\013','\210','6','\220','\023','\220','A','\330','\014','\024','\220','E','\230','\033','\240','A','\240','[','\260','\001','\260','\021','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\026','\220','a','\340','\010','\014','\210','G','\220','1','\330','\014','\017','\210','t','\220','3','\220','e','\230','1','\330','\020','\030','\230','\006','\230','a','\230','q','\330','\020','\023','\220','4','\320','\027','/','\250','q','\260','\005','\260','Q','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','V','\270','1','\270','A','\330','\024','\"','\240','!','\330','\021','\025','\220','S','\230','\005','\230','Q','\330','\020','\025','\220','\\','\240','\021','\240','$','\240','a','\320','\047','9','\270','\026','\270','q','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','\047','\260','\026','\260','q','\270','\001','\340','\010','\013','\210','1','\330','\014','\031','\230','\021','\330','\014','\017','\210','t','\320','\023','$','\240','A','\240','T','\250','\021','\250','!','\330','\020','\035','\230','Q','\330','\014','\017','\210','s','\220','!','\220','6','\230','\022','\230','1','\330','\020','\024','\220','C','\220','~','\240','Y','\250','a','\250','u','\260','A','\330','\024','\031','\230','\021','\330','\024','\027','\220','r','\230','\022','\230','3','\230','a','\230','q','\330','\030',' ','\240','\004','\240','A','\240','Q','\330','\030','\033','\230','4','\320','\037','7','\260','q','\270','\014','\300','A','\330','\034','!','\240','\033','\250','A','\250','[','\270','\001','\270','\033','\300','A','\330','\034','*','\250','!','\340','\010','\013','\210','5','\220','\003','\220','1','\330','\014','\017','\210','q','\330','\020','\025','\220','U','\230','!','\320','\033','+','\250','4','\250','q','\330','\014','\021','\320','\021','\"','\240','!','\200','A','\360','\n','\000','\t','\017','\210','d','\220','(','\230','(','\240','%','\240','q','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\017','\210','q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\021','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\037','\260','\005','\260','Q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\005','\240','Q','\200','A','\360','\n','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\017','\210','q','\220','\016','\230','e','\240','<','\250','q','\260','\013','\270','1','\270','A','\330','\010','\017','\210','q','\200','A','\360','\014','\000','\t','\021','\220','\004','\220','A','\340','\010','\021','\320','\021','&','\240','a','\240','t','\250','1','\330','\010','\014','\210','C','\210','}','\230','I','\240','Q','\240','e','\250','1','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\024','\220','E','\230','\033','\240','A','\240','Z','\250','q','\260','\001','\330','\014','\017','\210','v','\220','V','\320','\033','2','\260','#','\260','V','\270','6','\300','\021','\330','\020',')','\250','\021','\250','(','\260','#','\260','Q','\330','\021','\027','\220','v','\320','\035','7','\260','s','\270','&','\300','\006','\300','a','\330','\020',',','\250','A','\250','X','\260','S','\270','\001','\340','\010','\t','\330','\014','\027','\320','\027','\047','\240','q','\250','\001','\340','\014',' ','\240','\001','\240','\021','\330','\010','\017','\210','q','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210','4','\210','u','\220','A','\330','\014','\020','\320','\020',' ','\240','\001','\330','\010','\016','\210','e','\220','8','\230','7','\240','!','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\013','\320','\013','\035','\230','W','\240','E','\250','\021','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\024','\220','E','\230','\035','\240','a','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','$','\250','f','\260','A','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','/','\250','q','\330',')','1','\260','\024','\260','Q','\330','\r','\037','\230','w','\240','e','\250','1','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','!','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','0','\260','\004','\260','A','\340','\014','\023','\220','3','\220','a','\220','v','\230','S','\240','\001','\240','\025','\240','c','\250','\027','\260','\001','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\340','\010','\033','\230','2','\230','\\','\250','\025','\250','k','\270','\021','\270','+','\300','Q','\300','a','\330','\034',' ','\240','\016','\250','e','\260',';','\270','e','\300','1','\330','\010','#','\240','2','\240','S','\250','\005','\250','\\','\270','\021','\270','\"','\270','A','\270','Q','\330','$','(','\250','\005','\250','U','\260','!','\360','\006','\000','\t','\020','\210','t','\220','1','\220','A','\330','\010','\027','\220','q','\330','\010','#','\240','4','\320','\047','B','\300','!','\330','\010','\013','\210','5','\220','\004','\220','D','\230','\n','\240','!','\240','4','\240','q','\250','\004','\250','A','\330','\014','\020','\220','\003','\220','7','\230',')','\240','1','\240','A','\330','\020','\023','\220','4','\220','z','\240','\021','\240','%','\240','q','\330','\024','\025','\340','\020','\021','\330','\024',' ','\240','\001','\320','!','9','\270','\021','\270','&','\300','\001','\330','\027','\030','\330','\024','\032','\320','\032','G','\300','q','\330','\030','\033','\230','1','\230','A','\330','\030','\034','\230','E','\240','\021','\240','!','\330','\024','\032','\230',')','\240','1','\240','A','\340','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\021','\330','\r','\037','\230','w','\240','a','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\031','\300','!','\340','\014','\047','\240','t','\250','4','\250','q','\260','\005','\260','Q','\340','\010','\013','\210','3','\210','a','\210','~','\230','S','\240','\003','\240','1','\240','A','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\014','\023','\220','4','\220','q','\230','\003','\230','1','\230','A','\330','\r','\020','\220','\001','\220','\036','\230','t','\320','#','<','\270','A','\330','\020','\024','\220','C','\220','q','\230','\006','\230','c','\240','\024','\240','Z','\250','q','\260','\004','\260','A','\260','T','\270','\021','\330','\014','\022','\320','\022','A','\300','\021','\330','\020','\023','\220','1','\220','A','\330','\020','\024','\220','E','\230','\021','\230','!','\330','\014','\022','\220',')','\230','1','\230','A','\340','\010','\t','\330','\014','\020','\320','\020','\"','\240','\"','\240','H','\250','A','\330','\014','\020','\320','\020',' ','\240','\001','\360','\006','\000','\r','\021','\220','\014','\230','I','\240','Q','\330','\020','\025','\220','[','\240','\001','\240','\033','\250','A','\250','[','\270','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\021','\220','\014','\230','I','\240','Q','\330','\020','\025','\220','\\','\240','\021','\240','+','\250','Q','\320','.','@','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','.','\270','\001','\340','\010','\017','\210','t','\220','1','\200','A','\360','2','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210',':','\220','Q','\220','n','\240','A','\330','\014','\033','\230','1','\330','\014','\020','\220','\007','\220','t','\320','\033','6','\260','a','\330','\020','\023','\320','\023','%','\240','W','\250','A','\330','\024','\030','\230','\n','\240','!','\240','>','\260','\021','\330','\024','\036','\230','d','\240','\047','\250','\034','\260','Q','\340','\024','\036','\230','d','\240','\047','\250','\021','\330','\020','\023','\220','1','\330','\024',' ','\240','\007','\240','q','\250','\001','\330','\014','\017','\210','s','\220','!','\220','>','\240','\023','\240','A','\330','\020','\025','\320','\025','%','\240','Q','\330','\020','\025','\320','\025','&','\240','a','\330','\020','\027','\220','q','\340','\020','\026','\220','i','\230','q','\240','\001','\330','/','6','\260','c','\270','\021','\270','.','\310','\002','\310','!','\330','9',':','\330','0','4','\260','E','\270','\021','\270','!','\330','\010','\017','\210','q','\200','N','\220','!','\360','\016','\000','\t','\014','\210','1','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\010','\014','\320','\014','\034','\230','A','\330','\010','\017','\210','t','\220','1','\320','\000','\021','\220','\021','\330','\004','\005','\360','\006','\000','\n','\013','\330','\010','\023','\220','?','\240','!','\330','\004','\007','\200','t','\210','1','\330','\010','\013','\210','1','\360','\006','\000','\r','\016','\330','\010','\016','\210','l','\230','!','\230','1','\330','\004','\005','\330','\010','\013','\210','1','\330','\021','\022','\330','\020','\036','\230','l','\250','!','\330','\014','\035','\230','Q','\230','o','\250','Q','\330','\014','\036','\230','a','\340','\r','\016','\330','\014','\031','\230','\021','\320','\004','\035','\230','Q','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\025','\220','[','\240','\003','\240','1','\330','\010','\022','\220','\047','\230','\021','\230','!','\330','\010','\022','\220','\"','\220','G','\230','7','\240','$','\240','g','\250','Y','\260','j','\300','\006','\300','a','\330','\023','\026','\220','d','\320','\032','2','\260','!','\260','7','\270','!','\330','\010','\014','\210','G','\220','9','\230','A','\330','\014','\021','\220','\033','\230','A','\230','V','\240','1','\240','K','\250','q','\330','\010','\r','\320','\r','\036','\230','a','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q'}; +static const char bytes[] = {'\n','\n',' ',' ',' ',' ','T','h','i','s',' ','i','s',' ','a',' ','p','y','t','h','o','n','i','c',' ','w','r','a','p','p','e','r',' ','a','r','o','u','n','d',' ','T','A','L','I','B','\047','s',' ','a','b','s','t','r','a','c','t',' ','i','n','t','e','r','f','a','c','e','.',' ','I','t',' ','i','s','\n',' ',' ',' ',' ','i','n','t','e','n','d','e','d',' ','t','o',' ','s','i','m','p','l','i','f','y',' ','u','s','i','n','g',' ','i','n','d','i','v','i','d','u','a','l',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n','s',' ','b','y',' ','p','r','o','v','i','d','i','n','g',' ','a','\n',' ',' ',' ',' ','u','n','i','f','i','e','d',' ','i','n','t','e','r','f','a','c','e',' ','f','o','r',' ','s','e','t','t','i','n','g','/','c','o','n','t','r','o','l','l','i','n','g',' ','i','n','p','u','t',' ','d','a','t','a',',',' ','s','e','t','t','i','n','g',' ','f','u','n','c','t','i','o','n','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s','.',' ','I','n','p','u','t',' ','d','a','t','a',' ','c','o','n','s','i','s','t','s',' ','o','f',' ','a',' ','`','`','d','i','c','t','`','`',' ','o','f','\n',' ',' ',' ',' ','`','`','n','u','m','p','y','`','`',' ','a','r','r','a','y','s',' ','(','o','r',' ','a',' ','`','`','p','a','n','d','a','s','.','D','a','t','a','F','r','a','m','e','`','`',' ','o','r',' ','`','`','p','o','l','a','r','s','.','D','a','t','a','F','r','a','m','e','`','`',')',',',' ','o','n','e','\n',' ',' ',' ',' ','a','r','r','a','y',' ','f','o','r',' ','e','a','c','h',' ','o','f',' ','o','p','e','n',',',' ','h','i','g','h',',',' ','l','o','w',',',' ','c','l','o','s','e',' ','a','n','d',' ','v','o','l','u','m','e','.',' ','T','h','i','s',' ','c','a','n',' ','b','e',' ','s','e','t',' ','w','i','t','h','\n',' ',' ',' ',' ','t','h','e',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(',')',' ','m','e','t','h','o','d','.',' ','W','h','i','c','h',' ','k','e','y','e','d',' ','a','r','r','a','y','(','s',')',' ','a','r','e',' ','u','s','e','d',' ','a','s',' ','i','n','p','u','t','s',' ','w','h','e','n','\n',' ',' ',' ',' ','c','a','l','l','i','n','g',' ','t','h','e',' ','f','u','n','c','t','i','o','n',' ','i','s',' ','c','o','n','t','r','o','l','l','e','d',' ','u','s','i','n','g',' ','t','h','e',' ','i','n','p','u','t','_','n','a','m','e','s',' ','p','r','o','p','e','r','t','y','.','\n','\n',' ',' ',' ',' ','T','h','i','s',' ','c','l','a','s','s',' ','g','e','t','s',' ','i','n','i','t','i','a','l','i','z','e','d',' ','w','i','t','h',' ','a',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n',' ','n','a','m','e',' ','a','n','d',' ','o','p','t','i','o','n','a','l','l','y',' ','a','n','\n',' ',' ',' ',' ','i','n','p','u','t','_','a','r','r','a','y','s',' ','o','b','j','e','c','t','.',' ','I','t',' ','p','r','o','v','i','d','e','s',' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ','p','r','i','m','a','r','y',' ','f','u','n','c','t','i','o','n','s',' ','f','o','r','\n',' ',' ',' ',' ','s','e','t','t','i','n','g',' ','i','n','p','u','t','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s',':','\n','\n',' ',' ',' ',' ','-','-','-','-',' ','i','n','p','u','t','_','a','r','r','a','y','/','T','A','-','f','u','n','c','t','i','o','n','-','p','a','r','a','m','e','t','e','r',' ','s','e','t','-','o','n','l','y',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(','i','n','p','u','t','_','a','r','r','a','y','s',')','\n',' ',' ',' ',' ','-',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')','\n','\n',' ',' ',' ',' ','D','o','c','u','m','e','n','t','a','t','i','o','n',' ','f','o','r',' ','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',' ','c','a','n',' ','b','e',' ','s','e','e','n',' ','b','y',' ','p','r','i','n','t','i','n','g',' ','t','h','e','\n',' ',' ',' ',' ','F','u','n','c','t','i','o','n',' ','i','n','s','t','a','n','c','e',' ','o','r',' ','p','r','o','g','r','a','m','m','a','t','i','c','a','l','l','y',' ','v','i','a',' ','t','h','e',' ','i','n','f','o',',',' ','i','n','p','u','t','_','n','a','m','e','s',' ','a','n','d','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','p','r','o','p','e','r','t','i','e','s','.','\n','\n',' ',' ',' ',' ','-','-','-','-','-',' ','r','e','s','u','l','t','-','r','e','t','u','r','n','i','n','g',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','t','h','e',' ','o','u','t','p','u','t','s',' ','p','r','o','p','e','r','t','y',' ','w','r','a','p','s',' ','a',' ','m','e','t','h','o','d',' ','w','h','i','c','h',' ','e','n','s','u','r','e','s',' ','r','e','s','u','l','t','s',' ','a','r','e',' ','a','l','w','a','y','s',' ','v','a','l','i','d','\n',' ',' ',' ',' ','-',' ','r','u','n','(','[','i','n','p','u','t','_','a','r','r','a','y','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ','-',' ','F','u','n','c','t','i','o','n','I','n','s','t','a','n','c','e','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','%','s',' ','(',' ','(','e','x','p','e','c','t','e','d',' ',' ','b','a','r','s',' ','o','f',' ','h','i','s','t','o','r','y',',',' ','a','t',' ','l','e','a','s','t',' ',' ','f','u','n','c','t','i','o','n',' ','f','a','i','l','e','d',' ','w','i','t','h',' ','e','r','r','o','r',' ','c','o','d','e',' ',' ','n','e','e','d','e','d',' ','(','a',' ','l','e','a','d','i','n','g',' ','b','a','r',' ','t','h','a','t',' ','i','s',' ','N','a','N',' ','i','n',' ','a','n','y',' ','i','n','p','u','t',' ','i','s',' ','n','o','t',' ','h','i','s','t','o','r','y',')','%','(','d','i','s','p','l','a','y','_','n','a','m','e',')','s',' ','(','%','(','g','r','o','u','p',')','s',')','\n','%','s','%','s','.','a','d','v','a','n','c','e','%','s','.','o','u','t','_','r','a','n','g','e','\047',' ','i','s',' ','d','e','p','r','e','c','a','t','e','d',' ','a','n','d',' ','h','a','s',' ','n','o',' ','e','f','f','e','c','t',':',' ','(','(','%','s',')','(','a','n','y',' ','n','d','a','r','r','a','y',')','(','t','r','e','e',' ','f','r','a','g','m','e','n','t',')',')',')','\n',',',' ',',',' ','g','o','t',' ','.','3',':',' ','=','?','A',' ','p','e','r','i','o','d',' ','o','f',' ','1',' ','p','e','r','f','o','r','m','s',' ','n','o',' ','s','m','o','o','t','h','i','n','g','A','D','X','R',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','A','D','X','.',' ','S','e','t',' ','\047','A','D','X','\047',' ','i','n','s','t','e','a','d','.','A','l','l','o','c','a','t','i','o','n',' ','E','r','r','o','r',' ','(','T','A','_','A','L','L','O','C','_','E','R','R',')','A','n',' ','o','u','t','p','u','t',' ','i','s',' ','d','i','s','p','l','a','y','-','s','h','i','f','t','e','d','A','r','n','a','u','d',' ','L','e','g','o','u','x',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','B','a','d',' ','O','b','j','e','c','t',' ','(','T','A','_','B','A','D','_','O','B','J','E','C','T',')','B','a','d',' ','P','a','r','a','m','e','t','e','r',' ','(','T','A','_','B','A','D','_','P','A','R','A','M',')','B','u','l','l','/','B','e','a','r',' ','P','a','t','t','e','r','n',' ','(','B','e','a','r','i','s','h',' ','<',' ','0',',',' ','N','e','u','t','r','a','l',' ','=',' ','0',',',' ','B','u','l','l','i','s','h',' ','>',' ','0',')','C','a','n','n','o','t',' ','m','i','x',' ','p','o','l','a','r','s',' ','a','n','d',' ','p','a','n','d','a','s','C','o','n','f','i','r','m','a','t','i','o','n',' ','P','a','t','t','e','r','n',' ','(','+','/','-','2','0','0',' ','=',' ','t','h','i','s',' ','b','a','r',' ','c','o','n','f','i','r','m','s',' ','a','n',' ','e','a','r','l','i','e','r',' ','p','a','t','t','e','r','n',')','D','a','s','h','e','d',' ','L','i','n','e','D','o','t','t','e','d',' ','L','i','n','e','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','F','u','n','c','t','i','o','n',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','F','U','N','C','_','N','O','T','_','F','O','U','N','D',')','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a',' ','s','t','r','e','a','m','i','n','g',' ','A','P','I','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a','n',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d','G','r','o','u','p',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','G','R','O','U','P','_','N','O','T','_','F','O','U','N','D',')','H','u','l','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','I','n','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','I','N','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','I','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','p','o','s','i','t','i','v','e','I','n','p','u','t','s',':','I','n','s','u','f','f','i','c','i','e','n','t',' ','H','i','s','t','o','r','y',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','(','T','A','_','I','N','T','E','R','N','A','L','_','E','R','R','O','R',')','I','n','v','a','l','i','d',' ','H','a','n','d','l','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','H','A','N','D','L','E',')','I','n','v','a','l','i','d',' ','L','i','s','t',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','L','I','S','T','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','F','u','n','c','t','i','o','n',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','F','U','N','C','T','I','O','N',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','p','a','r','a','m','e','t','e','r',' ','v','a','l','u','e',' ','f','o','r',' ','K','a','u','f','m','a','n',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','L','i','b','r','a','r','y',' ','N','o','t',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','L','I','B','_','N','O','T','_','I','N','I','T','I','A','L','I','Z','E',')','M','E','S','A',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','M','F','I','\047','s',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','w','a','s',' ','r','e','t','i','r','e','d',' ','i','n',' ','T','A','-','L','i','b',' ','C','.','N','o',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e',' ','(','i','d','e','n','t','i','t','y',')','N','o','n','e','N','o','t',' ','S','u','p','p','o','r','t','e','d',' ','(','T','A','_','N','O','T','_','S','U','P','P','O','R','T','E','D',')','N','o','t',' ','e','n','o','u','g','h',' ','h','i','s','t','o','r','y',' ','t','o',' ','o','p','e','n',' ','a',' ','s','t','r','e','a','m',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','.','\n','\n',' ',' ',' ',' ','R','e','c','o','v','e','r','a','b','l','e',':',' ','c','o','l','l','e','c','t',' ','m','o','r','e',' ','b','a','r','s',' ','a','n','d',' ','t','r','y',' ','a','g','a','i','n','.','N','o','t',' ','e','n','o','u','g','h',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','N','o','t','e',' ','t','h','a','t',' ','C','y','t','h','o','n',' ','i','s',' ','d','e','l','i','b','e','r','a','t','e','l','y',' ','s','t','r','i','c','t','e','r',' ','t','h','a','n',' ','P','E','P','-','4','8','4',' ','a','n','d',' ','r','e','j','e','c','t','s',' ','s','u','b','c','l','a','s','s','e','s',' ','o','f',' ','b','u','i','l','t','i','n',' ','t','y','p','e','s','.',' ','I','f',' ','y','o','u',' ','n','e','e','d',' ','t','o',' ','p','a','s','s',' ','s','u','b','c','l','a','s','s','e','s',' ','t','h','e','n',' ','s','e','t',' ','t','h','e',' ','\047','a','n','n','o','t','a','t','i','o','n','_','t','y','p','i','n','g','\047',' ','d','i','r','e','c','t','i','v','e',' ','t','o',' ','F','a','l','s','e','.','O','u','t','-','o','f','-','R','a','n','g','e',' ','E','n','d',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','E','N','D','_','I','N','D','E','X',')','O','u','t','-','o','f','-','R','a','n','g','e',' ','S','t','a','r','t',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','S','T','A','R','T','_','I','N','D','E','X',')','O','u','t','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','O','U','T','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','N','a','N',' ','o','r',' ','i','n','f','i','n','i','t','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','n','e','g','a','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','p','o','s','i','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','z','e','r','o','O','u','t','p','u','t',' ','i','s',' ','a',' ','c','a','n','d','l','e','s','t','i','c','k','O','u','t','p','u','t',' ','i','s',' ','d','i','s','p','l','a','y','-','s','h','i','f','t','e','d','O','u','t','p','u','t',' ','i','s',' ','o','p','t','i','o','n','a','l',' ','(','n','u','l','l','a','b','l','e',')','O','u','t','p','u','t',' ','i','s',' ','o','v','e','r',' ','v','o','l','u','m','e','O','u','t','p','u','t',' ','i','s',' ','p','a','t','h','-','d','e','p','e','n','d','e','n','t','O','u','t','p','u','t',' ','s','c','a','l','e',' ','s','a','m','e',' ','a','s',' ','i','n','p','u','t','O','u','t','p','u','t','s',':','P','a','r','a','m','e','t','e','r','s',':','P','a','t','t','e','r','n',' ','(','B','o','o','l',')','S','T','O','C','H','R','S','I',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','R','S','I','.',' ','S','e','t',' ','\047','R','S','I','\047',' ','i','n','s','t','e','a','d','.','S','i','m','p','l','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','A','-','L','i','b',' ','i','s',' ','n','o','t',' ','i','n','i','t','i','a','l','i','z','e','d',' ','o','r',' ','a',' ','s','e','t','t','i','n','g','s',' ','c','h','a','n','g','e',' ','i','s',' ','i','n',' ','p','r','o','g','r','e','s','s','T','h','e',' ','F','u','n','c','t','i','o','n','\047','s',' ','O','w','n',' ','D','e','f','a','u','l','t',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','o','o',' ','m','a','n','y',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','T','r','i','a','n','g','u','l','a','r',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','G','e','n','e','r','a','l','i','z','e','d',' ','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','U','n','k','n','o','w','n',' ','E','r','r','o','r','U','n','k','n','o','w','n',' ','E','r','r','o','r',' ','(','T','A','_','U','N','K','N','O','W','N','_','E','R','R',')','U','s','e','s',' ','a',' ','t','r','a','n','s','c','e','n','d','e','n','t','a','l',' ','m','a','t','h',' ','f','u','n','c','t','i','o','n','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a',' ','l','o','w','e','r',' ','l','i','m','i','t','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a','n',' ','u','p','p','e','r',' ','l','i','m','i','t','V','a','r','i','a','b','l','e',' ','I','n','d','e','x',' ','D','y','n','a','m','i','c',' ','A','v','e','r','a','g','e','W','e','a','k',' ','P','a','t','t','e','r','n',' ','(','+','/','-','8','0',' ','=',' ','a',' ','w','e','a','k','e','r',' ','f','o','r','m',' ','o','f',' ','t','h','e',' ','p','a','t','t','e','r','n',')','W','e','i','g','h','t','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','W','i','l','d','e','r','\047','s',' ','S','m','o','o','t','h','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','Z','e','r','o','-','L','a','g',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','[','[','i','n','p','u','t','_','a','r','r','a','y','s',']',']','a','d','d','_','n','o','t','e','b','e','g','i','d','x',' ','n','b','e','l','e','m','e','n','t','c','a','n','n','o','t',' ','c','h','a','n','g','e',' ','T','A','-','L','i','b',' ','s','e','t','t','i','n','g','s',' ','o','r',' ','l','i','f','e','c','y','c','l','e',' ','w','h','i','l','e',' ','c','a','l','l','s',' ','o','r',' ','s','t','r','e','a','m','s',' ','a','r','e',' ','a','c','t','i','v','e','c','a','n','n','o','t',' ','p','i','c','k','l','e',' ','%','s',':',' ','a',' ','s','t','r','e','a','m',' ','h','a','n','d','l','e',' ','p','o','i','n','t','s',' ','i','n','t','o',' ','t','h','e',' ','T','A','-','L','i','b',' ','C',' ','l','i','b','r','a','r','y',',',' ','a','n','d',' ','d','o','e','s',' ','n','o','t',' ','c','r','o','s','s',' ','a',' ','p','r','o','c','e','s','s',' ','b','o','u','n','d','a','r','y','c','a','n','n','o','t',' ','s','h','u','t',' ','d','o','w','n',' ','T','A','-','L','i','b',' ','w','h','i','l','e',' ','c','a','l','l','s',' ','o','r',' ','s','t','r','e','a','m','s',' ','a','r','e',' ','a','c','t','i','v','e','d','i','s','a','b','l','e','e','n','a','b','l','e','g','c','i','n','p','u','t',' ','a','r','r','a','y',' ','h','a','s',' ','w','r','o','n','g',' ','d','i','m','e','n','s','i','o','n','s','i','n','p','u','t',' ','a','r','r','a','y',' ','l','e','n','g','t','h','s',' ','a','r','e',' ','d','i','f','f','e','r','e','n','t','i','n','p','u','t',' ','a','r','r','a','y',' ','t','y','p','e',' ','i','s',' ','n','o','t',' ','d','o','u','b','l','e','i','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','a',' ','n','u','m','p','y',' ','a','r','r','a','y',' ','o','r',' ','a',' ','p','a','n','d','a','s',' ','o','r',' ','p','o','l','a','r','s',' ','S','e','r','i','e','s',',',' ','n','o','t',' ','%','s','i','n','p','u','t','_','a','r','r','a','y','s',' ','p','a','r','a','m','e','t','e','r',' ','m','i','s','s','i','n','g',' ','r','e','q','u','i','r','e','d',' ','d','a','t','a',' ','k','e','y','i','n','t','e','g','e','r',' ','(','v','a','l','u','e','s',' ','a','r','e',' ','-','1','0','0',',',' ','0',' ','o','r',' ','1','0','0',')','i','s','e','n','a','b','l','e','d','n','o',' ','h','i','s','t','o','r','y',':',' ','t','h','e',' ','i','n','p','u','t',' ','a','r','r','a','y',' ','i','s',' ','e','m','p','t','y','n','u','m','p','y','.','_','c','o','r','e','.','m','u','l','t','i','a','r','r','a','y',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','n','u','m','p','y','.','_','c','o','r','e','.','u','m','a','t','h',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','t','a','l','i','b','.','c','o','l','l','e','c','t','i','o','n','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','r','d','e','r','e','d','d','i','c','t','t','a','l','i','b','.','p','a','n','d','a','s','t','a','l','i','b','.','p','o','l','a','r','s','t','a','l','i','b','.','s','y','s','t','a','l','i','b','.','t','h','r','e','a','d','i','n','g','t','a','l','i','b','.','w','a','r','n','i','n','g','s','t','a','l','i','b','/','_','a','b','s','t','r','a','c','t','.','p','x','i','t','a','l','i','b','/','_','c','o','m','m','o','n','.','p','x','i','t','a','l','i','b','/','_','f','u','n','c','.','p','x','i','t','a','l','i','b','/','_','s','t','r','e','a','m','.','p','x','i','t','o','o',' ','m','a','n','y',' ','i','n','p','u','t',' ','a','r','r','a','y','s','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','\047','A','C','A','C','C','B','A','N','D','S','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','O','S','A','C','O','S','_','S','t','r','e','a','m','A','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','_','S','t','r','e','a','m','A','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','A','D','D','A','D','D','_','S','t','r','e','a','m','A','D','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','O','S','C','A','D','O','S','C','_','S','t','r','e','a','m','A','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','R','A','D','R','_','S','t','r','e','a','m','A','D','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','A','D','X','R','A','D','X','R','_','S','t','r','e','a','m','A','D','X','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','_','S','t','r','e','a','m','A','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','_','S','t','r','e','a','m','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','L','L','A','L','M','A','A','L','M','A','_','S','t','r','e','a','m','A','L','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','O','A','O','_','S','t','r','e','a','m','A','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','P','O','A','P','O','_','S','t','r','e','a','m','A','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','A','R','O','O','N','O','S','C','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','S','t','r','e','a','m','A','R','O','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','S','I','A','S','I','N','A','S','I','N','_','S','t','r','e','a','m','A','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','S','I','_','S','t','r','e','a','m','A','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','A','N','A','T','A','N','_','S','t','r','e','a','m','A','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','R','A','T','R','_','S','t','r','e','a','m','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','D','E','V','A','V','G','D','E','V','_','S','t','r','e','a','m','A','V','G','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','P','R','I','C','E','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','s','B','B','A','N','D','S','B','B','A','N','D','S','_','S','t','r','e','a','m','B','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','B','W','B','B','W','_','S','t','r','e','a','m','B','B','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','E','T','A','B','E','T','A','_','S','t','r','e','a','m','B','E','T','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','O','P','B','O','P','_','S','t','r','e','a','m','B','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','o','d','y','D','o','j','i','B','o','d','y','L','o','n','g','B','o','d','y','S','h','o','r','t','B','o','d','y','V','e','r','y','L','o','n','g','C','C','I','C','C','I','_','S','t','r','e','a','m','C','C','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','2','C','R','O','W','S','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','B','L','A','C','K','C','R','O','W','S','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','I','N','S','I','D','E','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','L','I','N','E','S','T','R','I','K','E','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','O','U','T','S','I','D','E','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','E','L','T','H','O','L','D','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','R','E','A','K','A','W','A','Y','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','C','D','L','D','O','J','I','S','T','A','R','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','N','G','U','L','F','I','N','G','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','S','T','A','R','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','M','M','E','R','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','N','G','I','N','G','M','A','N','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','C','D','L','H','A','R','A','M','I','C','R','O','S','S','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','G','H','W','A','V','E','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','C','D','L','H','I','K','K','A','K','E','M','O','D','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','N','E','C','K','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','I','N','E','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','R','U','B','O','Z','U','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','C','H','I','N','G','L','O','W','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','H','O','L','D','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','S','T','A','R','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','O','N','N','E','C','K','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','P','I','E','R','C','I','N','G','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','C','K','S','H','A','W','M','A','N','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','R','T','L','I','N','E','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','P','I','N','N','I','N','G','T','O','P','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','K','U','R','I','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','S','U','K','I','G','A','P','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','H','R','U','S','T','I','N','G','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','R','I','S','T','A','R','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','E','I','L','C','E','I','L','_','S','t','r','e','a','m','C','E','I','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','G','C','G','_','S','t','r','e','a','m','C','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','H','O','P','C','H','O','P','T','R','C','H','O','P','T','R','_','S','t','r','e','a','m','C','H','O','P','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','H','O','P','_','S','t','r','e','a','m','C','H','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','K','S','P','C','K','S','P','_','S','t','r','e','a','m','C','K','S','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','F','C','M','F','_','S','t','r','e','a','m','C','M','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','C','M','O','U','C','M','O','U','_','S','t','r','e','a','m','C','M','O','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','_','S','t','r','e','a','m','C','M','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','P','P','O','C','K','C','O','P','P','O','C','K','_','S','t','r','e','a','m','C','O','P','P','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','R','R','E','L','C','O','R','R','E','L','_','S','t','r','e','a','m','C','O','R','R','E','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','C','O','S','H','C','O','S','H','_','S','t','r','e','a','m','C','O','S','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','_','S','t','r','e','a','m','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','R','S','I','C','R','S','I','_','S','t','r','e','a','m','C','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','T','I','C','T','I','_','S','t','r','e','a','m','C','T','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','U','M','S','U','M','C','U','M','S','U','M','_','S','t','r','e','a','m','C','U','M','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','V','I','C','V','I','_','S','t','r','e','a','m','C','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','T','y','p','e','D','E','F','A','U','L','T','D','E','M','A','D','E','M','A','_','S','t','r','e','a','m','D','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','I','S','A','B','L','E','D','D','I','V','D','I','V','_','S','t','r','e','a','m','D','I','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','S','C','D','O','S','C','_','S','t','r','e','a','m','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','P','O','D','P','O','_','S','t','r','e','a','m','D','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','X','D','X','_','S','t','r','e','a','m','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','a','t','a','F','r','a','m','e','D','o','t','E','F','I','E','F','I','_','S','t','r','e','a','m','E','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','A','E','M','A','_','S','t','r','e','a','m','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','V','E','M','V','_','S','t','r','e','a','m','E','M','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','E','R','I','E','R','I','_','S','t','r','e','a','m','E','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','_','S','t','r','e','a','m','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','X','P','E','X','P','_','S','t','r','e','a','m','E','X','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','q','u','a','l','F','I','S','H','E','R','F','I','S','H','E','R','_','S','t','r','e','a','m','F','I','S','H','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','L','O','O','R','F','L','O','O','R','_','S','t','r','e','a','m','F','L','O','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','O','S','C','F','O','S','C','_','S','t','r','e','a','m','F','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','F','R','A','C','T','A','L','_','S','t','r','e','a','m','F','R','A','C','T','A','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','M','A','F','R','A','M','A','_','S','t','r','e','a','m','F','R','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','a','r','F','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','_','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','i','n','i','t','_','_','F','u','n','c','t','i','o','n','.','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','_','_','l','o','c','a','l','F','u','n','c','t','i','o','n','.','_','_','r','e','p','r','_','_','F','u','n','c','t','i','o','n','.','_','_','s','t','r','_','_','F','u','n','c','t','i','o','n','.','_','_','u','n','i','c','o','d','e','_','_','F','u','n','c','t','i','o','n','.','f','u','n','c','t','i','o','n','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','g','e','t','_','p','a','r','a','m','e','t','e','r','s','F','u','n','c','t','i','o','n','.','i','n','f','o','F','u','n','c','t','i','o','n','.','l','o','o','k','b','a','c','k','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','s','F','u','n','c','t','i','o','n','.','r','u','n','F','u','n','c','t','i','o','n','.','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','s','e','t','_','p','a','r','a','m','e','t','e','r','s','H','A','H','A','_','S','t','r','e','a','m','H','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','M','A','H','M','A','_','S','t','r','e','a','m','H','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','E','R','I','O','D','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','H','A','S','E','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','S','I','N','E','H','T','_','S','I','N','E','_','S','t','r','e','a','m','H','T','_','S','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','L','I','N','E','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','M','O','D','E','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','i','g','h','L','o','w','H','i','s','t','o','g','r','a','m','I','B','S','I','B','S','_','S','t','r','e','a','m','I','B','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','C','H','I','M','O','K','U','I','C','H','I','M','O','K','U','_','S','t','r','e','a','m','I','C','H','I','M','O','K','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','M','I','I','M','I','_','S','t','r','e','a','m','I','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','n','s','u','f','f','i','c','i','e','n','t','H','i','s','t','o','r','y','K','A','M','A','K','A','M','A','_','S','t','r','e','a','m','K','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','K','C','_','S','t','r','e','a','m','K','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','D','J','K','D','J','_','S','t','r','e','a','m','K','D','J','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','S','T','K','S','T','E','X','T','K','S','T','E','X','T','_','S','t','r','e','a','m','K','S','T','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','S','T','_','S','t','r','e','a','m','K','S','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','U','R','T','O','S','I','S','K','U','R','T','O','S','I','S','_','S','t','r','e','a','m','K','U','R','T','O','S','I','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','V','O','K','V','O','_','S','t','r','e','a','m','K','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','N','L','N','_','S','t','r','e','a','m','L','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','O','G','1','0','L','O','G','1','0','_','S','t','r','e','a','m','L','O','G','1','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','i','n','e','M','A','M','A','C','D','M','A','C','D','E','X','T','M','A','C','D','E','X','T','_','S','t','r','e','a','m','M','A','C','D','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','F','I','X','M','A','C','D','F','I','X','_','S','t','r','e','a','m','M','A','C','D','F','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','_','S','t','r','e','a','m','M','A','C','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','M','A','M','A','M','A','_','S','t','r','e','a','m','M','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','R','K','E','T','F','I','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','S','S','I','M','A','S','S','I','_','S','t','r','e','a','m','M','A','S','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','V','P','M','A','V','P','_','S','t','r','e','a','m','M','A','V','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','M','A','X','I','N','D','E','X','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','_','S','t','r','e','a','m','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','S','t','r','e','a','m','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','T','y','p','e','M','A','_','T','y','p','e','.','_','_','g','e','t','i','t','e','m','_','_','M','A','_','T','y','p','e','.','_','_','i','n','i','t','_','_','M','C','G','D','M','C','G','D','_','S','t','r','e','a','m','M','C','G','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','E','D','I','A','N','M','E','D','I','A','N','_','S','t','r','e','a','m','M','E','D','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','E','D','P','R','I','C','E','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','F','I','M','F','I','_','S','t','r','e','a','m','M','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','O','I','N','T','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','R','I','C','E','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','I','N','I','N','D','E','X','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','M','I','N','M','A','X','I','N','D','E','X','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','_','S','t','r','e','a','m','M','I','N','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','I','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','M','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','_','S','t','r','e','a','m','M','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','O','M','M','O','M','_','S','t','r','e','a','m','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','U','L','T','M','U','L','T','_','S','t','r','e','a','m','M','U','L','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','A','T','R','N','A','T','R','_','S','t','r','e','a','m','N','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','O','N','E','N','V','I','N','V','I','_','S','t','r','e','a','m','N','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','e','a','r','O','B','V','O','B','V','_','S','t','r','e','a','m','O','B','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','O','r','d','e','r','e','d','D','i','c','t','O','u','t','R','a','n','g','e','P','E','R','C','E','N','T','B','P','E','R','C','E','N','T','B','_','S','t','r','e','a','m','P','E','R','C','E','N','T','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','I','L','E','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','R','A','N','K','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','I','P','L','U','S','_','D','I','_','S','t','r','e','a','m','P','L','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','M','P','L','U','S','_','D','M','_','S','t','r','e','a','m','P','L','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','P','O','P','P','O','_','S','t','r','e','a','m','P','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','S','O','P','S','O','_','S','t','r','e','a','m','P','S','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','I','P','V','I','_','S','t','r','e','a','m','P','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','O','P','V','O','_','S','t','r','e','a','m','P','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','T','P','V','T','_','S','t','r','e','a','m','P','V','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Q','S','T','I','C','K','Q','S','T','I','C','K','_','S','t','r','e','a','m','Q','S','T','I','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','M','A','R','M','A','_','S','t','r','e','a','m','R','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','O','C','P','R','O','C','P','_','S','t','r','e','a','m','R','O','C','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','R','O','C','R','1','0','0','R','O','C','R','1','0','0','_','S','t','r','e','a','m','R','O','C','R','1','0','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','_','S','t','r','e','a','m','R','O','C','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','_','S','t','r','e','a','m','R','O','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','G','E','R','S','S','A','T','C','H','E','L','L','R','O','G','E','R','S','S','A','T','C','H','E','L','L','_','S','t','r','e','a','m','R','O','G','E','R','S','S','A','T','C','H','E','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','S','I','R','S','I','_','S','t','r','e','a','m','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','R','V','I','R','R','V','I','R','_','S','t','r','e','a','m','R','V','I','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','_','S','t','r','e','a','m','R','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','O','L','R','V','O','L','_','S','t','r','e','a','m','R','V','O','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','a','n','g','e','T','y','p','e','R','e','a','l','B','o','d','y','S','A','R','S','A','R','E','X','T','S','A','R','E','X','T','_','S','t','r','e','a','m','S','A','R','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','A','R','_','S','t','r','e','a','m','S','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','S','I','N','S','I','N','H','S','I','N','H','_','S','t','r','e','a','m','S','I','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','_','S','t','r','e','a','m','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','_','S','t','r','e','a','m','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','A','S','M','A','_','S','t','r','e','a','m','S','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','S','M','I','_','S','t','r','e','a','m','S','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','Q','R','T','S','Q','R','T','_','S','t','r','e','a','m','S','Q','R','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','Q','Z','M','O','M','S','Q','Z','M','O','M','_','S','t','r','e','a','m','S','Q','Z','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','C','S','T','C','_','S','t','r','e','a','m','S','T','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','D','D','E','V','S','T','D','D','E','V','_','S','t','r','e','a','m','S','T','D','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','S','T','O','C','H','F','S','T','O','C','H','F','_','S','t','r','e','a','m','S','T','O','C','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','R','S','I','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','_','S','t','r','e','a','m','S','T','O','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','B','S','U','B','_','S','t','r','e','a','m','S','U','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','M','S','U','M','_','S','t','r','e','a','m','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','W','A','K','_','2','P','H','P','S','W','A','K','_','2','P','H','P','_','S','t','r','e','a','m','S','W','A','K','_','2','P','H','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','W','A','K','_','B','P','S','W','A','K','_','B','P','_','S','t','r','e','a','m','S','W','A','K','_','B','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','W','A','K','_','B','U','T','T','E','R','S','W','A','K','_','B','U','T','T','E','R','_','S','t','r','e','a','m','S','W','A','K','_','B','U','T','T','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','W','A','K','_','G','A','U','S','S','S','W','A','K','_','G','A','U','S','S','_','S','t','r','e','a','m','S','W','A','K','_','G','A','U','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','W','A','K','_','H','P','S','W','A','K','_','H','P','_','S','t','r','e','a','m','S','W','A','K','_','H','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','e','r','i','e','s','S','h','a','d','o','w','L','o','n','g','S','h','a','d','o','w','S','h','o','r','t','S','h','a','d','o','w','V','e','r','y','L','o','n','g','S','h','a','d','o','w','V','e','r','y','S','h','o','r','t','S','h','a','d','o','w','s','S','t','r','e','a','m','S','t','r','e','a','m','.','_','_','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','d','e','e','p','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','r','e','d','u','c','e','_','_','T','3','T','3','_','S','t','r','e','a','m','T','3','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','T','A','N','H','T','A','N','H','_','S','t','r','e','a','m','T','A','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','_','S','t','r','e','a','m','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','_','A','C','T','A','_','A','C','C','B','A','N','D','S','T','A','_','A','C','C','B','A','N','D','S','_','C','l','o','n','e','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','C','B','A','N','D','S','_','P','e','e','k','T','A','_','A','C','C','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','A','C','C','B','A','N','D','S','_','V','a','l','u','e','T','A','_','A','C','O','S','T','A','_','A','C','O','S','_','C','l','o','n','e','T','A','_','A','C','O','S','_','O','p','e','n','T','A','_','A','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','O','S','_','P','e','e','k','T','A','_','A','C','O','S','_','U','p','d','a','t','e','T','A','_','A','C','O','S','_','V','a','l','u','e','T','A','_','A','C','_','C','l','o','n','e','T','A','_','A','C','_','O','p','e','n','T','A','_','A','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','_','P','e','e','k','T','A','_','A','C','_','U','p','d','a','t','e','T','A','_','A','C','_','V','a','l','u','e','T','A','_','A','D','T','A','_','A','D','D','T','A','_','A','D','D','_','C','l','o','n','e','T','A','_','A','D','D','_','O','p','e','n','T','A','_','A','D','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','D','_','P','e','e','k','T','A','_','A','D','D','_','U','p','d','a','t','e','T','A','_','A','D','D','_','V','a','l','u','e','T','A','_','A','D','O','S','C','T','A','_','A','D','O','S','C','_','C','l','o','n','e','T','A','_','A','D','O','S','C','_','O','p','e','n','T','A','_','A','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','O','S','C','_','P','e','e','k','T','A','_','A','D','O','S','C','_','U','p','d','a','t','e','T','A','_','A','D','O','S','C','_','V','a','l','u','e','T','A','_','A','D','R','T','A','_','A','D','R','_','C','l','o','n','e','T','A','_','A','D','R','_','O','p','e','n','T','A','_','A','D','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','R','_','P','e','e','k','T','A','_','A','D','R','_','U','p','d','a','t','e','T','A','_','A','D','R','_','V','a','l','u','e','T','A','_','A','D','X','T','A','_','A','D','X','R','T','A','_','A','D','X','R','_','C','l','o','n','e','T','A','_','A','D','X','R','_','O','p','e','n','T','A','_','A','D','X','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','R','_','P','e','e','k','T','A','_','A','D','X','R','_','U','p','d','a','t','e','T','A','_','A','D','X','R','_','V','a','l','u','e','T','A','_','A','D','X','_','C','l','o','n','e','T','A','_','A','D','X','_','O','p','e','n','T','A','_','A','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','_','P','e','e','k','T','A','_','A','D','X','_','U','p','d','a','t','e','T','A','_','A','D','X','_','V','a','l','u','e','T','A','_','A','D','_','C','l','o','n','e','T','A','_','A','D','_','O','p','e','n','T','A','_','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','_','P','e','e','k','T','A','_','A','D','_','U','p','d','a','t','e','T','A','_','A','D','_','V','a','l','u','e','T','A','_','A','L','M','A','T','A','_','A','L','M','A','_','C','l','o','n','e','T','A','_','A','L','M','A','_','O','p','e','n','T','A','_','A','L','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','L','M','A','_','P','e','e','k','T','A','_','A','L','M','A','_','U','p','d','a','t','e','T','A','_','A','L','M','A','_','V','a','l','u','e','T','A','_','A','O','T','A','_','A','O','_','C','l','o','n','e','T','A','_','A','O','_','O','p','e','n','T','A','_','A','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','O','_','P','e','e','k','T','A','_','A','O','_','U','p','d','a','t','e','T','A','_','A','O','_','V','a','l','u','e','T','A','_','A','P','O','T','A','_','A','P','O','_','C','l','o','n','e','T','A','_','A','P','O','_','O','p','e','n','T','A','_','A','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','P','O','_','P','e','e','k','T','A','_','A','P','O','_','U','p','d','a','t','e','T','A','_','A','P','O','_','V','a','l','u','e','T','A','_','A','R','O','O','N','T','A','_','A','R','O','O','N','O','S','C','T','A','_','A','R','O','O','N','O','S','C','_','C','l','o','n','e','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','O','S','C','_','P','e','e','k','T','A','_','A','R','O','O','N','O','S','C','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','O','S','C','_','V','a','l','u','e','T','A','_','A','R','O','O','N','_','C','l','o','n','e','T','A','_','A','R','O','O','N','_','O','p','e','n','T','A','_','A','R','O','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','_','P','e','e','k','T','A','_','A','R','O','O','N','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','_','V','a','l','u','e','T','A','_','A','S','I','T','A','_','A','S','I','N','T','A','_','A','S','I','N','_','C','l','o','n','e','T','A','_','A','S','I','N','_','O','p','e','n','T','A','_','A','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','N','_','P','e','e','k','T','A','_','A','S','I','N','_','U','p','d','a','t','e','T','A','_','A','S','I','N','_','V','a','l','u','e','T','A','_','A','S','I','_','C','l','o','n','e','T','A','_','A','S','I','_','O','p','e','n','T','A','_','A','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','_','P','e','e','k','T','A','_','A','S','I','_','U','p','d','a','t','e','T','A','_','A','S','I','_','V','a','l','u','e','T','A','_','A','T','A','N','T','A','_','A','T','A','N','_','C','l','o','n','e','T','A','_','A','T','A','N','_','O','p','e','n','T','A','_','A','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','A','N','_','P','e','e','k','T','A','_','A','T','A','N','_','U','p','d','a','t','e','T','A','_','A','T','A','N','_','V','a','l','u','e','T','A','_','A','T','R','T','A','_','A','T','R','_','C','l','o','n','e','T','A','_','A','T','R','_','O','p','e','n','T','A','_','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','R','_','P','e','e','k','T','A','_','A','T','R','_','U','p','d','a','t','e','T','A','_','A','T','R','_','V','a','l','u','e','T','A','_','A','V','G','D','E','V','T','A','_','A','V','G','D','E','V','_','C','l','o','n','e','T','A','_','A','V','G','D','E','V','_','O','p','e','n','T','A','_','A','V','G','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','D','E','V','_','P','e','e','k','T','A','_','A','V','G','D','E','V','_','U','p','d','a','t','e','T','A','_','A','V','G','D','E','V','_','V','a','l','u','e','T','A','_','A','V','G','P','R','I','C','E','T','A','_','A','V','G','P','R','I','C','E','_','C','l','o','n','e','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','P','R','I','C','E','_','P','e','e','k','T','A','_','A','V','G','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','A','V','G','P','R','I','C','E','_','V','a','l','u','e','T','A','_','B','B','A','N','D','S','T','A','_','B','B','A','N','D','S','_','C','l','o','n','e','T','A','_','B','B','A','N','D','S','_','O','p','e','n','T','A','_','B','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','A','N','D','S','_','P','e','e','k','T','A','_','B','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','B','B','A','N','D','S','_','V','a','l','u','e','T','A','_','B','B','W','T','A','_','B','B','W','_','C','l','o','n','e','T','A','_','B','B','W','_','O','p','e','n','T','A','_','B','B','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','W','_','P','e','e','k','T','A','_','B','B','W','_','U','p','d','a','t','e','T','A','_','B','B','W','_','V','a','l','u','e','T','A','_','B','E','T','A','T','A','_','B','E','T','A','_','C','l','o','n','e','T','A','_','B','E','T','A','_','O','p','e','n','T','A','_','B','E','T','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','E','T','A','_','P','e','e','k','T','A','_','B','E','T','A','_','U','p','d','a','t','e','T','A','_','B','E','T','A','_','V','a','l','u','e','T','A','_','B','O','P','T','A','_','B','O','P','_','C','l','o','n','e','T','A','_','B','O','P','_','O','p','e','n','T','A','_','B','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','O','P','_','P','e','e','k','T','A','_','B','O','P','_','U','p','d','a','t','e','T','A','_','B','O','P','_','V','a','l','u','e','T','A','_','C','C','I','T','A','_','C','C','I','_','C','l','o','n','e','T','A','_','C','C','I','_','O','p','e','n','T','A','_','C','C','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','C','I','_','P','e','e','k','T','A','_','C','C','I','_','U','p','d','a','t','e','T','A','_','C','C','I','_','V','a','l','u','e','T','A','_','C','D','L','2','C','R','O','W','S','T','A','_','C','D','L','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','I','N','S','I','D','E','T','A','_','C','D','L','3','I','N','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','I','N','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','I','N','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','C','l','o','n','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','P','e','e','k','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','V','a','l','u','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','C','l','o','n','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','P','e','e','k','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','V','a','l','u','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','C','l','o','n','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','P','e','e','k','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','V','a','l','u','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','C','l','o','n','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','P','e','e','k','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','V','a','l','u','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','C','l','o','n','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','P','e','e','k','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','V','a','l','u','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','C','l','o','n','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','P','e','e','k','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','V','a','l','u','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','C','l','o','n','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','P','e','e','k','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','V','a','l','u','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','C','l','o','n','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','P','e','e','k','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','V','a','l','u','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','P','e','e','k','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','T','A','_','C','D','L','D','O','J','I','S','T','A','R','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','P','e','e','k','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','C','l','o','n','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','P','e','e','k','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','U','p','d','a','t','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','V','a','l','u','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','H','A','M','M','E','R','T','A','_','C','D','L','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','P','e','e','k','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','_','V','a','l','u','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','P','e','e','k','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','V','a','l','u','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','C','l','o','n','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','P','e','e','k','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','V','a','l','u','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','I','N','N','E','C','K','T','A','_','C','D','L','I','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','I','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','C','l','o','n','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','P','e','e','k','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','U','p','d','a','t','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','P','e','e','k','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','H','O','L','D','T','A','_','C','D','L','M','A','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','M','A','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','O','N','N','E','C','K','T','A','_','C','D','L','O','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','O','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','O','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','O','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','P','e','e','k','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','P','e','e','k','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','C','l','o','n','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','P','e','e','k','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','U','p','d','a','t','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','C','l','o','n','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','P','e','e','k','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','U','p','d','a','t','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','V','a','l','u','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','C','l','o','n','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','P','e','e','k','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','V','a','l','u','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','C','l','o','n','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','P','e','e','k','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','V','a','l','u','e','T','A','_','C','D','L','T','A','K','U','R','I','T','A','_','C','D','L','T','A','K','U','R','I','_','C','l','o','n','e','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','K','U','R','I','_','P','e','e','k','T','A','_','C','D','L','T','A','K','U','R','I','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','K','U','R','I','_','V','a','l','u','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','C','l','o','n','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','P','e','e','k','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','V','a','l','u','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','P','e','e','k','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','T','R','I','S','T','A','R','T','A','_','C','D','L','T','R','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','R','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','T','R','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','P','e','e','k','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','E','I','L','T','A','_','C','E','I','L','_','C','l','o','n','e','T','A','_','C','E','I','L','_','O','p','e','n','T','A','_','C','E','I','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','E','I','L','_','P','e','e','k','T','A','_','C','E','I','L','_','U','p','d','a','t','e','T','A','_','C','E','I','L','_','V','a','l','u','e','T','A','_','C','G','T','A','_','C','G','_','C','l','o','n','e','T','A','_','C','G','_','O','p','e','n','T','A','_','C','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','G','_','P','e','e','k','T','A','_','C','G','_','U','p','d','a','t','e','T','A','_','C','G','_','V','a','l','u','e','T','A','_','C','H','O','P','T','A','_','C','H','O','P','T','R','T','A','_','C','H','O','P','T','R','_','C','l','o','n','e','T','A','_','C','H','O','P','T','R','_','O','p','e','n','T','A','_','C','H','O','P','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','H','O','P','T','R','_','P','e','e','k','T','A','_','C','H','O','P','T','R','_','U','p','d','a','t','e','T','A','_','C','H','O','P','T','R','_','V','a','l','u','e','T','A','_','C','H','O','P','_','C','l','o','n','e','T','A','_','C','H','O','P','_','O','p','e','n','T','A','_','C','H','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','H','O','P','_','P','e','e','k','T','A','_','C','H','O','P','_','U','p','d','a','t','e','T','A','_','C','H','O','P','_','V','a','l','u','e','T','A','_','C','K','S','P','T','A','_','C','K','S','P','_','C','l','o','n','e','T','A','_','C','K','S','P','_','O','p','e','n','T','A','_','C','K','S','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','K','S','P','_','P','e','e','k','T','A','_','C','K','S','P','_','U','p','d','a','t','e','T','A','_','C','K','S','P','_','V','a','l','u','e','T','A','_','C','M','F','T','A','_','C','M','F','_','C','l','o','n','e','T','A','_','C','M','F','_','O','p','e','n','T','A','_','C','M','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','F','_','P','e','e','k','T','A','_','C','M','F','_','U','p','d','a','t','e','T','A','_','C','M','F','_','V','a','l','u','e','T','A','_','C','M','O','T','A','_','C','M','O','U','T','A','_','C','M','O','U','_','C','l','o','n','e','T','A','_','C','M','O','U','_','O','p','e','n','T','A','_','C','M','O','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','U','_','P','e','e','k','T','A','_','C','M','O','U','_','U','p','d','a','t','e','T','A','_','C','M','O','U','_','V','a','l','u','e','T','A','_','C','M','O','_','C','l','o','n','e','T','A','_','C','M','O','_','O','p','e','n','T','A','_','C','M','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','_','P','e','e','k','T','A','_','C','M','O','_','U','p','d','a','t','e','T','A','_','C','M','O','_','V','a','l','u','e','T','A','_','C','O','P','P','O','C','K','T','A','_','C','O','P','P','O','C','K','_','C','l','o','n','e','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','P','P','O','C','K','_','P','e','e','k','T','A','_','C','O','P','P','O','C','K','_','U','p','d','a','t','e','T','A','_','C','O','P','P','O','C','K','_','V','a','l','u','e','T','A','_','C','O','R','R','E','L','T','A','_','C','O','R','R','E','L','_','C','l','o','n','e','T','A','_','C','O','R','R','E','L','_','O','p','e','n','T','A','_','C','O','R','R','E','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','R','R','E','L','_','P','e','e','k','T','A','_','C','O','R','R','E','L','_','U','p','d','a','t','e','T','A','_','C','O','R','R','E','L','_','V','a','l','u','e','T','A','_','C','O','S','T','A','_','C','O','S','H','T','A','_','C','O','S','H','_','C','l','o','n','e','T','A','_','C','O','S','H','_','O','p','e','n','T','A','_','C','O','S','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','H','_','P','e','e','k','T','A','_','C','O','S','H','_','U','p','d','a','t','e','T','A','_','C','O','S','H','_','V','a','l','u','e','T','A','_','C','O','S','_','C','l','o','n','e','T','A','_','C','O','S','_','O','p','e','n','T','A','_','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','_','P','e','e','k','T','A','_','C','O','S','_','U','p','d','a','t','e','T','A','_','C','O','S','_','V','a','l','u','e','T','A','_','C','R','S','I','T','A','_','C','R','S','I','_','C','l','o','n','e','T','A','_','C','R','S','I','_','O','p','e','n','T','A','_','C','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','R','S','I','_','P','e','e','k','T','A','_','C','R','S','I','_','U','p','d','a','t','e','T','A','_','C','R','S','I','_','V','a','l','u','e','T','A','_','C','T','I','T','A','_','C','T','I','_','C','l','o','n','e','T','A','_','C','T','I','_','O','p','e','n','T','A','_','C','T','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','T','I','_','P','e','e','k','T','A','_','C','T','I','_','U','p','d','a','t','e','T','A','_','C','T','I','_','V','a','l','u','e','T','A','_','C','U','M','S','U','M','T','A','_','C','U','M','S','U','M','_','C','l','o','n','e','T','A','_','C','U','M','S','U','M','_','O','p','e','n','T','A','_','C','U','M','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','U','M','S','U','M','_','P','e','e','k','T','A','_','C','U','M','S','U','M','_','U','p','d','a','t','e','T','A','_','C','U','M','S','U','M','_','V','a','l','u','e','T','A','_','C','V','I','T','A','_','C','V','I','_','C','l','o','n','e','T','A','_','C','V','I','_','O','p','e','n','T','A','_','C','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','V','I','_','P','e','e','k','T','A','_','C','V','I','_','U','p','d','a','t','e','T','A','_','C','V','I','_','V','a','l','u','e','T','A','_','D','E','M','A','T','A','_','D','E','M','A','_','C','l','o','n','e','T','A','_','D','E','M','A','_','O','p','e','n','T','A','_','D','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','E','M','A','_','P','e','e','k','T','A','_','D','E','M','A','_','U','p','d','a','t','e','T','A','_','D','E','M','A','_','V','a','l','u','e','T','A','_','D','I','V','T','A','_','D','I','V','_','C','l','o','n','e','T','A','_','D','I','V','_','O','p','e','n','T','A','_','D','I','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','I','V','_','P','e','e','k','T','A','_','D','I','V','_','U','p','d','a','t','e','T','A','_','D','I','V','_','V','a','l','u','e','T','A','_','D','O','N','C','H','I','A','N','T','A','_','D','O','N','C','H','I','A','N','_','C','l','o','n','e','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','N','C','H','I','A','N','_','P','e','e','k','T','A','_','D','O','N','C','H','I','A','N','_','U','p','d','a','t','e','T','A','_','D','O','N','C','H','I','A','N','_','V','a','l','u','e','T','A','_','D','O','S','C','T','A','_','D','O','S','C','_','C','l','o','n','e','T','A','_','D','O','S','C','_','O','p','e','n','T','A','_','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','S','C','_','P','e','e','k','T','A','_','D','O','S','C','_','U','p','d','a','t','e','T','A','_','D','O','S','C','_','V','a','l','u','e','T','A','_','D','P','O','T','A','_','D','P','O','_','C','l','o','n','e','T','A','_','D','P','O','_','O','p','e','n','T','A','_','D','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','P','O','_','P','e','e','k','T','A','_','D','P','O','_','U','p','d','a','t','e','T','A','_','D','P','O','_','V','a','l','u','e','T','A','_','D','X','T','A','_','D','X','_','C','l','o','n','e','T','A','_','D','X','_','O','p','e','n','T','A','_','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','X','_','P','e','e','k','T','A','_','D','X','_','U','p','d','a','t','e','T','A','_','D','X','_','V','a','l','u','e','T','A','_','E','F','I','T','A','_','E','F','I','_','C','l','o','n','e','T','A','_','E','F','I','_','O','p','e','n','T','A','_','E','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','F','I','_','P','e','e','k','T','A','_','E','F','I','_','U','p','d','a','t','e','T','A','_','E','F','I','_','V','a','l','u','e','T','A','_','E','M','A','T','A','_','E','M','A','_','C','l','o','n','e','T','A','_','E','M','A','_','O','p','e','n','T','A','_','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','A','_','P','e','e','k','T','A','_','E','M','A','_','U','p','d','a','t','e','T','A','_','E','M','A','_','V','a','l','u','e','T','A','_','E','M','V','T','A','_','E','M','V','_','C','l','o','n','e','T','A','_','E','M','V','_','O','p','e','n','T','A','_','E','M','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','V','_','P','e','e','k','T','A','_','E','M','V','_','U','p','d','a','t','e','T','A','_','E','M','V','_','V','a','l','u','e','T','A','_','E','R','T','A','_','E','R','I','T','A','_','E','R','I','_','C','l','o','n','e','T','A','_','E','R','I','_','O','p','e','n','T','A','_','E','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','I','_','P','e','e','k','T','A','_','E','R','I','_','U','p','d','a','t','e','T','A','_','E','R','I','_','V','a','l','u','e','T','A','_','E','R','_','C','l','o','n','e','T','A','_','E','R','_','O','p','e','n','T','A','_','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','_','P','e','e','k','T','A','_','E','R','_','U','p','d','a','t','e','T','A','_','E','R','_','V','a','l','u','e','T','A','_','E','X','P','T','A','_','E','X','P','_','C','l','o','n','e','T','A','_','E','X','P','_','O','p','e','n','T','A','_','E','X','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','X','P','_','P','e','e','k','T','A','_','E','X','P','_','U','p','d','a','t','e','T','A','_','E','X','P','_','V','a','l','u','e','T','A','_','F','I','S','H','E','R','T','A','_','F','I','S','H','E','R','_','C','l','o','n','e','T','A','_','F','I','S','H','E','R','_','O','p','e','n','T','A','_','F','I','S','H','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','I','S','H','E','R','_','P','e','e','k','T','A','_','F','I','S','H','E','R','_','U','p','d','a','t','e','T','A','_','F','I','S','H','E','R','_','V','a','l','u','e','T','A','_','F','L','O','O','R','T','A','_','F','L','O','O','R','_','C','l','o','n','e','T','A','_','F','L','O','O','R','_','O','p','e','n','T','A','_','F','L','O','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','L','O','O','R','_','P','e','e','k','T','A','_','F','L','O','O','R','_','U','p','d','a','t','e','T','A','_','F','L','O','O','R','_','V','a','l','u','e','T','A','_','F','O','S','C','T','A','_','F','O','S','C','_','C','l','o','n','e','T','A','_','F','O','S','C','_','O','p','e','n','T','A','_','F','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','O','S','C','_','P','e','e','k','T','A','_','F','O','S','C','_','U','p','d','a','t','e','T','A','_','F','O','S','C','_','V','a','l','u','e','T','A','_','F','R','A','C','T','A','L','T','A','_','F','R','A','C','T','A','L','_','C','l','o','n','e','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','C','T','A','L','_','P','e','e','k','T','A','_','F','R','A','C','T','A','L','_','U','p','d','a','t','e','T','A','_','F','R','A','C','T','A','L','_','V','a','l','u','e','T','A','_','F','R','A','M','A','T','A','_','F','R','A','M','A','_','C','l','o','n','e','T','A','_','F','R','A','M','A','_','O','p','e','n','T','A','_','F','R','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','M','A','_','P','e','e','k','T','A','_','F','R','A','M','A','_','U','p','d','a','t','e','T','A','_','F','R','A','M','A','_','V','a','l','u','e','T','A','_','F','U','N','C','_','F','L','A','G','S','T','A','_','F','u','n','c','T','a','b','l','e','A','l','l','o','c','T','A','_','F','u','n','c','T','a','b','l','e','F','r','e','e','T','A','_','G','e','t','F','u','n','c','H','a','n','d','l','e','T','A','_','G','e','t','F','u','n','c','I','n','f','o','T','A','_','G','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','L','o','o','k','b','a','c','k','T','A','_','G','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','R','u','n','t','i','m','e','I','n','f','o','T','A','_','G','r','o','u','p','T','a','b','l','e','A','l','l','o','c','T','A','_','G','r','o','u','p','T','a','b','l','e','F','r','e','e','T','A','_','H','A','T','A','_','H','A','_','C','l','o','n','e','T','A','_','H','A','_','O','p','e','n','T','A','_','H','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','A','_','P','e','e','k','T','A','_','H','A','_','U','p','d','a','t','e','T','A','_','H','A','_','V','a','l','u','e','T','A','_','H','M','A','T','A','_','H','M','A','_','C','l','o','n','e','T','A','_','H','M','A','_','O','p','e','n','T','A','_','H','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','M','A','_','P','e','e','k','T','A','_','H','M','A','_','U','p','d','a','t','e','T','A','_','H','M','A','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','P','e','e','k','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','H','A','S','E','T','A','_','H','T','_','D','C','P','H','A','S','E','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','H','A','S','E','_','P','e','e','k','T','A','_','H','T','_','D','C','P','H','A','S','E','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','V','a','l','u','e','T','A','_','H','T','_','P','H','A','S','O','R','T','A','_','H','T','_','P','H','A','S','O','R','_','C','l','o','n','e','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','P','H','A','S','O','R','_','P','e','e','k','T','A','_','H','T','_','P','H','A','S','O','R','_','U','p','d','a','t','e','T','A','_','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','T','A','_','H','T','_','S','I','N','E','T','A','_','H','T','_','S','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','S','I','N','E','_','P','e','e','k','T','A','_','H','T','_','S','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','S','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','V','a','l','u','e','T','A','_','I','B','S','T','A','_','I','B','S','_','C','l','o','n','e','T','A','_','I','B','S','_','O','p','e','n','T','A','_','I','B','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','B','S','_','P','e','e','k','T','A','_','I','B','S','_','U','p','d','a','t','e','T','A','_','I','B','S','_','V','a','l','u','e','T','A','_','I','C','H','I','M','O','K','U','T','A','_','I','C','H','I','M','O','K','U','_','C','l','o','n','e','T','A','_','I','C','H','I','M','O','K','U','_','O','p','e','n','T','A','_','I','C','H','I','M','O','K','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','C','H','I','M','O','K','U','_','P','e','e','k','T','A','_','I','C','H','I','M','O','K','U','_','U','p','d','a','t','e','T','A','_','I','C','H','I','M','O','K','U','_','V','a','l','u','e','T','A','_','I','M','I','T','A','_','I','M','I','_','C','l','o','n','e','T','A','_','I','M','I','_','O','p','e','n','T','A','_','I','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','M','I','_','P','e','e','k','T','A','_','I','M','I','_','U','p','d','a','t','e','T','A','_','I','M','I','_','V','a','l','u','e','T','A','_','I','N','P','U','T','_','F','L','A','G','S','T','A','_','I','n','i','t','i','a','l','i','z','e','T','A','_','K','A','M','A','T','A','_','K','A','M','A','_','C','l','o','n','e','T','A','_','K','A','M','A','_','O','p','e','n','T','A','_','K','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','A','M','A','_','P','e','e','k','T','A','_','K','A','M','A','_','U','p','d','a','t','e','T','A','_','K','A','M','A','_','V','a','l','u','e','T','A','_','K','C','T','A','_','K','C','_','C','l','o','n','e','T','A','_','K','C','_','O','p','e','n','T','A','_','K','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','C','_','P','e','e','k','T','A','_','K','C','_','U','p','d','a','t','e','T','A','_','K','C','_','V','a','l','u','e','T','A','_','K','D','J','T','A','_','K','D','J','_','C','l','o','n','e','T','A','_','K','D','J','_','O','p','e','n','T','A','_','K','D','J','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','D','J','_','P','e','e','k','T','A','_','K','D','J','_','U','p','d','a','t','e','T','A','_','K','D','J','_','V','a','l','u','e','T','A','_','K','S','T','T','A','_','K','S','T','E','X','T','T','A','_','K','S','T','E','X','T','_','C','l','o','n','e','T','A','_','K','S','T','E','X','T','_','O','p','e','n','T','A','_','K','S','T','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','S','T','E','X','T','_','P','e','e','k','T','A','_','K','S','T','E','X','T','_','U','p','d','a','t','e','T','A','_','K','S','T','E','X','T','_','V','a','l','u','e','T','A','_','K','S','T','_','C','l','o','n','e','T','A','_','K','S','T','_','O','p','e','n','T','A','_','K','S','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','S','T','_','P','e','e','k','T','A','_','K','S','T','_','U','p','d','a','t','e','T','A','_','K','S','T','_','V','a','l','u','e','T','A','_','K','U','R','T','O','S','I','S','T','A','_','K','U','R','T','O','S','I','S','_','C','l','o','n','e','T','A','_','K','U','R','T','O','S','I','S','_','O','p','e','n','T','A','_','K','U','R','T','O','S','I','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','U','R','T','O','S','I','S','_','P','e','e','k','T','A','_','K','U','R','T','O','S','I','S','_','U','p','d','a','t','e','T','A','_','K','U','R','T','O','S','I','S','_','V','a','l','u','e','T','A','_','K','V','O','T','A','_','K','V','O','_','C','l','o','n','e','T','A','_','K','V','O','_','O','p','e','n','T','A','_','K','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','V','O','_','P','e','e','k','T','A','_','K','V','O','_','U','p','d','a','t','e','T','A','_','K','V','O','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','V','a','l','u','e','T','A','_','L','N','T','A','_','L','N','_','C','l','o','n','e','T','A','_','L','N','_','O','p','e','n','T','A','_','L','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','N','_','P','e','e','k','T','A','_','L','N','_','U','p','d','a','t','e','T','A','_','L','N','_','V','a','l','u','e','T','A','_','L','O','G','1','0','T','A','_','L','O','G','1','0','_','C','l','o','n','e','T','A','_','L','O','G','1','0','_','O','p','e','n','T','A','_','L','O','G','1','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','O','G','1','0','_','P','e','e','k','T','A','_','L','O','G','1','0','_','U','p','d','a','t','e','T','A','_','L','O','G','1','0','_','V','a','l','u','e','T','A','_','M','A','T','A','_','M','A','C','D','T','A','_','M','A','C','D','E','X','T','T','A','_','M','A','C','D','E','X','T','_','C','l','o','n','e','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','E','X','T','_','P','e','e','k','T','A','_','M','A','C','D','E','X','T','_','U','p','d','a','t','e','T','A','_','M','A','C','D','E','X','T','_','V','a','l','u','e','T','A','_','M','A','C','D','F','I','X','T','A','_','M','A','C','D','F','I','X','_','C','l','o','n','e','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','F','I','X','_','P','e','e','k','T','A','_','M','A','C','D','F','I','X','_','U','p','d','a','t','e','T','A','_','M','A','C','D','F','I','X','_','V','a','l','u','e','T','A','_','M','A','C','D','_','C','l','o','n','e','T','A','_','M','A','C','D','_','O','p','e','n','T','A','_','M','A','C','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','_','P','e','e','k','T','A','_','M','A','C','D','_','U','p','d','a','t','e','T','A','_','M','A','C','D','_','V','a','l','u','e','T','A','_','M','A','M','A','T','A','_','M','A','M','A','_','C','l','o','n','e','T','A','_','M','A','M','A','_','O','p','e','n','T','A','_','M','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','M','A','_','P','e','e','k','T','A','_','M','A','M','A','_','U','p','d','a','t','e','T','A','_','M','A','M','A','_','V','a','l','u','e','T','A','_','M','A','R','K','E','T','F','I','T','A','_','M','A','R','K','E','T','F','I','_','C','l','o','n','e','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','R','K','E','T','F','I','_','P','e','e','k','T','A','_','M','A','R','K','E','T','F','I','_','U','p','d','a','t','e','T','A','_','M','A','R','K','E','T','F','I','_','V','a','l','u','e','T','A','_','M','A','S','S','I','T','A','_','M','A','S','S','I','_','C','l','o','n','e','T','A','_','M','A','S','S','I','_','O','p','e','n','T','A','_','M','A','S','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','S','S','I','_','P','e','e','k','T','A','_','M','A','S','S','I','_','U','p','d','a','t','e','T','A','_','M','A','S','S','I','_','V','a','l','u','e','T','A','_','M','A','V','P','T','A','_','M','A','V','P','_','C','l','o','n','e','T','A','_','M','A','V','P','_','O','p','e','n','T','A','_','M','A','V','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','V','P','_','P','e','e','k','T','A','_','M','A','V','P','_','U','p','d','a','t','e','T','A','_','M','A','V','P','_','V','a','l','u','e','T','A','_','M','A','X','T','A','_','M','A','X','I','N','D','E','X','T','A','_','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','A','X','_','C','l','o','n','e','T','A','_','M','A','X','_','O','p','e','n','T','A','_','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','_','P','e','e','k','T','A','_','M','A','X','_','U','p','d','a','t','e','T','A','_','M','A','X','_','V','a','l','u','e','T','A','_','M','A','_','C','l','o','n','e','T','A','_','M','A','_','O','p','e','n','T','A','_','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','_','P','e','e','k','T','A','_','M','A','_','U','p','d','a','t','e','T','A','_','M','A','_','V','a','l','u','e','T','A','_','M','C','G','D','T','A','_','M','C','G','D','_','C','l','o','n','e','T','A','_','M','C','G','D','_','O','p','e','n','T','A','_','M','C','G','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','C','G','D','_','P','e','e','k','T','A','_','M','C','G','D','_','U','p','d','a','t','e','T','A','_','M','C','G','D','_','V','a','l','u','e','T','A','_','M','E','D','I','A','N','T','A','_','M','E','D','I','A','N','_','C','l','o','n','e','T','A','_','M','E','D','I','A','N','_','O','p','e','n','T','A','_','M','E','D','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','I','A','N','_','P','e','e','k','T','A','_','M','E','D','I','A','N','_','U','p','d','a','t','e','T','A','_','M','E','D','I','A','N','_','V','a','l','u','e','T','A','_','M','E','D','P','R','I','C','E','T','A','_','M','E','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','E','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','E','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','F','I','T','A','_','M','F','I','_','C','l','o','n','e','T','A','_','M','F','I','_','O','p','e','n','T','A','_','M','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','F','I','_','P','e','e','k','T','A','_','M','F','I','_','U','p','d','a','t','e','T','A','_','M','F','I','_','V','a','l','u','e','T','A','_','M','I','D','P','O','I','N','T','T','A','_','M','I','D','P','O','I','N','T','_','C','l','o','n','e','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','O','I','N','T','_','P','e','e','k','T','A','_','M','I','D','P','O','I','N','T','_','U','p','d','a','t','e','T','A','_','M','I','D','P','O','I','N','T','_','V','a','l','u','e','T','A','_','M','I','D','P','R','I','C','E','T','A','_','M','I','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','I','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','I','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','I','N','T','A','_','M','I','N','I','N','D','E','X','T','A','_','M','I','N','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','I','T','A','_','M','I','N','U','S','_','D','I','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','I','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','I','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','M','T','A','_','M','I','N','U','S','_','D','M','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','M','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','M','_','V','a','l','u','e','T','A','_','M','I','N','_','C','l','o','n','e','T','A','_','M','I','N','_','O','p','e','n','T','A','_','M','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','_','P','e','e','k','T','A','_','M','I','N','_','U','p','d','a','t','e','T','A','_','M','I','N','_','V','a','l','u','e','T','A','_','M','O','M','T','A','_','M','O','M','_','C','l','o','n','e','T','A','_','M','O','M','_','O','p','e','n','T','A','_','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','O','M','_','P','e','e','k','T','A','_','M','O','M','_','U','p','d','a','t','e','T','A','_','M','O','M','_','V','a','l','u','e','T','A','_','M','U','L','T','T','A','_','M','U','L','T','_','C','l','o','n','e','T','A','_','M','U','L','T','_','O','p','e','n','T','A','_','M','U','L','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','U','L','T','_','P','e','e','k','T','A','_','M','U','L','T','_','U','p','d','a','t','e','T','A','_','M','U','L','T','_','V','a','l','u','e','T','A','_','N','A','T','R','T','A','_','N','A','T','R','_','C','l','o','n','e','T','A','_','N','A','T','R','_','O','p','e','n','T','A','_','N','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','A','T','R','_','P','e','e','k','T','A','_','N','A','T','R','_','U','p','d','a','t','e','T','A','_','N','A','T','R','_','V','a','l','u','e','T','A','_','N','V','I','T','A','_','N','V','I','_','C','l','o','n','e','T','A','_','N','V','I','_','O','p','e','n','T','A','_','N','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','V','I','_','P','e','e','k','T','A','_','N','V','I','_','U','p','d','a','t','e','T','A','_','N','V','I','_','V','a','l','u','e','T','A','_','O','B','V','T','A','_','O','B','V','_','C','l','o','n','e','T','A','_','O','B','V','_','O','p','e','n','T','A','_','O','B','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','O','B','V','_','P','e','e','k','T','A','_','O','B','V','_','U','p','d','a','t','e','T','A','_','O','B','V','_','V','a','l','u','e','T','A','_','O','U','T','P','U','T','_','F','L','A','G','S','T','A','_','P','E','R','C','E','N','T','B','T','A','_','P','E','R','C','E','N','T','B','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','B','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','B','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','B','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','B','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','I','L','E','T','A','_','P','E','R','C','E','N','T','I','L','E','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','I','L','E','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','I','L','E','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','I','T','A','_','P','L','U','S','_','D','I','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','I','_','P','e','e','k','T','A','_','P','L','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','I','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','M','T','A','_','P','L','U','S','_','D','M','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','M','_','P','e','e','k','T','A','_','P','L','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','M','_','V','a','l','u','e','T','A','_','P','P','O','T','A','_','P','P','O','_','C','l','o','n','e','T','A','_','P','P','O','_','O','p','e','n','T','A','_','P','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','P','O','_','P','e','e','k','T','A','_','P','P','O','_','U','p','d','a','t','e','T','A','_','P','P','O','_','V','a','l','u','e','T','A','_','P','S','O','T','A','_','P','S','O','_','C','l','o','n','e','T','A','_','P','S','O','_','O','p','e','n','T','A','_','P','S','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','S','O','_','P','e','e','k','T','A','_','P','S','O','_','U','p','d','a','t','e','T','A','_','P','S','O','_','V','a','l','u','e','T','A','_','P','V','I','T','A','_','P','V','I','_','C','l','o','n','e','T','A','_','P','V','I','_','O','p','e','n','T','A','_','P','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','I','_','P','e','e','k','T','A','_','P','V','I','_','U','p','d','a','t','e','T','A','_','P','V','I','_','V','a','l','u','e','T','A','_','P','V','O','T','A','_','P','V','O','_','C','l','o','n','e','T','A','_','P','V','O','_','O','p','e','n','T','A','_','P','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','O','_','P','e','e','k','T','A','_','P','V','O','_','U','p','d','a','t','e','T','A','_','P','V','O','_','V','a','l','u','e','T','A','_','P','V','T','T','A','_','P','V','T','_','C','l','o','n','e','T','A','_','P','V','T','_','O','p','e','n','T','A','_','P','V','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','T','_','P','e','e','k','T','A','_','P','V','T','_','U','p','d','a','t','e','T','A','_','P','V','T','_','V','a','l','u','e','T','A','_','P','a','r','a','m','H','o','l','d','e','r','A','l','l','o','c','T','A','_','P','a','r','a','m','H','o','l','d','e','r','F','r','e','e','T','A','_','Q','S','T','I','C','K','T','A','_','Q','S','T','I','C','K','_','C','l','o','n','e','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Q','S','T','I','C','K','_','P','e','e','k','T','A','_','Q','S','T','I','C','K','_','U','p','d','a','t','e','T','A','_','Q','S','T','I','C','K','_','V','a','l','u','e','T','A','_','R','M','A','T','A','_','R','M','A','_','C','l','o','n','e','T','A','_','R','M','A','_','O','p','e','n','T','A','_','R','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','M','A','_','P','e','e','k','T','A','_','R','M','A','_','U','p','d','a','t','e','T','A','_','R','M','A','_','V','a','l','u','e','T','A','_','R','O','C','T','A','_','R','O','C','P','T','A','_','R','O','C','P','_','C','l','o','n','e','T','A','_','R','O','C','P','_','O','p','e','n','T','A','_','R','O','C','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','P','_','P','e','e','k','T','A','_','R','O','C','P','_','U','p','d','a','t','e','T','A','_','R','O','C','P','_','V','a','l','u','e','T','A','_','R','O','C','R','T','A','_','R','O','C','R','1','0','0','T','A','_','R','O','C','R','1','0','0','_','C','l','o','n','e','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','1','0','0','_','P','e','e','k','T','A','_','R','O','C','R','1','0','0','_','U','p','d','a','t','e','T','A','_','R','O','C','R','1','0','0','_','V','a','l','u','e','T','A','_','R','O','C','R','_','C','l','o','n','e','T','A','_','R','O','C','R','_','O','p','e','n','T','A','_','R','O','C','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','_','P','e','e','k','T','A','_','R','O','C','R','_','U','p','d','a','t','e','T','A','_','R','O','C','R','_','V','a','l','u','e','T','A','_','R','O','C','_','C','l','o','n','e','T','A','_','R','O','C','_','O','p','e','n','T','A','_','R','O','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','_','P','e','e','k','T','A','_','R','O','C','_','U','p','d','a','t','e','T','A','_','R','O','C','_','V','a','l','u','e','T','A','_','R','O','G','E','R','S','S','A','T','C','H','E','L','L','T','A','_','R','O','G','E','R','S','S','A','T','C','H','E','L','L','_','C','l','o','n','e','T','A','_','R','O','G','E','R','S','S','A','T','C','H','E','L','L','_','O','p','e','n','T','A','_','R','O','G','E','R','S','S','A','T','C','H','E','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','G','E','R','S','S','A','T','C','H','E','L','L','_','P','e','e','k','T','A','_','R','O','G','E','R','S','S','A','T','C','H','E','L','L','_','U','p','d','a','t','e','T','A','_','R','O','G','E','R','S','S','A','T','C','H','E','L','L','_','V','a','l','u','e','T','A','_','R','S','I','T','A','_','R','S','I','_','C','l','o','n','e','T','A','_','R','S','I','_','O','p','e','n','T','A','_','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','S','I','_','P','e','e','k','T','A','_','R','S','I','_','U','p','d','a','t','e','T','A','_','R','S','I','_','V','a','l','u','e','T','A','_','R','V','I','T','A','_','R','V','I','R','T','A','_','R','V','I','R','_','C','l','o','n','e','T','A','_','R','V','I','R','_','O','p','e','n','T','A','_','R','V','I','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','R','_','P','e','e','k','T','A','_','R','V','I','R','_','U','p','d','a','t','e','T','A','_','R','V','I','R','_','V','a','l','u','e','T','A','_','R','V','I','_','C','l','o','n','e','T','A','_','R','V','I','_','O','p','e','n','T','A','_','R','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','_','P','e','e','k','T','A','_','R','V','I','_','U','p','d','a','t','e','T','A','_','R','V','I','_','V','a','l','u','e','T','A','_','R','V','O','L','T','A','_','R','V','O','L','_','C','l','o','n','e','T','A','_','R','V','O','L','_','O','p','e','n','T','A','_','R','V','O','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','O','L','_','P','e','e','k','T','A','_','R','V','O','L','_','U','p','d','a','t','e','T','A','_','R','V','O','L','_','V','a','l','u','e','T','A','_','R','e','s','t','o','r','e','C','a','n','d','l','e','D','e','f','a','u','l','t','S','e','t','t','i','n','g','s','T','A','_','S','A','R','T','A','_','S','A','R','E','X','T','T','A','_','S','A','R','E','X','T','_','C','l','o','n','e','T','A','_','S','A','R','E','X','T','_','O','p','e','n','T','A','_','S','A','R','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','E','X','T','_','P','e','e','k','T','A','_','S','A','R','E','X','T','_','U','p','d','a','t','e','T','A','_','S','A','R','E','X','T','_','V','a','l','u','e','T','A','_','S','A','R','_','C','l','o','n','e','T','A','_','S','A','R','_','O','p','e','n','T','A','_','S','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','_','P','e','e','k','T','A','_','S','A','R','_','U','p','d','a','t','e','T','A','_','S','A','R','_','V','a','l','u','e','T','A','_','S','I','T','A','_','S','I','N','T','A','_','S','I','N','H','T','A','_','S','I','N','H','_','C','l','o','n','e','T','A','_','S','I','N','H','_','O','p','e','n','T','A','_','S','I','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','H','_','P','e','e','k','T','A','_','S','I','N','H','_','U','p','d','a','t','e','T','A','_','S','I','N','H','_','V','a','l','u','e','T','A','_','S','I','N','_','C','l','o','n','e','T','A','_','S','I','N','_','O','p','e','n','T','A','_','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','_','P','e','e','k','T','A','_','S','I','N','_','U','p','d','a','t','e','T','A','_','S','I','N','_','V','a','l','u','e','T','A','_','S','I','_','C','l','o','n','e','T','A','_','S','I','_','O','p','e','n','T','A','_','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','_','P','e','e','k','T','A','_','S','I','_','U','p','d','a','t','e','T','A','_','S','I','_','V','a','l','u','e','T','A','_','S','M','A','T','A','_','S','M','A','_','C','l','o','n','e','T','A','_','S','M','A','_','O','p','e','n','T','A','_','S','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','A','_','P','e','e','k','T','A','_','S','M','A','_','U','p','d','a','t','e','T','A','_','S','M','A','_','V','a','l','u','e','T','A','_','S','M','I','T','A','_','S','M','I','_','C','l','o','n','e','T','A','_','S','M','I','_','O','p','e','n','T','A','_','S','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','I','_','P','e','e','k','T','A','_','S','M','I','_','U','p','d','a','t','e','T','A','_','S','M','I','_','V','a','l','u','e','T','A','_','S','Q','R','T','T','A','_','S','Q','R','T','_','C','l','o','n','e','T','A','_','S','Q','R','T','_','O','p','e','n','T','A','_','S','Q','R','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','R','T','_','P','e','e','k','T','A','_','S','Q','R','T','_','U','p','d','a','t','e','T','A','_','S','Q','R','T','_','V','a','l','u','e','T','A','_','S','Q','Z','M','O','M','T','A','_','S','Q','Z','M','O','M','_','C','l','o','n','e','T','A','_','S','Q','Z','M','O','M','_','O','p','e','n','T','A','_','S','Q','Z','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','Z','M','O','M','_','P','e','e','k','T','A','_','S','Q','Z','M','O','M','_','U','p','d','a','t','e','T','A','_','S','Q','Z','M','O','M','_','V','a','l','u','e','T','A','_','S','T','C','T','A','_','S','T','C','_','C','l','o','n','e','T','A','_','S','T','C','_','O','p','e','n','T','A','_','S','T','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','C','_','P','e','e','k','T','A','_','S','T','C','_','U','p','d','a','t','e','T','A','_','S','T','C','_','V','a','l','u','e','T','A','_','S','T','D','D','E','V','T','A','_','S','T','D','D','E','V','_','C','l','o','n','e','T','A','_','S','T','D','D','E','V','_','O','p','e','n','T','A','_','S','T','D','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','D','D','E','V','_','P','e','e','k','T','A','_','S','T','D','D','E','V','_','U','p','d','a','t','e','T','A','_','S','T','D','D','E','V','_','V','a','l','u','e','T','A','_','S','T','O','C','H','T','A','_','S','T','O','C','H','F','T','A','_','S','T','O','C','H','F','_','C','l','o','n','e','T','A','_','S','T','O','C','H','F','_','O','p','e','n','T','A','_','S','T','O','C','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','F','_','P','e','e','k','T','A','_','S','T','O','C','H','F','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','F','_','V','a','l','u','e','T','A','_','S','T','O','C','H','R','S','I','T','A','_','S','T','O','C','H','R','S','I','_','C','l','o','n','e','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','R','S','I','_','P','e','e','k','T','A','_','S','T','O','C','H','R','S','I','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','R','S','I','_','V','a','l','u','e','T','A','_','S','T','O','C','H','_','C','l','o','n','e','T','A','_','S','T','O','C','H','_','O','p','e','n','T','A','_','S','T','O','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','_','P','e','e','k','T','A','_','S','T','O','C','H','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','_','V','a','l','u','e','T','A','_','S','U','B','T','A','_','S','U','B','_','C','l','o','n','e','T','A','_','S','U','B','_','O','p','e','n','T','A','_','S','U','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','B','_','P','e','e','k','T','A','_','S','U','B','_','U','p','d','a','t','e','T','A','_','S','U','B','_','V','a','l','u','e','T','A','_','S','U','M','T','A','_','S','U','M','_','C','l','o','n','e','T','A','_','S','U','M','_','O','p','e','n','T','A','_','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','M','_','P','e','e','k','T','A','_','S','U','M','_','U','p','d','a','t','e','T','A','_','S','U','M','_','V','a','l','u','e','T','A','_','S','U','P','E','R','T','R','E','N','D','T','A','_','S','U','P','E','R','T','R','E','N','D','_','C','l','o','n','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','P','E','R','T','R','E','N','D','_','P','e','e','k','T','A','_','S','U','P','E','R','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','T','A','_','S','W','A','K','_','2','P','H','P','T','A','_','S','W','A','K','_','2','P','H','P','_','C','l','o','n','e','T','A','_','S','W','A','K','_','2','P','H','P','_','O','p','e','n','T','A','_','S','W','A','K','_','2','P','H','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','W','A','K','_','2','P','H','P','_','P','e','e','k','T','A','_','S','W','A','K','_','2','P','H','P','_','U','p','d','a','t','e','T','A','_','S','W','A','K','_','2','P','H','P','_','V','a','l','u','e','T','A','_','S','W','A','K','_','B','P','T','A','_','S','W','A','K','_','B','P','_','C','l','o','n','e','T','A','_','S','W','A','K','_','B','P','_','O','p','e','n','T','A','_','S','W','A','K','_','B','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','W','A','K','_','B','P','_','P','e','e','k','T','A','_','S','W','A','K','_','B','P','_','U','p','d','a','t','e','T','A','_','S','W','A','K','_','B','P','_','V','a','l','u','e','T','A','_','S','W','A','K','_','B','U','T','T','E','R','T','A','_','S','W','A','K','_','B','U','T','T','E','R','_','C','l','o','n','e','T','A','_','S','W','A','K','_','B','U','T','T','E','R','_','O','p','e','n','T','A','_','S','W','A','K','_','B','U','T','T','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','W','A','K','_','B','U','T','T','E','R','_','P','e','e','k','T','A','_','S','W','A','K','_','B','U','T','T','E','R','_','U','p','d','a','t','e','T','A','_','S','W','A','K','_','B','U','T','T','E','R','_','V','a','l','u','e','T','A','_','S','W','A','K','_','G','A','U','S','S','T','A','_','S','W','A','K','_','G','A','U','S','S','_','C','l','o','n','e','T','A','_','S','W','A','K','_','G','A','U','S','S','_','O','p','e','n','T','A','_','S','W','A','K','_','G','A','U','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','W','A','K','_','G','A','U','S','S','_','P','e','e','k','T','A','_','S','W','A','K','_','G','A','U','S','S','_','U','p','d','a','t','e','T','A','_','S','W','A','K','_','G','A','U','S','S','_','V','a','l','u','e','T','A','_','S','W','A','K','_','H','P','T','A','_','S','W','A','K','_','H','P','_','C','l','o','n','e','T','A','_','S','W','A','K','_','H','P','_','O','p','e','n','T','A','_','S','W','A','K','_','H','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','W','A','K','_','H','P','_','P','e','e','k','T','A','_','S','W','A','K','_','H','P','_','U','p','d','a','t','e','T','A','_','S','W','A','K','_','H','P','_','V','a','l','u','e','T','A','_','S','e','t','C','a','n','d','l','e','S','e','t','t','i','n','g','s','T','A','_','S','e','t','C','o','m','p','a','t','i','b','i','l','i','t','y','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','I','n','t','e','g','e','r','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','R','e','a','l','T','A','_','S','e','t','U','n','s','t','a','b','l','e','P','e','r','i','o','d','T','A','_','S','h','u','t','d','o','w','n','T','A','_','T','3','T','A','_','T','3','_','C','l','o','n','e','T','A','_','T','3','_','O','p','e','n','T','A','_','T','3','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','3','_','P','e','e','k','T','A','_','T','3','_','U','p','d','a','t','e','T','A','_','T','3','_','V','a','l','u','e','T','A','_','T','A','N','T','A','_','T','A','N','H','T','A','_','T','A','N','H','_','C','l','o','n','e','T','A','_','T','A','N','H','_','O','p','e','n','T','A','_','T','A','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','H','_','P','e','e','k','T','A','_','T','A','N','H','_','U','p','d','a','t','e','T','A','_','T','A','N','H','_','V','a','l','u','e','T','A','_','T','A','N','_','C','l','o','n','e','T','A','_','T','A','N','_','O','p','e','n','T','A','_','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','_','P','e','e','k','T','A','_','T','A','N','_','U','p','d','a','t','e','T','A','_','T','A','N','_','V','a','l','u','e','T','A','_','T','E','M','A','T','A','_','T','E','M','A','_','C','l','o','n','e','T','A','_','T','E','M','A','_','O','p','e','n','T','A','_','T','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','E','M','A','_','P','e','e','k','T','A','_','T','E','M','A','_','U','p','d','a','t','e','T','A','_','T','E','M','A','_','V','a','l','u','e','T','A','_','T','R','A','N','G','E','T','A','_','T','R','A','N','G','E','_','C','l','o','n','e','T','A','_','T','R','A','N','G','E','_','O','p','e','n','T','A','_','T','R','A','N','G','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','A','N','G','E','_','P','e','e','k','T','A','_','T','R','A','N','G','E','_','U','p','d','a','t','e','T','A','_','T','R','A','N','G','E','_','V','a','l','u','e','T','A','_','T','R','I','M','A','T','A','_','T','R','I','M','A','_','C','l','o','n','e','T','A','_','T','R','I','M','A','_','O','p','e','n','T','A','_','T','R','I','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','M','A','_','P','e','e','k','T','A','_','T','R','I','M','A','_','U','p','d','a','t','e','T','A','_','T','R','I','M','A','_','V','a','l','u','e','T','A','_','T','R','I','X','T','A','_','T','R','I','X','_','C','l','o','n','e','T','A','_','T','R','I','X','_','O','p','e','n','T','A','_','T','R','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','X','_','P','e','e','k','T','A','_','T','R','I','X','_','U','p','d','a','t','e','T','A','_','T','R','I','X','_','V','a','l','u','e','T','A','_','T','S','F','T','A','_','T','S','F','_','C','l','o','n','e','T','A','_','T','S','F','_','O','p','e','n','T','A','_','T','S','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','F','_','P','e','e','k','T','A','_','T','S','F','_','U','p','d','a','t','e','T','A','_','T','S','F','_','V','a','l','u','e','T','A','_','T','S','I','T','A','_','T','S','I','_','C','l','o','n','e','T','A','_','T','S','I','_','O','p','e','n','T','A','_','T','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','I','_','P','e','e','k','T','A','_','T','S','I','_','U','p','d','a','t','e','T','A','_','T','S','I','_','V','a','l','u','e','T','A','_','T','Y','P','P','R','I','C','E','T','A','_','T','Y','P','P','R','I','C','E','_','C','l','o','n','e','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','Y','P','P','R','I','C','E','_','P','e','e','k','T','A','_','T','Y','P','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','T','Y','P','P','R','I','C','E','_','V','a','l','u','e','T','A','_','U','L','T','O','S','C','T','A','_','U','L','T','O','S','C','_','C','l','o','n','e','T','A','_','U','L','T','O','S','C','_','O','p','e','n','T','A','_','U','L','T','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','U','L','T','O','S','C','_','P','e','e','k','T','A','_','U','L','T','O','S','C','_','U','p','d','a','t','e','T','A','_','U','L','T','O','S','C','_','V','a','l','u','e','T','A','_','V','A','R','T','A','_','V','A','R','_','C','l','o','n','e','T','A','_','V','A','R','_','O','p','e','n','T','A','_','V','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','A','R','_','P','e','e','k','T','A','_','V','A','R','_','U','p','d','a','t','e','T','A','_','V','A','R','_','V','a','l','u','e','T','A','_','V','H','F','T','A','_','V','H','F','_','C','l','o','n','e','T','A','_','V','H','F','_','O','p','e','n','T','A','_','V','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','H','F','_','P','e','e','k','T','A','_','V','H','F','_','U','p','d','a','t','e','T','A','_','V','H','F','_','V','a','l','u','e','T','A','_','V','I','D','Y','A','T','A','_','V','I','D','Y','A','_','C','l','o','n','e','T','A','_','V','I','D','Y','A','_','O','p','e','n','T','A','_','V','I','D','Y','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','I','D','Y','A','_','P','e','e','k','T','A','_','V','I','D','Y','A','_','U','p','d','a','t','e','T','A','_','V','I','D','Y','A','_','V','a','l','u','e','T','A','_','V','O','R','T','E','X','T','A','_','V','O','R','T','E','X','_','C','l','o','n','e','T','A','_','V','O','R','T','E','X','_','O','p','e','n','T','A','_','V','O','R','T','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','O','R','T','E','X','_','P','e','e','k','T','A','_','V','O','R','T','E','X','_','U','p','d','a','t','e','T','A','_','V','O','R','T','E','X','_','V','a','l','u','e','T','A','_','V','W','A','P','T','A','_','V','W','A','P','_','C','l','o','n','e','T','A','_','V','W','A','P','_','O','p','e','n','T','A','_','V','W','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','A','P','_','P','e','e','k','T','A','_','V','W','A','P','_','U','p','d','a','t','e','T','A','_','V','W','A','P','_','V','a','l','u','e','T','A','_','V','W','M','A','T','A','_','V','W','M','A','_','C','l','o','n','e','T','A','_','V','W','M','A','_','O','p','e','n','T','A','_','V','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','M','A','_','P','e','e','k','T','A','_','V','W','M','A','_','U','p','d','a','t','e','T','A','_','V','W','M','A','_','V','a','l','u','e','T','A','_','W','A','D','T','A','_','W','A','D','_','C','l','o','n','e','T','A','_','W','A','D','_','O','p','e','n','T','A','_','W','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','D','_','P','e','e','k','T','A','_','W','A','D','_','U','p','d','a','t','e','T','A','_','W','A','D','_','V','a','l','u','e','T','A','_','W','A','V','E','T','R','E','N','D','T','A','_','W','A','V','E','T','R','E','N','D','_','C','l','o','n','e','T','A','_','W','A','V','E','T','R','E','N','D','_','O','p','e','n','T','A','_','W','A','V','E','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','V','E','T','R','E','N','D','_','P','e','e','k','T','A','_','W','A','V','E','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','W','A','V','E','T','R','E','N','D','_','V','a','l','u','e','T','A','_','W','C','L','P','R','I','C','E','T','A','_','W','C','L','P','R','I','C','E','_','C','l','o','n','e','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','C','L','P','R','I','C','E','_','P','e','e','k','T','A','_','W','C','L','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','W','C','L','P','R','I','C','E','_','V','a','l','u','e','T','A','_','W','I','L','L','R','T','A','_','W','I','L','L','R','_','C','l','o','n','e','T','A','_','W','I','L','L','R','_','O','p','e','n','T','A','_','W','I','L','L','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','I','L','L','R','_','P','e','e','k','T','A','_','W','I','L','L','R','_','U','p','d','a','t','e','T','A','_','W','I','L','L','R','_','V','a','l','u','e','T','A','_','W','M','A','T','A','_','W','M','A','_','C','l','o','n','e','T','A','_','W','M','A','_','O','p','e','n','T','A','_','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','M','A','_','P','e','e','k','T','A','_','W','M','A','_','U','p','d','a','t','e','T','A','_','W','M','A','_','V','a','l','u','e','T','A','_','Z','I','G','Z','A','G','T','A','_','Z','I','G','Z','A','G','_','C','l','o','n','e','T','A','_','Z','I','G','Z','A','G','_','O','p','e','n','T','A','_','Z','I','G','Z','A','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','I','G','Z','A','G','_','P','e','e','k','T','A','_','Z','I','G','Z','A','G','_','U','p','d','a','t','e','T','A','_','Z','I','G','Z','A','G','_','V','a','l','u','e','T','A','_','Z','L','E','M','A','T','A','_','Z','L','E','M','A','_','C','l','o','n','e','T','A','_','Z','L','E','M','A','_','O','p','e','n','T','A','_','Z','L','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','L','E','M','A','_','P','e','e','k','T','A','_','Z','L','E','M','A','_','U','p','d','a','t','e','T','A','_','Z','L','E','M','A','_','V','a','l','u','e','T','E','M','A','T','E','M','A','_','S','t','r','e','a','m','T','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','A','N','G','E','T','R','A','N','G','E','_','S','t','r','e','a','m','T','R','A','N','G','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','M','A','T','R','I','M','A','_','S','t','r','e','a','m','T','R','I','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','X','T','R','I','X','_','S','t','r','e','a','m','T','R','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','F','T','S','F','_','S','t','r','e','a','m','T','S','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','I','T','S','I','_','S','t','r','e','a','m','T','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','Y','P','P','R','I','C','E','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','L','T','O','S','C','U','L','T','O','S','C','_','S','t','r','e','a','m','U','L','T','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','N','S','T','A','B','L','E','_','A','U','T','O','_','P','R','E','C','_','4','U','N','S','T','A','B','L','E','_','A','U','T','O','_','P','R','E','C','_','8','V','A','R','V','A','R','_','S','t','r','e','a','m','V','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','H','F','V','H','F','_','S','t','r','e','a','m','V','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','I','D','Y','A','V','I','D','Y','A','_','S','t','r','e','a','m','V','I','D','Y','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','V','O','R','T','E','X','_','S','t','r','e','a','m','V','O','R','T','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','A','P','V','W','A','P','_','S','t','r','e','a','m','V','W','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','M','A','V','W','M','A','_','S','t','r','e','a','m','V','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','D','W','A','D','_','S','t','r','e','a','m','W','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','V','E','T','R','E','N','D','W','A','V','E','T','R','E','N','D','_','S','t','r','e','a','m','W','A','V','E','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','C','L','P','R','I','C','E','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','I','L','L','R','W','I','L','L','R','_','S','t','r','e','a','m','W','I','L','L','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','M','A','W','M','A','_','S','t','r','e','a','m','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','I','G','Z','A','G','Z','I','G','Z','A','G','_','S','t','r','e','a','m','Z','I','G','Z','A','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','L','E','M','A','Z','L','E','M','A','_','S','t','r','e','a','m','Z','L','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','_','A','R','R','A','Y','_','T','Y','P','E','S','_','F','u','n','c','t','i','o','n','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','F','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','d','a','t','a','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','s','t','r','_','I','N','P','U','T','_','A','R','R','A','Y','S','_','T','Y','P','E','S','_','I','N','P','U','T','_','P','R','I','C','E','_','S','E','R','I','E','S','_','D','E','F','A','U','L','T','S','_','P','A','N','D','A','S','_','D','A','T','A','F','R','A','M','E','_','P','A','N','D','A','S','_','S','E','R','I','E','S','_','P','O','L','A','R','S','_','D','A','T','A','F','R','A','M','E','_','P','O','L','A','R','S','_','S','E','R','I','E','S','_','T','A','_','R','e','a','d','L','e','a','s','e','_','T','A','_','R','e','a','d','L','e','a','s','e','.','_','_','e','n','t','e','r','_','_','_','T','A','_','R','e','a','d','L','e','a','s','e','.','_','_','e','x','i','t','_','_','_','T','A','_','R','e','a','d','L','e','a','s','e','.','_','_','r','e','d','u','c','e','_','c','y','t','h','o','n','_','_','_','T','A','_','R','e','a','d','L','e','a','s','e','.','_','_','s','e','t','s','t','a','t','e','_','c','y','t','h','o','n','_','_','_','T','A','_','W','r','i','t','e','L','e','a','s','e','_','T','A','_','W','r','i','t','e','L','e','a','s','e','.','_','_','e','n','t','e','r','_','_','_','T','A','_','W','r','i','t','e','L','e','a','s','e','.','_','_','e','x','i','t','_','_','_','T','A','_','W','r','i','t','e','L','e','a','s','e','.','_','_','r','e','d','u','c','e','_','c','y','t','h','o','n','_','_','_','T','A','_','W','r','i','t','e','L','e','a','s','e','.','_','_','s','e','t','s','t','a','t','e','_','c','y','t','h','o','n','_','_','_','_','P','y','x','_','P','y','D','i','c','t','_','N','e','x','t','R','e','f','_','_','T','A','_','F','U','N','C','T','I','O','N','_','N','A','M','E','S','_','_','_','_','a','l','l','_','_','_','_','a','n','n','o','t','a','t','e','_','_','_','_','c','a','l','l','_','_','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','c','l','a','s','s','_','g','e','t','i','t','e','m','_','_','_','_','c','o','p','y','_','_','_','_','d','e','e','p','c','o','p','y','_','_','_','_','d','i','c','t','_','_','_','_','d','o','c','_','_','_','_','e','n','t','e','r','_','_','_','_','e','x','i','t','_','_','_','_','f','u','n','c','_','_','_','_','g','e','t','_','f','l','a','g','s','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','g','e','t','i','t','e','m','_','_','_','_','g','e','t','s','t','a','t','e','_','_','_','_','i','n','i','t','_','_','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','_','l','o','c','a','l','_','_','m','a','i','n','_','_','_','_','m','e','t','a','c','l','a','s','s','_','_','_','_','m','o','d','u','l','e','_','_','_','_','m','r','o','_','e','n','t','r','i','e','s','_','_','_','_','n','a','m','e','_','_','_','_','n','e','w','_','_','_','_','p','r','e','p','a','r','e','_','_','_','_','p','y','x','_','c','h','e','c','k','s','u','m','_','_','p','y','x','_','r','e','s','u','l','t','_','_','p','y','x','_','s','t','a','t','e','_','_','p','y','x','_','t','y','p','e','_','_','p','y','x','_','u','n','p','i','c','k','l','e','_','_','T','A','_','R','e','a','d','L','e','a','s','e','_','_','p','y','x','_','u','n','p','i','c','k','l','e','_','_','T','A','_','W','r','i','t','e','L','e','a','s','e','_','_','p','y','x','_','v','t','a','b','l','e','_','_','_','_','q','u','a','l','n','a','m','e','_','_','_','_','r','e','d','u','c','e','_','_','_','_','r','e','d','u','c','e','_','c','y','t','h','o','n','_','_','_','_','r','e','d','u','c','e','_','e','x','_','_','_','_','r','e','p','r','_','_','_','_','s','e','t','_','n','a','m','e','_','_','_','_','s','e','t','s','t','a','t','e','_','_','_','_','s','e','t','s','t','a','t','e','_','c','y','t','h','o','n','_','_','_','_','s','t','r','_','_','_','_','t','a','_','v','e','r','s','i','o','n','_','_','_','_','t','e','s','t','_','_','_','_','u','n','i','c','o','d','e','_','_','_','d','i','c','t','_','g','e','t','_','d','e','f','a','u','l','t','s','_','a','n','d','_','d','o','c','s','_','i','s','_','c','o','r','o','u','t','i','n','e','_','l','o','o','k','u','p','_','t','a','_','c','h','e','c','k','_','s','u','c','c','e','s','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','r','e','t','i','r','e','d','_','t','a','_','g','e','t','F','u','n','c','I','n','f','o','_','t','a','_','g','e','t','F','u','n','c','T','a','b','l','e','_','t','a','_','g','e','t','G','r','o','u','p','T','a','b','l','e','_','t','a','_','g','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','g','e','t','_','r','u','n','t','i','m','e','_','i','n','f','o','_','t','a','_','g','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','i','n','i','t','i','a','l','i','z','e','_','t','a','_','r','e','s','t','o','r','e','_','c','a','n','d','l','e','_','d','e','f','a','u','l','t','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','a','n','d','l','e','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','s','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','s','h','u','t','d','o','w','n','a','_','c','l','o','s','e','a','_','h','i','g','h','a','_','l','o','w','a','_','o','p','e','n','a','_','p','e','r','i','o','d','s','a','_','r','e','a','l','a','_','r','e','a','l','0','a','_','r','e','a','l','1','a','_','v','o','l','u','m','e','a','c','c','e','l','e','r','a','t','i','o','n','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','s','h','o','r','t','a','c','q','u','i','r','e','d','a','n','n','u','a','l','i','z','a','t','i','o','n','a','p','p','e','n','d','a','r','g','a','r','g','s','a','r','r','a','y','s','a','s','c','i','i','a','s','t','y','p','e','a','s','y','n','c','i','o','.','c','o','r','o','u','t','i','n','e','s','a','t','_','e','x','i','t','a','t','r','p','e','r','i','o','d','a','v','e','r','a','g','e','p','e','r','i','o','d','a','v','g','p','e','r','i','o','d','b','b','b','p','e','r','i','o','d','b','e','g','i','d','x','b','i','t','b','y','t','e','s','2','s','t','r','c','_','k','e','y','c','_','p','e','r','i','o','d','c','_','v','a','l','u','e','c','a','n','d','l','e','s','t','i','c','k','c','h','a','n','n','e','l','p','e','r','i','o','d','c','l','i','n','e','_','i','n','_','t','r','a','c','e','b','a','c','k','c','l','o','n','e','c','l','o','s','e','c','m','o','p','e','r','i','o','d','c','o','l','l','e','c','t','i','o','n','s','c','o','l','u','m','n','_','s','t','a','c','k','c','o','l','u','m','n','s','c','o','p','y','c','y','c','l','e','p','e','r','i','o','d','d','d','e','c','o','d','e','d','e','f','a','u','l','t','_','v','a','l','u','e','d','e','f','a','u','l','t','s','d','e','l','t','a','d','e','s','c','r','i','p','t','i','o','n','d','i','s','p','l','a','y','_','n','a','m','e','d','o','c','s','d','o','c','u','m','e','n','t','a','t','i','o','n','e','m','a','p','e','r','i','o','d','e','m','p','t','y','e','n','c','o','d','e','e','n','d','i','d','x','e','n','d','s','w','i','t','h','e','n','u','m','e','r','a','t','e','f','a','c','t','o','r','f','a','c','t','o','r','n','a','r','r','o','w','f','a','c','t','o','r','n','o','r','m','a','l','f','a','c','t','o','r','w','i','d','e','f','a','s','t','d','_','m','a','t','y','p','e','f','a','s','t','d','_','p','e','r','i','o','d','f','a','s','t','k','_','p','e','r','i','o','d','f','a','s','t','l','i','m','i','t','f','a','s','t','m','a','t','y','p','e','f','a','s','t','p','e','r','i','o','d','f','i','r','s','t','p','e','r','i','o','d','f','l','a','g','f','l','a','g','s','f','l','a','g','s','_','l','o','o','k','u','p','_','d','i','c','t','f','u','n','c','_','a','r','g','s','f','u','n','c','_','i','n','f','o','f','u','n','c','_','l','i','n','e','f','u','n','c','_','o','b','j','e','c','t','f','u','n','c','t','i','o','n','_','f','l','a','g','s','f','u','n','c','t','i','o','n','_','n','a','m','e','f','u','n','c','t','i','o','n','s','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','g','e','t','_','p','a','r','a','m','e','t','e','r','s','g','r','o','u','p','g','r','o','u','p','s','h','a','n','d','l','e','h','e','l','p','h','i','g','h','h','i','s','t','o','r','y','l','e','n','h','o','l','d','e','r','i','i','d','i','d','x','i','m','p','o','r','t','_','e','r','r','o','r','i','n','i','n','d','e','x','i','n','f','o','i','n','p','u','t','_','a','r','r','a','y','s','i','n','p','u','t','_','n','a','m','e','i','n','p','u','t','_','n','a','m','e','s','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','i','n','t','e','g','e','r','i','s','_','e','m','p','t','y','i','t','e','m','s','k','k','c','p','e','r','i','o','d','k','e','y','k','e','y','s','k','i','j','u','n','p','e','r','i','o','d','k','w','a','r','g','s','l','e','f','t','b','a','r','s','l','e','n','g','t','h','l','i','m','i','t','m','o','v','e','l','o','c','a','l','l','o','o','k','b','a','c','k','l','o','w','l','o','w','e','r','m','a','1','p','e','r','i','o','d','m','a','2','p','e','r','i','o','d','m','a','3','p','e','r','i','o','d','m','a','4','p','e','r','i','o','d','m','a','t','y','p','e','m','a','x','i','m','u','m','m','a','x','p','e','r','i','o','d','m','e','m','o','m','i','n','p','e','r','i','o','d','m','i','n','t','r','e','n','d','l','e','n','g','t','h','m','i','s','s','i','n','g','m','i','s','s','i','n','g','_','k','e','y','s','m','o','d','u','l','e','m','s','g','m','u','l','t','i','p','l','i','e','r','n','n','a','m','e','n','a','m','e','d','t','u','p','l','e','n','a','n','n','b','d','e','v','n','b','d','e','v','d','n','n','b','d','e','v','u','p','n','o','_','e','x','i','s','t','i','n','g','_','i','n','p','u','t','_','a','r','r','a','y','s','n','u','m','_','i','n','p','u','t','s','n','u','m','_','o','p','t','_','i','n','p','u','t','s','n','u','m','_','o','u','t','p','u','t','s','n','u','m','p','y','o','b','j','e','c','t','o','f','f','s','e','t','o','f','f','s','e','t','o','n','r','e','v','e','r','s','e','o','p','e','n','o','p','e','n','I','n','t','e','r','e','s','t','o','p','e','n','_','a','n','d','_','f','i','l','l','o','p','t','I','n','o','p','t','_','i','n','p','u','t','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','s','o','p','t','_','i','n','p','u','t','s','o','r','d','e','r','e','d','d','i','c','t','o','u','t','o','u','t','a','r','o','o','n','d','o','w','n','o','u','t','a','r','o','o','n','u','p','o','u','t','b','e','a','r','p','o','w','e','r','o','u','t','b','e','g','i','d','x','o','u','t','b','u','l','l','p','o','w','e','r','o','u','t','d','o','u','t','f','a','m','a','o','u','t','f','a','s','t','d','o','u','t','f','a','s','t','k','o','u','t','f','i','s','h','e','r','o','u','t','h','a','c','l','o','s','e','o','u','t','h','a','h','i','g','h','o','u','t','h','a','l','o','w','o','u','t','h','a','o','p','e','n','o','u','t','h','i','g','h','s','t','o','p','o','u','t','i','n','p','h','a','s','e','o','u','t','i','n','t','e','g','e','r','o','u','t','i','n','t','e','g','e','r','_','d','a','t','a','o','u','t','j','o','u','t','k','o','u','t','k','i','j','u','n','s','e','n','o','u','t','k','s','t','o','u','t','k','s','t','s','i','g','n','a','l','o','u','t','k','v','o','o','u','t','k','v','o','s','i','g','n','a','l','o','u','t','l','e','a','d','s','i','n','e','o','u','t','l','o','w','e','r','b','a','n','d','o','u','t','l','o','w','s','t','o','p','o','u','t','m','a','c','d','o','u','t','m','a','c','d','h','i','s','t','o','u','t','m','a','c','d','s','i','g','n','a','l','o','u','t','m','a','m','a','o','u','t','m','a','x','o','u','t','m','a','x','i','d','x','o','u','t','m','a','x','i','d','x','_','d','a','t','a','o','u','t','m','i','d','d','l','e','b','a','n','d','o','u','t','m','i','n','o','u','t','m','i','n','i','d','x','o','u','t','m','i','n','i','d','x','_','d','a','t','a','o','u','t','m','i','n','u','s','v','i','o','u','t','m','o','m','e','n','t','u','m','o','u','t','n','b','e','l','e','m','e','n','t','o','u','t','p','i','v','o','t','i','d','x','o','u','t','p','i','v','o','t','i','d','x','_','d','a','t','a','o','u','t','p','l','u','s','v','i','o','u','t','p','u','t','o','u','t','p','u','t','_','f','l','a','g','s','o','u','t','p','u','t','_','n','a','m','e','o','u','t','p','u','t','_','n','a','m','e','s','o','u','t','p','u','t','s','o','u','t','p','u','t','s','_','v','a','l','i','d','o','u','t','q','u','a','d','r','a','t','u','r','e','o','u','t','r','e','a','l','o','u','t','r','e','a','l','l','o','w','e','r','b','a','n','d','o','u','t','r','e','a','l','m','i','d','d','l','e','b','a','n','d','o','u','t','r','e','a','l','u','p','p','e','r','b','a','n','d','o','u','t','s','e','n','k','o','u','s','p','a','n','a','o','u','t','s','e','n','k','o','u','s','p','a','n','b','o','u','t','s','i','n','e','o','u','t','s','l','o','w','d','o','u','t','s','l','o','w','k','o','u','t','s','m','i','o','u','t','s','m','i','s','i','g','n','a','l','o','u','t','s','q','u','e','e','z','e','o','u','t','s','u','p','e','r','t','r','e','n','d','o','u','t','s','w','i','n','g','h','i','g','h','o','u','t','s','w','i','n','g','l','o','w','o','u','t','t','e','n','k','a','n','s','e','n','o','u','t','t','r','e','n','d','o','u','t','t','r','i','g','g','e','r','o','u','t','u','p','p','e','r','b','a','n','d','o','u','t','w','t','1','o','u','t','w','t','2','o','u','t','z','i','g','z','a','g','p','a','n','d','a','s','p','a','r','a','m','p','a','r','a','m','_','n','a','m','e','p','a','r','a','m','e','t','e','r','s','p','a','r','a','m','s','p','e','n','e','t','r','a','t','i','o','n','p','e','r','c','e','n','t','i','l','e','p','e','r','i','o','d','p','e','r','i','o','d','s','p','o','l','a','r','s','p','o','p','p','r','i','c','e','p','r','i','c','e','0','p','r','i','c','e','1','p','r','i','c','e','_','s','e','r','i','e','s','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','_','v','a','l','u','e','s','p','r','i','c','e','s','p','r','o','p','e','r','t','y','r','a','n','g','e','t','y','p','e','r','a','n','k','p','e','r','i','o','d','r','e','a','l','r','e','a','l','0','r','e','a','l','1','r','e','p','l','a','c','e','r','e','s','u','l','t','s','r','e','t','r','e','t','C','o','d','e','r','e','t','_','c','o','d','e','r','i','g','h','t','b','a','r','s','r','o','c','1','p','e','r','i','o','d','r','o','c','2','p','e','r','i','o','d','r','o','c','3','p','e','r','i','o','d','r','o','c','4','p','e','r','i','o','d','r','o','c','m','a','t','y','p','e','r','o','c','p','e','r','i','o','d','r','u','n','s','s','c','h','e','m','a','s','e','c','o','n','d','p','e','r','i','o','d','s','e','l','f','s','e','n','k','o','u','b','p','e','r','i','o','d','s','e','n','s','i','t','i','v','i','t','y','s','e','r','i','e','s','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','s','e','t','_','p','a','r','a','m','e','t','e','r','s','s','e','t','d','e','f','a','u','l','t','s','e','t','t','i','n','g','t','y','p','e','s','i','g','m','a','s','i','g','n','a','l','m','a','t','y','p','e','s','i','g','n','a','l','p','e','r','i','o','d','s','k','i','p','_','f','i','r','s','t','s','l','o','w','d','_','m','a','t','y','p','e','s','l','o','w','d','_','p','e','r','i','o','d','s','l','o','w','k','_','m','a','t','y','p','e','s','l','o','w','k','_','p','e','r','i','o','d','s','l','o','w','l','i','m','i','t','s','l','o','w','m','a','t','y','p','e','s','l','o','w','p','e','r','i','o','d','s','m','a','1','p','e','r','i','o','d','s','m','a','2','p','e','r','i','o','d','s','m','a','3','p','e','r','i','o','d','s','m','a','4','p','e','r','i','o','d','s','t','a','c','k','l','e','v','e','l','s','t','a','r','t','v','a','l','u','e','s','t','a','t','e','s','t','a','t','i','c','m','e','t','h','o','d','s','t','d','d','e','v','p','e','r','i','o','d','s','t','o','p','p','e','r','i','o','d','s','t','r','2','b','y','t','e','s','s','t','r','e','a','k','p','e','r','i','o','d','s','t','r','e','a','m','s','y','s','t','a','b','l','e','t','a','l','i','b','.','_','t','a','_','l','i','b','t','e','n','k','a','n','p','e','r','i','o','d','t','h','r','e','a','d','i','n','g','t','i','m','e','S','t','a','m','p','t','i','m','e','p','e','r','i','o','d','t','i','m','e','p','e','r','i','o','d','1','t','i','m','e','p','e','r','i','o','d','2','t','i','m','e','p','e','r','i','o','d','3','t','o','_','n','u','m','p','y','t','y','p','e','t','y','p','e','_','u','n','s','t','_','i','d','u','p','d','a','t','e','u','p','d','a','t','e','_','i','n','f','o','u','p','d','a','t','e','s','u','p','p','e','r','u','s','e','_','s','e','t','s','t','a','t','e','v','a','l','u','e','v','a','l','u','e','s','v','e','r','s','i','o','n','v','f','a','c','t','o','r','v','o','l','u','m','e','v','o','l','u','m','e','d','i','v','i','s','o','r','w','a','r','n','w','a','r','n','i','n','g','s','w','m','a','p','e','r','i','o','d','\200','\001','\330','\004','\005','\340','\t','\027','\220','q','\330','\010','\013','\210','4','\210','q','\330','\021','\022','\330','\020','\036','\230','n','\250','A','\330','\014','\035','\230','Q','\320','\036','/','\250','q','\330','\014','\036','\230','a','\200','\001','\330','\004','\007','\200','u','\210','C','\210','q','\330','\010','\020','\220','\005','\220','Q','\330','\014','\r','\330','\020','\026','\320','\026','+','\250','1','\250','A','\330','\014',' ','\240','\013','\250','1','\330','\010','\017','\210','q','\330','\004','\013','\320','\013','\034','\230','A','\230','Q','\200','\001','\330','\004','\007','\200','y','\220','\003','\220','1','\330','\010','\017','\210','q','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\340','\010','\026','\220','a','\330','\004','\014','\320','\014','#','\240','9','\250','C','\250','x','\260','q','\330','\004','\n','\210','%','\210','q','\220','\001','\330','\010','\027','\220','z','\240','\021','\200','\001','\330','\004','+','\250','1','\250','F','\260','!','\200','\001','\330','\004',',','\250','A','\250','V','\260','1','\200','\001','\340','\004','\025','\220','Q','\330','\004','\027','\220','s','\230','\047','\240','\021','\240','!','\330','\004','\031','\230','\021','\330','\t','\026','\220','a','\330','\r','\016','\330','\014','\032','\320','\032',',','\250','A','\250','S','\260','\001','\260','\021','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\340','\004','\027','\220','q','\330','\t','\027','\220','q','\330','\r','\016','\330','\014','\032','\320','\032','.','\250','a','\250','q','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\200','\001','\340','\004','\037','\230','q','\320',' ','0','\260','\013','\270',';','\300','k','\320','Q','R','\330','\004','\023','\220','=','\240','\010','\250','\001','\250','\021','\330','\004','\007','\200','|','\220','7','\230','!','\330','\010','/','\250','q','\320','0','@','\300','\016','\310','a','\330','\004','\013','\210','1','\200','\001','\340','\004','\037','\230','q','\320',' ','0','\260','\013','\270',';','\300','k','\320','Q','R','\330','\004','\023','\220','>','\240','\030','\250','\021','\250','!','\330','\004','\007','\200','|','\220','7','\230','!','\330','\010','0','\260','\001','\320','1','B','\300','.','\320','P','Q','\330','\004','\013','\210','1','\200','\001','\340','\t','\026','\220','a','\330','\r','\016','\330','\014','\027','\320','\027','+','\250','1','\330','\004','\013','\210','1','\200','\001','\340','\t','\027','\220','q','\330','\r','\016','\330','\014','\032','\320','\032','/','\250','q','\260','\r','\270','[','\310','\013','\320','S','T','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\340','\t','\027','\220','q','\330','\r','\016','\330','\014','\032','\320','\032',':','\270','!','\270','1','\330','\004','\025','\220','Q','\320','\026','9','\270','\021','\200','\001','\340','#','$','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','[','\320','[','g','\320','g','h','\320','h','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','M','\300','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','M','\300','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','d','\320','d','e','\320','e','q','\320','q','r','\360','\000','\000','s','\001','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','$','%','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','j','\320','j','k','\320','k','w','\320','w','x','\360','\000','\000','y','\001','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','b','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','S','\320','S','j','\320','j','k','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','*','\310','J','\320','V','W','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','e','\320','e','o','\320','o','x','\320','x','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','-','\310','q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','h','\320','h','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','-','\310','q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','h','\320','h','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','l','\360','\000','\000','m','\001','E','\002','\360','\000','\000','E','\002',']','\002','\360','\000','\000',']','\002','u','\002','\360','\000','\000','u','\002','M','\003','\360','\000','\000','M','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360',':','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','-','\310','}','\320','\\','i','\320','i','v','\360','\000','\000','w','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\010','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\010','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','h','\320','h','u','\360','\000','\000','v','\001','C','\002','\360','\000','\000','C','\002','P','\002','\360','\000','\000','P','\002',']','\002','\360','\000','\000',']','\002','j','\002','\360','\000','\000','j','\002','w','\002','\360','\000','\000','w','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','F','\004','\360','\000','\000','F','\004','Q','\004','\360','\000','\000','Q','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','d','\004','\360','\000','\000','d','\004','e','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','$','=','\270','Q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','^','\300','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','n','\320','\\','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','%','&','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','}','\320','\\',']','\320',']','i','\320','i','j','\320','j','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','T','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','P','\320','P','Q','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','m','\300','8','\310','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','}','\320','\\','d','\320','d','m','\320','m','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','e','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','U','\320','U','V','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','m','\300','=','\320','P','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\010','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\010','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','}','\320','\\','i','\320','i','x','\320','x','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','R','\003','\360','\000','\000','R','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','A','\004','\360','\000','\000','A','\004','B','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','%','=','\320','=','V','\320','V','p','\320','p','q','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','m','\300','>','\320','Q','`','\320','`','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','}','\320','\\','j','\320','j','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','m','\300','?','\320','R','S','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','}','\320','\\','k','\320','k','x','\320','x','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','>','\270','a','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','l','\300','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','|','\320','[','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','C','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','&','\047','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P',']','\320',']','^','\320','^','j','\320','j','k','\320','k','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','U','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\270','a','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','}','\300','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P',']','\320',']','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\320','>','V','\320','V','W','\360','*','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\026','\260','q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','-','\310','q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','&','\300','\006','\300','a','\300','y','\320','P',']','\320',']','j','\320','j','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','k','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\026','\260','q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','6','\300','\026','\300','q','\310','\t','\320','Q','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\001','\330','\010','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\010','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','x','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','\047','?','\270','q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\r','\300','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','^','\320','^','f','\320','f','g','\320','g','s','\320','s','t','\360','\000','\000','u','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','^','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','?','\320','?','V','\320','V','m','\320','m','n','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\r','\300','Z','\310','z','\320','Y','Z','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\010','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','^','\320','^','h','\320','h','r','\320','r','{','\320','{','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','t','\003','\360','\000','\000','t','\003','\177','\003','\360','\000','\000','\177','\003','O','\004','\360','\000','\000','O','\004','U','\004','\360','\000','\000','U','\004','V','\004','\360','\000','\000','V','\004','W','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','\047','?','\320','?','W','\320','W','o','\360','\000','\000','p','\001','H','\002','\360','\000','\000','H','\002','_','\002','\360','\000','\000','_','\002','v','\002','\360','\000','\000','v','\002','M','\003','\360','\000','\000','M','\003','d','\003','\360','\000','\000','d','\003','~','\003','\360','\000','\000','~','\003','P','\004','\360','\000','\000','P','\004','Q','\004','\360','>','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\r','\300',']','\320','R','_','\320','_','l','\320','l','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\010','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\010','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','^','\320','^','k','\320','k','x','\360','\000','\000','y','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','E','\003','\360','\000','\000','E','\003','Q','\003','\360','\000','\000','Q','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','}','\003','\360','\000','\000','}','\003','H','\004','\360','\000','\000','H','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','U','\004','\360','\000','\000','U','\004','`','\004','\360','\000','\000','`','\004','k','\004','\360','\000','\000','k','\004','w','\004','\360','\000','\000','w','\004','}','\004','\360','\000','\000','}','\004','~','\004','\360','\000','\000','~','\004','\177','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','(',')','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','W','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(',')','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\010','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\010','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','a','\320','a','b','\320','b','n','\320','n','o','\320','o','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','(','?','\320','?','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\034','\300',']','\320','R','S','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','^','\320','^','k','\320','k','x','\320','x','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\300','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\035','\300','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\320','@','S','\320','S','k','\320','k','~','\360','\000','\000','\177','\001','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','8','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\035','\300','m','\320','S','`','\320','`','m','\320','m','|','\320','|','}','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\010','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\010','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','l','\320','l','y','\360','\000','\000','z','\001','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','E','\004','\360','\000','\000','E','\004','P','\004','\360','\000','\000','P','\004','[','\004','\360','\000','\000','[','\004','f','\004','\360','\000','\000','f','\004','l','\004','\360','\000','\000','l','\004','m','\004','\360','\000','\000','m','\004','n','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','!','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','`','\320','`','a','\320','a','m','\320','m','n','\320','n','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','X','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\026','\220','f','\230','J','\240','a','\330','\t','\n','\330','\010','\014','\210','G','\320','\023','#','\240','1','\330','\014','\033','\230','1','\230','F','\240','!','\330','\004','\013','\210','1','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','`','\320','`','a','\320','a','m','\320','m','n','\320','n','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','X','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','X','\320','X','o','\320','o','p','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','-','\300','z','\320','Q','[','\320','[','\\','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','`','\320','`','j','\320','j','t','\320','t','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','[','\320','[','u','\320','u','v','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','-','\300','\177','\320','V','e','\320','e','f','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','`','\320','`','o','\320','o','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','k','\002','\360','\000','\000','k','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210',';','\220','a','\200','\001','\340','*','+','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','9','\270','\022','\270','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\035','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','a','\320','a','b','\320','b','n','\320','n','o','\320','o','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\340','+',',','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',':','\270','\"','\270','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\036','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','b','\320','b','c','\320','c','o','\320','o','p','\320','p','\177','\360','\000','\000','@','\002','K','\002','\360','\000','\000','K','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340','+','C','\300','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',':','\270','\"','\270','M','\310','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\036','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','b','\320','b','o','\320','o','p','\320','p','|','\320','|','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','g','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',';','\270','2','\270','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\037','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\024','\240','^','\260','1','\260','C','\260','q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',';','\270','2','\270','Q','\330','\010','\024','\220','N','\240','!','\240','8','\250','1','\330','\010','\024','\220','N','\240','!','\240','8','\250','1','\330','\r','\016','\330','\014','\031','\230','\037','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','}','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\025','\220','V','\230','9','\240','A','\330','\t','\n','\330','\010','\014','\210','G','\320','\023','#','\240','1','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\004','\025','\220','V','\230','9','\240','A','\330','\t','\n','\330','\010','\014','\210','G','\320','\023','#','\240','1','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\004','\013','\210','<','\220','q','\200','\001','\340','0','1','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','?','\270','r','\300','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031',',','\250','B','\250','d','\260',')','\270',';','\300','d','\310','&','\320','P','Q','\320','Q','Z','\320','Z','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\340','4','5','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','C','\300','2','\300','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','0','\260','\002','\260','$','\260','i','\270','{','\310','$','\310','f','\320','T','U','\320','U','^','\320','^','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','V','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','M','\300','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','x','\360','\000','\000','y','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','}','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','m','\320','m','n','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','M','\300','\035','\310','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','x','\360','\000','\000','y','\001','F','\002','\360','\000','\000','F','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','L','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','>','?','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','y','\320','y','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','q','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','V','\320','V','W','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','}','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','Y','\320','Y','Z','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','_','\300','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','{','\360','\000','\000','|','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','}','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','?','W','\320','W','X','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','m','\300','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z',']','\320',']','c','\320','c','d','\320','d','m','\320','m','z','\360','\000','\000','{','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','A','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','^','\320','^','d','\320','d','e','\320','e','n','\320','n','{','\320','{','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','s','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','u','\310','A','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','^','\320','^','d','\320','d','e','\320','e','n','\320','n','{','\320','{','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','s','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','q','\330','\010','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\010','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','^','\320','^','d','\320','d','e','\320','e','n','\320','n','{','\320','{','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','?','\230','!','\200','\001','\340','@','X','\320','X','Y','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','}','\300','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','^','\320','^','d','\320','d','e','\320','e','n','\320','n','{','\360','\000','\000','|','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','A','B','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\001','\330','\010','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\010','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','|','\320','|','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','U','\003','\360','\000','\000','U','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340','A','Z','\320','Z','[','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\250','\016','\260','a','\260','s','\270','$','\270','n','\310','A','\310','S','\320','P','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\016','\300','a','\330','\010','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\010','\023','\220','>','\240','\021','\240','(','\250','!','\330','\010','\026','\220','n','\240','A','\240','X','\250','Q','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','}','\360','\000','\000','~','\001','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','@','\003','\360','\000','\000','@','\003','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','Z','\003','\360','\000','\000','Z','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','t','\003','\360','\000','\000','t','\003','|','\003','\360','\000','\000','|','\003','G','\004','\360','\000','\000','G','\004','M','\004','\360','\000','\000','M','\004','N','\004','\360','\000','\000','N','\004','O','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\027','\220','v','\230','[','\250','\001','\330','\t','\n','\330','\010','\014','\210','G','\320','\023','#','\240','1','\330','\014','\034','\230','A','\230','V','\240','1','\330','\004','\013','\210','<','\220','{','\240','!','\200','\001','\340','A','[','\320','[','z','\360','\000','\000','{','\001','_','\002','\360','\000','\000','_','\002','\177','\002','\360','\000','\000','\177','\002','b','\003','\360','\000','\000','b','\003','G','\004','\360','\000','\000','G','\004','h','\004','\360','\000','\000','h','\004','i','\004','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\r','\320','E','W','\320','W','n','\360','\000','\000','o','\001','B','\002','\360','\000','\000','B','\002','X','\002','\360','\000','\000','X','\002','p','\002','\360','\000','\000','p','\002','D','\003','\360','\000','\000','D','\003','E','\003','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','|','\360','\000','\000','}','\001','O','\002','\360','\000','\000','O','\002','f','\002','\360','\000','\000','f','\002','y','\002','\360','\000','\000','y','\002','O','\003','\360','\000','\000','O','\003','g','\003','\360','\000','\000','g','\003','{','\003','\360','\000','\000','{','\003','R','\004','\360','\000','\000','R','\004','S','\004','\360','\000','\000','S','\004','_','\004','\360','\000','\000','_','\004','`','\004','\360','\000','\000','`','\004','o','\004','\360','\000','\000','o','\004','z','\004','\360','\000','\000','z','\004','A','\005','\360','\000','\000','A','\005','G','\005','\360','\000','\000','G','\005','H','\005','\360','\000','\000','H','\005','I','\005','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','`','\320','`','f','\320','f','g','\320','g','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\025','\260','h','\270','j','\310','\006','\310','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','%','\270','v','\300','Q','\300','i','\310','{','\320','Z','`','\320','`','f','\320','f','g','\320','g','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','v','\310','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','`','\320','`','f','\320','f','g','\320','g','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\025','\260','h','\270','j','\310','\005','\310','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','5','\300','\006','\300','a','\300','y','\320','P','[','\320','[','`','\320','`','f','\320','f','g','\320','g','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','X','\320','X','Y','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\024','\240','^','\260','1','\260','C','\260','q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\033','\300','A','\330','\010','\027','\220','~','\240','Q','\240','h','\250','a','\330','\010','\026','\220','n','\240','A','\240','X','\250','Q','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','?','\230','!','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','~','\320','~','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','\\','\002','\360','\000','\000','\\','\002','g','\002','\360','\000','\000','g','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','v','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','u','\310','A','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','a','\320','a','g','\320','g','h','\320','h','q','\320','q','~','\320','~','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','\\','\002','\360','\000','\000','\\','\002','g','\002','\360','\000','\000','g','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','v','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','!','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\010','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','~','\320','~','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','\\','\002','\360','\000','\000','\\','\002','g','\002','\360','\000','\000','g','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','C','Z','\320','Z','q','\320','q','r','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\016','\210','k','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','w','\310','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','l','\300',',','\310','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','a','\320','a','g','\320','g','h','\320','h','q','\320','q','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','C',']','\320',']','v','\320','v','w','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','Z','\320','Z','k','\320','k','l','\320','l','o','\320','o','p','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','/','\310','\036','\320','W','X','\330','\010','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\010','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\010','\031','\320','\031','*','\250','!','\250','8','\260','1','\330','\010','\031','\320','\031','*','\250','!','\250','8','\260','1','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','O','\002','\360','\000','\000','O','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','|','\002','\360','\000','\000','|','\002','G','\003','\360','\000','\000','G','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','e','\003','\360','\000','\000','e','\003','p','\003','\360','\000','\000','p','\003','{','\003','\360','\000','\000','{','\003','A','\004','\360','\000','\000','A','\004','B','\004','\360','\000','\000','B','\004','M','\004','\360','\000','\000','M','\004','X','\004','\360','\000','\000','X','\004','f','\004','\360','\000','\000','f','\004','l','\004','\360','\000','\000','l','\004','m','\004','\360','\000','\000','m','\004','x','\004','\360','\000','\000','x','\004','C','\005','\360','\000','\000','C','\005','Q','\005','\360','\000','\000','Q','\005','W','\005','\360','\000','\000','W','\005','X','\005','\360','\000','\000','X','\005','Y','\005','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','?','\230','.','\320','(','9','\270','\021','\200','\001','\340','D','E','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\025','\260','h','\270','j','\310','\005','\310','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','U','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','b','\320','b','h','\320','h','i','\320','i','r','\320','r','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','w','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','Y','Z','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','H','\003','\360','\000','\000','H','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','P','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','Y','q','\360','\000','\000','r','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','M','\300','\034','\310','Q','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\010','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','U','\003','\360','\000','\000','U','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','S','\004','\360','\000','\000','S','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\360','\000','\000','Z','\004','e','\004','\360','\000','\000','e','\004','p','\004','\360','\000','\000','p','\004','@','\005','\360','\000','\000','@','\005','F','\005','\360','\000','\000','F','\005','G','\005','\360','\000','\000','G','\005','H','\005','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','Z','[','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','[','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\010','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','?','\230','!','\200','\001','\340','Z','r','\360','\000','\000','s','\001','K','\002','\360','\000','\000','K','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','-','\310','}','\320','\\',']','\330','\010','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\010','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','Z','\002','\360','\000','\000','Z','\002','g','\002','\360','\000','\000','g','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','x','\003','\360','\000','\000','x','\003','C','\004','\360','\000','\000','C','\004','N','\004','\360','\000','\000','N','\004','Z','\004','\360','\000','\000','Z','\004','`','\004','\360','\000','\000','`','\004','a','\004','\360','\000','\000','a','\004','b','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','Z','t','\320','t','u','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','_','\300','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','t','\360','\000','\000','u','\001','O','\002','\360','\000','\000','O','\002','e','\002','\360','\000','\000','e','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','_','\300','O','\320','S','b','\320','b','q','\320','q','r','\330','\010','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','\\','\002','\360','\000','\000','\\','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','u','\003','\360','\000','\000','u','\003','@','\004','\360','\000','\000','@','\004','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','K','\004','\360','\000','\000','K','\004','V','\004','\360','\000','\000','V','\004','a','\004','\360','\000','\000','a','\004','e','\004','\360','\000','\000','e','\004','k','\004','\360','\000','\000','k','\004','l','\004','\360','\000','\000','l','\004','w','\004','\360','\000','\000','w','\004','B','\005','\360','\000','\000','B','\005','F','\005','\360','\000','\000','F','\005','L','\005','\360','\000','\000','L','\005','M','\005','\360','\000','\000','M','\005','N','\005','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','7','\220','\047','\230','\021','\200','\001','\340','[','\\','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','[','s','\320','s','t','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','b','\320','b','c','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','[','\002','\360','\000','\000','[','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','b','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','[','s','\360','\000','\000','t','\001','L','\002','\360','\000','\000','L','\002','M','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','B','\260','m','\300','=','\320','P','Q','\330','\010','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\010','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','[','\002','\360','\000','\000','[','\002','h','\002','\360','\000','\000','h','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','E','\004','\360','\000','\000','E','\004','O','\004','\360','\000','\000','O','\004','U','\004','\360','\000','\000','U','\004','V','\004','\360','\000','\000','V','\004','W','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','>','\230','\021','\200','\001','\340','\\',']','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','y','\002','\360','\000','\000','y','\002','D','\003','\360','\000','\000','D','\003','K','\003','\360','\000','\000','K','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','S','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','\\','v','\360','\000','\000','w','\001','Q','\002','\360','\000','\000','Q','\002','f','\002','\360','\000','\000','f','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','\177','\300','o','\320','U','d','\320','d','s','\320','s','t','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','^','\002','\360','\000','\000','^','\002','m','\002','\360','\000','\000','m','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','\\','\004','\360','\000','\000','\\','\004','g','\004','\360','\000','\000','g','\004','o','\004','\360','\000','\000','o','\004','u','\004','\360','\000','\000','u','\004','v','\004','\360','\000','\000','v','\004','w','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210',';','\220','a','\200','\001','\340',']','^','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','L','\003','\360','\000','\000','L','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','T','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','^','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\001','\330','\010','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\010','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','|','\003','\360','\000','\000','|','\003','}','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340',']','s','\360','\000','\000','t','\001','I','\002','\360','\000','\000','I','\002','_','\002','\360','\000','\000','_','\002','y','\002','\360','\000','\000','y','\002','U','\003','\360','\000','\000','U','\003','V','\003','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\250','\016','\260','a','\260','s','\270','!','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\013','\300','8','\310',';','\320','V','c','\320','c','r','\320','r','s','\330','\010','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','v','\003','\360','\000','\000','v','\003','A','\004','\360','\000','\000','A','\004','L','\004','\360','\000','\000','L','\004','R','\004','\360','\000','\000','R','\004','S','\004','\360','\000','\000','S','\004','^','\004','\360','\000','\000','^','\004','f','\004','\360','\000','\000','f','\004','p','\004','\360','\000','\000','p','\004','v','\004','\360','\000','\000','v','\004','w','\004','\360','\000','\000','w','\004','x','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','>','\230','\021','\200','\001','\340',']','v','\360','\000','\000','w','\001','P','\002','\360','\000','\000','P','\002','Q','\002','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\016','\300','n','\320','T','U','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','W','\003','\360','\000','\000','W','\003','b','\003','\360','\000','\000','b','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','q','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','w','\360','\000','\000','x','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','b','\270','\017','\300','\177','\320','V','W','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','_','\002','\360','\000','\000','_','\002','n','\002','\360','\000','\000','n','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','e','\003','\360','\000','\000','e','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','\177','\003','\360','\000','\000','\177','\003','J','\004','\360','\000','\000','J','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210',';','\220','a','\200','\001','\340','^','_','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','r','\270','\021','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\360','\000','\000','|','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','U','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\360','\000','\000','}','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','|','\002','\360','\000','\000','|','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','V','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\002','\270','!','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\010','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\010','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\360','\000','\000','}','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','|','\002','\360','\000','\000','|','\002','G','\003','\360','\000','\000','G','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','t','\003','\360','\000','\000','t','\003','E','\004','\360','\000','\000','E','\004','K','\004','\360','\000','\000','K','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','b','\004','\360','\000','\000','b','\004','r','\004','\360','\000','\000','r','\004','x','\004','\360','\000','\000','x','\004','y','\004','\360','\000','\000','y','\004','z','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','`','{','\360','\000','\000','|','\001','W','\002','\360','\000','\000','W','\002','X','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','9','\270','\022','\320',';','K','\320','K','[','\320','[','\\','\330','\010','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\010','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\r','\016','\330','\014','\031','\230','\035','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','c','\002','\360','\000','\000','c','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','_','\003','\360','\000','\000','_','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\360','\000','\000','Z','\004','[','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','9','\220','A','\200','\001','\340','a','y','\320','y','z','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\250','\016','\260','a','\260','s','\270','!','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',':','\270','\"','\270','M','\310','\021','\330','\010','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\010','\023','\220','>','\240','\021','\240','(','\250','!','\330','\r','\016','\330','\014','\031','\230','\036','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','a','\002','\360','\000','\000','a','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','u','\003','\360','\000','\000','u','\003','}','\003','\360','\000','\000','}','\003','E','\004','\360','\000','\000','E','\004','K','\004','\360','\000','\000','K','\004','L','\004','\360','\000','\000','L','\004','M','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\320','\013','\033','\230','1','\200','\001','\340','t','u','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','\"','\260','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','m','\003','\360','\000','\000','m','\003','n','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','u','v','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','g','\003','\360','\000','\000','g','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','o','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','w','x','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','i','\320','i','s','\320','s','y','\320','y','z','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','r','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','|','}','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',':','\270','\"','\270','A','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\036','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','^','\003','\360','\000','\000','^','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','x','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','B','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','>','\270','b','\300','\001','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','+','\250','2','\250','T','\260','\031','\270','+','\300','T','\310','\026','\310','q','\320','P','Y','\320','Y','d','\320','d','h','\320','h','n','\320','n','o','\320','o','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','b','\003','\360','\000','\000','b','\003','j','\003','\360','\000','\000','j','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','|','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','>','\270','b','\300','\r','\310','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','+','\250','2','\250','T','\260','\031','\270','+','\300','T','\310','\026','\310','q','\320','P','Y','\320','Y','d','\320','d','h','\320','h','n','\320','n','o','\320','o','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','D','\003','\360','\000','\000','D','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','q','\003','\360','\000','\000','q','\003','|','\003','\360','\000','\000','|','\003','C','\004','\360','\000','\000','C','\004','I','\004','\360','\000','\000','I','\004','J','\004','\360','\000','\000','J','\004','K','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','C','\002','D','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','@','\300','\002','\300','!','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','-','\250','R','\250','t','\260','9','\270','K','\300','t','\310','6','\320','Q','R','\320','R','[','\320','[','f','\320','f','j','\320','j','p','\320','p','q','\320','q','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','d','\003','\360','\000','\000','d','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','~','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','D','\002','E','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','A','\300','\022','\300','1','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','.','\250','b','\260','\004','\260','I','\270','[','\310','\004','\310','F','\320','R','S','\320','S','\\','\320','\\','g','\320','g','k','\320','k','q','\320','q','r','\320','r','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','e','\003','\360','\000','\000','e','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','E','\002','F','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','B','\300','\"','\300','A','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','/','\250','r','\260','\024','\260','Y','\270','k','\310','\024','\310','V','\320','S','T','\320','T',']','\320',']','h','\320','h','l','\320','l','r','\320','r','s','\320','s','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','f','\003','\360','\000','\000','f','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','x','\001','P','\002','\360','\000','\000','P','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','i','\320','i','s','\320','s','y','\320','y','z','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','2','\260',']','\300','-','\310','q','\330','\010','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\010','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','{','\002','\360','\000','\000','{','\002','H','\003','\360','\000','\000','H','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','t','\003','\360','\000','\000','t','\003','\177','\003','\360','\000','\000','\177','\003','E','\004','\360','\000','\000','E','\004','K','\004','\360','\000','\000','K','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','b','\004','\360','\000','\000','b','\004','n','\004','\360','\000','\000','n','\004','t','\004','\360','\000','\000','t','\004','u','\004','\360','\000','\000','u','\004','v','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\360','\004','\000','z','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','i','\320','i','s','\320','s','y','\320','y','z','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','R','\260','}','\300','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\360','\000','\000','@','\004','A','\004','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\017','\210','q','\330','\004','\t','\210','\021','\330','\t','\026','\220','a','\330','\r','\016','\330','\014','\030','\320','\030','-','\250','Q','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\010','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\t','\330','\004','\t','\210','\021','\330','\004','\017','\210','q','\330','\t','\027','\220','q','\330','\r','\016','\330','\014','\032','\320','\032','/','\250','q','\260','\004','\260','A','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\360','\010','\000','\n','\033','\230','!','\330','\010','\020','\220','\001','\330','\010','\020','\220','\007','\220','q','\230','\006','\230','l','\250','!','\330','\004','\007','\200','v','\210','W','\220','E','\230','\024','\230','Q','\330','\010','\022','\220','!','\330','\010','\027','\220','q','\340','\010','\027','\220','q','\330','\004','\007','\200','q','\330','\010','\017','\320','\017','.','\250','d','\260','!','\260','7','\270','+','\300','W','\310','A','\340','\010','\017','\320','\017','.','\250','d','\260','!','\260','7','\270','+','\300','Q','\200','\001','\360','\010','\000','\n','\033','\230','!','\330','\010','\020','\220','\001','\330','\010','\020','\220','\007','\220','q','\230','\006','\230','l','\250','!','\330','\004','\007','\200','v','\210','W','\220','E','\230','\024','\230','Q','\330','\010','\022','\220','!','\330','\010','\027','\220','q','\340','\010','\027','\220','q','\330','\004','\007','\200','q','\330','\010','\017','\320','\017','/','\250','t','\260','1','\260','G','\270',';','\300','g','\310','Q','\340','\010','\017','\320','\017','/','\250','t','\260','1','\260','G','\270',';','\300','a','\200','\001','\360','\014','\000','\005','\020','\210','q','\330','\004','\020','\220','\001','\220','\031','\230','!','\230','9','\240','A','\330','\004','\020','\220','\001','\220','\021','\330','\004','\013','\210','1','\330','\004','\010','\210','\007','\210','q','\320','\020','1','\260','\022','\260','1','\340','\004','\022','\220',')','\230','1','\230','A','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\016','\220','a','\330','\010','\020','\220','\013','\230','1','\230','A','\330','\010','\013','\210','4','\210','z','\230','\021','\230','\047','\240','\021','\330','\014','\024','\220','A','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','L','\260','\001','\340','\004','\r','\210','Y','\220','a','\220','q','\330','\004','\007','\200','q','\330','\010','\014','\210','G','\220','1','\220','A','\330','\004','\010','\210','\t','\220','\021','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','G','\250','6','\260','\021','\260','!','\330','\010','\021','\220','\027','\230','\001','\230','\035','\240','g','\250','V','\260','1','\260','A','\330','\010','\020','\220','\001','\220','\031','\230','&','\240','\001','\240','\021','\330','\010','\013','\210','5','\220','\t','\230','\021','\230','!','\330','\014','\020','\220','\002','\220','%','\220','s','\230','%','\230','q','\240','\001','\240','\024','\240','R','\240','t','\250','7','\260','\"','\260','G','\270','1','\270','F','\300','!','\300','1','\340','\004','\016','\210','i','\220','q','\230','\001','\330','\004','\022','\320','\022',',','\250','D','\260','\t','\270','\021','\320',':','L','\310','C','\310','q','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\n','\220','!','\330','\010','\013','\210','7','\220','#','\220','Z','\230','t','\240','1','\330','\014','\025','\220','Q','\330','\010','\014','\210','G','\220','1','\220','I','\230','R','\230','q','\340','\004','\r','\210','W','\220','A','\220','T','\230','\025','\230','a','\230','q','\330','\004','\r','\210','W','\220','A','\220','Q','\330','\004','\010','\210','\007','\210','q','\220','\003','\220','2','\220','U','\230','!','\230','1','\330','\004','\024','\220','D','\230','\005','\230','Q','\230','a','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','\014','\000','\005',',','\320','+','=','\270','Q','\270','a','\340','\t','\026','\220','a','\330','\r','\016','\330','\014','\031','\230','\037','\250','\001','\250','\030','\260','\021','\260','!','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\340','\004','\005','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\021','\220','\031','\230','!','\230','4','\230','q','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\032','\230','+','\240','Q','\240','d','\250','(','\260','!','\330','\010','\026','\220','c','\230','\021','\230','$','\230','a','\330','\010','\032','\230','#','\230','Q','\230','d','\240','!','\330','\010','\027','\220','s','\230','!','\230','4','\230','q','\200','\001','\360','\014','\000','\005',',','\320','+','=','\270','Q','\270','a','\340','\t','\026','\220','a','\330','\r','\016','\330','\014','\031','\320','\031','2','\260','!','\260','8','\270','5','\300','\001','\300','\021','\330','\004','\025','\220','Q','\320','\026','2','\260','!','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','G','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','t','\220','8','\230','1','\230','H','\240','A','\330','\t','\021','\220','\023','\220','A','\330','\010','\017','\210','q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\013','\240','1','\240','D','\250','\010','\260','\001','\200','\001','\360','\014','\000','\005',',','\320','+','=','\270','Q','\270','a','\340','\t','\026','\220','a','\330','\r','\016','\330','\014','\031','\320','\031','3','\260','1','\260','H','\270','E','\300','\021','\300','!','\330','\004','\025','\220','Q','\320','\026','3','\260','1','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','H','\230','F','\240','!','\340','\004','\007','\200','w','\210','c','\220','\025','\220','d','\230','%','\230','x','\240','x','\250','y','\270','\001','\330','\010','\017','\210','t','\220','1','\220','C','\220','q','\230','\001','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\021','\220','\033','\230','A','\230','T','\240','\030','\250','\021','\200','\001','\360','\014','\000','\005',',','\320','+','=','\270','Q','\270','a','\340','\t','\026','\220','a','\330','\r','\016','\330','\014','\031','\320','\031','5','\260','Q','\260','h','\270','e','\300','1','\300','A','\330','\004','\025','\220','Q','\320','\026','5','\260','Q','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','J','\230','f','\240','A','\330','\004','\024','\220','C','\220','q','\230','\004','\320','\034','.','\250','d','\260','&','\270','\002','\270','\047','\300','\024','\300','Q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\020','\220','\004','\220','A','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\031','\230','\021','\330','\010','\021','\220','\021','\200','\001','\360','\014','\000','\n','\027','\220','a','\330','\r','\016','\330','\014','\031','\320','\031','+','\250','1','\250','G','\260','1','\260','A','\330','\010','\031','\230','\021','\320','\032','/','\250','q','\330','\010','\t','\330','\014','\030','\230','\001','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\021','\330','\020','\031','\230','\027','\240','\001','\240','\026','\240','q','\250','\005','\250','W','\260','A','\260','Q','\340','\021','\022','\330','\020','\035','\320','\035','.','\250','a','\250','q','\330','\014','\035','\230','Q','\320','\036','2','\260','!','\330','\004','\013','\210','1','\200','\001','\360','\014','\000','\n','\027','\220','a','\330','\r','\016','\330','\014','\031','\320','\031',',','\250','A','\250','Q','\250','a','\330','\010','\031','\230','\021','\320','\032','0','\260','\001','\330','\010','\t','\330','\014','\025','\220','Q','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\021','\330','\020','\026','\220','g','\230','Q','\230','f','\240','A','\240','U','\250','\047','\260','\021','\260','!','\340','\021','\022','\330','\020','\035','\320','\035','/','\250','q','\260','\001','\330','\014','\035','\230','Q','\320','\036','3','\260','1','\330','\004','\013','\210','1','\200','\001','\360','\020','\000','\005','\010','\200','u','\210','B','\210','a','\330','\010','\017','\210','q','\330','\004','\013','\210','1','\210','A','\330','\014','\020','\220','\005','\220','_','\240','F','\250','!','\320','+','<','\270','F','\300','!','\330','\014','\017','\210','t','\220','2','\220','Q','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','i','\320','i','s','\320','s','y','\320','y','z','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','U','\003','\360','\000','\000','U','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','d','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','i','\320','i','s','\320','s','y','\320','y','z','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','j','\002','\360','\000','\000','j','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','D','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','m','\002','\360','\000','\000','m','\002','x','\002','\360','\000','\000','x','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','G','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','a','\320','a','b','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\360','\000','\000','}','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','I','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','(','\320','R','\\','\320','\\','b','\320','b','c','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','s','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','a','\320','a','g','\320','g','h','\320','h','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','q','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\320','|','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','M','\003','\360','\000','\000','M','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','g','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','9','\270','\021','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\035','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',':','\270','!','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\036','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','X','\003','\360','\000','\000','X','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',';','\270','1','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\037','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','a','\320','a','e','\320','e','k','\320','k','l','\320','l','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','Q','\003','\360','\000','\000','Q','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','<','\270','A','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031',')','\250','\022','\250','4','\250','y','\270','\013','\300','4','\300','v','\310','Q','\310','i','\320','W','b','\320','b','f','\320','f','l','\320','l','m','\320','m','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003','Z','\003','\360','\000','\000','Z','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','k','\003','\360','\000','\000','k','\003','l','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','=','\270','Q','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','*','\250','\"','\250','D','\260','\t','\270','\033','\300','D','\310','\006','\310','a','\310','y','\320','X','c','\320','c','g','\320','g','m','\320','m','n','\320','n','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','S','\003','\360','\000','\000','S','\003','[','\003','\360','\000','\000','[','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','m','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','*','\250','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','>','\270','a','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','+','\250','2','\250','T','\260','\031','\270','+','\300','T','\310','\026','\310','q','\320','P','Y','\320','Y','d','\320','d','h','\320','h','n','\320','n','o','\320','o','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','T','\003','\360','\000','\000','T','\003','\\','\003','\360','\000','\000','\\','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','m','\003','\360','\000','\000','m','\003','n','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','?','\270','q','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031',',','\250','B','\250','d','\260',')','\270',';','\300','d','\310','&','\320','P','Q','\320','Q','Z','\320','Z','e','\320','e','i','\320','i','o','\320','o','p','\320','p','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','U','\003','\360','\000','\000','U','\003',']','\003','\360','\000','\000',']','\003','g','\003','\360','\000','\000','g','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','o','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','@','\300','\001','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','-','\250','R','\250','t','\260','9','\270','K','\300','t','\310','6','\320','Q','R','\320','R','[','\320','[','f','\320','f','j','\320','j','p','\320','p','q','\320','q','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','V','\003','\360','\000','\000','V','\003','^','\003','\360','\000','\000','^','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','p','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','A','\300','\021','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','.','\250','b','\260','\004','\260','I','\270','[','\310','\004','\310','F','\320','R','S','\320','S','\\','\320','\\','g','\320','g','k','\320','k','q','\320','q','r','\320','r','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','W','\003','\360','\000','\000','W','\003','_','\003','\360','\000','\000','_','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','q','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','B','\300','!','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','/','\250','r','\260','\024','\260','Y','\270','k','\310','\024','\310','V','\320','S','T','\320','T',']','\320',']','h','\320','h','l','\320','l','r','\320','r','s','\320','s','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','`','\003','\360','\000','\000','`','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','r','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','C','\300','1','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031','0','\260','\002','\260','$','\260','i','\270','{','\310','$','\310','f','\320','T','U','\320','U','^','\320','^','i','\320','i','m','\320','m','s','\320','s','t','\320','t','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','g','\002','\360','\000','\000','g','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','Y','\003','\360','\000','\000','Y','\003','a','\003','\360','\000','\000','a','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','r','\003','\360','\000','\000','r','\003','s','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','8','\270','\001','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\034','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','h','\003','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','<','\270','A','\330','\010','\025','\220','^','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031',')','\250','\022','\250','4','\250','y','\270','\013','\300','4','\300','v','\310','Q','\310','i','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','|','\360','\000','\000','}','\001','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','Q','\310','l','\320','Z','[','\320','[','j','\320','j','u','\320','u','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','E','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','a','\310','|','\320','[','\\','\320','\\','k','\320','k','v','\320','v','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','F','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','w','\320','w','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','5','\260','Q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\031','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','Q','\320','Q',']','\320',']','^','\320','^','m','\320','m','x','\320','x','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','H','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','6','\260','a','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\032','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','R','\320','R','^','\320','^','_','\320','_','n','\320','n','y','\360','\000','\000','z','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','I','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',':','\270','!','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\036','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','V','\320','V','b','\320','b','c','\320','c','r','\320','r','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','M','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#',';','\270','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\037','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','<','\270','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\320','\031',')','\250','\022','\250','4','\250','y','\270','\013','\300','4','\300','v','\310','Q','\310','i','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\025','\260','h','\270','j','\310','\006','\310','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','%','\270','v','\300','Q','\300','i','\310','{','\320','Z','`','\320','`','f','\320','f','g','\320','g','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','v','\310','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y','_','\320','_','e','\320','e','f','\320','f','o','\320','o','p','\320','p','|','\320','|','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','g','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\025','\260','h','\270','j','\310','\005','\310','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','3','\260','1','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\027','\240','\002','\240','$','\240','i','\250','{','\270','%','\270','v','\300','Q','\300','i','\310','{','\320','Z','_','\320','_','e','\320','e','f','\320','f','o','\320','o','p','\320','p','|','\320','|','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','g','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\025','\260','h','\270','j','\310','\005','\310','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','4','\260','A','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\r','\016','\330','\014','\031','\230','\030','\240','\022','\240','4','\240','y','\260','\013','\270','5','\300','\006','\300','a','\300','y','\320','P','[','\320','[','`','\320','`','f','\320','f','g','\320','g','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','7','\260','q','\330','\010','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\010','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\r','\016','\330','\014','\031','\230','\033','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','S','\320','S','_','\320','_','`','\320','`','o','\320','o','z','\360','\000','\000','{','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','r','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','Q','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\320','#','9','\270','\021','\330','\010','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\010','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\r','\016','\330','\014','\031','\230','\035','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','U','\320','U','a','\320','a','b','\320','b','q','\320','q','|','\360','\000','\000','}','\001','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','y','\002','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','=','\230','\001','\200','\001','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','Z','\320','Z','k','\320','k','l','\320','l','o','\320','o','p','\330','\t','\n','\330','\010','\021','\220','\035','\230','a','\230','x','\240','z','\260','\024','\260','X','\270','Z','\300','t','\310','8','\320','S',']','\320',']','`','\320','`','h','\320','h','r','\320','r','w','\320','w','x','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\024','\220','A','\330','\004','\005','\330','\r','\016','\330','\014','\027','\220','w','\230','e','\240','?','\260','!','\330','\010','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\010','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\010','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\010','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\r','\016','\330','\014','\031','\230','\026','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','y','\003','\360','\000','\000','y','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','I','\004','\360','\000','\000','I','\004','T','\004','\360','\000','\000','T','\004','_','\004','\360','\000','\000','_','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','n','\004','\360','\000','\000','n','\004','y','\004','\360','\000','\000','y','\004','D','\005','\360','\000','\000','D','\005','N','\005','\360','\000','\000','N','\005','T','\005','\360','\000','\000','T','\005','U','\005','\360','\000','\000','U','\005','V','\005','\340','\r','\016','\330','\014','\030','\230','\001','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','<','\220','|','\240',';','\250','a','\200','A','\330','\010','\014','\210','A','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','5','\230','\001','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220',';','\230','a','\330','\014','\023','\220',':','\230','Q','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\200','A','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','4','6','\260','d','\270','!','\270','5','\300','\001','\200','A','\330','\010','\017','\210','q','\200','A','\330','\010','\017','\210','q','\220','\007','\220','q','\230','\001','\200','A','\330','\010','\017','\210','t','\220','5','\230','\001','\200','A','\330','\010','\017','\210','t','\220','8','\230','1','\230','A','\200','A','\330','\010','\017','\210','u','\220','A','\220','S','\230','\001','\200','A','\330','\010','\017','\210','u','\220','B','\220','d','\230','!','\200','A','\330','\010','\017','\210','w','\220','a','\220','t','\230','8','\240','1','\200','A','\330','\010','\017','\320','\017','%','\240','Q','\240','d','\250','&','\260','\001','\260','\021','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','1','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\033','\230','5','\240','\014','\250','A','\250','[','\270','\001','\270','\021','\330','\014','\017','\210','z','\230','\021','\230','.','\250','\001','\330','\020','\024','\220','H','\230','A','\330','\024',',','\250','G','\260','1','\260','A','\340','\020','(','\250','\007','\250','q','\260','\001','\330','\010','\017','\210','q','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','4','\320','\047','B','\300','!','\360','\006','\000','\t','\020','\210','q','\330','\010','\014','\320','\014','\034','\230','A','\330','\014','\025','\220','U','\230','-','\240','q','\250','\001','\330','\014','\017','\210','\177','\230','g','\240','U','\250','!','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','w','\240','g','\250','Q','\250','a','\330','\021',' ','\240','\007','\240','u','\250','A','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','y','\250','\002','\250','\047','\260','\021','\260','!','\330','\014','\020','\220','\007','\220','q','\230','\001','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\020','\220','\007','\220','q','\230','\001','\360','\006','\000','\t','\023','\220','$','\220','l','\240','\"','\240','A','\330','\010','\013','\210',':','\220','Q','\220','k','\240','\021','\330','\014','\023','\220','5','\230','\010','\240','\005','\240','Q','\330','\014','\017','\210','t','\220',':','\230','Q','\230','f','\240','A','\330','\020','\027','\220','t','\230','1','\230','A','\330','\014','\021','\220','\030','\230','\021','\230','$','\230','a','\230','v','\240','Q','\340','\014','\020','\220','\003','\220',':','\230','Y','\240','a','\240','u','\250','A','\330','\020','\025','\220','X','\230','Q','\230','j','\250','\007','\250','q','\260','\001','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\330','\010','\020','\220','\004','\220','H','\230','K','\240','q','\250','\013','\260','1','\260','A','\330','\010','\013','\210','6','\220','\027','\320','\030','5','\260','Q','\330','\014','\024','\220','A','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\024','\220','A','\340','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\013','\022','\220','!','\330','\r','\023','\220','7','\230','!','\330','\014','\022','\220',')','\230','1','\330','\020','\021','\330','\024',' ','\240','\005','\240','[','\260','\004','\260','A','\260','V','\270','1','\330','\010','\017','\210','q','\200','A','\330','\010','\030','\230','\001','\200','A','\330','\r','\016','\330','\014','\030','\230','\001','\200','A','\330','\r','\016','\330','\014','\031','\230','\021','\200','A','\330','*','A','\320','A','X','\320','X','Y','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','K','\300','|','\320','S','T','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','e','\320','e','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T','`','\320','`','l','\320','l','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','m','\320','m','n','\320','n','y','\320','y','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','b','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\021','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','b','\320','b','n','\320','n','o','\320','o','z','\320','z','{','\360','\000','\000','|','\001','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','c','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270','!','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','c','\320','c','o','\320','o','p','\320','p','{','\320','{','|','\360','\000','\000','}','\001','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','d','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','e','\320','e','q','\320','q','r','\320','r','}','\320','}','~','\360','\000','\000','\177','\001','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','e','\002','\360','\000','\000','e','\002','f','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','Q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\340','\010','$','\240','F','\250','*','\260','A','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\033','\230','1','\230','F','\240','!','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',',','\250','1','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','=','\270','Q','\270','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','2','\260','!','\260','1','\260','H','\270','I','\300','V','\310','6','\320','Q','S','\320','S','[','\320','[','g','\320','g','s','\320','s','t','\320','t','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','O','\002','\360','\000','\000','O','\002','X','\002','\360','\000','\000','X','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','g','\002','\360','\000','\000','g','\002','h','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','-','\250','A','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','>','\270','a','\270','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','.','\250','Q','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','?','\270','q','\300','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','2','\260','\021','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','C','\300','1','\300','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\320','y','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','6','\260','Q','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','G','\300','q','\310','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','1','\330','\014','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\014','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','m','\002','\360','\000','\000','m','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','i','\260','|','\300','2','\300','X','\310','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','.','\250','Q','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','?','\270','q','\300','\001','\330','\014','\030','\230','\016','\240','a','\240','x','\250','q','\330','\014','\030','\230','\016','\240','a','\240','x','\250','q','\330','\021','\022','\330','\020','\032','\320','\032','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\340','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','l','\270',',','\300','b','\310','\010','\320','P','Q','\200','A','\330','+','>','\270','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','|','\300','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T','`','\320','`','l','\320','l','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','m','\320','m','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','<','\300','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','d','\320','d','p','\320','p','w','\320','w','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','l','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','L','\310','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','e','\320','e','q','\320','q','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\320','@','S','\320','S','T','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\034','\300','W','\310','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','b','\320','b','n','\320','n','u','\320','u','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','A','\300','\021','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270',',','\300','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','c','\320','c','o','\320','o','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\300','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','|','\300','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T','`','\320','`','l','\320','l','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','T','\320','T','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','L','\310','\014','\320','T','`','\320','`','l','\320','l','z','\320','z','{','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\032','\320','\032','+','\250','1','\250','H','\260','A','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','e','\320','e','q','\320','q','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','M','\003','\360','\000','\000','M','\003','V','\003','\360','\000','\000','V','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','e','\003','\360','\000','\000','e','\003','o','\003','\360','\000','\000','o','\003','x','\003','\360','\000','\000','x','\003','E','\004','\360','\000','\000','E','\004','K','\004','\360','\000','\000','K','\004','M','\004','\360','\000','\000','M','\004','W','\004','\360','\000','\000','W','\004','`','\004','\360','\000','\000','`','\004','k','\004','\360','\000','\000','k','\004','q','\004','\360','\000','\000','q','\004','s','\004','\360','\000','\000','s','\004','t','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','B','\320','B','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','L','\320','P','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','v','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','I','\310','Y','\320','V','W','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','m','\320','m','v','\320','v','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','|','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','\\','\310','\031','\320','R','[','\320','[','\\','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','f','\320','f','r','\320','r','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','<','\300','y','\320','P','Y','\320','Y','Z','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','d','\320','d','p','\320','p','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','M','\003','\360','\000','\000','M','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','u','\003','\360','\000','\000','u','\003','~','\003','\360','\000','\000','~','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','o','\270','\\','\310','\022','\310','8','\320','S','c','\320','c','o','\320','o','q','\320','q','y','\320','y','z','\200','A','\330','+','B','\320','B','Y','\320','Y','p','\360','\000','\000','q','\001','G','\002','\360','\000','\000','G','\002',']','\002','\360','\000','\000',']','\002','s','\002','\360','\000','\000','s','\002','I','\003','\360','\000','\000','I','\003','b','\003','\360','\000','\000','b','\003','x','\003','\360','\000','\000','x','\003','L','\004','\360','\000','\000','L','\004','M','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','<','\300','|','\320','S','_','\320','_','k','\320','k','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\014','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','d','\320','d','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Z','\004','\360','\000','\000','Z','\004','d','\004','\360','\000','\000','d','\004','m','\004','\360','\000','\000','m','\004','y','\004','\360','\000','\000','y','\004','\177','\004','\360','\000','\000','\177','\004','A','\005','\360','\000','\000','A','\005','B','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','i','\260','|','\300','2','\300','X','\310','Q','\200','A','\330','+','B','\320','B','Y','\320','Y','p','\360','\000','\000','q','\001','H','\002','\360','\000','\000','H','\002','_','\002','\360','\000','\000','_','\002','v','\002','\360','\000','\000','v','\002','M','\003','\360','\000','\000','M','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','L','\320','P','\\','\320','\\','h','\320','h','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\014','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','k','\003','\360','\000','\000','k','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','L','\004','\360','\000','\000','L','\004','U','\004','\360','\000','\000','U','\004','a','\004','\360','\000','\000','a','\004','g','\004','\360','\000','\000','g','\004','i','\004','\360','\000','\000','i','\004','j','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','i','\260','|','\300','2','\300','X','\310','Q','\200','A','\330','+','B','\320','B','Z','\320','Z','[','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','L','\320','P','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','{','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\032','\320','\032','+','\250','1','\250','H','\260','A','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','b','\320','b','n','\320','n','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','C','\320','C','\\','\320','\\','u','\320','u','v','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\034','\300',']','\320','R','`','\320','`','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','b','\320','b','n','\320','n','{','\360','\000','\000','|','\001','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','m','\320','m','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\034','\300','^','\320','S','T','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','b','\320','b','n','\320','n','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D',']','\320',']','v','\320','v','w','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','\\','\310','\036','\320','W','e','\320','e','f','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','f','\320','f','r','\360','\000','\000','s','\001','A','\002','\360','\000','\000','A','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','x','\002','\360','\000','\000','x','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','t','\003','\360','\000','\000','t','\003','u','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','k','\270','\034','\300','R','\300','x','\310','q','\200','A','\330','+','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','-','\250','A','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','>','\270','a','\270','|','\310','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330',',','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\r','\300','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','n','\320','n','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','-','.','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\032','\320','\032','+','\250','1','\250','H','\260','A','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','e','\320','e','s','\320','s','t','\320','t','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','O','\002','\360','\000','\000','O','\002','X','\002','\360','\000','\000','X','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','g','\002','\360','\000','\000','g','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','G','\003','\360','\000','\000','G','\003','M','\003','\360','\000','\000','M','\003','O','\003','\360','\000','\000','O','\003','Y','\003','\360','\000','\000','Y','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','-','.','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\021','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\010','\310','\006','\310','b','\320','P','X','\320','X','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','D','\320','D','W','\320','W','X','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','L','\320','P','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','x','\300','v','\310','R','\310','x','\320','W','c','\320','c','o','\320','o','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\033','\300','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','b','\320','b','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','v','\002','\360','\000','\000','v','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\330','.','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','J','\300','a','\330','\014','\033','\230','>','\250','\021','\250','(','\260','!','\330','\014','\032','\230','.','\250','\001','\250','\030','\260','\021','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','b','\320','b','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','r','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270','!','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','`','\320','`','e','\320','e','k','\320','k','m','\320','m','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','b','\320','b','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270','!','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\014','\031','\320','\031','*','\250','!','\250','8','\260','1','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','`','\320','`','e','\320','e','k','\320','k','m','\320','m','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','F','\003','\360','\000','\000','F','\003','P','\003','\360','\000','\000','P','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','l','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','1','\330','\014','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\014','\031','\320','\031','*','\250','!','\250','8','\260','1','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','<','\270','|','\310','2','\310','V','\320','S','Z','\320','Z','[','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','Q','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','D','\004','\360','\000','\000','D','\004','P','\004','\360','\000','\000','P','\004','V','\004','\360','\000','\000','V','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','m','\320','m','y','\320','y','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','J','\002','\200','A','\330','0','F','\300','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','|','\300','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T',']','\320',']','b','\320','b','h','\320','h','j','\320','j','r','\320','r','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270',',','\300','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','`','\320','`','e','\320','e','k','\320','k','m','\320','m','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\320','G','`','\320','`','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','|','\300','<','\310','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T',']','\320',']','b','\320','b','h','\320','h','j','\320','j','r','\320','r','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','P','\003','\360','\000','\000','P','\003','V','\003','\360','\000','\000','V','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','I','\310','\021','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\034','\300','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','_','\320','_','d','\320','d','j','\320','j','l','\320','l','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','v','\002','\360','\000','\000','v','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','e','\320','e','k','\320','k','m','\320','m','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','J','\320','J','d','\320','d','e','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\020','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','^','\310','=','\320','X','Y','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\014','\032','\320','\032','+','\250','1','\250','H','\260','A','\330','\014','\035','\320','\035','.','\250','a','\250','x','\260','q','\330','\014','\035','\320','\035','.','\250','a','\250','x','\260','q','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','J','\003','\360','\000','\000','J','\003','S','\003','\360','\000','\000','S','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','g','\003','\360','\000','\000','g','\003','q','\003','\360','\000','\000','q','\003','z','\003','\360','\000','\000','z','\003','E','\004','\360','\000','\000','E','\004','K','\004','\360','\000','\000','K','\004','M','\004','\360','\000','\000','M','\004','W','\004','\360','\000','\000','W','\004','`','\004','\360','\000','\000','`','\004','n','\004','\360','\000','\000','n','\004','t','\004','\360','\000','\000','t','\004','v','\004','\360','\000','\000','v','\004','@','\005','\360','\000','\000','@','\005','I','\005','\360','\000','\000','I','\005','W','\005','\360','\000','\000','W','\005',']','\005','\360','\000','\000',']','\005','_','\005','\360','\000','\000','_','\005','`','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','k','\320','k','w','\320','w','y','\320','y','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','t','\002','\200','A','\330','3','4','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\021','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','_','\320','_','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\021','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\007','\300','v','\310','R','\310','x','\320','W','`','\320','`','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','\047','\310','\026','\310','r','\320','Q','Y','\320','Y','b','\320','b','i','\320','i','o','\320','o','q','\320','q','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','m','\002','\360','\000','\000','m','\002','v','\002','\360','\000','\000','v','\002','}','\002','\360','\000','\000','}','\002','C','\003','\360','\000','\000','C','\003','E','\003','\360','\000','\000','E','\003','F','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','I','\320','I','\\','\320','\\',']','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','$','\240','M','\260','\021','\260','!','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\033','\300','K','\310','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','_','\320','_','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',';','\260','a','\200','A','\330','3','Q','\320','Q','t','\360','\000','\000','u','\001','T','\002','\360','\000','\000','T','\002','v','\002','\360','\000','\000','v','\002','Z','\003','\360','\000','\000','Z','\003','z','\003','\360','\000','\000','z','\003',']','\004','\360','\000','\000',']','\004','^','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','<','\320','G','X','\320','X','n','\360','\000','\000','o','\001','A','\002','\360','\000','\000','A','\002','V','\002','\360','\000','\000','V','\002','m','\002','\360','\000','\000','m','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','O','\002','\360','\000','\000','O','\002','`','\002','\360','\000','\000','`','\002','v','\002','\360','\000','\000','v','\002','H','\003','\360','\000','\000','H','\003',']','\003','\360','\000','\000',']','\003','t','\003','\360','\000','\000','t','\003','G','\004','\360','\000','\000','G','\004',']','\004','\360','\000','\000',']','\004','^','\004','\360','\000','\000','^','\004','i','\004','\360','\000','\000','i','\004','j','\004','\360','\000','\000','j','\004','x','\004','\360','\000','\000','x','\004','A','\005','\360','\000','\000','A','\005','H','\005','\360','\000','\000','H','\005','N','\005','\360','\000','\000','N','\005','P','\005','\360','\000','\000','P','\005','Q','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','4','5','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','w','\300','f','\310','B','\310','h','\320','V','_','\320','_','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\330','4','L','\310','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','=','\310','\001','\330','\014','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\014','\027','\220','~','\240','Q','\240','h','\250','a','\330','\014','\032','\230','.','\250','\001','\250','\030','\260','\021','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','P','\002','\360','\000','\000','P','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','{','\002','\360','\000','\000','{','\002','D','\003','\360','\000','\000','D','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','E','\004','\360','\000','\000','E','\004','P','\004','\360','\000','\000','P','\004','V','\004','\360','\000','\000','V','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\340','\010','%','\240','V','\250',';','\260','a','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\034','\230','A','\230','V','\240','1','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','<','\270','|','\310','2','\310','V','\320','S','Z','\320','Z','e','\320','e','q','\320','q','s','\320','s','y','\360','\000','\000','z','\001','A','\002','\360','\000','\000','A','\002','B','\002','\200','A','\330','5','J','\310','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\016','\300','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','5','J','\320','J','^','\320','^','x','\360','\000','\000','y','\001','T','\002','\360','\000','\000','T','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270',':','\300','W','\310','J','\320','V','b','\320','b','p','\320','p','q','\330','\014','\032','\320','\032','+','\250','1','\250','H','\260','A','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\320','v','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','A','\004','\360','\000','\000','A','\004','J','\004','\360','\000','\000','J','\004','U','\004','\360','\000','\000','U','\004','[','\004','\360','\000','\000','[','\004',']','\004','\360','\000','\000',']','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','w','\004','\360','\000','\000','w','\004','}','\004','\360','\000','\000','}','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','.','\310','\014','\320','T','V','\320','V','\\','\320','\\','a','\320','a','j','\320','j','k','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T',']','\320',']','b','\320','b','h','\320','h','j','\320','j','r','\320','r','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','P','\003','\360','\000','\000','P','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','_','\003','\360','\000','\000','_','\003','`','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\021','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','_','\320','_','d','\320','d','j','\320','j','l','\320','l','t','\320','t','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','M','\002','\360','\000','\000','M','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270','!','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','`','\320','`','e','\320','e','k','\320','k','m','\320','m','u','\320','u','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','N','\002','\360','\000','\000','N','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','R','\003','\360','\000','\000','R','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\320','v','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','J','\003','\360','\000','\000','J','\003','S','\003','\360','\000','\000','S','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','b','\320','b','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','A','\002','\360','\000','\000','A','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','P','\002','\360','\000','\000','P','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','K','\003','\360','\000','\000','K','\003','T','\003','\360','\000','\000','T','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','c','\003','\360','\000','\000','c','\003','d','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','Q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','Q','\002','\360','\000','\000','Q','\002','Y','\002','\360','\000','\000','Y','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','L','\003','\360','\000','\000','L','\003','U','\003','\360','\000','\000','U','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','d','\003','\360','\000','\000','d','\003','e','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','P','\003','\360','\000','\000','P','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','w','\003','\360','\000','\000','w','\003','C','\004','\360','\000','\000','C','\004','I','\004','\360','\000','\000','I','\004','K','\004','\360','\000','\000','K','\004','L','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','l','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','1','\330','\014','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\014','\031','\320','\031','*','\250','!','\250','8','\260','1','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\320','v','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','J','\003','\360','\000','\000','J','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','w','\003','\360','\000','\000','w','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','J','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',',','\300','l','\320','R','T','\320','T','Z','\320','Z','_','\320','_','h','\320','h','i','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\270','Q','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','Q','\002','\360','\000','\000','Q','\002','Y','\002','\360','\000','\000','Y','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','L','\003','\360','\000','\000','L','\003','U','\003','\360','\000','\000','U','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','s','\003','\360','\000','\000','s','\003','|','\003','\360','\000','\000','|','\003','I','\004','\360','\000','\000','I','\004','O','\004','\360','\000','\000','O','\004','Q','\004','\360','\000','\000','Q','\004','[','\004','\360','\000','\000','[','\004','d','\004','\360','\000','\000','d','\004','p','\004','\360','\000','\000','p','\004','v','\004','\360','\000','\000','v','\004','x','\004','\360','\000','\000','x','\004','y','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','M','\320','M','b','\320','b','c','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','|','\300',';','\310','a','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T',']','\320',']','b','\320','b','h','\320','h','j','\320','j','r','\320','r','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','v','\002','\360','\000','\000','v','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','X','\003','\360','\000','\000','X','\003','a','\003','\360','\000','\000','a','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','H','\004','\360','\000','\000','H','\004','U','\004','\360','\000','\000','U','\004','[','\004','\360','\000','\000','[','\004',']','\004','\360','\000','\000',']','\004','g','\004','\360','\000','\000','g','\004','p','\004','\360','\000','\000','p','\004','|','\004','\360','\000','\000','|','\004','B','\005','\360','\000','\000','B','\005','D','\005','\360','\000','\000','D','\005','E','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','N','\320','N','e','\320','e','~','\320','~','\177','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','L','\320','P','\\','\320','\\',']','\330','\014','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004','c','\004','\360','\000','\000','c','\004','i','\004','\360','\000','\000','i','\004','k','\004','\360','\000','\000','k','\004','l','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',')','\300','<','\310','r','\320','Q','W','\320','W','\\','\320','\\','e','\320','e','f','\200','A','\330','7','Q','\320','Q','R','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','-','\250','A','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','>','\270','a','\270','|','\310','1','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\014','\027','\220','~','\240','Q','\240','h','\250','a','\330','\021','\022','\330','\020','\032','\320','\032','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','c','\003','\360','\000','\000','c','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','P','\004','\360','\000','\000','P','\004','V','\004','\360','\000','\000','V','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\320',':','J','\310',',','\320','V','X','\320','X','^','\320','^','c','\320','c','l','\320','l','m','\200','A','\330','7','Q','\320','Q','e','\320','e','f','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\014','\032','\320','\032','+','\250','1','\250','H','\260','A','\330','\014','\031','\320','\031','*','\250','!','\250','8','\260','1','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','_','\320','_','d','\320','d','j','\320','j','l','\320','l','t','\320','t','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','M','\002','\360','\000','\000','M','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','i','\003','\360','\000','\000','i','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','O','\004','\360','\000','\000','O','\004','Y','\004','\360','\000','\000','Y','\004','_','\004','\360','\000','\000','_','\004','a','\004','\360','\000','\000','a','\004','b','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','.','\310','\014','\320','T','V','\320','V','\\','\320','\\','a','\320','a','j','\320','j','k','\200','A','\330','8','P','\320','P','h','\320','h','i','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','=','\310','\r','\320','U','V','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\320','v','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','p','\002','\360','\000','\000','p','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','8','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','M','\002','\360','\000','\000','M','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','W','\003','\360','\000','\000','W','\003','`','\003','\360','\000','\000','`','\003','g','\003','\360','\000','\000','g','\003','m','\003','\360','\000','\000','m','\003','o','\003','\360','\000','\000','o','\003','p','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\330','9','O','\310','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\016','\300','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','m','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','9','R','\320','R','k','\320','k','l','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\270','>','\310','\036','\320','W','X','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\320','v','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','\177','\002','\360','\000','\000','\177','\002','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','q','\003','\360','\000','\000','q','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','K','\004','\360','\000','\000','K','\004','T','\004','\360','\000','\000','T','\004','\\','\004','\360','\000','\000','\\','\004','b','\004','\360','\000','\000','b','\004','d','\004','\360','\000','\000','d','\004','e','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270','.','\310','\016','\320','V','d','\320','d','r','\320','r','s','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','`','\320','`','e','\320','e','k','\320','k','m','\320','m','u','\320','u','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','N','\002','\360','\000','\000','N','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','p','\002','\360','\000','\000','p','\002','~','\002','\360','\000','\000','~','\002','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','T','\004','\360','\000','\000','T','\004','Z','\004','\360','\000','\000','Z','\004','\\','\004','\360','\000','\000','\\','\004','f','\004','\360','\000','\000','f','\004','o','\004','\360','\000','\000','o','\004','w','\004','\360','\000','\000','w','\004','}','\004','\360','\000','\000','}','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\360','\000','\000','l','\001','A','\002','\360','\000','\000','A','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\016','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\016','\300','n','\320','T','b','\320','b','p','\320','p','q','\330','\014','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\014','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\014','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','|','\002','\360','\000','\000','|','\002','J','\003','\360','\000','\000','J','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','A','\004','\360','\000','\000','A','\004','J','\004','\360','\000','\000','J','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','`','\004','\360','\000','\000','`','\004','i','\004','\360','\000','\000','i','\004','m','\004','\360','\000','\000','m','\004','s','\004','\360','\000','\000','s','\004','u','\004','\360','\000','\000','u','\004','\177','\004','\360','\000','\000','\177','\004','H','\005','\360','\000','\000','H','\005','L','\005','\360','\000','\000','L','\005','R','\005','\360','\000','\000','R','\005','T','\005','\360','\000','\000','T','\005','U','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','\047','\300','\034','\310','R','\310','v','\320','U','Z','\320','Z','c','\320','c','j','\320','j','v','\320','v','x','\320','x','~','\360','\000','\000','\177','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','N','\002','\200','A','\330',':','T','\320','T','m','\320','m','n','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t',',','\250','1','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','=','\270','Q','\270','o','\310','_','\320','\\',']','\330','\014','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\014','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\021','\022','\330','\020','\032','\320','\032','2','\260','!','\260','1','\260','H','\270','I','\300','V','\310','6','\320','Q','S','\320','S','[','\320','[','d','\320','d','i','\320','i','o','\320','o','q','\320','q','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','f','\002','\360','\000','\000','f','\002','u','\002','\360','\000','\000','u','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','e','\004','\360','\000','\000','e','\004','f','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',')','\300','<','\310','r','\320','Q','W','\320','W','\\','\320','\\','e','\320','e','f','\200','A','\330','=','Z','\320','Z','[','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','1','\260','\001','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','B','\300','!','\300','<','\310','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','r','\003','\360','\000','\000','r','\003','@','\004','\360','\000','\000','@','\004','I','\004','\360','\000','\000','I','\004','P','\004','\360','\000','\000','P','\004','V','\004','\360','\000','\000','V','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','q','\003','\360','\000','\000','q','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T',']','\320',']','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','d','\003','\360','\000','\000','d','\003','m','\003','\360','\000','\000','m','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','d','\320','d','j','\320','j','l','\320','l','t','\320','t','}','\360','\000','\000','~','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','?','V','\320','V','W','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\270',',','\300','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','`','\320','`','e','\320','e','k','\320','k','m','\320','m','u','\320','u','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','N','\002','\360','\000','\000','N','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','V','\320','V','o','\320','o','p','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\270','\014','\300','L','\320','P','Q','\330','\014','\025','\320','\025','&','\240','a','\240','x','\250','q','\330','\014','\033','\320','\033',',','\250','A','\250','X','\260','Q','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','B','\004','\360','\000','\000','B','\004','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','W','\004','\360','\000','\000','W','\004','Y','\004','\360','\000','\000','Y','\004','c','\004','\360','\000','\000','c','\004','l','\004','\360','\000','\000','l','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\027','\270','\n','\300',')','\310','<','\320','W','Y','\320','Y','_','\320','_','d','\320','d','k','\320','k','u','\320','u','v','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','-','\250','A','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','>','\270','a','\270','q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','F','\004','\360','\000','\000','F','\004','G','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','1','\260','\001','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','B','\300','!','\300','1','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','3','\260','!','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','D','\300','A','\300','Q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','L','\004','\360','\000','\000','L','\004','M','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','4','\260','1','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','E','\300','Q','\300','a','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','E','\004','\360','\000','\000','E','\004','K','\004','\360','\000','\000','K','\004','M','\004','\360','\000','\000','M','\004','N','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','5','\260','A','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','F','\300','a','\300','q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','\014','\210','J','\220','m','\240','6','\250','\021','\330','\010','\014','\210','M','\230','\024','\230','Q','\330','\010','\014','\210','J','\220','i','\230','q','\240','\004','\240','A','\360','\006','\000','\t','\r','\210','O','\230','9','\240','F','\250','!','\360','\006','\000','\t','\r','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\210','O','\230','1','\200','A','\340','\010','\020','\220','\004','\220','A','\330','\010','\013','\210','4','\210','w','\220','a','\220','w','\230','a','\330','\014','\021','\220','\030','\230','\021','\330','\014','\021','\320','\021','!','\240','\021','\360','\006','\000','\r','\022','\220','\037','\240','\013','\250','1','\330','\014','\021','\220','\036','\230','{','\250','!','\330','\014','\021','\220','\033','\230','K','\240','q','\330','\014','\021','\320','\021','\"','\240','!','\360','\006','\000','\r','\022','\220','\030','\230','\037','\250','\001','\250','\024','\250','Q','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','0','\260','\001','\260','\024','\260','Y','\270','a','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\023','\220','4','\220','q','\320','\030','(','\250','\003','\250','1','\330','\024','\030','\230','\001','\320','\031','+','\320','+','G','\300','q','\310','\001','\330','\020','\025','\220','\\','\240','\021','\240','.','\260','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','(','\250','\004','\250','A','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','3','\260','1','\260','D','\270','\t','\300','\021','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\025','\220','[','\240','\001','\240','\036','\250','q','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\022','\220','\025','\220','a','\320','\027',')','\250','\033','\260','A','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','1','\260','\021','\260','$','\260','i','\270','q','\330','\020','\036','\230','d','\240','!','\240','1','\330','\020','\025','\220','U','\230','!','\230','?','\250','!','\250','?','\270','$','\270','a','\270','q','\330','\020','\025','\220','X','\230','Q','\230','o','\250','Q','\330','\014','\021','\220','\025','\220','a','\320','\027',')','\250','\024','\250','Q','\330','\010','\017','\210','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T','`','\320','`','a','\320','a','l','\320','l','m','\320','m','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','U','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','a','\320','a','b','\320','b','m','\320','m','n','\320','n','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002','V','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','b','\320','b','c','\320','c','n','\320','n','o','\320','o','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','W','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','(','\240','q','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','9','\270','\021','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','.','\250','a','\250','q','\260','\010','\270','\t','\300','\026','\300','v','\310','R','\310','x','\320','W','c','\320','c','d','\320','d','o','\320','o','p','\320','p','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','X','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','d','\320','d','e','\320','e','p','\320','p','q','\320','q','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','-','\250','A','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','>','\270','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','i','\320','i','t','\320','t','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','.','\250','Q','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','?','\270','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','j','\320','j','u','\320','u','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','^','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','/','\250','a','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','@','\300','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','/','\250','a','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','@','\300','\001','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\014','\032','\320','\032','+','\250','1','\250','H','\260','A','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','e','\320','e','f','\320','f','q','\320','q','r','\360','\000','\000','s','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\014','\000','\t',',','\250','1','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','=','\270','Q','\330','\014','\031','\320','\031','*','\250','!','\250','8','\260','1','\330','\014','\034','\320','\034','-','\250','Q','\250','h','\260','a','\330','\021','\022','\330','\020','\032','\320','\032','2','\260','!','\260','1','\260','H','\270','I','\300','V','\310','6','\320','Q','S','\320','S','[','\320','[','g','\320','g','h','\320','h','s','\320','s','t','\360','\000','\000','u','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','F','\003','\360','\000','\000','F','\003','G','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','m','\270','<','\300','r','\310','\030','\320','Q','R','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','L','\002','\360','\000','\000','L','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','{','\002','\360','\000','\000','{','\002','D','\003','\360','\000','\000','D','\003','K','\003','\360','\000','\000','K','\003','Q','\003','\360','\000','\000','Q','\003','S','\003','\360','\000','\000','S','\003','T','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',')','\250','\001','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',':','\270','!','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','/','\250','q','\260','\001','\260','\030','\270','\031','\300','&','\310','\006','\310','b','\320','P','X','\320','X','a','\320','a','f','\320','f','l','\320','l','n','\320','n','v','\320','v','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','Q','\002','\360','\000','\000','Q','\002','Y','\002','\360','\000','\000','Y','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','P','\003','\360','\000','\000','P','\003','V','\003','\360','\000','\000','V','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T',']','\320',']','b','\320','b','h','\320','h','j','\320','j','r','\320','r','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\006','\300','f','\310','B','\310','h','\320','V','_','\320','_','d','\320','d','j','\320','j','l','\320','l','t','\320','t','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','M','\002','\360','\000','\000','M','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003',']','\003','\360','\000','\000',']','\003','f','\003','\360','\000','\000','f','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','J','\003','\360','\000','\000','J','\003','Q','\003','\360','\000','\000','Q','\003','W','\003','\360','\000','\000','W','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','d','\320','d','j','\320','j','l','\320','l','t','\320','t','}','\360','\000','\000','~','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','c','\003','\360','\000','\000','c','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','r','\003','\360','\000','\000','r','\003','s','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','*','\250','\021','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047',';','\270','1','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','0','\260','\001','\260','\021','\260','(','\270',')','\300','6','\310','\026','\310','r','\320','Q','Y','\320','Y','b','\320','b','h','\320','h','n','\320','n','p','\320','p','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','+','\250','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','<','\270','A','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','1','\260','\021','\260','!','\260','8','\270','9','\300','F','\310','&','\320','P','R','\320','R','Z','\320','Z','c','\320','c','i','\320','i','o','\320','o','q','\320','q','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','P','\002','\360','\000','\000','P','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','x','\002','\360','\000','\000','x','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','_','\003','\360','\000','\000','_','\003','h','\003','\360','\000','\000','h','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','w','\003','\360','\000','\000','w','\003','x','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t',',','\250','1','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','=','\270','Q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','2','\260','!','\260','1','\260','H','\270','I','\300','V','\310','6','\320','Q','S','\320','S','[','\320','[','d','\320','d','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','Q','\002','\360','\000','\000','Q','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','y','\002','\360','\000','\000','y','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','x','\003','\360','\000','\000','x','\003','y','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','-','\250','A','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','>','\270','a','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','.','\250','Q','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','?','\270','q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','{','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','/','\250','a','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','@','\300','\001','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','|','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','0','\250','q','\330','\010','+','\320','+','?','\270','x','\300','q','\310','\001','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','A','\300','\021','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','@','\300','\t','\310','\034','\320','U','^','\320','^','`','\320','`','g','\320','g','i','\320','i','j','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','1','\260','\001','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','B','\300','!','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','2','\260','\021','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','C','\300','1','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','3','\260','!','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','D','\300','A','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','4','\260','1','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','E','\300','Q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','5','\260','A','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','F','\300','a','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','B','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','6','\260','Q','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','G','\300','q','\330','\014','\031','\230','\036','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','n','\320','n','t','\320','t','z','\320','z','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','C','\004','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\020','\000','\t','%','\240','A','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\240','\177','\260','a','\330','\014','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\014','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\014','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\014','\031','\320','\031','*','\250','!','\250','8','\260','1','\330','\021','\022','\330','\020','\032','\320','\032','+','\250','1','\250','A','\250','X','\260','Y','\270','f','\300','F','\310','\"','\310','H','\320','T',']','\320',']','c','\320','c','i','\320','i','k','\320','k','s','\320','s','|','\360','\000','\000','}','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Y','\003','\360','\000','\000','Y','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','F','\004','\360','\000','\000','F','\004','O','\004','\360','\000','\000','O','\004','U','\004','\360','\000','\000','U','\004','W','\004','\360','\000','\000','W','\004','a','\004','\360','\000','\000','a','\004','j','\004','\360','\000','\000','j','\004','r','\004','\360','\000','\000','r','\004','x','\004','\360','\000','\000','x','\004','z','\004','\360','\000','\000','z','\004','D','\005','\360','\000','\000','D','\005','M','\005','\360','\000','\000','M','\005','W','\005','\360','\000','\000','W','\005',']','\005','\360','\000','\000',']','\005','_','\005','\360','\000','\000','_','\005','`','\005','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','F','\260','%','\260','y','\300','\014','\310','L','\320','X','Z','\320','Z','`','\320','`','f','\320','f','k','\320','k','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','N','\003','\360','\000','\000','N','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','v','\300','V','\310','2','\310','X','\320','U','^','\320','^','f','\320','f','l','\320','l','n','\320','n','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','w','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','w','\300','f','\310','B','\310','h','\320','V','_','\320','_','f','\320','f','l','\320','l','n','\320','n','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','w','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','\047','\240','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','8','\270','\001','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032','-','\250','Q','\250','a','\250','x','\260','y','\300','\007','\300','v','\310','R','\310','x','\320','W','`','\320','`','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\360','\n','\000','\t','&','\240','Q','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\340','\010','\030','\230','\001','\330','\010','\t','\330','\021','\022','\330','\020','\033','\230','7','\240','%','\320','\047','7','\260','q','\330','\014','\026','\320','\026','\047','\240','q','\250','\010','\260','\001','\330','\021','\022','\330','\020','\032','\320','\032',',','\250','A','\250','Q','\250','h','\260','i','\270','w','\300','f','\310','B','\310','h','\320','V','_','\320','_','g','\320','g','m','\320','m','o','\320','o','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\020','\023','\220','8','\230','3','\230','a','\330','\024','\032','\230','+','\240','W','\250','A','\330','\024','\032','\230','+','\240','Q','\330','\024',')','\250','\021','\340','\021','\022','\330','\020','\034','\230','A','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\340','\r','\016','\330','\014','\027','\220','\177','\240','a','\330','\010','\013','\210','4','\210','q','\330','\014','\022','\220',',','\230','a','\230','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\014','\020','\220','\n','\230','!','\230','5','\240','\017','\250','q','\330','\014','\023','\220','5','\230','\r','\240','V','\250','1','\340','\014','\023','\220','5','\230','\r','\240','U','\250','!','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\014','\210','L','\320','\030','(','\250','\013','\260','6','\270','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\017','\210','q','\220','\r','\230','T','\320','!','7','\260','q','\270','\001','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\020','\220','\005','\220','[','\240','\001','\240','\033','\250','A','\250','Q','\330','\010','\013','\210','6','\220','\023','\220','A','\330','\014','\024','\220','E','\230','\033','\240','A','\240','[','\260','\001','\260','\021','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\026','\220','a','\340','\010','\014','\210','G','\220','1','\330','\014','\017','\210','t','\220','3','\220','e','\230','1','\330','\020','\030','\230','\006','\230','a','\230','q','\330','\020','\023','\220','4','\320','\027','/','\250','q','\260','\005','\260','Q','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','V','\270','1','\270','A','\330','\024','\"','\240','!','\330','\021','\025','\220','S','\230','\005','\230','Q','\330','\020','\025','\220','\\','\240','\021','\240','$','\240','a','\320','\047','9','\270','\026','\270','q','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','\047','\260','\026','\260','q','\270','\001','\340','\010','\013','\210','1','\330','\014','\031','\230','\021','\330','\014','\017','\210','t','\320','\023','$','\240','A','\240','T','\250','\021','\250','!','\330','\020','\035','\230','Q','\330','\014','\017','\210','s','\220','!','\220','6','\230','\022','\230','1','\330','\020','\024','\220','C','\220','~','\240','Y','\250','a','\250','u','\260','A','\330','\024','\031','\230','\021','\330','\024','\027','\220','r','\230','\022','\230','3','\230','a','\230','q','\330','\030',' ','\240','\004','\240','A','\240','Q','\330','\030','\033','\230','4','\320','\037','7','\260','q','\270','\014','\300','A','\330','\034','!','\240','\033','\250','A','\250','[','\270','\001','\270','\033','\300','A','\330','\034','*','\250','!','\340','\010','\013','\210','5','\220','\003','\220','1','\330','\014','\017','\210','q','\330','\020','\025','\220','U','\230','!','\320','\033','+','\250','4','\250','q','\330','\014','\021','\320','\021','\"','\240','!','\200','A','\360','\n','\000','\t','\017','\210','d','\220','(','\230','(','\240','%','\240','q','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\017','\210','q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\021','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\037','\260','\005','\260','Q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\005','\240','Q','\200','A','\360','\n','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\017','\210','q','\220','\016','\230','e','\240','<','\250','q','\260','\013','\270','1','\270','A','\330','\010','\017','\210','q','\200','A','\360','\014','\000','\t','\021','\220','\004','\220','A','\340','\010','\021','\320','\021','&','\240','a','\240','t','\250','1','\330','\010','\014','\210','C','\210','}','\230','I','\240','Q','\240','e','\250','1','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\024','\220','E','\230','\033','\240','A','\240','Z','\250','q','\260','\001','\330','\014','\017','\210','v','\220','V','\320','\033','2','\260','#','\260','V','\270','6','\300','\021','\330','\020',')','\250','\021','\250','(','\260','#','\260','Q','\330','\021','\027','\220','v','\320','\035','7','\260','s','\270','&','\300','\006','\300','a','\330','\020',',','\250','A','\250','X','\260','S','\270','\001','\340','\010','\t','\330','\014','\027','\320','\027','\047','\240','q','\250','\001','\340','\014',' ','\240','\001','\240','\021','\330','\010','\017','\210','q','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210','4','\210','u','\220','A','\330','\014','\020','\320','\020',' ','\240','\001','\330','\010','\016','\210','e','\220','8','\230','7','\240','!','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\013','\320','\013','\035','\230','W','\240','E','\250','\021','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\024','\220','E','\230','\035','\240','a','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','$','\250','f','\260','A','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','/','\250','q','\330',')','1','\260','\024','\260','Q','\330','\r','\037','\230','w','\240','e','\250','1','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','!','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','0','\260','\004','\260','A','\340','\014','\023','\220','3','\220','a','\220','v','\230','S','\240','\001','\240','\025','\240','c','\250','\027','\260','\001','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\340','\010','\033','\230','2','\230','\\','\250','\025','\250','k','\270','\021','\270','+','\300','Q','\300','a','\330','\034',' ','\240','\016','\250','e','\260',';','\270','e','\300','1','\330','\010','#','\240','2','\240','S','\250','\005','\250','\\','\270','\021','\270','\"','\270','A','\270','Q','\330','$','(','\250','\005','\250','U','\260','!','\360','\006','\000','\t','\020','\210','t','\220','1','\220','A','\330','\010','\027','\220','q','\330','\010','#','\240','4','\320','\047','B','\300','!','\330','\010','\013','\210','5','\220','\004','\220','D','\230','\n','\240','!','\240','4','\240','q','\250','\004','\250','A','\330','\014','\020','\220','\003','\220','7','\230',')','\240','1','\240','A','\330','\020','\023','\220','4','\220','z','\240','\021','\240','%','\240','q','\330','\024','\025','\340','\020','\021','\330','\024',' ','\240','\001','\320','!','9','\270','\021','\270','&','\300','\001','\330','\027','\030','\330','\024','\032','\320','\032','G','\300','q','\330','\030','\033','\230','1','\230','A','\330','\030','\034','\230','E','\240','\021','\240','!','\330','\024','\032','\230',')','\240','1','\240','A','\340','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\021','\330','\r','\037','\230','w','\240','a','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\031','\300','!','\340','\014','\047','\240','t','\250','4','\250','q','\260','\005','\260','Q','\340','\010','\013','\210','3','\210','a','\210','~','\230','S','\240','\003','\240','1','\240','A','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\014','\023','\220','4','\220','q','\230','\003','\230','1','\230','A','\330','\r','\020','\220','\001','\220','\036','\230','t','\320','#','<','\270','A','\330','\020','\024','\220','C','\220','q','\230','\006','\230','c','\240','\024','\240','Z','\250','q','\260','\004','\260','A','\260','T','\270','\021','\330','\014','\022','\320','\022','A','\300','\021','\330','\020','\023','\220','1','\220','A','\330','\020','\024','\220','E','\230','\021','\230','!','\330','\014','\022','\220',')','\230','1','\230','A','\340','\010','\t','\330','\014','\020','\320','\020','\"','\240','\"','\240','H','\250','A','\330','\014','\020','\320','\020',' ','\240','\001','\360','\006','\000','\r','\021','\220','\014','\230','I','\240','Q','\330','\020','\025','\220','[','\240','\001','\240','\033','\250','A','\250','[','\270','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\021','\220','\014','\230','I','\240','Q','\330','\020','\025','\220','\\','\240','\021','\240','+','\250','Q','\320','.','@','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','.','\270','\001','\340','\010','\017','\210','t','\220','1','\200','A','\360','2','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210',':','\220','Q','\220','n','\240','A','\330','\014','\033','\230','1','\330','\014','\020','\220','\007','\220','t','\320','\033','6','\260','a','\330','\020','\023','\320','\023','%','\240','W','\250','A','\330','\024','\030','\230','\n','\240','!','\240','>','\260','\021','\330','\024','\036','\230','d','\240','\047','\250','\034','\260','Q','\340','\024','\036','\230','d','\240','\047','\250','\021','\330','\020','\023','\220','1','\330','\024',' ','\240','\007','\240','q','\250','\001','\330','\014','\017','\210','s','\220','!','\220','>','\240','\023','\240','A','\330','\020','\025','\320','\025','%','\240','Q','\330','\020','\025','\320','\025','&','\240','a','\330','\020','\027','\220','q','\340','\020','\026','\220','i','\230','q','\240','\001','\330','/','6','\260','c','\270','\021','\270','.','\310','\002','\310','!','\330','9',':','\330','0','4','\260','E','\270','\021','\270','!','\330','\010','\017','\210','q','\200','N','\220','!','\360','\016','\000','\t','\014','\210','1','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\010','\014','\320','\014','\034','\230','A','\330','\010','\017','\210','t','\220','1','\320','\000','\021','\220','\021','\330','\004','\005','\360','\006','\000','\n','\013','\330','\010','\023','\220','?','\240','!','\330','\004','\007','\200','t','\210','1','\330','\010','\013','\210','1','\360','\006','\000','\r','\016','\330','\010','\016','\210','l','\230','!','\230','1','\330','\004','\005','\330','\010','\013','\210','1','\330','\021','\022','\330','\020','\036','\230','l','\250','!','\330','\014','\035','\230','Q','\230','o','\250','Q','\330','\014','\036','\230','a','\340','\r','\016','\330','\014','\031','\230','\021','\320','\004','\035','\230','Q','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\025','\220','[','\240','\003','\240','1','\330','\010','\022','\220','\047','\230','\021','\230','!','\330','\010','\022','\220','\"','\220','G','\230','7','\240','$','\240','g','\250','Y','\260','j','\300','\006','\300','a','\330','\023','\026','\220','d','\320','\032','2','\260','!','\260','7','\270','!','\330','\010','\014','\210','G','\220','9','\230','A','\330','\014','\021','\220','\033','\230','A','\230','V','\240','1','\240','K','\250','q','\330','\010','\r','\320','\r','\036','\230','a','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q'}; #else -static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected bars of history, at least function failed with error code needed (a leading bar that is NaN in any input is not history)%(display_name)s (%(group)s)\n%s%s.advance%s.out_range\047 is deprecated and has no effect: ((%s)(any ndarray)(tree fragment)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)An output is display-shiftedBad Object (TA_BAD_OBJECT)Ba""d Parameter (TA_BAD_PARAM)Bull/Bear Pattern (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasConfirmation Pattern (+/-200 = this bar confirms an earlier pattern)Dashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Input must be positiveInputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough history to open a stream (TA_INSUFFICIENT_HISTORY).\n\n Recoverable: collect more bars and try again.Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is display-shiftedOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageTA-Lib is not initialized or a settings change is in p""rogressThe Function\047s Own Default Moving AverageToo many price arguments: expected Triangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Uses a transcendental math functionValues represent a lower limitValues represent an upper limitWeak Pattern (+/-80 = a weaker form of the pattern)Weighted Moving AverageWilder\047s Smoothed Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_notebegidx nbelementcannot change TA-Lib settings or lifecycle while calls or streams are activecannot pickle %s: a stream handle points into the TA-Lib C library, and does not cross a process boundarycannot shut down TA-Lib while calls or streams are activedisableenablegcinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput must be a numpy array or a pandas or polars Series, not %sinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)isenabledno history: the input array is emptynumpy._core.multiarray failed to importnumpy._core.umath failed to importtalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitoo many input arraysunstable period \047ACACCBANDSACCBANDS_StreamACCBANDS_Stream.open_and_fillACOSACOS_StreamACOS_Stream.open_and_fillAC_StreamAC_Stream.open_and_fillADADDADD_StreamADD_Stream.open_and_fillADOSCADOSC_StreamADOSC_Stream.open_and_fillADRADR_StreamADR_Stream.open_and_fillADXADXRADXR_StreamADXR_Stream.open_and_fillADX_StreamADX_Stream.open_and_fillAD_StreamAD_Stream.open_and_fillALLAOAO_StreamAO_Stream.open_and_fillAPOAPO_StreamAPO_Stream.open_and_fillAROONAROONOSCAROONOSC_StreamAROONOSC_Stream.open_and_fillAROON_StreamAROON_Stream.open_and_fillASINASIN_StreamASIN_Stream.open_and_fillATANATAN_StreamATAN_Stream.open_and_fillATRATR_StreamATR_Stream.open_and_fillAVGDEVAVGDEV""_StreamAVGDEV_Stream.open_and_fillAVGPRICEAVGPRICE_StreamAVGPRICE_Stream.open_and_fillAllCandleSettingsBBANDSBBANDS_StreamBBANDS_Stream.open_and_fillBETABETA_StreamBETA_Stream.open_and_fillBOPBOP_StreamBOP_Stream.open_and_fillBodyDojiBodyLongBodyShortBodyVeryLongCCICCI_StreamCCI_Stream.open_and_fillCDL2CROWSCDL2CROWS_StreamCDL2CROWS_Stream.open_and_fillCDL3BLACKCROWSCDL3BLACKCROWS_StreamCDL3BLACKCROWS_Stream.open_and_fillCDL3INSIDECDL3INSIDE_StreamCDL3INSIDE_Stream.open_and_fillCDL3LINESTRIKECDL3LINESTRIKE_StreamCDL3LINESTRIKE_Stream.open_and_fillCDL3OUTSIDECDL3OUTSIDE_StreamCDL3OUTSIDE_Stream.open_and_fillCDL3STARSINSOUTHCDL3STARSINSOUTH_StreamCDL3STARSINSOUTH_Stream.open_and_fillCDL3WHITESOLDIERSCDL3WHITESOLDIERS_StreamCDL3WHITESOLDIERS_Stream.open_and_fillCDLABANDONEDBABYCDLABANDONEDBABY_StreamCDLABANDONEDBABY_Stream.open_and_fillCDLADVANCEBLOCKCDLADVANCEBLOCK_StreamCDLADVANCEBLOCK_Stream.open_and_fillCDLBELTHOLDCDLBELTHOLD_StreamCDLBELTHOLD_Stream.open_and_fillCDLBREAKAWAYCDLBREAKAWAY_StreamCDLBREAKAWAY_Stream.open_and_fillCDLCLOSINGMARUBOZUCDLCLOSINGMARUBOZU_StreamCDLCLOSINGMARUBOZU_Stream.open_and_fillCDLCONCEALBABYSWALLCDLCONCEALBABYSWALL_StreamCDLCONCEALBABYSWALL_Stream.open_and_fillCDLCOUNTERATTACKCDLCOUNTERATTACK_StreamCDLCOUNTERATTACK_Stream.open_and_fillCDLDARKCLOUDCOVERCDLDARKCLOUDCOVER_StreamCDLDARKCLOUDCOVER_Stream.open_and_fillCDLDOJICDLDOJISTARCDLDOJISTAR_StreamCDLDOJISTAR_Stream.open_and_fillCDLDOJI_StreamCDLDOJI_Stream.open_and_fillCDLDRAGONFLYDOJICDLDRAGONFLYDOJI_StreamCDLDRAGONFLYDOJI_Stream.open_and_fillCDLENGULFINGCDLENGULFING_StreamCDLENGULFING_Stream.open_and_fillCDLEVENINGDOJISTARCDLEVENINGDOJISTAR_StreamCDLEVENINGDOJISTAR_Stream.open_and_fillCDLEVENINGSTARCDLEVENINGSTAR_StreamCDLEVENINGSTAR_Stream.open_and_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEWHITE_StreamCDLGAPSIDESIDEWHITE_Stream.open_and_fillCDLGRAVESTONEDOJICDLGRAVESTONEDOJI_StreamCDLGRAVESTONEDOJI_Stream.open_and_fillCDLHAMMERCDLHAMMER_StreamCDLHAMMER_Stream.open_and_fillCDLHANGINGMANC""DLHANGINGMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_StreamCDLHARAMICROSS_Stream.open_and_fillCDLHARAMI_StreamCDLHARAMI_Stream.open_and_fillCDLHIGHWAVECDLHIGHWAVE_StreamCDLHIGHWAVE_Stream.open_and_fillCDLHIKKAKECDLHIKKAKEMODCDLHIKKAKEMOD_StreamCDLHIKKAKEMOD_Stream.open_and_fillCDLHIKKAKE_StreamCDLHIKKAKE_Stream.open_and_fillCDLHOMINGPIGEONCDLHOMINGPIGEON_StreamCDLHOMINGPIGEON_Stream.open_and_fillCDLIDENTICAL3CROWSCDLIDENTICAL3CROWS_StreamCDLIDENTICAL3CROWS_Stream.open_and_fillCDLINNECKCDLINNECK_StreamCDLINNECK_Stream.open_and_fillCDLINVERTEDHAMMERCDLINVERTEDHAMMER_StreamCDLINVERTEDHAMMER_Stream.open_and_fillCDLKICKINGCDLKICKINGBYLENGTHCDLKICKINGBYLENGTH_StreamCDLKICKINGBYLENGTH_Stream.open_and_fillCDLKICKING_StreamCDLKICKING_Stream.open_and_fillCDLLADDERBOTTOMCDLLADDERBOTTOM_StreamCDLLADDERBOTTOM_Stream.open_and_fillCDLLONGLEGGEDDOJICDLLONGLEGGEDDOJI_StreamCDLLONGLEGGEDDOJI_Stream.open_and_fillCDLLONGLINECDLLONGLINE_StreamCDLLONGLINE_Stream.open_and_fillCDLMARUBOZUCDLMARUBOZU_StreamCDLMARUBOZU_Stream.open_and_fillCDLMATCHINGLOWCDLMATCHINGLOW_StreamCDLMATCHINGLOW_Stream.open_and_fillCDLMATHOLDCDLMATHOLD_StreamCDLMATHOLD_Stream.open_and_fillCDLMORNINGDOJISTARCDLMORNINGDOJISTAR_StreamCDLMORNINGDOJISTAR_Stream.open_and_fillCDLMORNINGSTARCDLMORNINGSTAR_StreamCDLMORNINGSTAR_Stream.open_and_fillCDLONNECKCDLONNECK_StreamCDLONNECK_Stream.open_and_fillCDLPIERCINGCDLPIERCING_StreamCDLPIERCING_Stream.open_and_fillCDLRICKSHAWMANCDLRICKSHAWMAN_StreamCDLRICKSHAWMAN_Stream.open_and_fillCDLRISEFALL3METHODSCDLRISEFALL3METHODS_StreamCDLRISEFALL3METHODS_Stream.open_and_fillCDLSEPARATINGLINESCDLSEPARATINGLINES_StreamCDLSEPARATINGLINES_Stream.open_and_fillCDLSHOOTINGSTARCDLSHOOTINGSTAR_StreamCDLSHOOTINGSTAR_Stream.open_and_fillCDLSHORTLINECDLSHORTLINE_StreamCDLSHORTLINE_Stream.open_and_fillCDLSPINNINGTOPCDLSPINNINGTOP_StreamCDLSPINNINGTOP_Stream.open_and_fillCDLSTALLEDPATTERNCDLSTALLEDPATTERN_StreamCDLSTALLEDPATTERN_Stream.open_and_fillCDLSTICKSANDWI""CHCDLSTICKSANDWICH_StreamCDLSTICKSANDWICH_Stream.open_and_fillCDLTAKURICDLTAKURI_StreamCDLTAKURI_Stream.open_and_fillCDLTASUKIGAPCDLTASUKIGAP_StreamCDLTASUKIGAP_Stream.open_and_fillCDLTHRUSTINGCDLTHRUSTING_StreamCDLTHRUSTING_Stream.open_and_fillCDLTRISTARCDLTRISTAR_StreamCDLTRISTAR_Stream.open_and_fillCDLUNIQUE3RIVERCDLUNIQUE3RIVER_StreamCDLUNIQUE3RIVER_Stream.open_and_fillCDLUPSIDEGAP2CROWSCDLUPSIDEGAP2CROWS_StreamCDLUPSIDEGAP2CROWS_Stream.open_and_fillCDLXSIDEGAP3METHODSCDLXSIDEGAP3METHODS_StreamCDLXSIDEGAP3METHODS_Stream.open_and_fillCEILCEIL_StreamCEIL_Stream.open_and_fillCMFCMF_StreamCMF_Stream.open_and_fillCMOCMOUCMOU_StreamCMOU_Stream.open_and_fillCMO_StreamCMO_Stream.open_and_fillCOPPOCKCOPPOCK_StreamCOPPOCK_Stream.open_and_fillCORRELCORREL_StreamCORREL_Stream.open_and_fillCOSCOSHCOSH_StreamCOSH_Stream.open_and_fillCOS_StreamCOS_Stream.open_and_fillCUMSUMCUMSUM_StreamCUMSUM_Stream.open_and_fillCVICVI_StreamCVI_Stream.open_and_fillCandleSettingTypeDEFAULTDEMADEMA_StreamDEMA_Stream.open_and_fillDISABLEDDIVDIV_StreamDIV_Stream.open_and_fillDONCHIANDONCHIAN_StreamDONCHIAN_Stream.open_and_fillDPODPO_StreamDPO_Stream.open_and_fillDXDX_StreamDX_Stream.open_and_fillDataFrameDotEFIEFI_StreamEFI_Stream.open_and_fillEMAEMA_StreamEMA_Stream.open_and_fillERERIERI_StreamERI_Stream.open_and_fillER_StreamER_Stream.open_and_fillEXPEXP_StreamEXP_Stream.open_and_fillEqualFLOORFLOOR_StreamFLOOR_Stream.open_and_fillFOSCFOSC_StreamFOSC_Stream.open_and_fillFRACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsFunction.set_input_arraysFunc""tion.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHMAHMA_StreamHMA_Stream.open_and_fillHT_DCPERIODHT_DCPERIOD_StreamHT_DCPERIOD_Stream.open_and_fillHT_DCPHASEHT_DCPHASE_StreamHT_DCPHASE_Stream.open_and_fillHT_PHASORHT_PHASOR_StreamHT_PHASOR_Stream.open_and_fillHT_SINEHT_SINE_StreamHT_SINE_Stream.open_and_fillHT_TRENDLINEHT_TRENDLINE_StreamHT_TRENDLINE_Stream.open_and_fillHT_TRENDMODEHT_TRENDMODE_StreamHT_TRENDMODE_Stream.open_and_fillHighLowHistogramIMIIMI_StreamIMI_Stream.open_and_fillInsufficientHistoryKAMAKAMA_StreamKAMA_Stream.open_and_fillKCKC_StreamKC_Stream.open_and_fillKDJKDJ_StreamKDJ_Stream.open_and_fillLINEARREGLINEARREG_ANGLELINEARREG_ANGLE_StreamLINEARREG_ANGLE_Stream.open_and_fillLINEARREG_INTERCEPTLINEARREG_INTERCEPT_StreamLINEARREG_INTERCEPT_Stream.open_and_fillLINEARREG_SLOPELINEARREG_SLOPE_StreamLINEARREG_SLOPE_Stream.open_and_fillLINEARREG_StreamLINEARREG_Stream.open_and_fillLNLN_StreamLN_Stream.open_and_fillLOG10LOG10_StreamLOG10_Stream.open_and_fillLineMAMACDMACDEXTMACDEXT_StreamMACDEXT_Stream.open_and_fillMACDFIXMACDFIX_StreamMACDFIX_Stream.open_and_fillMACD_StreamMACD_Stream.open_and_fillMAMAMAMA_StreamMAMA_Stream.open_and_fillMARKETFIMARKETFI_StreamMARKETFI_Stream.open_and_fillMASSIMASSI_StreamMASSI_Stream.open_and_fillMAVPMAVP_StreamMAVP_Stream.open_and_fillMAXMAXINDEXMAXINDEX_StreamMAXINDEX_Stream.open_and_fillMAX_StreamMAX_Stream.open_and_fillMA_StreamMA_Stream.open_and_fillMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMEDPRICE_StreamMEDPRICE_Stream.open_and_fillMFIMFI_StreamMFI_Stream.open_and_fillMIDPOINTMIDPOINT_StreamMIDPOINT_Stream.open_and_fillMIDPRICEMIDPRICE_StreamMIDPRICE_Stream.open_and_fillMINMININDEXMININDEX_StreamMININDEX_Stream.open_and_fillMINMAXMINMAXINDEXMINMAXINDEX_StreamMINMAXINDEX_Stream.open_and_fillMINMAX_StreamMINMAX_Stream.open_and_fillMINUS_DIMINUS_DI_StreamMINUS_DI_Stream.open_and_fillMINUS_DMMINUS_DM_StreamMINUS_DM_Stream.open_and_fillMIN_StreamMIN_Stream.open_and_fillMOMMOM_StreamM""OM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_and_fillNONENVINVI_StreamNVI_Stream.open_and_fillNearOBVOBV_StreamOBV_Stream.open_and_fillOrderedDictOutRangePERCENTILEPERCENTILE_StreamPERCENTILE_Stream.open_and_fillPERCENTRANKPERCENTRANK_StreamPERCENTRANK_Stream.open_and_fillPLUS_DIPLUS_DI_StreamPLUS_DI_Stream.open_and_fillPLUS_DMPLUS_DM_StreamPLUS_DM_Stream.open_and_fillPPOPPO_StreamPPO_Stream.open_and_fillPVIPVI_StreamPVI_Stream.open_and_fillPVOPVO_StreamPVO_Stream.open_and_fillPVTPVT_StreamPVT_Stream.open_and_fillQSTICKQSTICK_StreamQSTICK_Stream.open_and_fillRMARMA_StreamRMA_Stream.open_and_fillROCROCPROCP_StreamROCP_Stream.open_and_fillROCRROCR100ROCR100_StreamROCR100_Stream.open_and_fillROCR_StreamROCR_Stream.open_and_fillROC_StreamROC_Stream.open_and_fillRSIRSI_StreamRSI_Stream.open_and_fillRVIRVI_StreamRVI_Stream.open_and_fillRVOLRVOL_StreamRVOL_Stream.open_and_fillRangeTypeRealBodySARSAREXTSAREXT_StreamSAREXT_Stream.open_and_fillSAR_StreamSAR_Stream.open_and_fillSINSINHSINH_StreamSINH_Stream.open_and_fillSIN_StreamSIN_Stream.open_and_fillSMASMA_StreamSMA_Stream.open_and_fillSMISMI_StreamSMI_Stream.open_and_fillSQRTSQRT_StreamSQRT_Stream.open_and_fillSTDDEVSTDDEV_StreamSTDDEV_Stream.open_and_fillSTOCHSTOCHFSTOCHF_StreamSTOCHF_Stream.open_and_fillSTOCHRSISTOCHRSI_StreamSTOCHRSI_Stream.open_and_fillSTOCH_StreamSTOCH_Stream.open_and_fillSUBSUB_StreamSUB_Stream.open_and_fillSUMSUM_StreamSUM_Stream.open_and_fillSUPERTRENDSUPERTREND_StreamSUPERTREND_Stream.open_and_fillSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsStreamStream.__copy__Stream.__deepcopy__Stream.__reduce__T3T3_StreamT3_Stream.open_and_fillTANTANHTANH_StreamTANH_Stream.open_and_fillTAN_StreamTAN_Stream.open_and_fillTA_ACTA_ACCBANDSTA_ACCBANDS_CloneTA_ACCBANDS_OpenTA_ACCBANDS_OpenAndFillTA_ACCBANDS_PeekTA_ACCBANDS_UpdateTA_ACCBANDS_ValueTA_ACOSTA_ACOS_CloneTA_ACOS_OpenTA_ACOS_OpenAndFillTA_ACOS_PeekTA_ACOS_UpdateTA_ACOS_ValueTA_AC_CloneTA_""AC_OpenTA_AC_OpenAndFillTA_AC_PeekTA_AC_UpdateTA_AC_ValueTA_ADTA_ADDTA_ADD_CloneTA_ADD_OpenTA_ADD_OpenAndFillTA_ADD_PeekTA_ADD_UpdateTA_ADD_ValueTA_ADOSCTA_ADOSC_CloneTA_ADOSC_OpenTA_ADOSC_OpenAndFillTA_ADOSC_PeekTA_ADOSC_UpdateTA_ADOSC_ValueTA_ADRTA_ADR_CloneTA_ADR_OpenTA_ADR_OpenAndFillTA_ADR_PeekTA_ADR_UpdateTA_ADR_ValueTA_ADXTA_ADXRTA_ADXR_CloneTA_ADXR_OpenTA_ADXR_OpenAndFillTA_ADXR_PeekTA_ADXR_UpdateTA_ADXR_ValueTA_ADX_CloneTA_ADX_OpenTA_ADX_OpenAndFillTA_ADX_PeekTA_ADX_UpdateTA_ADX_ValueTA_AD_CloneTA_AD_OpenTA_AD_OpenAndFillTA_AD_PeekTA_AD_UpdateTA_AD_ValueTA_AOTA_AO_CloneTA_AO_OpenTA_AO_OpenAndFillTA_AO_PeekTA_AO_UpdateTA_AO_ValueTA_APOTA_APO_CloneTA_APO_OpenTA_APO_OpenAndFillTA_APO_PeekTA_APO_UpdateTA_APO_ValueTA_AROONTA_AROONOSCTA_AROONOSC_CloneTA_AROONOSC_OpenTA_AROONOSC_OpenAndFillTA_AROONOSC_PeekTA_AROONOSC_UpdateTA_AROONOSC_ValueTA_AROON_CloneTA_AROON_OpenTA_AROON_OpenAndFillTA_AROON_PeekTA_AROON_UpdateTA_AROON_ValueTA_ASINTA_ASIN_CloneTA_ASIN_OpenTA_ASIN_OpenAndFillTA_ASIN_PeekTA_ASIN_UpdateTA_ASIN_ValueTA_ATANTA_ATAN_CloneTA_ATAN_OpenTA_ATAN_OpenAndFillTA_ATAN_PeekTA_ATAN_UpdateTA_ATAN_ValueTA_ATRTA_ATR_CloneTA_ATR_OpenTA_ATR_OpenAndFillTA_ATR_PeekTA_ATR_UpdateTA_ATR_ValueTA_AVGDEVTA_AVGDEV_CloneTA_AVGDEV_OpenTA_AVGDEV_OpenAndFillTA_AVGDEV_PeekTA_AVGDEV_UpdateTA_AVGDEV_ValueTA_AVGPRICETA_AVGPRICE_CloneTA_AVGPRICE_OpenTA_AVGPRICE_OpenAndFillTA_AVGPRICE_PeekTA_AVGPRICE_UpdateTA_AVGPRICE_ValueTA_BBANDSTA_BBANDS_CloneTA_BBANDS_OpenTA_BBANDS_OpenAndFillTA_BBANDS_PeekTA_BBANDS_UpdateTA_BBANDS_ValueTA_BETATA_BETA_CloneTA_BETA_OpenTA_BETA_OpenAndFillTA_BETA_PeekTA_BETA_UpdateTA_BETA_ValueTA_BOPTA_BOP_CloneTA_BOP_OpenTA_BOP_OpenAndFillTA_BOP_PeekTA_BOP_UpdateTA_BOP_ValueTA_CCITA_CCI_CloneTA_CCI_OpenTA_CCI_OpenAndFillTA_CCI_PeekTA_CCI_UpdateTA_CCI_ValueTA_CDL2CROWSTA_CDL2CROWS_CloneTA_CDL2CROWS_OpenTA_CDL2CROWS_OpenAndFillTA_CDL2CROWS_PeekTA_CDL2CROWS_UpdateTA_CDL2CROWS_ValueTA_CDL3BLACKCROWSTA_CDL3BLACKCROWS_CloneTA_CDL3BLACKCROWS_OpenTA_CDL3BLACKCROWS_OpenAnd""FillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSIDE_CloneTA_CDL3INSIDE_OpenTA_CDL3INSIDE_OpenAndFillTA_CDL3INSIDE_PeekTA_CDL3INSIDE_UpdateTA_CDL3INSIDE_ValueTA_CDL3LINESTRIKETA_CDL3LINESTRIKE_CloneTA_CDL3LINESTRIKE_OpenTA_CDL3LINESTRIKE_OpenAndFillTA_CDL3LINESTRIKE_PeekTA_CDL3LINESTRIKE_UpdateTA_CDL3LINESTRIKE_ValueTA_CDL3OUTSIDETA_CDL3OUTSIDE_CloneTA_CDL3OUTSIDE_OpenTA_CDL3OUTSIDE_OpenAndFillTA_CDL3OUTSIDE_PeekTA_CDL3OUTSIDE_UpdateTA_CDL3OUTSIDE_ValueTA_CDL3STARSINSOUTHTA_CDL3STARSINSOUTH_CloneTA_CDL3STARSINSOUTH_OpenTA_CDL3STARSINSOUTH_OpenAndFillTA_CDL3STARSINSOUTH_PeekTA_CDL3STARSINSOUTH_UpdateTA_CDL3STARSINSOUTH_ValueTA_CDL3WHITESOLDIERSTA_CDL3WHITESOLDIERS_CloneTA_CDL3WHITESOLDIERS_OpenTA_CDL3WHITESOLDIERS_OpenAndFillTA_CDL3WHITESOLDIERS_PeekTA_CDL3WHITESOLDIERS_UpdateTA_CDL3WHITESOLDIERS_ValueTA_CDLABANDONEDBABYTA_CDLABANDONEDBABY_CloneTA_CDLABANDONEDBABY_OpenTA_CDLABANDONEDBABY_OpenAndFillTA_CDLABANDONEDBABY_PeekTA_CDLABANDONEDBABY_UpdateTA_CDLABANDONEDBABY_ValueTA_CDLADVANCEBLOCKTA_CDLADVANCEBLOCK_CloneTA_CDLADVANCEBLOCK_OpenTA_CDLADVANCEBLOCK_OpenAndFillTA_CDLADVANCEBLOCK_PeekTA_CDLADVANCEBLOCK_UpdateTA_CDLADVANCEBLOCK_ValueTA_CDLBELTHOLDTA_CDLBELTHOLD_CloneTA_CDLBELTHOLD_OpenTA_CDLBELTHOLD_OpenAndFillTA_CDLBELTHOLD_PeekTA_CDLBELTHOLD_UpdateTA_CDLBELTHOLD_ValueTA_CDLBREAKAWAYTA_CDLBREAKAWAY_CloneTA_CDLBREAKAWAY_OpenTA_CDLBREAKAWAY_OpenAndFillTA_CDLBREAKAWAY_PeekTA_CDLBREAKAWAY_UpdateTA_CDLBREAKAWAY_ValueTA_CDLCLOSINGMARUBOZUTA_CDLCLOSINGMARUBOZU_CloneTA_CDLCLOSINGMARUBOZU_OpenTA_CDLCLOSINGMARUBOZU_OpenAndFillTA_CDLCLOSINGMARUBOZU_PeekTA_CDLCLOSINGMARUBOZU_UpdateTA_CDLCLOSINGMARUBOZU_ValueTA_CDLCONCEALBABYSWALLTA_CDLCONCEALBABYSWALL_CloneTA_CDLCONCEALBABYSWALL_OpenTA_CDLCONCEALBABYSWALL_OpenAndFillTA_CDLCONCEALBABYSWALL_PeekTA_CDLCONCEALBABYSWALL_UpdateTA_CDLCONCEALBABYSWALL_ValueTA_CDLCOUNTERATTACKTA_CDLCOUNTERATTACK_CloneTA_CDLCOUNTERATTACK_OpenTA_CDLCOUNTERATTACK_OpenAndFillTA_CDLCOUNTERATTACK_PeekTA_CDLCOU""NTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_CDLDARKCLOUDCOVER_ValueTA_CDLDOJITA_CDLDOJISTARTA_CDLDOJISTAR_CloneTA_CDLDOJISTAR_OpenTA_CDLDOJISTAR_OpenAndFillTA_CDLDOJISTAR_PeekTA_CDLDOJISTAR_UpdateTA_CDLDOJISTAR_ValueTA_CDLDOJI_CloneTA_CDLDOJI_OpenTA_CDLDOJI_OpenAndFillTA_CDLDOJI_PeekTA_CDLDOJI_UpdateTA_CDLDOJI_ValueTA_CDLDRAGONFLYDOJITA_CDLDRAGONFLYDOJI_CloneTA_CDLDRAGONFLYDOJI_OpenTA_CDLDRAGONFLYDOJI_OpenAndFillTA_CDLDRAGONFLYDOJI_PeekTA_CDLDRAGONFLYDOJI_UpdateTA_CDLDRAGONFLYDOJI_ValueTA_CDLENGULFINGTA_CDLENGULFING_CloneTA_CDLENGULFING_OpenTA_CDLENGULFING_OpenAndFillTA_CDLENGULFING_PeekTA_CDLENGULFING_UpdateTA_CDLENGULFING_ValueTA_CDLEVENINGDOJISTARTA_CDLEVENINGDOJISTAR_CloneTA_CDLEVENINGDOJISTAR_OpenTA_CDLEVENINGDOJISTAR_OpenAndFillTA_CDLEVENINGDOJISTAR_PeekTA_CDLEVENINGDOJISTAR_UpdateTA_CDLEVENINGDOJISTAR_ValueTA_CDLEVENINGSTARTA_CDLEVENINGSTAR_CloneTA_CDLEVENINGSTAR_OpenTA_CDLEVENINGSTAR_OpenAndFillTA_CDLEVENINGSTAR_PeekTA_CDLEVENINGSTAR_UpdateTA_CDLEVENINGSTAR_ValueTA_CDLGAPSIDESIDEWHITETA_CDLGAPSIDESIDEWHITE_CloneTA_CDLGAPSIDESIDEWHITE_OpenTA_CDLGAPSIDESIDEWHITE_OpenAndFillTA_CDLGAPSIDESIDEWHITE_PeekTA_CDLGAPSIDESIDEWHITE_UpdateTA_CDLGAPSIDESIDEWHITE_ValueTA_CDLGRAVESTONEDOJITA_CDLGRAVESTONEDOJI_CloneTA_CDLGRAVESTONEDOJI_OpenTA_CDLGRAVESTONEDOJI_OpenAndFillTA_CDLGRAVESTONEDOJI_PeekTA_CDLGRAVESTONEDOJI_UpdateTA_CDLGRAVESTONEDOJI_ValueTA_CDLHAMMERTA_CDLHAMMER_CloneTA_CDLHAMMER_OpenTA_CDLHAMMER_OpenAndFillTA_CDLHAMMER_PeekTA_CDLHAMMER_UpdateTA_CDLHAMMER_ValueTA_CDLHANGINGMANTA_CDLHANGINGMAN_CloneTA_CDLHANGINGMAN_OpenTA_CDLHANGINGMAN_OpenAndFillTA_CDLHANGINGMAN_PeekTA_CDLHANGINGMAN_UpdateTA_CDLHANGINGMAN_ValueTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHARAMICROSS_CloneTA_CDLHARAMICROSS_OpenTA_CDLHARAMICROSS_OpenAndFillTA_CDLHARAMICROSS_PeekTA_CDLHARAMICROSS_UpdateTA_CDLHARAMICROSS_ValueTA_CDLHARAMI_CloneTA_CDLHARAMI_Op""enTA_CDLHARAMI_OpenAndFillTA_CDLHARAMI_PeekTA_CDLHARAMI_UpdateTA_CDLHARAMI_ValueTA_CDLHIGHWAVETA_CDLHIGHWAVE_CloneTA_CDLHIGHWAVE_OpenTA_CDLHIGHWAVE_OpenAndFillTA_CDLHIGHWAVE_PeekTA_CDLHIGHWAVE_UpdateTA_CDLHIGHWAVE_ValueTA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHIKKAKEMOD_CloneTA_CDLHIKKAKEMOD_OpenTA_CDLHIKKAKEMOD_OpenAndFillTA_CDLHIKKAKEMOD_PeekTA_CDLHIKKAKEMOD_UpdateTA_CDLHIKKAKEMOD_ValueTA_CDLHIKKAKE_CloneTA_CDLHIKKAKE_OpenTA_CDLHIKKAKE_OpenAndFillTA_CDLHIKKAKE_PeekTA_CDLHIKKAKE_UpdateTA_CDLHIKKAKE_ValueTA_CDLHOMINGPIGEONTA_CDLHOMINGPIGEON_CloneTA_CDLHOMINGPIGEON_OpenTA_CDLHOMINGPIGEON_OpenAndFillTA_CDLHOMINGPIGEON_PeekTA_CDLHOMINGPIGEON_UpdateTA_CDLHOMINGPIGEON_ValueTA_CDLIDENTICAL3CROWSTA_CDLIDENTICAL3CROWS_CloneTA_CDLIDENTICAL3CROWS_OpenTA_CDLIDENTICAL3CROWS_OpenAndFillTA_CDLIDENTICAL3CROWS_PeekTA_CDLIDENTICAL3CROWS_UpdateTA_CDLIDENTICAL3CROWS_ValueTA_CDLINNECKTA_CDLINNECK_CloneTA_CDLINNECK_OpenTA_CDLINNECK_OpenAndFillTA_CDLINNECK_PeekTA_CDLINNECK_UpdateTA_CDLINNECK_ValueTA_CDLINVERTEDHAMMERTA_CDLINVERTEDHAMMER_CloneTA_CDLINVERTEDHAMMER_OpenTA_CDLINVERTEDHAMMER_OpenAndFillTA_CDLINVERTEDHAMMER_PeekTA_CDLINVERTEDHAMMER_UpdateTA_CDLINVERTEDHAMMER_ValueTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLKICKINGBYLENGTH_CloneTA_CDLKICKINGBYLENGTH_OpenTA_CDLKICKINGBYLENGTH_OpenAndFillTA_CDLKICKINGBYLENGTH_PeekTA_CDLKICKINGBYLENGTH_UpdateTA_CDLKICKINGBYLENGTH_ValueTA_CDLKICKING_CloneTA_CDLKICKING_OpenTA_CDLKICKING_OpenAndFillTA_CDLKICKING_PeekTA_CDLKICKING_UpdateTA_CDLKICKING_ValueTA_CDLLADDERBOTTOMTA_CDLLADDERBOTTOM_CloneTA_CDLLADDERBOTTOM_OpenTA_CDLLADDERBOTTOM_OpenAndFillTA_CDLLADDERBOTTOM_PeekTA_CDLLADDERBOTTOM_UpdateTA_CDLLADDERBOTTOM_ValueTA_CDLLONGLEGGEDDOJITA_CDLLONGLEGGEDDOJI_CloneTA_CDLLONGLEGGEDDOJI_OpenTA_CDLLONGLEGGEDDOJI_OpenAndFillTA_CDLLONGLEGGEDDOJI_PeekTA_CDLLONGLEGGEDDOJI_UpdateTA_CDLLONGLEGGEDDOJI_ValueTA_CDLLONGLINETA_CDLLONGLINE_CloneTA_CDLLONGLINE_OpenTA_CDLLONGLINE_OpenAndFillTA_CDLLONGLINE_PeekTA_CDLLONGLINE_UpdateTA_CDLLONGLINE_ValueTA_CDLMARUBOZUTA_CDLMARUBOZU""_CloneTA_CDLMARUBOZU_OpenTA_CDLMARUBOZU_OpenAndFillTA_CDLMARUBOZU_PeekTA_CDLMARUBOZU_UpdateTA_CDLMARUBOZU_ValueTA_CDLMATCHINGLOWTA_CDLMATCHINGLOW_CloneTA_CDLMATCHINGLOW_OpenTA_CDLMATCHINGLOW_OpenAndFillTA_CDLMATCHINGLOW_PeekTA_CDLMATCHINGLOW_UpdateTA_CDLMATCHINGLOW_ValueTA_CDLMATHOLDTA_CDLMATHOLD_CloneTA_CDLMATHOLD_OpenTA_CDLMATHOLD_OpenAndFillTA_CDLMATHOLD_PeekTA_CDLMATHOLD_UpdateTA_CDLMATHOLD_ValueTA_CDLMORNINGDOJISTARTA_CDLMORNINGDOJISTAR_CloneTA_CDLMORNINGDOJISTAR_OpenTA_CDLMORNINGDOJISTAR_OpenAndFillTA_CDLMORNINGDOJISTAR_PeekTA_CDLMORNINGDOJISTAR_UpdateTA_CDLMORNINGDOJISTAR_ValueTA_CDLMORNINGSTARTA_CDLMORNINGSTAR_CloneTA_CDLMORNINGSTAR_OpenTA_CDLMORNINGSTAR_OpenAndFillTA_CDLMORNINGSTAR_PeekTA_CDLMORNINGSTAR_UpdateTA_CDLMORNINGSTAR_ValueTA_CDLONNECKTA_CDLONNECK_CloneTA_CDLONNECK_OpenTA_CDLONNECK_OpenAndFillTA_CDLONNECK_PeekTA_CDLONNECK_UpdateTA_CDLONNECK_ValueTA_CDLPIERCINGTA_CDLPIERCING_CloneTA_CDLPIERCING_OpenTA_CDLPIERCING_OpenAndFillTA_CDLPIERCING_PeekTA_CDLPIERCING_UpdateTA_CDLPIERCING_ValueTA_CDLRICKSHAWMANTA_CDLRICKSHAWMAN_CloneTA_CDLRICKSHAWMAN_OpenTA_CDLRICKSHAWMAN_OpenAndFillTA_CDLRICKSHAWMAN_PeekTA_CDLRICKSHAWMAN_UpdateTA_CDLRICKSHAWMAN_ValueTA_CDLRISEFALL3METHODSTA_CDLRISEFALL3METHODS_CloneTA_CDLRISEFALL3METHODS_OpenTA_CDLRISEFALL3METHODS_OpenAndFillTA_CDLRISEFALL3METHODS_PeekTA_CDLRISEFALL3METHODS_UpdateTA_CDLRISEFALL3METHODS_ValueTA_CDLSEPARATINGLINESTA_CDLSEPARATINGLINES_CloneTA_CDLSEPARATINGLINES_OpenTA_CDLSEPARATINGLINES_OpenAndFillTA_CDLSEPARATINGLINES_PeekTA_CDLSEPARATINGLINES_UpdateTA_CDLSEPARATINGLINES_ValueTA_CDLSHOOTINGSTARTA_CDLSHOOTINGSTAR_CloneTA_CDLSHOOTINGSTAR_OpenTA_CDLSHOOTINGSTAR_OpenAndFillTA_CDLSHOOTINGSTAR_PeekTA_CDLSHOOTINGSTAR_UpdateTA_CDLSHOOTINGSTAR_ValueTA_CDLSHORTLINETA_CDLSHORTLINE_CloneTA_CDLSHORTLINE_OpenTA_CDLSHORTLINE_OpenAndFillTA_CDLSHORTLINE_PeekTA_CDLSHORTLINE_UpdateTA_CDLSHORTLINE_ValueTA_CDLSPINNINGTOPTA_CDLSPINNINGTOP_CloneTA_CDLSPINNINGTOP_OpenTA_CDLSPINNINGTOP_OpenAndFillTA_CDLSPINNINGTOP_PeekTA_CDLSPINNINGTO""P_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPATTERN_ValueTA_CDLSTICKSANDWICHTA_CDLSTICKSANDWICH_CloneTA_CDLSTICKSANDWICH_OpenTA_CDLSTICKSANDWICH_OpenAndFillTA_CDLSTICKSANDWICH_PeekTA_CDLSTICKSANDWICH_UpdateTA_CDLSTICKSANDWICH_ValueTA_CDLTAKURITA_CDLTAKURI_CloneTA_CDLTAKURI_OpenTA_CDLTAKURI_OpenAndFillTA_CDLTAKURI_PeekTA_CDLTAKURI_UpdateTA_CDLTAKURI_ValueTA_CDLTASUKIGAPTA_CDLTASUKIGAP_CloneTA_CDLTASUKIGAP_OpenTA_CDLTASUKIGAP_OpenAndFillTA_CDLTASUKIGAP_PeekTA_CDLTASUKIGAP_UpdateTA_CDLTASUKIGAP_ValueTA_CDLTHRUSTINGTA_CDLTHRUSTING_CloneTA_CDLTHRUSTING_OpenTA_CDLTHRUSTING_OpenAndFillTA_CDLTHRUSTING_PeekTA_CDLTHRUSTING_UpdateTA_CDLTHRUSTING_ValueTA_CDLTRISTARTA_CDLTRISTAR_CloneTA_CDLTRISTAR_OpenTA_CDLTRISTAR_OpenAndFillTA_CDLTRISTAR_PeekTA_CDLTRISTAR_UpdateTA_CDLTRISTAR_ValueTA_CDLUNIQUE3RIVERTA_CDLUNIQUE3RIVER_CloneTA_CDLUNIQUE3RIVER_OpenTA_CDLUNIQUE3RIVER_OpenAndFillTA_CDLUNIQUE3RIVER_PeekTA_CDLUNIQUE3RIVER_UpdateTA_CDLUNIQUE3RIVER_ValueTA_CDLUPSIDEGAP2CROWSTA_CDLUPSIDEGAP2CROWS_CloneTA_CDLUPSIDEGAP2CROWS_OpenTA_CDLUPSIDEGAP2CROWS_OpenAndFillTA_CDLUPSIDEGAP2CROWS_PeekTA_CDLUPSIDEGAP2CROWS_UpdateTA_CDLUPSIDEGAP2CROWS_ValueTA_CDLXSIDEGAP3METHODSTA_CDLXSIDEGAP3METHODS_CloneTA_CDLXSIDEGAP3METHODS_OpenTA_CDLXSIDEGAP3METHODS_OpenAndFillTA_CDLXSIDEGAP3METHODS_PeekTA_CDLXSIDEGAP3METHODS_UpdateTA_CDLXSIDEGAP3METHODS_ValueTA_CEILTA_CEIL_CloneTA_CEIL_OpenTA_CEIL_OpenAndFillTA_CEIL_PeekTA_CEIL_UpdateTA_CEIL_ValueTA_CMFTA_CMF_CloneTA_CMF_OpenTA_CMF_OpenAndFillTA_CMF_PeekTA_CMF_UpdateTA_CMF_ValueTA_CMOTA_CMOUTA_CMOU_CloneTA_CMOU_OpenTA_CMOU_OpenAndFillTA_CMOU_PeekTA_CMOU_UpdateTA_CMOU_ValueTA_CMO_CloneTA_CMO_OpenTA_CMO_OpenAndFillTA_CMO_PeekTA_CMO_UpdateTA_CMO_ValueTA_COPPOCKTA_COPPOCK_CloneTA_COPPOCK_OpenTA_COPPOCK_OpenAndFillTA_COPPOCK_PeekTA_COPPOCK_UpdateTA_COPPOCK_ValueTA_CORRELTA_CORREL_CloneTA_CORREL_OpenTA_CORREL_OpenAndFil""lTA_CORREL_PeekTA_CORREL_UpdateTA_CORREL_ValueTA_COSTA_COSHTA_COSH_CloneTA_COSH_OpenTA_COSH_OpenAndFillTA_COSH_PeekTA_COSH_UpdateTA_COSH_ValueTA_COS_CloneTA_COS_OpenTA_COS_OpenAndFillTA_COS_PeekTA_COS_UpdateTA_COS_ValueTA_CUMSUMTA_CUMSUM_CloneTA_CUMSUM_OpenTA_CUMSUM_OpenAndFillTA_CUMSUM_PeekTA_CUMSUM_UpdateTA_CUMSUM_ValueTA_CVITA_CVI_CloneTA_CVI_OpenTA_CVI_OpenAndFillTA_CVI_PeekTA_CVI_UpdateTA_CVI_ValueTA_DEMATA_DEMA_CloneTA_DEMA_OpenTA_DEMA_OpenAndFillTA_DEMA_PeekTA_DEMA_UpdateTA_DEMA_ValueTA_DIVTA_DIV_CloneTA_DIV_OpenTA_DIV_OpenAndFillTA_DIV_PeekTA_DIV_UpdateTA_DIV_ValueTA_DONCHIANTA_DONCHIAN_CloneTA_DONCHIAN_OpenTA_DONCHIAN_OpenAndFillTA_DONCHIAN_PeekTA_DONCHIAN_UpdateTA_DONCHIAN_ValueTA_DPOTA_DPO_CloneTA_DPO_OpenTA_DPO_OpenAndFillTA_DPO_PeekTA_DPO_UpdateTA_DPO_ValueTA_DXTA_DX_CloneTA_DX_OpenTA_DX_OpenAndFillTA_DX_PeekTA_DX_UpdateTA_DX_ValueTA_EFITA_EFI_CloneTA_EFI_OpenTA_EFI_OpenAndFillTA_EFI_PeekTA_EFI_UpdateTA_EFI_ValueTA_EMATA_EMA_CloneTA_EMA_OpenTA_EMA_OpenAndFillTA_EMA_PeekTA_EMA_UpdateTA_EMA_ValueTA_ERTA_ERITA_ERI_CloneTA_ERI_OpenTA_ERI_OpenAndFillTA_ERI_PeekTA_ERI_UpdateTA_ERI_ValueTA_ER_CloneTA_ER_OpenTA_ER_OpenAndFillTA_ER_PeekTA_ER_UpdateTA_ER_ValueTA_EXPTA_EXP_CloneTA_EXP_OpenTA_EXP_OpenAndFillTA_EXP_PeekTA_EXP_UpdateTA_EXP_ValueTA_FLOORTA_FLOOR_CloneTA_FLOOR_OpenTA_FLOOR_OpenAndFillTA_FLOOR_PeekTA_FLOOR_UpdateTA_FLOOR_ValueTA_FOSCTA_FOSC_CloneTA_FOSC_OpenTA_FOSC_OpenAndFillTA_FOSC_PeekTA_FOSC_UpdateTA_FOSC_ValueTA_FRACTALTA_FRACTAL_CloneTA_FRACTAL_OpenTA_FRACTAL_OpenAndFillTA_FRACTAL_PeekTA_FRACTAL_UpdateTA_FRACTAL_ValueTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HA_CloneTA_HA_OpenTA_HA_OpenAndFillTA_HA_PeekTA_HA_UpdateTA_HA_ValueTA_HMATA_HMA_CloneTA_HMA_OpenTA_HMA_OpenAndFillTA_HMA_PeekTA_HMA_UpdateTA_HMA_ValueTA_HT_DCPERIODTA_HT_DCPERIOD_CloneTA_HT_DCPERIOD_OpenTA_HT_DCPERIOD_OpenAndFil""lTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_HT_DCPHASE_OpenTA_HT_DCPHASE_OpenAndFillTA_HT_DCPHASE_PeekTA_HT_DCPHASE_UpdateTA_HT_DCPHASE_ValueTA_HT_PHASORTA_HT_PHASOR_CloneTA_HT_PHASOR_OpenTA_HT_PHASOR_OpenAndFillTA_HT_PHASOR_PeekTA_HT_PHASOR_UpdateTA_HT_PHASOR_ValueTA_HT_SINETA_HT_SINE_CloneTA_HT_SINE_OpenTA_HT_SINE_OpenAndFillTA_HT_SINE_PeekTA_HT_SINE_UpdateTA_HT_SINE_ValueTA_HT_TRENDLINETA_HT_TRENDLINE_CloneTA_HT_TRENDLINE_OpenTA_HT_TRENDLINE_OpenAndFillTA_HT_TRENDLINE_PeekTA_HT_TRENDLINE_UpdateTA_HT_TRENDLINE_ValueTA_HT_TRENDMODETA_HT_TRENDMODE_CloneTA_HT_TRENDMODE_OpenTA_HT_TRENDMODE_OpenAndFillTA_HT_TRENDMODE_PeekTA_HT_TRENDMODE_UpdateTA_HT_TRENDMODE_ValueTA_IMITA_IMI_CloneTA_IMI_OpenTA_IMI_OpenAndFillTA_IMI_PeekTA_IMI_UpdateTA_IMI_ValueTA_INPUT_FLAGSTA_InitializeTA_KAMATA_KAMA_CloneTA_KAMA_OpenTA_KAMA_OpenAndFillTA_KAMA_PeekTA_KAMA_UpdateTA_KAMA_ValueTA_KCTA_KC_CloneTA_KC_OpenTA_KC_OpenAndFillTA_KC_PeekTA_KC_UpdateTA_KC_ValueTA_KDJTA_KDJ_CloneTA_KDJ_OpenTA_KDJ_OpenAndFillTA_KDJ_PeekTA_KDJ_UpdateTA_KDJ_ValueTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_ANGLE_CloneTA_LINEARREG_ANGLE_OpenTA_LINEARREG_ANGLE_OpenAndFillTA_LINEARREG_ANGLE_PeekTA_LINEARREG_ANGLE_UpdateTA_LINEARREG_ANGLE_ValueTA_LINEARREG_CloneTA_LINEARREG_INTERCEPTTA_LINEARREG_INTERCEPT_CloneTA_LINEARREG_INTERCEPT_OpenTA_LINEARREG_INTERCEPT_OpenAndFillTA_LINEARREG_INTERCEPT_PeekTA_LINEARREG_INTERCEPT_UpdateTA_LINEARREG_INTERCEPT_ValueTA_LINEARREG_OpenTA_LINEARREG_OpenAndFillTA_LINEARREG_PeekTA_LINEARREG_SLOPETA_LINEARREG_SLOPE_CloneTA_LINEARREG_SLOPE_OpenTA_LINEARREG_SLOPE_OpenAndFillTA_LINEARREG_SLOPE_PeekTA_LINEARREG_SLOPE_UpdateTA_LINEARREG_SLOPE_ValueTA_LINEARREG_UpdateTA_LINEARREG_ValueTA_LNTA_LN_CloneTA_LN_OpenTA_LN_OpenAndFillTA_LN_PeekTA_LN_UpdateTA_LN_ValueTA_LOG10TA_LOG10_CloneTA_LOG10_OpenTA_LOG10_OpenAndFillTA_LOG10_PeekTA_LOG10_UpdateTA_LOG10_ValueTA_MATA_MACDTA_MACDEXTTA_MACDEXT_CloneTA_MACDEXT_OpenTA_MACDEXT_OpenAndFillTA_MACDEXT_PeekTA_""MACDEXT_UpdateTA_MACDEXT_ValueTA_MACDFIXTA_MACDFIX_CloneTA_MACDFIX_OpenTA_MACDFIX_OpenAndFillTA_MACDFIX_PeekTA_MACDFIX_UpdateTA_MACDFIX_ValueTA_MACD_CloneTA_MACD_OpenTA_MACD_OpenAndFillTA_MACD_PeekTA_MACD_UpdateTA_MACD_ValueTA_MAMATA_MAMA_CloneTA_MAMA_OpenTA_MAMA_OpenAndFillTA_MAMA_PeekTA_MAMA_UpdateTA_MAMA_ValueTA_MARKETFITA_MARKETFI_CloneTA_MARKETFI_OpenTA_MARKETFI_OpenAndFillTA_MARKETFI_PeekTA_MARKETFI_UpdateTA_MARKETFI_ValueTA_MASSITA_MASSI_CloneTA_MASSI_OpenTA_MASSI_OpenAndFillTA_MASSI_PeekTA_MASSI_UpdateTA_MASSI_ValueTA_MAVPTA_MAVP_CloneTA_MAVP_OpenTA_MAVP_OpenAndFillTA_MAVP_PeekTA_MAVP_UpdateTA_MAVP_ValueTA_MAXTA_MAXINDEXTA_MAXINDEX_CloneTA_MAXINDEX_OpenTA_MAXINDEX_OpenAndFillTA_MAXINDEX_PeekTA_MAXINDEX_UpdateTA_MAXINDEX_ValueTA_MAX_CloneTA_MAX_OpenTA_MAX_OpenAndFillTA_MAX_PeekTA_MAX_UpdateTA_MAX_ValueTA_MA_CloneTA_MA_OpenTA_MA_OpenAndFillTA_MA_PeekTA_MA_UpdateTA_MA_ValueTA_MEDPRICETA_MEDPRICE_CloneTA_MEDPRICE_OpenTA_MEDPRICE_OpenAndFillTA_MEDPRICE_PeekTA_MEDPRICE_UpdateTA_MEDPRICE_ValueTA_MFITA_MFI_CloneTA_MFI_OpenTA_MFI_OpenAndFillTA_MFI_PeekTA_MFI_UpdateTA_MFI_ValueTA_MIDPOINTTA_MIDPOINT_CloneTA_MIDPOINT_OpenTA_MIDPOINT_OpenAndFillTA_MIDPOINT_PeekTA_MIDPOINT_UpdateTA_MIDPOINT_ValueTA_MIDPRICETA_MIDPRICE_CloneTA_MIDPRICE_OpenTA_MIDPRICE_OpenAndFillTA_MIDPRICE_PeekTA_MIDPRICE_UpdateTA_MIDPRICE_ValueTA_MINTA_MININDEXTA_MININDEX_CloneTA_MININDEX_OpenTA_MININDEX_OpenAndFillTA_MININDEX_PeekTA_MININDEX_UpdateTA_MININDEX_ValueTA_MINMAXTA_MINMAXINDEXTA_MINMAXINDEX_CloneTA_MINMAXINDEX_OpenTA_MINMAXINDEX_OpenAndFillTA_MINMAXINDEX_PeekTA_MINMAXINDEX_UpdateTA_MINMAXINDEX_ValueTA_MINMAX_CloneTA_MINMAX_OpenTA_MINMAX_OpenAndFillTA_MINMAX_PeekTA_MINMAX_UpdateTA_MINMAX_ValueTA_MINUS_DITA_MINUS_DI_CloneTA_MINUS_DI_OpenTA_MINUS_DI_OpenAndFillTA_MINUS_DI_PeekTA_MINUS_DI_UpdateTA_MINUS_DI_ValueTA_MINUS_DMTA_MINUS_DM_CloneTA_MINUS_DM_OpenTA_MINUS_DM_OpenAndFillTA_MINUS_DM_PeekTA_MINUS_DM_UpdateTA_MINUS_DM_ValueTA_MIN_CloneTA_MIN_OpenTA_MIN_OpenAndFillTA_MIN_PeekTA_MIN_UpdateTA_M""IN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MULTTA_MULT_CloneTA_MULT_OpenTA_MULT_OpenAndFillTA_MULT_PeekTA_MULT_UpdateTA_MULT_ValueTA_NATRTA_NATR_CloneTA_NATR_OpenTA_NATR_OpenAndFillTA_NATR_PeekTA_NATR_UpdateTA_NATR_ValueTA_NVITA_NVI_CloneTA_NVI_OpenTA_NVI_OpenAndFillTA_NVI_PeekTA_NVI_UpdateTA_NVI_ValueTA_OBVTA_OBV_CloneTA_OBV_OpenTA_OBV_OpenAndFillTA_OBV_PeekTA_OBV_UpdateTA_OBV_ValueTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTILE_CloneTA_PERCENTILE_OpenTA_PERCENTILE_OpenAndFillTA_PERCENTILE_PeekTA_PERCENTILE_UpdateTA_PERCENTILE_ValueTA_PERCENTRANKTA_PERCENTRANK_CloneTA_PERCENTRANK_OpenTA_PERCENTRANK_OpenAndFillTA_PERCENTRANK_PeekTA_PERCENTRANK_UpdateTA_PERCENTRANK_ValueTA_PLUS_DITA_PLUS_DI_CloneTA_PLUS_DI_OpenTA_PLUS_DI_OpenAndFillTA_PLUS_DI_PeekTA_PLUS_DI_UpdateTA_PLUS_DI_ValueTA_PLUS_DMTA_PLUS_DM_CloneTA_PLUS_DM_OpenTA_PLUS_DM_OpenAndFillTA_PLUS_DM_PeekTA_PLUS_DM_UpdateTA_PLUS_DM_ValueTA_PPOTA_PPO_CloneTA_PPO_OpenTA_PPO_OpenAndFillTA_PPO_PeekTA_PPO_UpdateTA_PPO_ValueTA_PVITA_PVI_CloneTA_PVI_OpenTA_PVI_OpenAndFillTA_PVI_PeekTA_PVI_UpdateTA_PVI_ValueTA_PVOTA_PVO_CloneTA_PVO_OpenTA_PVO_OpenAndFillTA_PVO_PeekTA_PVO_UpdateTA_PVO_ValueTA_PVTTA_PVT_CloneTA_PVT_OpenTA_PVT_OpenAndFillTA_PVT_PeekTA_PVT_UpdateTA_PVT_ValueTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_QSTICK_CloneTA_QSTICK_OpenTA_QSTICK_OpenAndFillTA_QSTICK_PeekTA_QSTICK_UpdateTA_QSTICK_ValueTA_RMATA_RMA_CloneTA_RMA_OpenTA_RMA_OpenAndFillTA_RMA_PeekTA_RMA_UpdateTA_RMA_ValueTA_ROCTA_ROCPTA_ROCP_CloneTA_ROCP_OpenTA_ROCP_OpenAndFillTA_ROCP_PeekTA_ROCP_UpdateTA_ROCP_ValueTA_ROCRTA_ROCR100TA_ROCR100_CloneTA_ROCR100_OpenTA_ROCR100_OpenAndFillTA_ROCR100_PeekTA_ROCR100_UpdateTA_ROCR100_ValueTA_ROCR_CloneTA_ROCR_OpenTA_ROCR_OpenAndFillTA_ROCR_PeekTA_ROCR_UpdateTA_ROCR_ValueTA_ROC_CloneTA_ROC_OpenTA_ROC_OpenAndFillTA_ROC_PeekTA_ROC_UpdateTA_ROC_ValueTA_RSITA_RSI_CloneTA_RSI_OpenTA_RSI_OpenAndFillTA_RSI_PeekTA_RSI_UpdateTA_RSI_ValueTA_RVITA_RVI_CloneTA_RVI_OpenTA_RVI_OpenAn""dFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_RVOL_OpenAndFillTA_RVOL_PeekTA_RVOL_UpdateTA_RVOL_ValueTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SAREXT_CloneTA_SAREXT_OpenTA_SAREXT_OpenAndFillTA_SAREXT_PeekTA_SAREXT_UpdateTA_SAREXT_ValueTA_SAR_CloneTA_SAR_OpenTA_SAR_OpenAndFillTA_SAR_PeekTA_SAR_UpdateTA_SAR_ValueTA_SINTA_SINHTA_SINH_CloneTA_SINH_OpenTA_SINH_OpenAndFillTA_SINH_PeekTA_SINH_UpdateTA_SINH_ValueTA_SIN_CloneTA_SIN_OpenTA_SIN_OpenAndFillTA_SIN_PeekTA_SIN_UpdateTA_SIN_ValueTA_SMATA_SMA_CloneTA_SMA_OpenTA_SMA_OpenAndFillTA_SMA_PeekTA_SMA_UpdateTA_SMA_ValueTA_SMITA_SMI_CloneTA_SMI_OpenTA_SMI_OpenAndFillTA_SMI_PeekTA_SMI_UpdateTA_SMI_ValueTA_SQRTTA_SQRT_CloneTA_SQRT_OpenTA_SQRT_OpenAndFillTA_SQRT_PeekTA_SQRT_UpdateTA_SQRT_ValueTA_STDDEVTA_STDDEV_CloneTA_STDDEV_OpenTA_STDDEV_OpenAndFillTA_STDDEV_PeekTA_STDDEV_UpdateTA_STDDEV_ValueTA_STOCHTA_STOCHFTA_STOCHF_CloneTA_STOCHF_OpenTA_STOCHF_OpenAndFillTA_STOCHF_PeekTA_STOCHF_UpdateTA_STOCHF_ValueTA_STOCHRSITA_STOCHRSI_CloneTA_STOCHRSI_OpenTA_STOCHRSI_OpenAndFillTA_STOCHRSI_PeekTA_STOCHRSI_UpdateTA_STOCHRSI_ValueTA_STOCH_CloneTA_STOCH_OpenTA_STOCH_OpenAndFillTA_STOCH_PeekTA_STOCH_UpdateTA_STOCH_ValueTA_SUBTA_SUB_CloneTA_SUB_OpenTA_SUB_OpenAndFillTA_SUB_PeekTA_SUB_UpdateTA_SUB_ValueTA_SUMTA_SUM_CloneTA_SUM_OpenTA_SUM_OpenAndFillTA_SUM_PeekTA_SUM_UpdateTA_SUM_ValueTA_SUPERTRENDTA_SUPERTREND_CloneTA_SUPERTREND_OpenTA_SUPERTREND_OpenAndFillTA_SUPERTREND_PeekTA_SUPERTREND_UpdateTA_SUPERTREND_ValueTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_T3_CloneTA_T3_OpenTA_T3_OpenAndFillTA_T3_PeekTA_T3_UpdateTA_T3_ValueTA_TANTA_TANHTA_TANH_CloneTA_TANH_OpenTA_TANH_OpenAndFillTA_TANH_PeekTA_TANH_UpdateTA_TANH_ValueTA_TAN_CloneTA_TAN_OpenTA_TAN_OpenAndFillTA_TAN_PeekTA_TAN_UpdateTA_TAN_ValueTA_TEMATA_TEMA_CloneTA_TEMA_OpenTA_TEMA_OpenAndFillTA_TEMA_PeekTA_TEMA_UpdateTA_TEMA_ValueTA_TRANGETA_TRANGE_CloneTA_TRANGE_OpenTA_TR""ANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenTA_TRIMA_OpenAndFillTA_TRIMA_PeekTA_TRIMA_UpdateTA_TRIMA_ValueTA_TRIXTA_TRIX_CloneTA_TRIX_OpenTA_TRIX_OpenAndFillTA_TRIX_PeekTA_TRIX_UpdateTA_TRIX_ValueTA_TSFTA_TSF_CloneTA_TSF_OpenTA_TSF_OpenAndFillTA_TSF_PeekTA_TSF_UpdateTA_TSF_ValueTA_TSITA_TSI_CloneTA_TSI_OpenTA_TSI_OpenAndFillTA_TSI_PeekTA_TSI_UpdateTA_TSI_ValueTA_TYPPRICETA_TYPPRICE_CloneTA_TYPPRICE_OpenTA_TYPPRICE_OpenAndFillTA_TYPPRICE_PeekTA_TYPPRICE_UpdateTA_TYPPRICE_ValueTA_ULTOSCTA_ULTOSC_CloneTA_ULTOSC_OpenTA_ULTOSC_OpenAndFillTA_ULTOSC_PeekTA_ULTOSC_UpdateTA_ULTOSC_ValueTA_VARTA_VAR_CloneTA_VAR_OpenTA_VAR_OpenAndFillTA_VAR_PeekTA_VAR_UpdateTA_VAR_ValueTA_VHFTA_VHF_CloneTA_VHF_OpenTA_VHF_OpenAndFillTA_VHF_PeekTA_VHF_UpdateTA_VHF_ValueTA_VORTEXTA_VORTEX_CloneTA_VORTEX_OpenTA_VORTEX_OpenAndFillTA_VORTEX_PeekTA_VORTEX_UpdateTA_VORTEX_ValueTA_VWAPTA_VWAP_CloneTA_VWAP_OpenTA_VWAP_OpenAndFillTA_VWAP_PeekTA_VWAP_UpdateTA_VWAP_ValueTA_VWMATA_VWMA_CloneTA_VWMA_OpenTA_VWMA_OpenAndFillTA_VWMA_PeekTA_VWMA_UpdateTA_VWMA_ValueTA_WADTA_WAD_CloneTA_WAD_OpenTA_WAD_OpenAndFillTA_WAD_PeekTA_WAD_UpdateTA_WAD_ValueTA_WCLPRICETA_WCLPRICE_CloneTA_WCLPRICE_OpenTA_WCLPRICE_OpenAndFillTA_WCLPRICE_PeekTA_WCLPRICE_UpdateTA_WCLPRICE_ValueTA_WILLRTA_WILLR_CloneTA_WILLR_OpenTA_WILLR_OpenAndFillTA_WILLR_PeekTA_WILLR_UpdateTA_WILLR_ValueTA_WMATA_WMA_CloneTA_WMA_OpenTA_WMA_OpenAndFillTA_WMA_PeekTA_WMA_UpdateTA_WMA_ValueTA_ZLEMATA_ZLEMA_CloneTA_ZLEMA_OpenTA_ZLEMA_OpenAndFillTA_ZLEMA_PeekTA_ZLEMA_UpdateTA_ZLEMA_ValueTEMATEMA_StreamTEMA_Stream.open_and_fillTRANGETRANGE_StreamTRANGE_Stream.open_and_fillTRIMATRIMA_StreamTRIMA_Stream.open_and_fillTRIXTRIX_StreamTRIX_Stream.open_and_fillTSFTSF_StreamTSF_Stream.open_and_fillTSITSI_StreamTSI_Stream.open_and_fillTYPPRICETYPPRICE_StreamTYPPRICE_Stream.open_and_fillULTOSCULTOSC_StreamULTOSC_Stream.open_and_fillVARVAR_StreamVAR_Stream.open_and_fillVHFVHF_StreamVHF_Stream.open_and_fillVORTEXVORTEX_StreamVO""RTEX_Stream.open_and_fillVWAPVWAP_StreamVWAP_Stream.open_and_fillVWMAVWMA_StreamVWMA_Stream.open_and_fillWADWAD_StreamWAD_Stream.open_and_fillWCLPRICEWCLPRICE_StreamWCLPRICE_Stream.open_and_fillWILLRWILLR_StreamWILLR_Stream.open_and_fillWMAWMA_StreamWMA_Stream.open_and_fillZLEMAZLEMA_StreamZLEMA_Stream.open_and_fill_ARRAY_TYPES_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr_INPUT_ARRAYS_TYPES_INPUT_PRICE_SERIES_DEFAULTS_PANDAS_DATAFRAME_PANDAS_SERIES_POLARS_DATAFRAME_POLARS_SERIES_TA_ReadLease_TA_ReadLease.__enter___TA_ReadLease.__exit___TA_ReadLease.__reduce_cython___TA_ReadLease.__setstate_cython___TA_WriteLease_TA_WriteLease.__enter___TA_WriteLease.__exit___TA_WriteLease.__reduce_cython___TA_WriteLease.__setstate_cython____Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____copy____deepcopy____dict____doc____enter____exit____func____get_flags__get_opt_input_value__getitem____getstate____init____input_price_series_names__local__main____metaclass____module____mro_entries____name____new____prepare____pyx_checksum__pyx_result__pyx_state__pyx_type__pyx_unpickle__TA_ReadLease__pyx_unpickle__TA_WriteLease__pyx_vtable____qualname____reduce____reduce_cython____reduce_ex____repr____set_name____setstate____setstate_cython____str____ta_version____test____unicode___dict_get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdowna_closea_higha_lowa_opena_periodsa_reala_real0a_real1a_volumeaccelerationaccelerationinitlonga""ccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortacquiredappendargargsarraysasciiastypeasyncio.coroutinesat_exitatrperiodavgperiodbbegidxbitbytes2strc_periodc_valuecandlestickcline_in_tracebackcloneclosecollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_namedocsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskeykeyskwargsleftbarslengthlocallookbacklowlowermatypemaximummaxperiodmemominperiodmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_and_filloptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutlowerbandoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutmiddlebandoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutsupertrendoutswinghighoutswinglowouttrendoutupperbandpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodspolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperealreal0real1replaceresultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesignalmatypesignal""periodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestatestaticmethodstddevperiodstr2bytesstreamsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytypetype_unst_idupdateupdate_infoupdatesupperuse_setstatevaluevaluesversionvfactorvolumewarnwarningswmaperiod\200\001\330\004\005\340\t\027\220q\330\010\013\2104\210q\330\021\022\330\020\036\230n\250A\330\014\035\230Q\320\036/\250q\330\014\036\230a\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\014\320\014#\2409\250C\250x\260q\330\004\n\210%\210q\220\001\330\010\027\220z\240\021\200\001\330\004+\2501\250F\260!\200\001\330\004,\250A\250V\2601\200\001\340\004\027\220q\330\t\027\220q\330\r\016\330\014\032\320\032.\250a\250q\330\004\025\220Q\320\026-\250Q\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220=\240\010\250\001\250\021\330\004\007\200|\2207\230!\330\010/\250q\3200@\300\016\310a\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220>\240\030\250\021\250!\330\004\007\200|""\2207\230!\330\0100\260\001\3201B\300.\320PQ\330\004\013\2101\200\001\340\t\026\220a\330\r\016\330\014\027\320\027+\2501\330\004\013\2101\200\001\340\t\027\220q\330\r\016\330\014\032\320\032/\250q\260\r\270[\310\013\320ST\330\004\025\220Q\320\026.\250a\200\001\340\t\027\220q\330\r\016\330\014\032\320\032:\270!\2701\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Z[\320[g\320gh\320hw\360\000\000x\001C\002\360\000\000C\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260M\300\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330""\r\016\330\014\027\220w\230e\240?\260\"\260M\300\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zd\320de\320eq\320qr\360\000\000s\001B\002\360\000\000B\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002\\\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260]\300!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[c\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022""\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260]\300!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[j\320jk\320kw\320wx\360\000\000y\001H\002\360\000\000H\002S\002\360\000\000S\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002b\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260l\300!\330""\010\022\320\022#\2401\240H\250A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310|\320[g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002i\002\360\000\000i\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003B\003\360\000\000B\003C\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260R\260q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P]\320]^\320^j\320jk\320kz\360\000\000{\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002T\002\360\000\000T\002U\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\026\260q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260]\300-\310q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270&\300\006\300a\300y\320P]\320]j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001""\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\026\260q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2706\300\026\300q\310\t\320Q^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\001\330\010\021\320\021\"\240!\2408\2501\330\010\021\320\021\"\240!\2408\2501\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002M\002\360\000\000M\002S\002\360\000\000S\002T\002\360\000\000T\002_\002\360\000\000_\002j\002\360\000\000j\002p\002\360\000\000p\002v\002\360\000\000v\002w\002""\360\000\000w\002x\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\r\300Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q^\320^f\320fg\320gs\320st\360\000\000u\001D\002\360\000\000D\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002^\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\r\300Z\310z\320YZ\330\010\033\320\033,\250A\250X\260Q\330\010\034\320\034-\250Q\250h\260a\330\010\033\320\033,\250A\250X\260Q\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q^\320^h\320hr\320r{\320{|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002Y\002\360\000\000Y\002d\002\360\000\000d\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002F\003\360\000\000F\003Q\003\360\000\000Q\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003t\003\360\000\000t\003\177\003\360\000\000\177\003O\004\360\000\000O\004U\004\360\000\000U\004V\004\360\000\000V\004W\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340()\360&\000\005\014\210;\220a\220q\330\004\r\210T\220""\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\021\330\010\022\320\022#\2401\240H\250A\330\010\030\320\030)\250\021\250(\260!\330\010\026\320\026\047\240q\250\010\260\001\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320Ra\320ab\320bn\320no\320o~\360\000\000\177\001J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002X\002\360\000\000X\002c\002\360\000\000c\002n\002\360\000\000n\002{\002\360\000\000{\002A\003\360\000\000A\003B\003\360\000\000B\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\034\300]\320RS\330\010""\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R^\320^k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\035\300m\320S`\320`m\320m|\320|}\330\010\022\320\022#\2401\240H\250A\330\010\030\320\030)\250\021\250(\260!\330\010\026\320\026\047\240q\250\010\260\001\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_l\320ly\360\000\000z\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003~\003\360\000\000~\003D\004\360\000\000D\004E\004\360\000\000E\004P\004\360\000\000P\004[\004\360\000\000[\004f\004\360\000\000f\004l\004\360\000\000l\004m\004\360\000\000m\004n\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270!\330\010\025\220^\2401\240H""\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S`\320`a\320am\320mn\320n}\360\000\000~\001F\002\360\000\000F\002P\002\360\000\000P\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\t\n\330\010\014\210G\320\023#\2401\330\014\033\2301\230F\240!\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S`\320`a\320am\320mn\320n}\360\000\000~\001I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270-\300\177\320Ve\320ef\330\010\023\320\023$\240A\240X\250Q\330\010\023\320\023$\240A\240X\250Q\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S`\320`o\320o~\360\000\000\177\001N\002\360\000\000N\002O\002\360\000\000O\002[\002\360\000\000[\002\\\002\360\000\000\\\002k\002\360\000\000k\002v\002\360\000\000v\002~\002\360\000\000~\002D\003\360\000\000D\003E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q""\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#9\270\022\2701\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\035\240b\250\004\250I\260[\300\004\300F\310!\3109\320Ta\320ab\320bn\320no\320o~\360\000\000\177\001J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002X\002\360\000\000X\002Y\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#:\270\"\270M\310\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\036\240r\250\024\250Y\260k\300\024\300V\3101\310I\320Ub\320bo\320op\320p|\320|}\360\000\000~\001M\002\360\000\000M\002X\002\360\000\000X\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002g\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#;\2702\270Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\037\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\340""\r\016\330\014\030\230\001\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\024\240^\2601\260C\260q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#;\2702\270Q\330\010\024\220N\240!\2408\2501\330\010\024\220N\240!\2408\2501\330\r\016\330\014\031\230\037\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002I\002\360\000\000I\002R\002\360\000\000R\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002l\002\360\000\000l\002u\002\360\000\000u\002{\002\360\000\000{\002|\002\360\000\000|\002}\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\t\n\330\010\014\210G\320\023#\2401\330\014\032\230!\2306\240\021\330\004\025\220V\2309\240A\330\t\n\330\010\014\210G\320\023#\2401\330\014\032\230!\2306\240\021\330\004\013\210<\220q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#?\270r\300\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\320\031,\250B\250d\260)\270;\300d\310&\320PQ\320QZ\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330""\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#C\3002\300Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\320\0310\260\002\260$\260i\270{\310$\310f\320TU\320U^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260M\300\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kx\360\000\000y\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002|\002\360\000\000|\002}\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260M\300\035\310a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kx\360\000\000y\001F\002\360\000\000F\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360""\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003K\003\360\000\000K\003L\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320ly\320yz\360\000\000{\001G\002\360\000\000G\002H\002\360\000\000H\002W\002\360\000\000W\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260]\300!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320ly\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002|\002\360\000\000|\002}\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X""\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260_\300A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320l{\360\000\000|\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002|\002\360\000\000|\002}\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300u\310A\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y^\320^d\320de\320en\320n{\320{|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002Y\002\360\000\000Y\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002r\002\360\000\000r\002s\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260R\260q\330\010\027\320\027(\250\001\250\030\260\021\330\010\025\320\025&\240a\240x\250q\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[^\320^d\320de\320en\320n{\320{|\360\000\000}\001I\002\360\000\000I""\002J\002\360\000\000J\002Y\002\360\000\000Y\002d\002\360\000\000d\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002B\003\360\000\000B\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260R\260}\300A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[^\320^d\320de\320en\320n{\360\000\000|\001I\002\360\000\000I\002J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002f\002\360\000\000f\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002\177\002\360\000\000\177\002@\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\r\320EW\320Wn\360\000\000o\001B\002\360\000\000B\002X\002\360\000\000X\002p\002\360\000\000p\002D\003\360\000\000D\003E\003\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320o|\360\000\000}\001O\002\360\000\000O\002f\002\360""\000\000f\002y\002\360\000\000y\002O\003\360\000\000O\003g\003\360\000\000g\003{\003\360\000\000{\003R\004\360\000\000R\004S\004\360\000\000S\004_\004\360\000\000_\004`\004\360\000\000`\004o\004\360\000\000o\004z\004\360\000\000z\004A\005\360\000\000A\005G\005\360\000\000G\005H\005\360\000\000H\005I\005\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]`\320`f\320fg\320gp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\025\260h\270j\310\006\310a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270%\270v\300Q\300i\310{\320Z`\320`f\320fg\320gp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004""\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300v\310Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z`\320`f\320fg\320gp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\025\260h\270j\310\005\310Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2705\300\006\300a\300y\320P[\320[`\320`f\320fg\320gp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\024\240^\2601\260C\260q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\033\300A\330\010\027\220~\240Q\240h\250a\330\010\026\220n\240A\240X\250Q\330\r\016\330""\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]`\320`f\320fg\320gp\320p{\360\000\000|\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002m\002\360\000\000m\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003K\003\360\000\000K\003S\003\360\000\000S\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000\000e\003f\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\320q~\320~\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002\\\002\360\000\000\\\002g\002\360\000\000g\002n\002\360\000\000n\002t\002\360\000\000t\002u\002\360\000\000u\002v\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300u\310A\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\a\320ag\320gh\320hq\320q~\320~\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002\\\002\360\000\000\\\002g\002\360\000\000g\002n\002\360\000\000n\002t\002\360\000\000t\002u\002\360\000""\000u\002v\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270!\330\010\033\320\033,\250A\250X\260Q\330\010\034\320\034-\250Q\250h\260a\330\010\033\320\033,\250A\250X\260Q\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\320q~\320~\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002\\\002\360\000\000\\\002g\002\360\000\000g\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002I\003\360\000\000I\003T\003\360\000\000T\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300w\310a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260l\300,\310a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Za\320ag\320gh\320hq\320q}\360\000\000~\001J\002\360\000\000J\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360""\000\000I\003J\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\025\260h\270j\310\005\310Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270U\300&\310\001\310\031\320R]\320]b\320bh\320hi\320ir\320r\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002w\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002f\002\360\000\000f\002g\002\360\000\000g\002v\002\360\000\000v\002A\003\360\000\000A\003H\003\360\000\000H\003N\003\360\000\000N\003O\003\360\000\000O\003P\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]""\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260M\300\034\310Q\330\010\033\320\033,\250A\250X\260Q\330\010\034\320\034-\250Q\250h\260a\330\010\033\320\033,\250A\250X\260Q\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002e\002\360\000\000e\002m\002\360\000\000m\002n\002\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003U\003\360\000\000U\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004S\004\360\000\000S\004Y\004\360\000\000Y\004Z\004\360\000\000Z\004e\004\360\000\000e\004p\004\360\000\000p\004@\005\360\000\000@\005F\005\360\000\000F\005G\005\360\000\000G\005H\005\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002Z\002\360\000\000Z\002[\002\360\000\000[\002g\002\360\000\000g\002h\002\360\000\000h\002w\002\360""\000\000w\002B\003\360\000\000B\003I\003\360\000\000I\003O\003\360\000\000O\003P\003\360\000\000P\003Q\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010\027\320\027(\250\001\250\030\260\021\330\010\027\320\027(\250\001\250\030\260\021\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002Z\002\360\000\000Z\002[\002\360\000\000[\002g\002\360\000\000g\002h\002\360\000\000h\002w\002\360\000\000w\002B\003\360\000\000B\003N\003\360\000\000N\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003k\003\360\000\000k\003w\003\360\000\000w\003}\003\360\000\000}\003~\003\360\000\000~\003\177\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260]\300-\310}\320\\]\330\010\021\320\021\"\240!\2408\2501\330\010\027\320\027(\250\001\250\030\260\021\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f""\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002Z\002\360\000\000Z\002g\002\360\000\000g\002t\002\360\000\000t\002C\003\360\000\000C\003D\003\360\000\000D\003P\003\360\000\000P\003Q\003\360\000\000Q\003`\003\360\000\000`\003k\003\360\000\000k\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003C\004\360\000\000C\004N\004\360\000\000N\004Z\004\360\000\000Z\004`\004\360\000\000`\004a\004\360\000\000a\004b\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260_\300O\320Sb\320bq\320qr\330\010\017\320\017 \240\001\240\030\250\021\330\010\017\320\017 \240\001\240\030\250\021\330\010\017\320\017 \240\001\240\030\250\021\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002\\\002\360\000\000\\\002k\002\360\000\000k\002z\002\360\000\000z\002I\003\360\000\000I\003X\003\360\000\000X\003Y\003\360\000\000Y\003e\003\360\000\000e\003f\003\360\000\000f\003u\003\360\000\000u\003@\004\360\000\000@\004D\004\360\000\000D\004J\004\360\000\000J\004K\004\360\000\000K\004V\004\360\000\000V\004a\004\360\000\000a\004e\004\360\000\000e\004k\004\360\000\000k\004l\004\360\000\000l\004w\004\360\000\000w\004B\005\360\000\000B\005F\005\360\000\000F\005L\005\360\000""\000L\005M\005\360\000\000M\005N\005\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z]\320]c\320cd\320dm\320mx\320x}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002[\002\360\000\000[\002\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002x\002\360\000\000x\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003Q\003\360\000\000Q\003R\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260R\260q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[^\320^d\320de\320en\320ny\320y~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002\\\002\360\000\000\\\002]\002\360\000\000]\002i\002\360\000\000i\002j\002\360\000\000j\002y\002\360\000\000y\002D\003\360\000\000D\003K\003\360\000\000K\003Q\003\360\000\000Q\003R\003\360\000\000R\003S\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220l""\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260R\260\177\300o\320Ud\320ds\320st\330\010\023\320\023$\240A\240X\250Q\330\010\023\320\023$\240A\240X\250Q\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[^\320^d\320de\320en\320ny\320y~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002^\002\360\000\000^\002m\002\360\000\000m\002|\002\360\000\000|\002K\003\360\000\000K\003Z\003\360\000\000Z\003[\003\360\000\000[\003g\003\360\000\000g\003h\003\360\000\000h\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004\\\004\360\000\000\\\004g\004\360\000\000g\004o\004\360\000\000o\004u\004\360\000\000u\004v\004\360\000\000v\004w\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\001\330\010\024\320\024%\240Q\240h\250a\330\010\025\320\025&\240a\240x\250q\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320oz\320z\177""\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E\003N\003\360\000\000N\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003k\003\360\000\000k\003u\003\360\000\000u\003{\003\360\000\000{\003|\003\360\000\000|\003}\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\016\300n\320TU\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320oz\320z\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002^\002\360\000\000^\002l\002\360\000\000l\002z\002\360\000\000z\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003W\003\360\000\000W\003b\003\360\000\000b\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003q\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w""\230e\320#6\260b\270\017\300\177\320VW\330\010\023\320\023$\240A\240X\250Q\330\010\023\320\023$\240A\240X\250Q\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320oz\320z\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002_\002\360\000\000_\002n\002\360\000\000n\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003e\003\360\000\000e\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003\177\003\360\000\000\177\003J\004\360\000\000J\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]`\320`f\320fg\320gp\320p{\360\000\000|\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002^\002\360\000\000^\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002{\002\360\000\000{\002F\003\360\000\000F\003M\003\360\000\000M\003S\003\360\000\000S\003T\003\360\000\000T\003U\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(""\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\320q|\360\000\000}\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002_\002\360\000\000_\002`\002\360\000\000`\002l\002\360\000\000l\002m\002\360\000\000m\002|\002\360\000\000|\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003U\003\360\000\000U\003V\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270!\330\010\033\320\033,\250A\250X\260Q\330\010\034\320\034-\250Q\250h\260a\330\010\033\320\033,\250A\250X\260Q\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\320q|\360\000\000}\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002_\002\360\000\000_\002`\002\360\000\000`\002l\002\360\000\000l\002m\002\360\000\000m\002|\002\360\000\000|\002G\003\360\000\000G\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003i\003\360\000\000i\003t\003\360\000\000t\003E\004\360\000\000E\004K\004\360\000\000K\004L\004\360\000\000L\004W\004\360\000\000W\004b\004\360\000\000b\004r\004\360\000\000r\004x\004\360\000\000x\004y\004\360\000\000y\004z\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001""\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\250\016\260a\260s\270!\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#:\270\"\270M\310\021\330\010\030\320\030)\250\021\250(\260!\330\010\023\220>\240\021\240(\250!\330\r\016\330\014\031\230\036\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`c\320ci\320ij\320js\320s~\360\000\000\177\001D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002a\002\360\000\000a\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003V\003\360\000\000V\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003u\003\360\000\000u\003}\003\360\000\000}\003E\004\360\000\000E\004K\004\360\000\000K\004L\004\360\000\000L\004M\004\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026\047\240q\330\004\013\320\013\033\2301\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ai\320is\320sy\320yz\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n""\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003j\003\360\000\000j\003p\003\360\000\000p\003q\003\360\000\000q\003r\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#:\270\"\270A\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\230\036\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#>\270b\300\001\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031+\2502\250T\260\031\270+\300T\310\026\310q\320PY\320Yd""\320dh\320hn\320no\320ox\360\000\000y\001D\002\360\000\000D\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002W\002\360\000\000W\002b\002\360\000\000b\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002w\002\360\000\000w\002E\003\360\000\000E\003F\003\360\000\000F\003R\003\360\000\000R\003S\003\360\000\000S\003b\003\360\000\000b\003j\003\360\000\000j\003t\003\360\000\000t\003z\003\360\000\000z\003{\003\360\000\000{\003|\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#@\300\002\300!\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031-\250R\250t\2609\270K\300t\3106\320QR\320R[\320[f\320fj\320jp\320pq\320qz\360\000\000{\001F\002\360\000\000F\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Y\002\360\000\000Y\002d\002\360\000\000d\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002y\002\360\000\000y\002G\003\360\000\000G\003H\003\360\000\000H\003T\003\360\000\000T\003U\003\360\000\000U\003d\003\360\000\000d\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003~\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t""\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#A\300\022\3001\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031.\250b\260\004\260I\270[\310\004\310F\320RS\320S\\\320\\g\320gk\320kq\320qr\320r{\360\000\000|\001G\002\360\000\000G\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002e\002\360\000\000e\002j\002\360\000\000j\002p\002\360\000\000p\002q\002\360\000\000q\002z\002\360\000\000z\002H\003\360\000\000H\003I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003e\003\360\000\000e\003m\003\360\000\000m\003w\003\360\000\000w\003}\003\360\000\000}\003~\003\360\000\000~\003\177\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#B\300\"\300A\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031/\250r\260\024\260Y\270k\310\024\310V\320ST\320T]\320]h\320hl\320lr\320rs\320s|\360\000\000}\001H\002\360\000\000H\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002[\002\360\000\000[\002f\002\360\000\000f\002k\002\360\000\000k\002q\002\360\000\000q\002r\002\360\000\000r\002{\002\360\000\000{\002I\003\360\000\000I\003J\003\360\000\000J\003V\003\360\000\000V\003W\003\360\000\000W\003f\003\360\000\000f\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003\177\003\360\000\000\177\003@\004\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004""\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ai\320is\320sy\320yz\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260R\260}\300A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[^\320^d\320de\320en\320ny\320y~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002}\002\360\000\000}\002J\003\360\000\000J\003K\003\360\000\000K\003W\003\360\000\000W\003X\003\360\000\000X\003g\003\360\000\000g\003r\003\360\000\000r\003y\003\360\000\000y\003\177\003\360\000\000\177\003@\004\360\000\000@\004A\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\t\026\220a\330\r\016\330\014\030\320\030-\250Q\250a\330\004\013\2101\200\001\360\010\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\017\210q\330\t\027\220q\330\r\016\330\014\032\320\032/\250q\260\004\260A\330\004\025\220Q\320\026.\250a\200\001\360\010\000\n\033\230!\330\010\020\220\001\330\010\020\220\007\220q\230\006\230l\250!\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220q\330\004\007\200q\330\010\017\320\017.\250d\260!\2607\270+\300W\310A\340\010\017\320\017.\250d\260!\2607\270+\300Q\200\001\360\010\000\n\033\230!\330\010\020\220\001\330\010\020\220\007\220q\230\006\230l\250!\330\004\007\200v\210W\220E\230\024\230Q""\330\010\022\220!\330\010\027\220q\340\010\027\220q\330\004\007\200q\330\010\017\320\017/\250t\2601\260G\270;\300g\310Q\340\010\017\320\017/\250t\2601\260G\270;\300a\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005,\320+=\270Q\270a\340\t\026\220a\330\r\016\330\014\031\230\037\250\001\250\030\260\021\260!\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\360\014\000\005,\320+=\270Q\270a\340\t\026\220a\330\r\016\330\014\031\320\0312\260!\2608\2705\300\001\300\021\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021""\330\004\007\200w\210c\220\021\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005,\320+=\270Q\270a\340\t\026\220a\330\r\016\330\014\031\320\0313\2601\260H\270E\300\021\300!\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000\005,\320+=\270Q\270a\340\t\026\220a\330\r\016\330\014\031\320\0315\260Q\260h\270e\3001\300A\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\014\000\n\027\220a\330\r\016\330\014\031\320\031+\2501\250G\2601\260A\330\010\031\230\021\320\032/\250q\330\010\t\330\014\030\230\001\330\014\020\220\005\220V\2301\230E\240\021\330\020\031\230\027\240\001\240\026\240q\250\005\250W\260A\260Q\340\021\022\330\020\035\320\035.\250a\250q\330\014\035\230Q\320\0362\260!\330\004\013\2101\200\001\360\014\000\n\027\220a\330\r\016\330\014\031\320\031,\250A\250Q\250a\330\010\031\230\021\320\0320\260\001\330\010\t\330\014\025\220Q\330\014\020\220\005\220V\2301\230E\240\021\330\020\026\220g\230Q\230f\240A\240U\250\047\260\021\260!\340\021\022\330\020\035\320\035/\250q\260\001\330\014\035\230Q\320\0363\2601\330\004\013\2101\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q""\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ai\320is\320sy\320yz\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003U\003\360\000\000U\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ai\320is\320sy\320yz\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z]\320]c\320cd\320dm\320mx\320x}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003W\003\360\000\000W\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000\000e\003f\003\340\r\016\330\014""\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2601\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320oz\320z\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002Q\002\360\000\000Q\002]\002\360\000\000]\002^\002\360\000\000^\002m\002\360\000\000m\002x\002\360\000\000x\002\177\002\360\000\000\177\002E\003\360\000\000E\003F\003\360\000\000F\003G\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]""\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\320q|\360\000\000}\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\b\320bc\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\320q|\360\000\000}\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220""\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260q\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#9\270\021\330\010\025""\220^\2401\240H\250A\330\r\016\330\014\031\230\035\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#:\270!\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\230\036\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108""\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#;\2701\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\230\037\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#<\270A\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031)\250\022\2504\250y\270\013\3004\300v\310Q\310i\320Wb\320bf\320fl\320lm\320mv\360\000\000w\001B\002\360\000\000B\002E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002U\002\360\000\000U\002`\002\360\000\000`\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002u\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003Z\003\360\000\000Z\003d\003\360\000\000d\003j\003\360\000\000j\003k\003\360\000\000k\003l\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q""\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#=\270Q\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031*\250\"\250D\260\t\270\033\300D\310\006\310a\310y\320Xc\320cg\320gm\320mn\320nw\360\000\000x\001C\002\360\000\000C\002F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002V\002\360\000\000V\002a\002\360\000\000a\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002v\002\360\000\000v\002w\002\360\000\000w\002C\003\360\000\000C\003D\003\360\000\000D\003S\003\360\000\000S\003[\003\360\000\000[\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003m\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#>\270a\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031+\2502\250T\260\031\270+\300T\310\026\310q\320PY\320Yd\320dh\320hn\320no\320ox\360\000\000y\001D\002\360\000\000D\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002W\002\360\000\000W\002b\002\360\000\000b\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002w\002\360\000\000w\002x\002\360\000\000x\002D\003\360\000\000D\003E\003\360\000\000E\003T\003\360\000\000T\003\\\003\360\000\000\\\003f\003\360\000\000f\003l\003\360\000\000l\003m\003\360\000\000m\003n\003\340""\r\016\330\014\030\230\001\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#?\270q\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031,\250B\250d\260)\270;\300d\310&\320PQ\320QZ\320Ze\320ei\320io\320op\320py\360\000\000z\001E\002\360\000\000E\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002X\002\360\000\000X\002c\002\360\000\000c\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002x\002\360\000\000x\002y\002\360\000\000y\002E\003\360\000\000E\003F\003\360\000\000F\003U\003\360\000\000U\003]\003\360\000\000]\003g\003\360\000\000g\003m\003\360\000\000m\003n\003\360\000\000n\003o\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#@\300\001\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031-\250R\250t\2609\270K\300t\3106\320QR\320R[\320[f\320fj\320jp\320pq\320qz\360\000\000{\001F\002\360\000\000F\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Y\002\360\000\000Y\002d\002\360\000\000d\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002y\002\360\000\000y\002z\002""\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#A\300\021\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031.\250b\260\004\260I\270[\310\004\310F\320RS\320S\\\320\\g\320gk\320kq\320qr\320r{\360\000\000|\001G\002\360\000\000G\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002e\002\360\000\000e\002j\002\360\000\000j\002p\002\360\000\000p\002q\002\360\000\000q\002z\002\360\000\000z\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003W\003\360\000\000W\003_\003\360\000\000_\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003q\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#B\300!\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031/\250r\260\024\260Y\270k\310\024\310V\320ST\320T]\320]h\320hl\320lr\320rs\320s|\360\000\000}\001H\002\360\000\000H\002K\002\360""\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002[\002\360\000\000[\002f\002\360\000\000f\002k\002\360\000\000k\002q\002\360\000\000q\002r\002\360\000\000r\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003`\003\360\000\000`\003j\003\360\000\000j\003p\003\360\000\000p\003q\003\360\000\000q\003r\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#C\3001\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\0310\260\002\260$\260i\270{\310$\310f\320TU\320U^\320^i\320im\320ms\320st\320t}\360\000\000~\001I\002\360\000\000I\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002\\\002\360\000\000\\\002g\002\360\000\000g\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002|\002\360\000\000|\002}\002\360\000\000}\002I\003\360\000\000I\003J\003\360\000\000J\003Y\003\360\000\000Y\003a\003\360\000\000a\003k\003\360\000\000k\003q\003\360\000\000q\003r\003\360\000\000r\003s\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#""3\2601\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003T\003\360\000\000T\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003Y\003\360\000\000Y\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w""\230e\320#<\270A\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031)\250\022\2504\250y\270\013\3004\300v\310Q\310i\320WX\320Xd\320de\320et\320t|\360\000\000}\001G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2601\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]""\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320PQ\320Q]\320]^\320^m\320mx\320x\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002H\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320QR\320R^\320^_\320_n\320ny\360\000\000z\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002I\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#:\270!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\036\240r\250\024\250Y\260k\300\024\300V\3101\310I\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\340\r\016\330\014\030\230\001\330\004""\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#;\2701\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\037\250\002\250$\250i\260{\300$\300f\310A\310Y\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#<\270A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\320\031)\250\022\2504\250y\270\013\3004\300v\310Q\310i\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\025\260h\270j\310\006\310a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2601\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270%\270v\300Q\300i\310{\320Z`\320`f\320fg\320gp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\340\r\016\330\014\030\230""\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300v\310Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2601\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y_\320_e\320ef\320fo\320op\320p|\320|}\360\000\000~\001M\002\360\000\000M\002X\002\360\000\000X\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002g\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\025\260h\270j\310\005\310Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2601\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270%\270v\300Q\300i\310{\320Z_\320_e\320ef\320fo\320op\320p|\320|}\360\000\000~\001M\002\360\000\000M\002X\002\360\000\000X\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002g\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\025\260h\270j\310\005\310Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2705\300\006\300a\300y\320P[""\320[`\320`f\320fg\320gp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260q\330\010\022\320\022#\2401\240H\250A\330\010\026\320\026\047\240q\250\010\260\001\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002T\002\360\000\000T\002_\002\360\000\000_\002j\002\360\000\000j\002p\002\360\000\000p\002q\002\360\000\000q\002r\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#9\270\021\330\010\025\320\025&\240a\240x\250q\330\010\030\320\030)\250\021\250(\260!\330\r\016\330\014\031\230\035\240b\250\004\250I\260[\300\004\300F\310!\3109\320TU\320Ua\320ab\320bq\320q|\360\000\000}\001G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002Y\002\360\000\000Y\002d\002\360\000\000d\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002y\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230""\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VZ\320Zk\320kl\320lo\320op\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260!\330\010\024\320\024%\240Q\240h\250a\330\010\024\320\024%\240Q\240h\250a\330\010\023\320\023$\240A\240X\250Q\330\010\025\320\025&\240a\240x\250q\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003S\003\360\000\000S\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003n\003\360\000\000n\003y\003\360\000\000y\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n\004\360\000\000n\004y\004\360\000\000y\004D\005\360\000\000D\005N\005\360\000\000N\005T\005\360\000\000T\005U\005\360\000\000U\005V\005\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\330\010\016\210i\220q\330\014\r\33046\260d\270!\2705\300\001\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2205\230\001\200A\330""\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\210\177\230g\240U\250!\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021 \240\007\240u\250A\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\330\010\030\230\001\200A\330\r\016\330\014\030\230\001\200A\330\r\016\330\014\031\230\021\200A\330*A\320AX\320XY\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270K\300|""\320ST\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Ye\320ep\320p|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T`\320`l\320lm\320mx\320xy\360\000\000z\001H\002\360\000\000H\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002a\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320am\320mn\320ny\320yz\360\000\000{\001I\002\360\000\000I\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002b\002\330\020""\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\021\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320Vb\320bn\320no\320oz\320z{\360\000\000|\001J\002\360\000\000J\002S\002\360\000\000S\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002c\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270!\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320Wc\320co\320op\320p{\320{|\360\000\000}\001K\002\360\000\000K\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002d\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010""\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\2701\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xd\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Ye\320eq\320qr\320r}\320}~\360\000\000\177\001M\002\360\000\000M\002V\002\360\000\000V\002]\002\360\000\000]\002c\002\360\000\000c\002e\002\360\000\000e\002f\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270Q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zf\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002W""\002\360\000\000W\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270Q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zf\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\340\010$\240F\250*\260A\330\010\014\210E\220\025\220a\220z\240\021\330\014\033\2301\230F\240!\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t,\2501\330\010\047\320\0477\260x\270q\300\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047=\270Q\270a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0322\260!\2601\260H\270I\300V\3106\320QS\320S[\320[g\320gs\320st\320t\177\360\000\000@\002A\002\360\000\000A\002O\002\360\000\000O\002X\002\360\000\000X\002_\002\360\000\000_\002e\002\360\000\000e\002g\002\360\000\000g\002h\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 <""\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t.\250Q\330\010)\320);\2708\3001\300A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047?\270q\300\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0324\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t2\260\021\330\010-\320-C\3008\3101\310A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047C\3001\300A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0328\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\320yz\360\000\000{\001F\002\360\000\000F\002G\002\360\000\000G\002U\002\360\000\000U\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002m\002\360\000\000m\002n\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t6\260Q\330\0101\3201K\3108\320ST\320TU\340\010\030\230\001\330\010\t\330""\021\022\330\020\033\2307\240%\320\047G\300q\310\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\2701\330\014\025\320\025&\240a\240x\250q\330\014\025\320\025&\240a\240x\250q\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xd\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002m\002\360\000\000m\002v\002\360\000\000v\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210y\230\014\240B\240h\250i\260|\3002\300X\310Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t.\250Q\330\010)\320);\2708\3001\300A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047?\270q\300\001\330\014\030\230\016\240a\240x\250q\330\014\030\230\016\240a\240x\250q\330\021\022\330\020\032\320\0324\260A""\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002W\002\360\000\000W\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002r\002\360\000\000r\002x\002\360\000\000x\002A\003\360\000\000A\003G\003\360\000\000G\003I\003\360\000\000I\003J\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\340\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010\017\210y\230\014\240B\240h\250l\270,\300b\310\010\320PQ\200A\330+>\270a\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260|\3001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T`\320`l\320lt\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300A\330\014\026\320\026\047\240q""\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320am\320mt\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\270<\300q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xd\320dp\320pw\320wx\360\000\000y\001D\002\360\000\000D\002E\002\360\000\000E\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002l\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\300!\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260|\3001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T`\320`l\320lu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i""\002\360\000\000i\002j\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BT\320Tk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270L\310\014\320T`\320`l\320lz\320z{\330\014\026\320\026\047\240q\250\010\260\001\330\014\034\320\034-\250Q\250h\260a\330\014\032\320\032+\2501\250H\260A\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Ye\320eq\320q}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002\177\002\360\000\000\177\002M\003\360\000\000M\003V\003\360\000\000V\003]\003\360\000\000]\003c\003\360\000\000c\003e\003\360\000\000e\003o\003\360\000\000o\003x\003\360\000\000x\003E\004\360\000\000E\004K\004\360\000\000K\004M\004\360\000\000M\004W\004\360\000\000W\004`\004\360\000\000`\004k\004\360\000\000k\004q\004\360\000\000q\004s\004\360\000\000s\004t\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+B\320BU\320UV\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300L\320PQ\330\014\026""\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320am\320my\360\000\000z\001B\002\360\000\000B\002C\002\360\000\000C\002N\002\360\000\000N\002O\002\360\000\000O\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002v\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\270<\300y\320PY\320YZ\330\014\033\320\033,\250A\250X\260Q\330\014\034\320\034-\250Q\250h\260a\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xd\320dp\320py\360\000\000z\001C\002\360\000\000C\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003M\003\360\000\000M\003V\003\360\000\000V\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003u\003\360\000\000u\003~\003\360\000\000~\003J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210y\230\014\240B\240h\250o\270\\\310\022\3108\320Sc\320co\320oq\320qy\320yz\200A\330+B\320B[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,""\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\034\300\\\320QR\330\014\026\320\026\047\240q\250\010\260\001\330\014\034\320\034-\250Q\250h\260a\330\014\032\320\032+\2501\250H\260A\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320Vb\320bn\320nz\360\000\000{\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002F\003\360\000\000F\003O\003\360\000\000O\003\\\003\360\000\000\\\003b\003\360\000\000b\003d\003\360\000\000d\003n\003\360\000\000n\003w\003\360\000\000w\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+D\300A\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320am\320m{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002p\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|""\2402\240X\250Q\200A\330+D\320D]\320]v\320vw\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270\\\310\036\320We\320ef\330\014\027\320\027(\250\001\250\030\260\021\330\014\027\320\027(\250\001\250\030\260\021\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zf\320fr\360\000\000s\001A\002\360\000\000A\002O\002\360\000\000O\002]\002\360\000\000]\002^\002\360\000\000^\002i\002\360\000\000i\002j\002\360\000\000j\002x\002\360\000\000x\002A\003\360\000\000A\003I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003[\003\360\000\000[\003d\003\360\000\000d\003l\003\360\000\000l\003r\003\360\000\000r\003t\003\360\000\000t\003u\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210y\230\014\240B\240h\250k\270\034\300R\300x\310q\200A\330+E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t-\250A\330\010(\320(9\270\030\300\021\300!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047>\270a\270|\3101\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0323\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002M\002\360\000\000M\002N\002\360\000\000N\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002u\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]""\320]d\320df\320fg\330\010\017\210x\220|\2402\240X\250Q\200A\330,E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\r\300Q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320an\320n|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240X\250Q\200A\330-.\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270A\330\014\026\320\026\047\240q\250\010\260\001\330\014\034\320\034-\250Q\250h\260a\330\014\032\320\032+\2501\250H\260A\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Ye\320es\320st\320t\177\360\000\000@\002A\002\360\000\000A\002O\002\360\000\000O\002X\002\360\000\000X\002_\002\360\000\000_\002e\002\360\000\000e\002g\002\360\000\000g\002q\002\360\000\000q\002z\002\360\000\000z\002G\003\360\000\000G\003M\003\360\000\000M\003O\003\360\000\000O\003Y\003\360\000\000Y\003b\003\360\000\000b\003m\003\360\000\000m\003s\003\360\000\000s\003u\003\360\000\000u\003v\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd""\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330-.\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\021\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\010\310\006\310b\320PX\320Xd\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240Z\250q\200A\330-D\320DW\320WX\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300L\320PQ\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270x\300v\310R\310x\320Wc\320co\320o{\360\000\000|\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240Z\250q\200A\330-E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t\047\240a""\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\033\300A\330\014\026\320\026\047\240q\250\010\260\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320Vb\320bm\320mx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002v\002\360\000\000v\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\330.D\300A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270J\300a\330\014\033\230>\250\021\250(\260!\330\014\032\230.\250\001\250\030\260\021\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Yb\320bg\320gm\320mo\320ow\360\000\000x\001D\002\360\000\000D\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003X\003\360\000\000X\003^\003\360\000\000^\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003r\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210y\230""\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Yb\320bg\320gm\320mo\320ow\360\000\000x\001D\002\360\000\000D\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002]\002\360\000\000]\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003D\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q""\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270Q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270!\330\014\033\320\033,\250A\250X\260Q\330\014\031\320\031*\250!\2508\2601\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320W`\320`e\320ek\320km\320mu\360\000\000v\001B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002Z\002\360\000\000Z\002[\002\360\000\000[\002i\002\360\000\000i\002r\002\360\000\000r\002~\002\360\000\000~\002D\003\360\000\000D\003F\003\360\000\000F\003P\003\360\000\000P\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003l\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210y\230""\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270Q\330\014\033\320\033,\250A\250X\260Q\330\014\034\320\034-\250Q\250h\260a\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002A\003\360\000\000A\003G\003\360\000\000G\003I\003\360\000\000I\003S\003\360\000\000S\003\\\003\360\000\000\\\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003{\003\360\000\000{\003D\004\360\000\000D\004P\004\360\000\000P\004V\004\360\000\000V\004X\004\360\000\000X\004Y\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]m\320my\320y{\360\000\000|\001B\002\360\000\000B\002I\002\360\000\000I\002J\002\200A\3300F\300a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s\177\360\000\000@\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002c\002\360\000\000c\002d\002\360\000""\000d\002r\002\360\000\000r\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003J\003\360\000\000J\003K\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260|\3001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T]\320]b\320bh\320hj\320jr\320r~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002c\002\360\000\000c\002d\002\360\000\000d\002r\002\360\000\000r\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003J\003\360\000\000J\003K\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270,\300a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320W`\320`e\320ek\320km\320mu\360\000\000v\001B\002\360\000\000B\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002f\002\360\000\000f\002g\002\360\000\000g\002u\002\360\000\000u\002~""\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003M\003\360\000\000M\003N\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\320G`\320`a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260|\300<\310q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T]\320]b\320bh\320hj\320jr\320r~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003P\003\360\000\000P\003V\003\360\000\000V\003X\003\360\000\000X\003Y\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240V\2507\260!\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^e\320ek\320km\320mu\360\000\000v\001B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002Z\002\360\000\000Z\002[\002\360\000\000[\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360""\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003B\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2509\260A\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\2701\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320ah\320hn\320np\320px\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240V\2509\260A\200A\33034\330\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\021\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320V_\320_g\320gm\320mo\320ow\360\000\000x\001D\002\360\000\000D\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002]\002\360\000\000]\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000""\000C\003D\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240V\250:\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\021\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\007\300v\310R\310x\320W`\320`g\320gm\320mo\320ow\360\000\000x\001D\002\360\000\000D\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002]\002\360\000\000]\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003D\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240W\250I\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\2701\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300\047\310\026\310r\320QY\320Yb\320bi\320io\320oq\320qy\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002^\002\360\000\000^\002_\002\360\000\000_\002m\002\360\000\000m\002v\002\360\000\000v\002}\002\360\000\000}\002C\003\360\000\000C\003E\003\360\000\000E\003F\003\330\020\023\2208\2303\230a\330\024""\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240W\250I\260Q\200A\3303I\320I\\\320\\]\330\010!\240\035\250a\250q\330\010$\240M\260\021\260!\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\033\300K\310q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320V_\320_h\320hn\320np\320px\360\000\000y\001E\002\360\000\000E\002P\002\360\000\000P\002[\002\360\000\000[\002c\002\360\000\000c\002d\002\360\000\000d\002o\002\360\000\000o\002p\002\360\000\000p\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240V\250;\260a\200A\3303Q\320Qt\360\000\000u\001T\002\360\000\000T\002v\002\360\000\000v\002Z\003\360\000\000Z\003z\003\360\000\000z\003]\004\360\000\000]\004^\004\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\270<\320GX\320Xn\360\000\000o\001A\002\360\000\000A\002V\002\360\000\000V\002m\002\360\000\000m\002@\003\360\000\000@\003A\003\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\360\000""\000w\001C\002\360\000\000C\002O\002\360\000\000O\002`\002\360\000\000`\002v\002\360\000\000v\002H\003\360\000\000H\003]\003\360\000\000]\003t\003\360\000\000t\003G\004\360\000\000G\004]\004\360\000\000]\004^\004\360\000\000^\004i\004\360\000\000i\004j\004\360\000\000j\004x\004\360\000\000x\004A\005\360\000\000A\005H\005\360\000\000H\005N\005\360\000\000N\005P\005\360\000\000P\005Q\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240V\2507\260!\200A\33045\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270w\300f\310B\310h\320V_\320_g\320gm\320mo\320ow\360\000\000x\001D\002\360\000\000D\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002]\002\360\000\000]\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003D\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240W\250J\260a\200A\3305J\310!\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\016\300a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320""\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002X\002\360\000\000X\002c\002\360\000\000c\002d\002\360\000\000d\002r\002\360\000\000r\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003J\003\360\000\000J\003K\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2507\260!\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T]\320]b\320bh\320hj\320jr\320r{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002K\002\360\000\000K\002S\002\360\000\000S\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320""\0477\260q\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L\002\360\000\000L\002T\002\360\000\000T\002`\002\360\000\000`\002l\002\360\000\000l\002m\002\360\000\000m\002x\002\360\000\000x\002y\002\360\000\000y\002G\003\360\000\000G\003P\003\360\000\000P\003W\003\360\000\000W\003]\003\360\000\000]\003_\003\360\000\000_\003`\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\021\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320V_\320_d\320dj\320jl\320lt\320t}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002M\002\360\000\000M\002U\002\360\000\000U\002a\002\360\000\000a\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,""\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270!\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320W`\320`e\320ek\320km\320mu\320u~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002N\002\360\000\000N\002V\002\360\000\000V\002b\002\360\000\000b\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002{\002\360\000\000{\002I\003\360\000\000I\003R\003\360\000\000R\003Y\003\360\000\000Y\003_\003\360\000\000_\003a\003\360\000\000a\003b\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Yb\320bg\320gm\320mo\320ow\360\000\000x\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002P\002\360\000\000P\002X\002\360\000\000X\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002|\002\360\000\000|\002}\002\360\000\000}\002K\003\360\000\000K\003T\003\360\000\000T\003[\003\360\000\000[\003a\003\360\000\000a\003c\003\360\000\000c\003d\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)""\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270Q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002Q\002\360\000\000Q\002Y\002\360\000\000Y\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002}\002\360\000\000}\002~\002\360\000\000~\002L\003\360\000\000L\003U\003\360\000\000U\003\\\003\360\000\000\\\003b\003\360\000\000b\003d\003\360\000\000d\003e\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\033\320\033,\250A\250X\260Q\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L\002\360\000\000L\002T\002\360\000\000T\002`\002\360\000\000`\002l\002\360\000\000l\002m\002\360\000\000m\002x\002\360\000\000x\002y\002\360\000\000y\002G\003\360\000\000G\003P\003\360\000\000P\003\\\003\360\000\000""\\\003b\003\360\000\000b\003d\003\360\000\000d\003n\003\360\000\000n\003w\003\360\000\000w\003C\004\360\000\000C\004I\004\360\000\000I\004K\004\360\000\000K\004L\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320kl\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\2701\330\014\030\320\030)\250\021\250(\260!\330\014\031\320\031*\250!\2508\2601\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\320v\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002O\002\360\000\000O\002W\002\360\000\000W\002c\002\360\000\000c\002o\002\360\000\000o\002p\002\360\000\000p\002{\002\360\000\000{\002|\002\360\000\000|\002J\003\360\000\000J\003S\003\360\000\000S\003\\\003\360\000\000\\\003b\003\360\000\000b\003d\003\360\000\000d\003n\003\360\000\000n\003w\003\360\000\000w\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004J\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210y\230\014\240B\240f\250E\260\031\270,\300l\320RT\320TZ\320Z_\320_h\320hi\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t+\250!\330\010&\240o""\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270Q\330\014\033\320\033,\250A\250X\260Q\330\014\034\320\034-\250Q\250h\260a\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002Q\002\360\000\000Q\002Y\002\360\000\000Y\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002}\002\360\000\000}\002~\002\360\000\000~\002L\003\360\000\000L\003U\003\360\000\000U\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003s\003\360\000\000s\003|\003\360\000\000|\003I\004\360\000\000I\004O\004\360\000\000O\004Q\004\360\000\000Q\004[\004\360\000\000[\004d\004\360\000\000d\004p\004\360\000\000p\004v\004\360\000\000v\004x\004\360\000\000x\004y\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307M\320Mb\320bc\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260|\300;\310a\330\014\033\320\033,\250A\250X\260Q\330\014\034\320\034-\250Q\250h\260a\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T]\320]b\320bh\320hj\320jr\320r{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002K\002\360\000\000K\002S\002\360""\000\000S\002_\002\360\000\000_\002k\002\360\000\000k\002v\002\360\000\000v\002}\002\360\000\000}\002~\002\360\000\000~\002I\003\360\000\000I\003J\003\360\000\000J\003X\003\360\000\000X\003a\003\360\000\000a\003m\003\360\000\000m\003s\003\360\000\000s\003u\003\360\000\000u\003\177\003\360\000\000\177\003H\004\360\000\000H\004U\004\360\000\000U\004[\004\360\000\000[\004]\004\360\000\000]\004g\004\360\000\000g\004p\004\360\000\000p\004|\004\360\000\000|\004B\005\360\000\000B\005D\005\360\000\000D\005E\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307N\320Ne\320e~\320~\177\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300L\320P\\\320\\]\330\014\025\320\025&\240a\240x\250q\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L\002\360\000\000L\002T\002\360\000\000T\002`\002\360\000\000`\002l\002\360\000\000l\002x\002\360\000\000x\002D\003\360\000\000D\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004N\004\360\000\000N\004W\004\360\000\000W\004c\004\360\000\000c\004i\004\360\000\000i\004k\004\360""\000\000k\004l\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210y\230\014\240B\240f\250E\260\031\270)\300<\310r\320QW\320W\\\320\\e\320ef\200A\3307Q\320QR\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t-\250A\330\010(\320(9\270\030\300\021\300!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047>\270a\270|\3101\330\014\034\320\034-\250Q\250h\260a\330\014\027\220~\240Q\240h\250a\330\021\022\330\020\032\320\0323\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003K\003\360\000\000K\003L\003\360\000\000L\003Z\003\360\000\000Z\003c\003\360\000\000c\003p\003\360\000\000p\003v\003\360\000\000v\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004P\004\360\000\000P\004V\004\360\000\000V\004X\004\360\000\000X\004Y\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010\017\210y\230\014\240B\240f\250E\260\031\320:J\310,\320VX\320X^\320^c\320cl\320lm\200A\3308P\320Ph\320hi\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\270=""\310\r\320UV\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\320v\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002O\002\360\000\000O\002W\002\360\000\000W\002c\002\360\000\000c\002p\002\360\000\000p\002}\002\360\000\000}\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\3309R\320Rk\320kl\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\270>\310\036\320WX\330\014\027\320\027(\250\001\250\030\260\021\330\014\027\320\027(\250\001\250\030\260\021\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\320v\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002O\002\360\000\000O\002W\002\360\000\000W\002c\002\360\000\000c\002q\002\360\000\000q\002\177\002\360\000\000\177\002M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003q\003\360\000\000q\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004K\004\360\000\000K\004T\004\360\000\000T\004\\\004\360\000\000\\\004b\004\360\000\000b\004d\004\360\000\000d\004e\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250""\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270.\310\016\320Vd\320dr\320rs\330\014\027\320\027(\250\001\250\030\260\021\330\014\027\320\027(\250\001\250\030\260\021\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320W`\320`e\320ek\320km\320mu\320u~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002N\002\360\000\000N\002V\002\360\000\000V\002b\002\360\000\000b\002p\002\360\000\000p\002~\002\360\000\000~\002L\003\360\000\000L\003Z\003\360\000\000Z\003h\003\360\000\000h\003i\003\360\000\000i\003t\003\360\000\000t\003u\003\360\000\000u\003C\004\360\000\000C\004L\004\360\000\000L\004T\004\360\000\000T\004Z\004\360\000\000Z\004\\\004\360\000\000\\\004f\004\360\000\000f\004o\004\360\000\000o\004w\004\360\000\000w\004}\004\360\000\000}\004\177\004\360\000\000\177\004@\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\360\000\000l\001A\002\360\000\000A\002Z\002\360\000\000Z\002[\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t&\240Q\330""\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\016\300n\320Tb\320bp\320pq\330\014\023\320\023$\240A\240X\250Q\330\014\023\320\023$\240A\240X\250Q\330\014\023\320\023$\240A\240X\250Q\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L\002\360\000\000L\002T\002\360\000\000T\002`\002\360\000\000`\002n\002\360\000\000n\002|\002\360\000\000|\002J\003\360\000\000J\003X\003\360\000\000X\003f\003\360\000\000f\003g\003\360\000\000g\003r\003\360\000\000r\003s\003\360\000\000s\003A\004\360\000\000A\004J\004\360\000\000J\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004`\004\360\000\000`\004i\004\360\000\000i\004m\004\360\000\000m\004s\004\360\000\000s\004u\004\360\000\000u\004\177\004\360\000\000\177\004H\005\360\000\000H\005L\005\360\000\000L\005R\005\360\000\000R\005T\005\360\000\000T\005U\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210y\230\014\240B\240f\250E\260\031\270\047\300\034\310R\310v\320UZ\320Zc\320cj\320jv\320vx\320x~\360\000\000\177\001D\002\360\000\000D\002M\002\360\000\000M\002N\002\200A\330?@\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L\002\360\000\000L""\002T\002\360\000\000T\002]\002\360\000\000]\002e\002\360\000\000e\002k\002\360\000\000k\002m\002\360\000\000m\002u\002\360\000\000u\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003q\003\360\000\000q\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?V\320VW\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270,\300a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320W`\320`e\320ek\320km\320mu\320u~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002N\002\360\000\000N\002V\002\360\000\000V\002_\002\360\000\000_\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002w\002\360\000\000w\002C\003\360\000\000C\003O\003\360\000\000O\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003\177\003\360\000\000\177\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 ""\240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t-\250A\330\010(\320(9\270\030\300\021\300!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047>\270a\270q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0323\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003S\003\360\000\000S\003T\003\360\000\000T\003_\003\360\000\000_\003`\003\360\000\000`\003n\003\360\000\000n\003t\003\360\000\000t\003~\003\360\000\000~\003D\004\360\000\000D\004F\004\360\000\000F\004G\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t1\260\001\330\010,\320,A\300\030\310\021\310!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047B\300!\3001\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0327\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320io\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003W\003\360\000\000W\003X""\003\360\000\000X\003c\003\360\000\000c\003d\003\360\000\000d\003r\003\360\000\000r\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t3\260!\330\010.\320.E\300X\310Q\310a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047D\300A\300Q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0329\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003e\003\360\000\000e\003f\003\360\000\000f\003t\003\360\000\000t\003z\003\360\000\000z\003D\004\360\000\000D\004J\004\360\000\000J\004L\004\360\000\000L\004M\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t4\2601\330\010/\320/G\300x\310q""\320PQ\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047E\300Q\300a\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\032:\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003g\003\360\000\000g\003u\003\360\000\000u\003{\003\360\000\000{\003E\004\360\000\000E\004K\004\360\000\000K\004M\004\360\000\000M\004N\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t5\260A\330\0100\3200I\310\030\320QR\320RS\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047F\300a\300q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\032;\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003|\003\360\000\000|\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\020\023""\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+G\300q\310\001\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+""\2501\250A\250X\260Y\270f\300F\310\"\310H\320T`\320`a\320al\320lm\320m{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002U\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320ab\320bm\320mn\320n|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002V\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320Vb\320bc\320cn\320no\320o}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002W\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!""\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320Wc\320cd\320do\320op\320p~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002X\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xd\320de\320ep\320pq\320q\177\360\000\000@\002I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002Y\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t-\250A\330\010(\320(9\270\030\300\021\300!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047>\270a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0323\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320hi\320it\320tu\360\000""\000v\001D\002\360\000\000D\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002]\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t.\250Q\330\010)\320);\2708\3001\300A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047?\270q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0324\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320ij\320ju\320uv\360\000\000w\001E\002\360\000\000E\002N\002\360\000\000N\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002^\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t/\250a\330\010*\320*=\270X\300Q\300a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047@\300\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0325\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q""\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t/\250a\330\010*\320*=\270X\300Q\300a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047@\300\001\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0325\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002L\002\360\000\000L\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\330\014\026\320\026\047\240q\250\010\260\001\330\014\032\320\032+\2501\250H\260A\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Ye\320ef\320fq\320qr\360\000\000s\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002c\002\360\000\000c\002l\002\360\000\000l\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t,\2501\330\010\047\320\0477\260x\270q\300\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307""\240%\320\047=\270Q\330\014\031\320\031*\250!\2508\2601\330\014\034\320\034-\250Q\250h\260a\330\021\022\330\020\032\320\0322\260!\2601\260H\270I\300V\3106\320QS\320S[\320[g\320gh\320hs\320st\360\000\000u\001C\002\360\000\000C\002L\002\360\000\000L\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002h\002\360\000\000h\002q\002\360\000\000q\002~\002\360\000\000~\002D\003\360\000\000D\003F\003\360\000\000F\003G\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\017\210y\230\014\240B\240h\250m\270<\300r\310\030\320QR\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002R\002\360\000\000R\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002y\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240V\2507\260!\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\330\014\026\320\026\047\240q\250\010""\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L\002\360\000\000L\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002l\002\360\000\000l\002m\002\360\000\000m\002{\002\360\000\000{\002D\003\360\000\000D\003K\003\360\000\000K\003Q\003\360\000\000Q\003S\003\360\000\000S\003T\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\320v\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002O\002\360\000\000O\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002o\002\360\000\000o\002p\002\360\000\000p\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o""\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002Q\002\360\000\000Q\002Y\002\360\000\000Y\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003P\003\360\000\000P\003V\003\360\000\000V\003X\003\360\000\000X\003Y\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T]\320]b\320bh\320hj\320jr\320r{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002K\002\360\000\000K\002S\002\360\000\000S\002\\\002\360\000\000\\\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003L\003\360\000\000L\003M\003\360\000\000M\003[\003\360\000\000[\003d\003\360\000\000d\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003t\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330""\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320V_\320_d\320dj\320jl\320lt\320t}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002M\002\360\000\000M\002U\002\360\000\000U\002^\002\360\000\000^\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003N\003\360\000\000N\003O\003\360\000\000O\003]\003\360\000\000]\003f\003\360\000\000f\003m\003\360\000\000m\003s\003\360\000\000s\003u\003\360\000\000u\003v\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001B\002\360\000\000B\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002f\002\360\000\000f\002g\002\360\000\000g\002r\002\360\000\000r\002s\002\360\000\000s\002A\003\360\000\000A\003J\003\360""\000\000J\003Q\003\360\000\000Q\003W\003\360\000\000W\003Y\003\360\000\000Y\003Z\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^d\320dj\320jl\320lt\320t}\360\000\000~\001C\002\360\000\000C\002I\002\360\000\000I\002K\002\360\000\000K\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003K\003\360\000\000K\003L\003\360\000\000L\003Z\003\360\000\000Z\003c\003\360\000\000c\003j\003\360\000\000j\003p\003\360\000\000p\003r\003\360\000\000r\003s\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0320\260\001\260""\021\260(\270)\3006\310\026\310r\320QY\320Yb\320bh\320hn\320np\320px\360\000\000y\001B\002\360\000\000B\002G\002\360\000\000G\002M\002\360\000\000M\002O\002\360\000\000O\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002w\002\360\000\000w\002C\003\360\000\000C\003D\003\360\000\000D\003O\003\360\000\000O\003P\003\360\000\000P\003^\003\360\000\000^\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003v\003\360\000\000v\003w\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ci\320io\320oq\320qy\360\000\000z\001C\002\360\000\000C\002H\002\360\000\000H\002N\002\360\000\000N\002P\002\360\000\000P\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002x\002\360\000\000x\002D\003\360\000\000D\003E\003\360\000\000E\003P\003\360\000\000P\003Q\003\360\000\000Q\003_\003\360\000\000_\003h\003\360\000\000h\003o\003\360\000\000o\003u\003\360\000\000u\003w\003\360\000\000w\003x\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A""\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t,\2501\330\010\047\320\0477\260x\270q\300\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047=\270Q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0322\260!\2601\260H\270I\300V\3106\320QS\320S[\320[d\320dj\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002I\002\360\000\000I\002O\002\360\000\000O\002Q\002\360\000\000Q\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002y\002\360\000\000y\002E\003\360\000\000E\003F\003\360\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003x\003\360\000\000x\003y\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t-\250A\330\010(\320(9\270\030\300\021\300!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047>\270a\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0323\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003G\003""\360\000\000G\003R\003\360\000\000R\003S\003\360\000\000S\003a\003\360\000\000a\003g\003\360\000\000g\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003z\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t.\250Q\330\010)\320);\2708\3001\300A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047?\270q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0324\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003h\003\360\000\000h\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003{\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t/\250a\330\010*\320*=\270X\300Q\300a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307""\240%\320\047@\300\001\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0325\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003T\003\360\000\000T\003U\003\360\000\000U\003c\003\360\000\000c\003i\003\360\000\000i\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003|\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t0\250q\330\010+\320+?\270x\300q\310\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047A\300\021\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0326\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hn\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002}\002\360\000\000}\002I\003\360\000\000I\003J\003\360\000\000J\003U\003\360\000\000U\003V\003\360\000\000V\003d\003\360\000\000d\003j\003\360\000\000j\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330""\014\037\230q\320 @\300\t\310\034\320U^\320^`\320`g\320gi\320ij\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t1\260\001\330\010,\320,A\300\030\310\021\310!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047B\300!\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0327\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320io\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003k\003\360\000\000k\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t2\260\021\330\010-\320-C\3008\3101\310A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047C\3001\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0328\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002""\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003L\003\360\000\000L\003W\003\360\000\000W\003X\003\360\000\000X\003f\003\360\000\000f\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003~\003\360\000\000~\003\177\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t3\260!\330\010.\320.E\300X\310Q\310a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047D\300A\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0329\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003Y\003\360\000\000Y\003g\003\360\000\000g\003m\003\360\000\000m\003w\003\360\000\000w\003}\003\360\000\000}\003\177\003\360\000\000\177\003@\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010""\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t4\2601\330\010/\320/G\300x\310q\320PQ\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047E\300Q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\032:\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t5\260A\330\0100\3200I\310\030\320QR\320RS\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047F\300a\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\032;\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003Z\003\360\000\000Z\003[\003\360\000\000[\003i\003\360\000\000i\003o\003\360\000\000o\003y\003\360\000\000y\003""\177\003\360\000\000\177\003A\004\360\000\000A\004B\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t6\260Q\330\0101\3201K\3108\320ST\320TU\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047G\300q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\032<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320en\320nt\320tz\320z|\360\000\000}\001E\002\360\000\000E\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003[\003\360\000\000[\003\\\003\360\000\000\\\003j\003\360\000\000j\003p\003\360\000\000p\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004C\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\020\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\330\014\030\320\030)\250\021\250(\260!\330\014\030\320\030)\250\021\250(\260!""\330\014\027\320\027(\250\001\250\030\260\021\330\014\031\320\031*\250!\2508\2601\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T]\320]c\320ci\320ik\320ks\320s|\360\000\000}\001B\002\360\000\000B\002H\002\360\000\000H\002J\002\360\000\000J\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h\002\360\000\000h\002j\002\360\000\000j\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002J\003\360\000\000J\003K\003\360\000\000K\003Y\003\360\000\000Y\003b\003\360\000\000b\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003}\003\360\000\000}\003F\004\360\000\000F\004O\004\360\000\000O\004U\004\360\000\000U\004W\004\360\000\000W\004a\004\360\000\000a\004j\004\360\000\000j\004r\004\360\000\000r\004x\004\360\000\000x\004z\004\360\000\000z\004D\005\360\000\000D\005M\005\360\000\000M\005W\005\360\000\000W\005]\005\360\000\000]\005_\005\360\000\000_\005`\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210y\230\014\240B\240f\250F\260%\260y\300\014\310L\320XZ\320Z`\320`f\320fk\320kt\360\000\000u\001A\002\360\000\000A\002M\002\360\000\000M\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002`\002\360\000\000`\002i\002\360\000\000i\002t\002\360\000\000t\002@\003\360\000\000@\003B\003\360\000\000B\003H\003\360\000\000H\003N\003\360\000\000N\003S\003\360\000\000S\003\\\003\360\000\000\\\003]\003\200A\340\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102""\310X\320U^\320^f\320fl\320ln\320nv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002O\002\360\000\000O\002P\002\360\000\000P\002^\002\360\000\000^\002g\002\360\000\000g\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002w\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\250:\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270w\300f\310B\310h\320V_\320_f\320fl\320ln\320nv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002O\002\360\000\000O\002P\002\360\000\000P\002^\002\360\000\000^\002g\002\360\000\000g\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002w\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\007\300v\310R\310x\320W`\320`g\320gm\320mo\320ow\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360""\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270w\300f\310B\310h\320V_\320_g\320gm\320mo\320ow\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240W\250J\260a\200A\340\r\016\330\014\027\220\177\240a\330\010\013\2104\210q\330\014\022\220,\230a\230q\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\035\230W\240A\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330""\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\n\000\t\017\210d\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\t\330\014\027\320\027\047\240q\250\001\340\014 \240\001\240\021\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 ""\240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\035\230W\240E\250\021\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250\021\250$\250f\260A\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)/\250q\330)1\260\024\260Q\330\r\037\230w\240e\2501\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250\021\250!\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)0\260\004\260A\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\035\230W\240A\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r\037\230w\240a\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\t\330\014\020\320\020\"\240\"\240H\250A\330\014\020\320\020 \240\001\360\006\000\r\021\220\014\230I\240Q\330\020\025""\220[\240\001\240\033\250A\250[\270\001\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\021\220\014\230I\240Q\330\020\025\220\\\240\021\240+\250Q\320.@\300\001\330\020\025\220U\230!\230>\250\021\250.\270\001\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023%\240W\250A\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\000\021\220\021\330\004\005\360\006\000\n\013\330\010\023\220?\240!\330\004\007\200t\2101\330\010\013\2101\360\006\000\r\016\330\010\016\210l\230!\2301\330\004\005\330\010\013\2101\330\021\022\330\020\036\230l\250!\330\014\035\230Q\230o\250Q\330\014\036\230a\340\r\016\330\014\031\230\021\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\022\220\"\220G\2307\240$\240g\250Y\260j\300\006\300a\330\023\026\220d\320\0322\260!\2607\270!\330\010\014\210G\2209\230A\330\014\021\220\033\230A\230V\2401\240K\250q\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; +static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected bars of history, at least function failed with error code needed (a leading bar that is NaN in any input is not history)%(display_name)s (%(group)s)\n%s%s.advance%s.out_range\047 is deprecated and has no effect: ((%s)(any ndarray)(tree fragment)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)An output is display-shiftedArnaud Legoux Moving Average""Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasConfirmation Pattern (+/-200 = this bar confirms an earlier pattern)Dashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Input must be positiveInputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough history to open a stream (TA_INSUFFICIENT_HISTORY).\n\n Recoverable: collect more bars and try again.Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is display-shiftedOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageTA-Lib is not initialized ""or a settings change is in progressThe Function\047s Own Default Moving AverageToo many price arguments: expected Triangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Uses a transcendental math functionValues represent a lower limitValues represent an upper limitVariable Index Dynamic AverageWeak Pattern (+/-80 = a weaker form of the pattern)Weighted Moving AverageWilder\047s Smoothed Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_notebegidx nbelementcannot change TA-Lib settings or lifecycle while calls or streams are activecannot pickle %s: a stream handle points into the TA-Lib C library, and does not cross a process boundarycannot shut down TA-Lib while calls or streams are activedisableenablegcinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput must be a numpy array or a pandas or polars Series, not %sinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)isenabledno history: the input array is emptynumpy._core.multiarray failed to importnumpy._core.umath failed to importtalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitoo many input arraysunstable period \047ACACCBANDSACCBANDS_StreamACCBANDS_Stream.open_and_fillACOSACOS_StreamACOS_Stream.open_and_fillAC_StreamAC_Stream.open_and_fillADADDADD_StreamADD_Stream.open_and_fillADOSCADOSC_StreamADOSC_Stream.open_and_fillADRADR_StreamADR_Stream.open_and_fillADXADXRADXR_StreamADXR_Stream.open_and_fillADX_StreamADX_Stream.open_and_fillAD_StreamAD_Stream.open_and_fillALLALMAALMA_StreamALMA_Stream.open_and_fillAOAO_StreamAO_Stream.open_and_fillAPOAPO_StreamAPO_Stream.open_and_fillAROONAROONOSCAROONOSC_StreamAROONOSC_Stream.open_and_fillAROON_StreamAROON_Stream.open_and_fillASIASINASIN_StreamASIN_Stream.o""pen_and_fillASI_StreamASI_Stream.open_and_fillATANATAN_StreamATAN_Stream.open_and_fillATRATR_StreamATR_Stream.open_and_fillAVGDEVAVGDEV_StreamAVGDEV_Stream.open_and_fillAVGPRICEAVGPRICE_StreamAVGPRICE_Stream.open_and_fillAllCandleSettingsBBANDSBBANDS_StreamBBANDS_Stream.open_and_fillBBWBBW_StreamBBW_Stream.open_and_fillBETABETA_StreamBETA_Stream.open_and_fillBOPBOP_StreamBOP_Stream.open_and_fillBodyDojiBodyLongBodyShortBodyVeryLongCCICCI_StreamCCI_Stream.open_and_fillCDL2CROWSCDL2CROWS_StreamCDL2CROWS_Stream.open_and_fillCDL3BLACKCROWSCDL3BLACKCROWS_StreamCDL3BLACKCROWS_Stream.open_and_fillCDL3INSIDECDL3INSIDE_StreamCDL3INSIDE_Stream.open_and_fillCDL3LINESTRIKECDL3LINESTRIKE_StreamCDL3LINESTRIKE_Stream.open_and_fillCDL3OUTSIDECDL3OUTSIDE_StreamCDL3OUTSIDE_Stream.open_and_fillCDL3STARSINSOUTHCDL3STARSINSOUTH_StreamCDL3STARSINSOUTH_Stream.open_and_fillCDL3WHITESOLDIERSCDL3WHITESOLDIERS_StreamCDL3WHITESOLDIERS_Stream.open_and_fillCDLABANDONEDBABYCDLABANDONEDBABY_StreamCDLABANDONEDBABY_Stream.open_and_fillCDLADVANCEBLOCKCDLADVANCEBLOCK_StreamCDLADVANCEBLOCK_Stream.open_and_fillCDLBELTHOLDCDLBELTHOLD_StreamCDLBELTHOLD_Stream.open_and_fillCDLBREAKAWAYCDLBREAKAWAY_StreamCDLBREAKAWAY_Stream.open_and_fillCDLCLOSINGMARUBOZUCDLCLOSINGMARUBOZU_StreamCDLCLOSINGMARUBOZU_Stream.open_and_fillCDLCONCEALBABYSWALLCDLCONCEALBABYSWALL_StreamCDLCONCEALBABYSWALL_Stream.open_and_fillCDLCOUNTERATTACKCDLCOUNTERATTACK_StreamCDLCOUNTERATTACK_Stream.open_and_fillCDLDARKCLOUDCOVERCDLDARKCLOUDCOVER_StreamCDLDARKCLOUDCOVER_Stream.open_and_fillCDLDOJICDLDOJISTARCDLDOJISTAR_StreamCDLDOJISTAR_Stream.open_and_fillCDLDOJI_StreamCDLDOJI_Stream.open_and_fillCDLDRAGONFLYDOJICDLDRAGONFLYDOJI_StreamCDLDRAGONFLYDOJI_Stream.open_and_fillCDLENGULFINGCDLENGULFING_StreamCDLENGULFING_Stream.open_and_fillCDLEVENINGDOJISTARCDLEVENINGDOJISTAR_StreamCDLEVENINGDOJISTAR_Stream.open_and_fillCDLEVENINGSTARCDLEVENINGSTAR_StreamCDLEVENINGSTAR_Stream.open_and_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEWHITE_StreamCDLGAPSIDESIDEWH""ITE_Stream.open_and_fillCDLGRAVESTONEDOJICDLGRAVESTONEDOJI_StreamCDLGRAVESTONEDOJI_Stream.open_and_fillCDLHAMMERCDLHAMMER_StreamCDLHAMMER_Stream.open_and_fillCDLHANGINGMANCDLHANGINGMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_StreamCDLHARAMICROSS_Stream.open_and_fillCDLHARAMI_StreamCDLHARAMI_Stream.open_and_fillCDLHIGHWAVECDLHIGHWAVE_StreamCDLHIGHWAVE_Stream.open_and_fillCDLHIKKAKECDLHIKKAKEMODCDLHIKKAKEMOD_StreamCDLHIKKAKEMOD_Stream.open_and_fillCDLHIKKAKE_StreamCDLHIKKAKE_Stream.open_and_fillCDLHOMINGPIGEONCDLHOMINGPIGEON_StreamCDLHOMINGPIGEON_Stream.open_and_fillCDLIDENTICAL3CROWSCDLIDENTICAL3CROWS_StreamCDLIDENTICAL3CROWS_Stream.open_and_fillCDLINNECKCDLINNECK_StreamCDLINNECK_Stream.open_and_fillCDLINVERTEDHAMMERCDLINVERTEDHAMMER_StreamCDLINVERTEDHAMMER_Stream.open_and_fillCDLKICKINGCDLKICKINGBYLENGTHCDLKICKINGBYLENGTH_StreamCDLKICKINGBYLENGTH_Stream.open_and_fillCDLKICKING_StreamCDLKICKING_Stream.open_and_fillCDLLADDERBOTTOMCDLLADDERBOTTOM_StreamCDLLADDERBOTTOM_Stream.open_and_fillCDLLONGLEGGEDDOJICDLLONGLEGGEDDOJI_StreamCDLLONGLEGGEDDOJI_Stream.open_and_fillCDLLONGLINECDLLONGLINE_StreamCDLLONGLINE_Stream.open_and_fillCDLMARUBOZUCDLMARUBOZU_StreamCDLMARUBOZU_Stream.open_and_fillCDLMATCHINGLOWCDLMATCHINGLOW_StreamCDLMATCHINGLOW_Stream.open_and_fillCDLMATHOLDCDLMATHOLD_StreamCDLMATHOLD_Stream.open_and_fillCDLMORNINGDOJISTARCDLMORNINGDOJISTAR_StreamCDLMORNINGDOJISTAR_Stream.open_and_fillCDLMORNINGSTARCDLMORNINGSTAR_StreamCDLMORNINGSTAR_Stream.open_and_fillCDLONNECKCDLONNECK_StreamCDLONNECK_Stream.open_and_fillCDLPIERCINGCDLPIERCING_StreamCDLPIERCING_Stream.open_and_fillCDLRICKSHAWMANCDLRICKSHAWMAN_StreamCDLRICKSHAWMAN_Stream.open_and_fillCDLRISEFALL3METHODSCDLRISEFALL3METHODS_StreamCDLRISEFALL3METHODS_Stream.open_and_fillCDLSEPARATINGLINESCDLSEPARATINGLINES_StreamCDLSEPARATINGLINES_Stream.open_and_fillCDLSHOOTINGSTARCDLSHOOTINGSTAR_StreamCDLSHOOTINGSTAR_Stream.open_and_fillCDLSHORTLINECDLSHORTLINE_StreamCDLSHORTLINE_Stream.open""_and_fillCDLSPINNINGTOPCDLSPINNINGTOP_StreamCDLSPINNINGTOP_Stream.open_and_fillCDLSTALLEDPATTERNCDLSTALLEDPATTERN_StreamCDLSTALLEDPATTERN_Stream.open_and_fillCDLSTICKSANDWICHCDLSTICKSANDWICH_StreamCDLSTICKSANDWICH_Stream.open_and_fillCDLTAKURICDLTAKURI_StreamCDLTAKURI_Stream.open_and_fillCDLTASUKIGAPCDLTASUKIGAP_StreamCDLTASUKIGAP_Stream.open_and_fillCDLTHRUSTINGCDLTHRUSTING_StreamCDLTHRUSTING_Stream.open_and_fillCDLTRISTARCDLTRISTAR_StreamCDLTRISTAR_Stream.open_and_fillCDLUNIQUE3RIVERCDLUNIQUE3RIVER_StreamCDLUNIQUE3RIVER_Stream.open_and_fillCDLUPSIDEGAP2CROWSCDLUPSIDEGAP2CROWS_StreamCDLUPSIDEGAP2CROWS_Stream.open_and_fillCDLXSIDEGAP3METHODSCDLXSIDEGAP3METHODS_StreamCDLXSIDEGAP3METHODS_Stream.open_and_fillCEILCEIL_StreamCEIL_Stream.open_and_fillCGCG_StreamCG_Stream.open_and_fillCHOPCHOPTRCHOPTR_StreamCHOPTR_Stream.open_and_fillCHOP_StreamCHOP_Stream.open_and_fillCKSPCKSP_StreamCKSP_Stream.open_and_fillCMFCMF_StreamCMF_Stream.open_and_fillCMOCMOUCMOU_StreamCMOU_Stream.open_and_fillCMO_StreamCMO_Stream.open_and_fillCOPPOCKCOPPOCK_StreamCOPPOCK_Stream.open_and_fillCORRELCORREL_StreamCORREL_Stream.open_and_fillCOSCOSHCOSH_StreamCOSH_Stream.open_and_fillCOS_StreamCOS_Stream.open_and_fillCRSICRSI_StreamCRSI_Stream.open_and_fillCTICTI_StreamCTI_Stream.open_and_fillCUMSUMCUMSUM_StreamCUMSUM_Stream.open_and_fillCVICVI_StreamCVI_Stream.open_and_fillCandleSettingTypeDEFAULTDEMADEMA_StreamDEMA_Stream.open_and_fillDISABLEDDIVDIV_StreamDIV_Stream.open_and_fillDONCHIANDONCHIAN_StreamDONCHIAN_Stream.open_and_fillDOSCDOSC_StreamDOSC_Stream.open_and_fillDPODPO_StreamDPO_Stream.open_and_fillDXDX_StreamDX_Stream.open_and_fillDataFrameDotEFIEFI_StreamEFI_Stream.open_and_fillEMAEMA_StreamEMA_Stream.open_and_fillEMVEMV_StreamEMV_Stream.open_and_fillERERIERI_StreamERI_Stream.open_and_fillER_StreamER_Stream.open_and_fillEXPEXP_StreamEXP_Stream.open_and_fillEqualFISHERFISHER_StreamFISHER_Stream.open_and_fillFLOORFLOOR_StreamFLOOR_Stream.open_and_fillFOSCFOSC_StreamFOSC_Stream.open_and_fillFR""ACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFRAMAFRAMA_StreamFRAMA_Stream.open_and_fillFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHMAHMA_StreamHMA_Stream.open_and_fillHT_DCPERIODHT_DCPERIOD_StreamHT_DCPERIOD_Stream.open_and_fillHT_DCPHASEHT_DCPHASE_StreamHT_DCPHASE_Stream.open_and_fillHT_PHASORHT_PHASOR_StreamHT_PHASOR_Stream.open_and_fillHT_SINEHT_SINE_StreamHT_SINE_Stream.open_and_fillHT_TRENDLINEHT_TRENDLINE_StreamHT_TRENDLINE_Stream.open_and_fillHT_TRENDMODEHT_TRENDMODE_StreamHT_TRENDMODE_Stream.open_and_fillHighLowHistogramIBSIBS_StreamIBS_Stream.open_and_fillICHIMOKUICHIMOKU_StreamICHIMOKU_Stream.open_and_fillIMIIMI_StreamIMI_Stream.open_and_fillInsufficientHistoryKAMAKAMA_StreamKAMA_Stream.open_and_fillKCKC_StreamKC_Stream.open_and_fillKDJKDJ_StreamKDJ_Stream.open_and_fillKSTKSTEXTKSTEXT_StreamKSTEXT_Stream.open_and_fillKST_StreamKST_Stream.open_and_fillKURTOSISKURTOSIS_StreamKURTOSIS_Stream.open_and_fillKVOKVO_StreamKVO_Stream.open_and_fillLINEARREGLINEARREG_ANGLELINEARREG_ANGLE_StreamLINEARREG_ANGLE_Stream.open_and_fillLINEARREG_INTERCEPTLINEARREG_INTERCEPT_StreamLINEARREG_INTERCEPT_Stream.open_and_fillLINEARREG_SLOPELINEARREG_SLOPE_StreamLINEARREG_SLOPE_Stream.open_and_fillLINEARREG_StreamLINEARREG_Stream.open_and_fillLNLN_StreamLN_Stream.open_and_fillLOG10LOG10_StreamLOG10_Stream.open_and_fillLineMAMACDMACDEXTMACDEXT_StreamMACDEXT_Stream.open_and_fillMACDFIXMACDFIX_StreamMACDFIX_Stream.open_and_fillMACD_StreamMACD_Stream.open_and_fillMAMAMAMA_""StreamMAMA_Stream.open_and_fillMARKETFIMARKETFI_StreamMARKETFI_Stream.open_and_fillMASSIMASSI_StreamMASSI_Stream.open_and_fillMAVPMAVP_StreamMAVP_Stream.open_and_fillMAXMAXINDEXMAXINDEX_StreamMAXINDEX_Stream.open_and_fillMAX_StreamMAX_Stream.open_and_fillMA_StreamMA_Stream.open_and_fillMA_TypeMA_Type.__getitem__MA_Type.__init__MCGDMCGD_StreamMCGD_Stream.open_and_fillMEDIANMEDIAN_StreamMEDIAN_Stream.open_and_fillMEDPRICEMEDPRICE_StreamMEDPRICE_Stream.open_and_fillMFIMFI_StreamMFI_Stream.open_and_fillMIDPOINTMIDPOINT_StreamMIDPOINT_Stream.open_and_fillMIDPRICEMIDPRICE_StreamMIDPRICE_Stream.open_and_fillMINMININDEXMININDEX_StreamMININDEX_Stream.open_and_fillMINMAXMINMAXINDEXMINMAXINDEX_StreamMINMAXINDEX_Stream.open_and_fillMINMAX_StreamMINMAX_Stream.open_and_fillMINUS_DIMINUS_DI_StreamMINUS_DI_Stream.open_and_fillMINUS_DMMINUS_DM_StreamMINUS_DM_Stream.open_and_fillMIN_StreamMIN_Stream.open_and_fillMOMMOM_StreamMOM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_and_fillNONENVINVI_StreamNVI_Stream.open_and_fillNearOBVOBV_StreamOBV_Stream.open_and_fillOrderedDictOutRangePERCENTBPERCENTB_StreamPERCENTB_Stream.open_and_fillPERCENTILEPERCENTILE_StreamPERCENTILE_Stream.open_and_fillPERCENTRANKPERCENTRANK_StreamPERCENTRANK_Stream.open_and_fillPLUS_DIPLUS_DI_StreamPLUS_DI_Stream.open_and_fillPLUS_DMPLUS_DM_StreamPLUS_DM_Stream.open_and_fillPPOPPO_StreamPPO_Stream.open_and_fillPSOPSO_StreamPSO_Stream.open_and_fillPVIPVI_StreamPVI_Stream.open_and_fillPVOPVO_StreamPVO_Stream.open_and_fillPVTPVT_StreamPVT_Stream.open_and_fillQSTICKQSTICK_StreamQSTICK_Stream.open_and_fillRMARMA_StreamRMA_Stream.open_and_fillROCROCPROCP_StreamROCP_Stream.open_and_fillROCRROCR100ROCR100_StreamROCR100_Stream.open_and_fillROCR_StreamROCR_Stream.open_and_fillROC_StreamROC_Stream.open_and_fillROGERSSATCHELLROGERSSATCHELL_StreamROGERSSATCHELL_Stream.open_and_fillRSIRSI_StreamRSI_Stream.open_and_fillRVIRVIRRVIR_StreamRVIR_Stream.open_and_fillRVI_StreamRVI_Stream.""open_and_fillRVOLRVOL_StreamRVOL_Stream.open_and_fillRangeTypeRealBodySARSAREXTSAREXT_StreamSAREXT_Stream.open_and_fillSAR_StreamSAR_Stream.open_and_fillSISINSINHSINH_StreamSINH_Stream.open_and_fillSIN_StreamSIN_Stream.open_and_fillSI_StreamSI_Stream.open_and_fillSMASMA_StreamSMA_Stream.open_and_fillSMISMI_StreamSMI_Stream.open_and_fillSQRTSQRT_StreamSQRT_Stream.open_and_fillSQZMOMSQZMOM_StreamSQZMOM_Stream.open_and_fillSTCSTC_StreamSTC_Stream.open_and_fillSTDDEVSTDDEV_StreamSTDDEV_Stream.open_and_fillSTOCHSTOCHFSTOCHF_StreamSTOCHF_Stream.open_and_fillSTOCHRSISTOCHRSI_StreamSTOCHRSI_Stream.open_and_fillSTOCH_StreamSTOCH_Stream.open_and_fillSUBSUB_StreamSUB_Stream.open_and_fillSUMSUM_StreamSUM_Stream.open_and_fillSUPERTRENDSUPERTREND_StreamSUPERTREND_Stream.open_and_fillSWAK_2PHPSWAK_2PHP_StreamSWAK_2PHP_Stream.open_and_fillSWAK_BPSWAK_BP_StreamSWAK_BP_Stream.open_and_fillSWAK_BUTTERSWAK_BUTTER_StreamSWAK_BUTTER_Stream.open_and_fillSWAK_GAUSSSWAK_GAUSS_StreamSWAK_GAUSS_Stream.open_and_fillSWAK_HPSWAK_HP_StreamSWAK_HP_Stream.open_and_fillSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsStreamStream.__copy__Stream.__deepcopy__Stream.__reduce__T3T3_StreamT3_Stream.open_and_fillTANTANHTANH_StreamTANH_Stream.open_and_fillTAN_StreamTAN_Stream.open_and_fillTA_ACTA_ACCBANDSTA_ACCBANDS_CloneTA_ACCBANDS_OpenTA_ACCBANDS_OpenAndFillTA_ACCBANDS_PeekTA_ACCBANDS_UpdateTA_ACCBANDS_ValueTA_ACOSTA_ACOS_CloneTA_ACOS_OpenTA_ACOS_OpenAndFillTA_ACOS_PeekTA_ACOS_UpdateTA_ACOS_ValueTA_AC_CloneTA_AC_OpenTA_AC_OpenAndFillTA_AC_PeekTA_AC_UpdateTA_AC_ValueTA_ADTA_ADDTA_ADD_CloneTA_ADD_OpenTA_ADD_OpenAndFillTA_ADD_PeekTA_ADD_UpdateTA_ADD_ValueTA_ADOSCTA_ADOSC_CloneTA_ADOSC_OpenTA_ADOSC_OpenAndFillTA_ADOSC_PeekTA_ADOSC_UpdateTA_ADOSC_ValueTA_ADRTA_ADR_CloneTA_ADR_OpenTA_ADR_OpenAndFillTA_ADR_PeekTA_ADR_UpdateTA_ADR_ValueTA_ADXTA_ADXRTA_ADXR_CloneTA_ADXR_OpenTA_ADXR_OpenAndFillTA_ADXR_PeekTA_ADXR_UpdateTA_ADXR_ValueTA_ADX_CloneTA_ADX_OpenTA_ADX_OpenAndFillTA_ADX_PeekTA_ADX_UpdateTA_A""DX_ValueTA_AD_CloneTA_AD_OpenTA_AD_OpenAndFillTA_AD_PeekTA_AD_UpdateTA_AD_ValueTA_ALMATA_ALMA_CloneTA_ALMA_OpenTA_ALMA_OpenAndFillTA_ALMA_PeekTA_ALMA_UpdateTA_ALMA_ValueTA_AOTA_AO_CloneTA_AO_OpenTA_AO_OpenAndFillTA_AO_PeekTA_AO_UpdateTA_AO_ValueTA_APOTA_APO_CloneTA_APO_OpenTA_APO_OpenAndFillTA_APO_PeekTA_APO_UpdateTA_APO_ValueTA_AROONTA_AROONOSCTA_AROONOSC_CloneTA_AROONOSC_OpenTA_AROONOSC_OpenAndFillTA_AROONOSC_PeekTA_AROONOSC_UpdateTA_AROONOSC_ValueTA_AROON_CloneTA_AROON_OpenTA_AROON_OpenAndFillTA_AROON_PeekTA_AROON_UpdateTA_AROON_ValueTA_ASITA_ASINTA_ASIN_CloneTA_ASIN_OpenTA_ASIN_OpenAndFillTA_ASIN_PeekTA_ASIN_UpdateTA_ASIN_ValueTA_ASI_CloneTA_ASI_OpenTA_ASI_OpenAndFillTA_ASI_PeekTA_ASI_UpdateTA_ASI_ValueTA_ATANTA_ATAN_CloneTA_ATAN_OpenTA_ATAN_OpenAndFillTA_ATAN_PeekTA_ATAN_UpdateTA_ATAN_ValueTA_ATRTA_ATR_CloneTA_ATR_OpenTA_ATR_OpenAndFillTA_ATR_PeekTA_ATR_UpdateTA_ATR_ValueTA_AVGDEVTA_AVGDEV_CloneTA_AVGDEV_OpenTA_AVGDEV_OpenAndFillTA_AVGDEV_PeekTA_AVGDEV_UpdateTA_AVGDEV_ValueTA_AVGPRICETA_AVGPRICE_CloneTA_AVGPRICE_OpenTA_AVGPRICE_OpenAndFillTA_AVGPRICE_PeekTA_AVGPRICE_UpdateTA_AVGPRICE_ValueTA_BBANDSTA_BBANDS_CloneTA_BBANDS_OpenTA_BBANDS_OpenAndFillTA_BBANDS_PeekTA_BBANDS_UpdateTA_BBANDS_ValueTA_BBWTA_BBW_CloneTA_BBW_OpenTA_BBW_OpenAndFillTA_BBW_PeekTA_BBW_UpdateTA_BBW_ValueTA_BETATA_BETA_CloneTA_BETA_OpenTA_BETA_OpenAndFillTA_BETA_PeekTA_BETA_UpdateTA_BETA_ValueTA_BOPTA_BOP_CloneTA_BOP_OpenTA_BOP_OpenAndFillTA_BOP_PeekTA_BOP_UpdateTA_BOP_ValueTA_CCITA_CCI_CloneTA_CCI_OpenTA_CCI_OpenAndFillTA_CCI_PeekTA_CCI_UpdateTA_CCI_ValueTA_CDL2CROWSTA_CDL2CROWS_CloneTA_CDL2CROWS_OpenTA_CDL2CROWS_OpenAndFillTA_CDL2CROWS_PeekTA_CDL2CROWS_UpdateTA_CDL2CROWS_ValueTA_CDL3BLACKCROWSTA_CDL3BLACKCROWS_CloneTA_CDL3BLACKCROWS_OpenTA_CDL3BLACKCROWS_OpenAndFillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSIDE_CloneTA_CDL3INSIDE_OpenTA_CDL3INSIDE_OpenAndFillTA_CDL3INSIDE_PeekTA_CDL3INSIDE_UpdateTA_CDL3INSIDE_ValueTA_CDL3LINESTRIKETA_CDL3LINES""TRIKE_CloneTA_CDL3LINESTRIKE_OpenTA_CDL3LINESTRIKE_OpenAndFillTA_CDL3LINESTRIKE_PeekTA_CDL3LINESTRIKE_UpdateTA_CDL3LINESTRIKE_ValueTA_CDL3OUTSIDETA_CDL3OUTSIDE_CloneTA_CDL3OUTSIDE_OpenTA_CDL3OUTSIDE_OpenAndFillTA_CDL3OUTSIDE_PeekTA_CDL3OUTSIDE_UpdateTA_CDL3OUTSIDE_ValueTA_CDL3STARSINSOUTHTA_CDL3STARSINSOUTH_CloneTA_CDL3STARSINSOUTH_OpenTA_CDL3STARSINSOUTH_OpenAndFillTA_CDL3STARSINSOUTH_PeekTA_CDL3STARSINSOUTH_UpdateTA_CDL3STARSINSOUTH_ValueTA_CDL3WHITESOLDIERSTA_CDL3WHITESOLDIERS_CloneTA_CDL3WHITESOLDIERS_OpenTA_CDL3WHITESOLDIERS_OpenAndFillTA_CDL3WHITESOLDIERS_PeekTA_CDL3WHITESOLDIERS_UpdateTA_CDL3WHITESOLDIERS_ValueTA_CDLABANDONEDBABYTA_CDLABANDONEDBABY_CloneTA_CDLABANDONEDBABY_OpenTA_CDLABANDONEDBABY_OpenAndFillTA_CDLABANDONEDBABY_PeekTA_CDLABANDONEDBABY_UpdateTA_CDLABANDONEDBABY_ValueTA_CDLADVANCEBLOCKTA_CDLADVANCEBLOCK_CloneTA_CDLADVANCEBLOCK_OpenTA_CDLADVANCEBLOCK_OpenAndFillTA_CDLADVANCEBLOCK_PeekTA_CDLADVANCEBLOCK_UpdateTA_CDLADVANCEBLOCK_ValueTA_CDLBELTHOLDTA_CDLBELTHOLD_CloneTA_CDLBELTHOLD_OpenTA_CDLBELTHOLD_OpenAndFillTA_CDLBELTHOLD_PeekTA_CDLBELTHOLD_UpdateTA_CDLBELTHOLD_ValueTA_CDLBREAKAWAYTA_CDLBREAKAWAY_CloneTA_CDLBREAKAWAY_OpenTA_CDLBREAKAWAY_OpenAndFillTA_CDLBREAKAWAY_PeekTA_CDLBREAKAWAY_UpdateTA_CDLBREAKAWAY_ValueTA_CDLCLOSINGMARUBOZUTA_CDLCLOSINGMARUBOZU_CloneTA_CDLCLOSINGMARUBOZU_OpenTA_CDLCLOSINGMARUBOZU_OpenAndFillTA_CDLCLOSINGMARUBOZU_PeekTA_CDLCLOSINGMARUBOZU_UpdateTA_CDLCLOSINGMARUBOZU_ValueTA_CDLCONCEALBABYSWALLTA_CDLCONCEALBABYSWALL_CloneTA_CDLCONCEALBABYSWALL_OpenTA_CDLCONCEALBABYSWALL_OpenAndFillTA_CDLCONCEALBABYSWALL_PeekTA_CDLCONCEALBABYSWALL_UpdateTA_CDLCONCEALBABYSWALL_ValueTA_CDLCOUNTERATTACKTA_CDLCOUNTERATTACK_CloneTA_CDLCOUNTERATTACK_OpenTA_CDLCOUNTERATTACK_OpenAndFillTA_CDLCOUNTERATTACK_PeekTA_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_CDLDARKCLOUDCOVER_ValueTA_CDLDOJIT""A_CDLDOJISTARTA_CDLDOJISTAR_CloneTA_CDLDOJISTAR_OpenTA_CDLDOJISTAR_OpenAndFillTA_CDLDOJISTAR_PeekTA_CDLDOJISTAR_UpdateTA_CDLDOJISTAR_ValueTA_CDLDOJI_CloneTA_CDLDOJI_OpenTA_CDLDOJI_OpenAndFillTA_CDLDOJI_PeekTA_CDLDOJI_UpdateTA_CDLDOJI_ValueTA_CDLDRAGONFLYDOJITA_CDLDRAGONFLYDOJI_CloneTA_CDLDRAGONFLYDOJI_OpenTA_CDLDRAGONFLYDOJI_OpenAndFillTA_CDLDRAGONFLYDOJI_PeekTA_CDLDRAGONFLYDOJI_UpdateTA_CDLDRAGONFLYDOJI_ValueTA_CDLENGULFINGTA_CDLENGULFING_CloneTA_CDLENGULFING_OpenTA_CDLENGULFING_OpenAndFillTA_CDLENGULFING_PeekTA_CDLENGULFING_UpdateTA_CDLENGULFING_ValueTA_CDLEVENINGDOJISTARTA_CDLEVENINGDOJISTAR_CloneTA_CDLEVENINGDOJISTAR_OpenTA_CDLEVENINGDOJISTAR_OpenAndFillTA_CDLEVENINGDOJISTAR_PeekTA_CDLEVENINGDOJISTAR_UpdateTA_CDLEVENINGDOJISTAR_ValueTA_CDLEVENINGSTARTA_CDLEVENINGSTAR_CloneTA_CDLEVENINGSTAR_OpenTA_CDLEVENINGSTAR_OpenAndFillTA_CDLEVENINGSTAR_PeekTA_CDLEVENINGSTAR_UpdateTA_CDLEVENINGSTAR_ValueTA_CDLGAPSIDESIDEWHITETA_CDLGAPSIDESIDEWHITE_CloneTA_CDLGAPSIDESIDEWHITE_OpenTA_CDLGAPSIDESIDEWHITE_OpenAndFillTA_CDLGAPSIDESIDEWHITE_PeekTA_CDLGAPSIDESIDEWHITE_UpdateTA_CDLGAPSIDESIDEWHITE_ValueTA_CDLGRAVESTONEDOJITA_CDLGRAVESTONEDOJI_CloneTA_CDLGRAVESTONEDOJI_OpenTA_CDLGRAVESTONEDOJI_OpenAndFillTA_CDLGRAVESTONEDOJI_PeekTA_CDLGRAVESTONEDOJI_UpdateTA_CDLGRAVESTONEDOJI_ValueTA_CDLHAMMERTA_CDLHAMMER_CloneTA_CDLHAMMER_OpenTA_CDLHAMMER_OpenAndFillTA_CDLHAMMER_PeekTA_CDLHAMMER_UpdateTA_CDLHAMMER_ValueTA_CDLHANGINGMANTA_CDLHANGINGMAN_CloneTA_CDLHANGINGMAN_OpenTA_CDLHANGINGMAN_OpenAndFillTA_CDLHANGINGMAN_PeekTA_CDLHANGINGMAN_UpdateTA_CDLHANGINGMAN_ValueTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHARAMICROSS_CloneTA_CDLHARAMICROSS_OpenTA_CDLHARAMICROSS_OpenAndFillTA_CDLHARAMICROSS_PeekTA_CDLHARAMICROSS_UpdateTA_CDLHARAMICROSS_ValueTA_CDLHARAMI_CloneTA_CDLHARAMI_OpenTA_CDLHARAMI_OpenAndFillTA_CDLHARAMI_PeekTA_CDLHARAMI_UpdateTA_CDLHARAMI_ValueTA_CDLHIGHWAVETA_CDLHIGHWAVE_CloneTA_CDLHIGHWAVE_OpenTA_CDLHIGHWAVE_OpenAndFillTA_CDLHIGHWAVE_PeekTA_CDLHIGHWAVE_UpdateTA_CDLHIGHWAVE_ValueTA_CDLHIKKAKETA""_CDLHIKKAKEMODTA_CDLHIKKAKEMOD_CloneTA_CDLHIKKAKEMOD_OpenTA_CDLHIKKAKEMOD_OpenAndFillTA_CDLHIKKAKEMOD_PeekTA_CDLHIKKAKEMOD_UpdateTA_CDLHIKKAKEMOD_ValueTA_CDLHIKKAKE_CloneTA_CDLHIKKAKE_OpenTA_CDLHIKKAKE_OpenAndFillTA_CDLHIKKAKE_PeekTA_CDLHIKKAKE_UpdateTA_CDLHIKKAKE_ValueTA_CDLHOMINGPIGEONTA_CDLHOMINGPIGEON_CloneTA_CDLHOMINGPIGEON_OpenTA_CDLHOMINGPIGEON_OpenAndFillTA_CDLHOMINGPIGEON_PeekTA_CDLHOMINGPIGEON_UpdateTA_CDLHOMINGPIGEON_ValueTA_CDLIDENTICAL3CROWSTA_CDLIDENTICAL3CROWS_CloneTA_CDLIDENTICAL3CROWS_OpenTA_CDLIDENTICAL3CROWS_OpenAndFillTA_CDLIDENTICAL3CROWS_PeekTA_CDLIDENTICAL3CROWS_UpdateTA_CDLIDENTICAL3CROWS_ValueTA_CDLINNECKTA_CDLINNECK_CloneTA_CDLINNECK_OpenTA_CDLINNECK_OpenAndFillTA_CDLINNECK_PeekTA_CDLINNECK_UpdateTA_CDLINNECK_ValueTA_CDLINVERTEDHAMMERTA_CDLINVERTEDHAMMER_CloneTA_CDLINVERTEDHAMMER_OpenTA_CDLINVERTEDHAMMER_OpenAndFillTA_CDLINVERTEDHAMMER_PeekTA_CDLINVERTEDHAMMER_UpdateTA_CDLINVERTEDHAMMER_ValueTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLKICKINGBYLENGTH_CloneTA_CDLKICKINGBYLENGTH_OpenTA_CDLKICKINGBYLENGTH_OpenAndFillTA_CDLKICKINGBYLENGTH_PeekTA_CDLKICKINGBYLENGTH_UpdateTA_CDLKICKINGBYLENGTH_ValueTA_CDLKICKING_CloneTA_CDLKICKING_OpenTA_CDLKICKING_OpenAndFillTA_CDLKICKING_PeekTA_CDLKICKING_UpdateTA_CDLKICKING_ValueTA_CDLLADDERBOTTOMTA_CDLLADDERBOTTOM_CloneTA_CDLLADDERBOTTOM_OpenTA_CDLLADDERBOTTOM_OpenAndFillTA_CDLLADDERBOTTOM_PeekTA_CDLLADDERBOTTOM_UpdateTA_CDLLADDERBOTTOM_ValueTA_CDLLONGLEGGEDDOJITA_CDLLONGLEGGEDDOJI_CloneTA_CDLLONGLEGGEDDOJI_OpenTA_CDLLONGLEGGEDDOJI_OpenAndFillTA_CDLLONGLEGGEDDOJI_PeekTA_CDLLONGLEGGEDDOJI_UpdateTA_CDLLONGLEGGEDDOJI_ValueTA_CDLLONGLINETA_CDLLONGLINE_CloneTA_CDLLONGLINE_OpenTA_CDLLONGLINE_OpenAndFillTA_CDLLONGLINE_PeekTA_CDLLONGLINE_UpdateTA_CDLLONGLINE_ValueTA_CDLMARUBOZUTA_CDLMARUBOZU_CloneTA_CDLMARUBOZU_OpenTA_CDLMARUBOZU_OpenAndFillTA_CDLMARUBOZU_PeekTA_CDLMARUBOZU_UpdateTA_CDLMARUBOZU_ValueTA_CDLMATCHINGLOWTA_CDLMATCHINGLOW_CloneTA_CDLMATCHINGLOW_OpenTA_CDLMATCHINGLOW_OpenAndFillTA_CDLMATCHINGLOW_PeekTA_CDLMATC""HINGLOW_UpdateTA_CDLMATCHINGLOW_ValueTA_CDLMATHOLDTA_CDLMATHOLD_CloneTA_CDLMATHOLD_OpenTA_CDLMATHOLD_OpenAndFillTA_CDLMATHOLD_PeekTA_CDLMATHOLD_UpdateTA_CDLMATHOLD_ValueTA_CDLMORNINGDOJISTARTA_CDLMORNINGDOJISTAR_CloneTA_CDLMORNINGDOJISTAR_OpenTA_CDLMORNINGDOJISTAR_OpenAndFillTA_CDLMORNINGDOJISTAR_PeekTA_CDLMORNINGDOJISTAR_UpdateTA_CDLMORNINGDOJISTAR_ValueTA_CDLMORNINGSTARTA_CDLMORNINGSTAR_CloneTA_CDLMORNINGSTAR_OpenTA_CDLMORNINGSTAR_OpenAndFillTA_CDLMORNINGSTAR_PeekTA_CDLMORNINGSTAR_UpdateTA_CDLMORNINGSTAR_ValueTA_CDLONNECKTA_CDLONNECK_CloneTA_CDLONNECK_OpenTA_CDLONNECK_OpenAndFillTA_CDLONNECK_PeekTA_CDLONNECK_UpdateTA_CDLONNECK_ValueTA_CDLPIERCINGTA_CDLPIERCING_CloneTA_CDLPIERCING_OpenTA_CDLPIERCING_OpenAndFillTA_CDLPIERCING_PeekTA_CDLPIERCING_UpdateTA_CDLPIERCING_ValueTA_CDLRICKSHAWMANTA_CDLRICKSHAWMAN_CloneTA_CDLRICKSHAWMAN_OpenTA_CDLRICKSHAWMAN_OpenAndFillTA_CDLRICKSHAWMAN_PeekTA_CDLRICKSHAWMAN_UpdateTA_CDLRICKSHAWMAN_ValueTA_CDLRISEFALL3METHODSTA_CDLRISEFALL3METHODS_CloneTA_CDLRISEFALL3METHODS_OpenTA_CDLRISEFALL3METHODS_OpenAndFillTA_CDLRISEFALL3METHODS_PeekTA_CDLRISEFALL3METHODS_UpdateTA_CDLRISEFALL3METHODS_ValueTA_CDLSEPARATINGLINESTA_CDLSEPARATINGLINES_CloneTA_CDLSEPARATINGLINES_OpenTA_CDLSEPARATINGLINES_OpenAndFillTA_CDLSEPARATINGLINES_PeekTA_CDLSEPARATINGLINES_UpdateTA_CDLSEPARATINGLINES_ValueTA_CDLSHOOTINGSTARTA_CDLSHOOTINGSTAR_CloneTA_CDLSHOOTINGSTAR_OpenTA_CDLSHOOTINGSTAR_OpenAndFillTA_CDLSHOOTINGSTAR_PeekTA_CDLSHOOTINGSTAR_UpdateTA_CDLSHOOTINGSTAR_ValueTA_CDLSHORTLINETA_CDLSHORTLINE_CloneTA_CDLSHORTLINE_OpenTA_CDLSHORTLINE_OpenAndFillTA_CDLSHORTLINE_PeekTA_CDLSHORTLINE_UpdateTA_CDLSHORTLINE_ValueTA_CDLSPINNINGTOPTA_CDLSPINNINGTOP_CloneTA_CDLSPINNINGTOP_OpenTA_CDLSPINNINGTOP_OpenAndFillTA_CDLSPINNINGTOP_PeekTA_CDLSPINNINGTOP_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPATTERN_ValueTA_CDLSTICKSANDWICHTA_""CDLSTICKSANDWICH_CloneTA_CDLSTICKSANDWICH_OpenTA_CDLSTICKSANDWICH_OpenAndFillTA_CDLSTICKSANDWICH_PeekTA_CDLSTICKSANDWICH_UpdateTA_CDLSTICKSANDWICH_ValueTA_CDLTAKURITA_CDLTAKURI_CloneTA_CDLTAKURI_OpenTA_CDLTAKURI_OpenAndFillTA_CDLTAKURI_PeekTA_CDLTAKURI_UpdateTA_CDLTAKURI_ValueTA_CDLTASUKIGAPTA_CDLTASUKIGAP_CloneTA_CDLTASUKIGAP_OpenTA_CDLTASUKIGAP_OpenAndFillTA_CDLTASUKIGAP_PeekTA_CDLTASUKIGAP_UpdateTA_CDLTASUKIGAP_ValueTA_CDLTHRUSTINGTA_CDLTHRUSTING_CloneTA_CDLTHRUSTING_OpenTA_CDLTHRUSTING_OpenAndFillTA_CDLTHRUSTING_PeekTA_CDLTHRUSTING_UpdateTA_CDLTHRUSTING_ValueTA_CDLTRISTARTA_CDLTRISTAR_CloneTA_CDLTRISTAR_OpenTA_CDLTRISTAR_OpenAndFillTA_CDLTRISTAR_PeekTA_CDLTRISTAR_UpdateTA_CDLTRISTAR_ValueTA_CDLUNIQUE3RIVERTA_CDLUNIQUE3RIVER_CloneTA_CDLUNIQUE3RIVER_OpenTA_CDLUNIQUE3RIVER_OpenAndFillTA_CDLUNIQUE3RIVER_PeekTA_CDLUNIQUE3RIVER_UpdateTA_CDLUNIQUE3RIVER_ValueTA_CDLUPSIDEGAP2CROWSTA_CDLUPSIDEGAP2CROWS_CloneTA_CDLUPSIDEGAP2CROWS_OpenTA_CDLUPSIDEGAP2CROWS_OpenAndFillTA_CDLUPSIDEGAP2CROWS_PeekTA_CDLUPSIDEGAP2CROWS_UpdateTA_CDLUPSIDEGAP2CROWS_ValueTA_CDLXSIDEGAP3METHODSTA_CDLXSIDEGAP3METHODS_CloneTA_CDLXSIDEGAP3METHODS_OpenTA_CDLXSIDEGAP3METHODS_OpenAndFillTA_CDLXSIDEGAP3METHODS_PeekTA_CDLXSIDEGAP3METHODS_UpdateTA_CDLXSIDEGAP3METHODS_ValueTA_CEILTA_CEIL_CloneTA_CEIL_OpenTA_CEIL_OpenAndFillTA_CEIL_PeekTA_CEIL_UpdateTA_CEIL_ValueTA_CGTA_CG_CloneTA_CG_OpenTA_CG_OpenAndFillTA_CG_PeekTA_CG_UpdateTA_CG_ValueTA_CHOPTA_CHOPTRTA_CHOPTR_CloneTA_CHOPTR_OpenTA_CHOPTR_OpenAndFillTA_CHOPTR_PeekTA_CHOPTR_UpdateTA_CHOPTR_ValueTA_CHOP_CloneTA_CHOP_OpenTA_CHOP_OpenAndFillTA_CHOP_PeekTA_CHOP_UpdateTA_CHOP_ValueTA_CKSPTA_CKSP_CloneTA_CKSP_OpenTA_CKSP_OpenAndFillTA_CKSP_PeekTA_CKSP_UpdateTA_CKSP_ValueTA_CMFTA_CMF_CloneTA_CMF_OpenTA_CMF_OpenAndFillTA_CMF_PeekTA_CMF_UpdateTA_CMF_ValueTA_CMOTA_CMOUTA_CMOU_CloneTA_CMOU_OpenTA_CMOU_OpenAndFillTA_CMOU_PeekTA_CMOU_UpdateTA_CMOU_ValueTA_CMO_CloneTA_CMO_OpenTA_CMO_OpenAndFillTA_CMO_PeekTA_CMO_UpdateTA_CMO_ValueTA_COPPOCKTA_COPPOCK_CloneTA_COPPOCK_OpenTA""_COPPOCK_OpenAndFillTA_COPPOCK_PeekTA_COPPOCK_UpdateTA_COPPOCK_ValueTA_CORRELTA_CORREL_CloneTA_CORREL_OpenTA_CORREL_OpenAndFillTA_CORREL_PeekTA_CORREL_UpdateTA_CORREL_ValueTA_COSTA_COSHTA_COSH_CloneTA_COSH_OpenTA_COSH_OpenAndFillTA_COSH_PeekTA_COSH_UpdateTA_COSH_ValueTA_COS_CloneTA_COS_OpenTA_COS_OpenAndFillTA_COS_PeekTA_COS_UpdateTA_COS_ValueTA_CRSITA_CRSI_CloneTA_CRSI_OpenTA_CRSI_OpenAndFillTA_CRSI_PeekTA_CRSI_UpdateTA_CRSI_ValueTA_CTITA_CTI_CloneTA_CTI_OpenTA_CTI_OpenAndFillTA_CTI_PeekTA_CTI_UpdateTA_CTI_ValueTA_CUMSUMTA_CUMSUM_CloneTA_CUMSUM_OpenTA_CUMSUM_OpenAndFillTA_CUMSUM_PeekTA_CUMSUM_UpdateTA_CUMSUM_ValueTA_CVITA_CVI_CloneTA_CVI_OpenTA_CVI_OpenAndFillTA_CVI_PeekTA_CVI_UpdateTA_CVI_ValueTA_DEMATA_DEMA_CloneTA_DEMA_OpenTA_DEMA_OpenAndFillTA_DEMA_PeekTA_DEMA_UpdateTA_DEMA_ValueTA_DIVTA_DIV_CloneTA_DIV_OpenTA_DIV_OpenAndFillTA_DIV_PeekTA_DIV_UpdateTA_DIV_ValueTA_DONCHIANTA_DONCHIAN_CloneTA_DONCHIAN_OpenTA_DONCHIAN_OpenAndFillTA_DONCHIAN_PeekTA_DONCHIAN_UpdateTA_DONCHIAN_ValueTA_DOSCTA_DOSC_CloneTA_DOSC_OpenTA_DOSC_OpenAndFillTA_DOSC_PeekTA_DOSC_UpdateTA_DOSC_ValueTA_DPOTA_DPO_CloneTA_DPO_OpenTA_DPO_OpenAndFillTA_DPO_PeekTA_DPO_UpdateTA_DPO_ValueTA_DXTA_DX_CloneTA_DX_OpenTA_DX_OpenAndFillTA_DX_PeekTA_DX_UpdateTA_DX_ValueTA_EFITA_EFI_CloneTA_EFI_OpenTA_EFI_OpenAndFillTA_EFI_PeekTA_EFI_UpdateTA_EFI_ValueTA_EMATA_EMA_CloneTA_EMA_OpenTA_EMA_OpenAndFillTA_EMA_PeekTA_EMA_UpdateTA_EMA_ValueTA_EMVTA_EMV_CloneTA_EMV_OpenTA_EMV_OpenAndFillTA_EMV_PeekTA_EMV_UpdateTA_EMV_ValueTA_ERTA_ERITA_ERI_CloneTA_ERI_OpenTA_ERI_OpenAndFillTA_ERI_PeekTA_ERI_UpdateTA_ERI_ValueTA_ER_CloneTA_ER_OpenTA_ER_OpenAndFillTA_ER_PeekTA_ER_UpdateTA_ER_ValueTA_EXPTA_EXP_CloneTA_EXP_OpenTA_EXP_OpenAndFillTA_EXP_PeekTA_EXP_UpdateTA_EXP_ValueTA_FISHERTA_FISHER_CloneTA_FISHER_OpenTA_FISHER_OpenAndFillTA_FISHER_PeekTA_FISHER_UpdateTA_FISHER_ValueTA_FLOORTA_FLOOR_CloneTA_FLOOR_OpenTA_FLOOR_OpenAndFillTA_FLOOR_PeekTA_FLOOR_UpdateTA_FLOOR_ValueTA_FOSCTA_FOSC_CloneTA_FOSC_OpenTA_FOSC_OpenAndFillTA_FOSC_Peek""TA_FOSC_UpdateTA_FOSC_ValueTA_FRACTALTA_FRACTAL_CloneTA_FRACTAL_OpenTA_FRACTAL_OpenAndFillTA_FRACTAL_PeekTA_FRACTAL_UpdateTA_FRACTAL_ValueTA_FRAMATA_FRAMA_CloneTA_FRAMA_OpenTA_FRAMA_OpenAndFillTA_FRAMA_PeekTA_FRAMA_UpdateTA_FRAMA_ValueTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GetRuntimeInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HA_CloneTA_HA_OpenTA_HA_OpenAndFillTA_HA_PeekTA_HA_UpdateTA_HA_ValueTA_HMATA_HMA_CloneTA_HMA_OpenTA_HMA_OpenAndFillTA_HMA_PeekTA_HMA_UpdateTA_HMA_ValueTA_HT_DCPERIODTA_HT_DCPERIOD_CloneTA_HT_DCPERIOD_OpenTA_HT_DCPERIOD_OpenAndFillTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_HT_DCPHASE_OpenTA_HT_DCPHASE_OpenAndFillTA_HT_DCPHASE_PeekTA_HT_DCPHASE_UpdateTA_HT_DCPHASE_ValueTA_HT_PHASORTA_HT_PHASOR_CloneTA_HT_PHASOR_OpenTA_HT_PHASOR_OpenAndFillTA_HT_PHASOR_PeekTA_HT_PHASOR_UpdateTA_HT_PHASOR_ValueTA_HT_SINETA_HT_SINE_CloneTA_HT_SINE_OpenTA_HT_SINE_OpenAndFillTA_HT_SINE_PeekTA_HT_SINE_UpdateTA_HT_SINE_ValueTA_HT_TRENDLINETA_HT_TRENDLINE_CloneTA_HT_TRENDLINE_OpenTA_HT_TRENDLINE_OpenAndFillTA_HT_TRENDLINE_PeekTA_HT_TRENDLINE_UpdateTA_HT_TRENDLINE_ValueTA_HT_TRENDMODETA_HT_TRENDMODE_CloneTA_HT_TRENDMODE_OpenTA_HT_TRENDMODE_OpenAndFillTA_HT_TRENDMODE_PeekTA_HT_TRENDMODE_UpdateTA_HT_TRENDMODE_ValueTA_IBSTA_IBS_CloneTA_IBS_OpenTA_IBS_OpenAndFillTA_IBS_PeekTA_IBS_UpdateTA_IBS_ValueTA_ICHIMOKUTA_ICHIMOKU_CloneTA_ICHIMOKU_OpenTA_ICHIMOKU_OpenAndFillTA_ICHIMOKU_PeekTA_ICHIMOKU_UpdateTA_ICHIMOKU_ValueTA_IMITA_IMI_CloneTA_IMI_OpenTA_IMI_OpenAndFillTA_IMI_PeekTA_IMI_UpdateTA_IMI_ValueTA_INPUT_FLAGSTA_InitializeTA_KAMATA_KAMA_CloneTA_KAMA_OpenTA_KAMA_OpenAndFillTA_KAMA_PeekTA_KAMA_UpdateTA_KAMA_ValueTA_KCTA_KC_CloneTA_KC_OpenTA_KC_OpenAndFillTA_KC_PeekTA_KC_UpdateTA_KC_ValueTA_KDJTA_KDJ_CloneTA_KDJ_OpenTA_KDJ_OpenAndFillTA_KDJ_PeekTA_KDJ_UpdateTA_KDJ_ValueTA_KSTTA_KSTEXTTA_KSTEXT_Clon""eTA_KSTEXT_OpenTA_KSTEXT_OpenAndFillTA_KSTEXT_PeekTA_KSTEXT_UpdateTA_KSTEXT_ValueTA_KST_CloneTA_KST_OpenTA_KST_OpenAndFillTA_KST_PeekTA_KST_UpdateTA_KST_ValueTA_KURTOSISTA_KURTOSIS_CloneTA_KURTOSIS_OpenTA_KURTOSIS_OpenAndFillTA_KURTOSIS_PeekTA_KURTOSIS_UpdateTA_KURTOSIS_ValueTA_KVOTA_KVO_CloneTA_KVO_OpenTA_KVO_OpenAndFillTA_KVO_PeekTA_KVO_UpdateTA_KVO_ValueTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_ANGLE_CloneTA_LINEARREG_ANGLE_OpenTA_LINEARREG_ANGLE_OpenAndFillTA_LINEARREG_ANGLE_PeekTA_LINEARREG_ANGLE_UpdateTA_LINEARREG_ANGLE_ValueTA_LINEARREG_CloneTA_LINEARREG_INTERCEPTTA_LINEARREG_INTERCEPT_CloneTA_LINEARREG_INTERCEPT_OpenTA_LINEARREG_INTERCEPT_OpenAndFillTA_LINEARREG_INTERCEPT_PeekTA_LINEARREG_INTERCEPT_UpdateTA_LINEARREG_INTERCEPT_ValueTA_LINEARREG_OpenTA_LINEARREG_OpenAndFillTA_LINEARREG_PeekTA_LINEARREG_SLOPETA_LINEARREG_SLOPE_CloneTA_LINEARREG_SLOPE_OpenTA_LINEARREG_SLOPE_OpenAndFillTA_LINEARREG_SLOPE_PeekTA_LINEARREG_SLOPE_UpdateTA_LINEARREG_SLOPE_ValueTA_LINEARREG_UpdateTA_LINEARREG_ValueTA_LNTA_LN_CloneTA_LN_OpenTA_LN_OpenAndFillTA_LN_PeekTA_LN_UpdateTA_LN_ValueTA_LOG10TA_LOG10_CloneTA_LOG10_OpenTA_LOG10_OpenAndFillTA_LOG10_PeekTA_LOG10_UpdateTA_LOG10_ValueTA_MATA_MACDTA_MACDEXTTA_MACDEXT_CloneTA_MACDEXT_OpenTA_MACDEXT_OpenAndFillTA_MACDEXT_PeekTA_MACDEXT_UpdateTA_MACDEXT_ValueTA_MACDFIXTA_MACDFIX_CloneTA_MACDFIX_OpenTA_MACDFIX_OpenAndFillTA_MACDFIX_PeekTA_MACDFIX_UpdateTA_MACDFIX_ValueTA_MACD_CloneTA_MACD_OpenTA_MACD_OpenAndFillTA_MACD_PeekTA_MACD_UpdateTA_MACD_ValueTA_MAMATA_MAMA_CloneTA_MAMA_OpenTA_MAMA_OpenAndFillTA_MAMA_PeekTA_MAMA_UpdateTA_MAMA_ValueTA_MARKETFITA_MARKETFI_CloneTA_MARKETFI_OpenTA_MARKETFI_OpenAndFillTA_MARKETFI_PeekTA_MARKETFI_UpdateTA_MARKETFI_ValueTA_MASSITA_MASSI_CloneTA_MASSI_OpenTA_MASSI_OpenAndFillTA_MASSI_PeekTA_MASSI_UpdateTA_MASSI_ValueTA_MAVPTA_MAVP_CloneTA_MAVP_OpenTA_MAVP_OpenAndFillTA_MAVP_PeekTA_MAVP_UpdateTA_MAVP_ValueTA_MAXTA_MAXINDEXTA_MAXINDEX_CloneTA_MAXINDEX_OpenTA_MAXINDEX_OpenAndFillTA_MAXINDEX_PeekTA_MAXINDEX_U""pdateTA_MAXINDEX_ValueTA_MAX_CloneTA_MAX_OpenTA_MAX_OpenAndFillTA_MAX_PeekTA_MAX_UpdateTA_MAX_ValueTA_MA_CloneTA_MA_OpenTA_MA_OpenAndFillTA_MA_PeekTA_MA_UpdateTA_MA_ValueTA_MCGDTA_MCGD_CloneTA_MCGD_OpenTA_MCGD_OpenAndFillTA_MCGD_PeekTA_MCGD_UpdateTA_MCGD_ValueTA_MEDIANTA_MEDIAN_CloneTA_MEDIAN_OpenTA_MEDIAN_OpenAndFillTA_MEDIAN_PeekTA_MEDIAN_UpdateTA_MEDIAN_ValueTA_MEDPRICETA_MEDPRICE_CloneTA_MEDPRICE_OpenTA_MEDPRICE_OpenAndFillTA_MEDPRICE_PeekTA_MEDPRICE_UpdateTA_MEDPRICE_ValueTA_MFITA_MFI_CloneTA_MFI_OpenTA_MFI_OpenAndFillTA_MFI_PeekTA_MFI_UpdateTA_MFI_ValueTA_MIDPOINTTA_MIDPOINT_CloneTA_MIDPOINT_OpenTA_MIDPOINT_OpenAndFillTA_MIDPOINT_PeekTA_MIDPOINT_UpdateTA_MIDPOINT_ValueTA_MIDPRICETA_MIDPRICE_CloneTA_MIDPRICE_OpenTA_MIDPRICE_OpenAndFillTA_MIDPRICE_PeekTA_MIDPRICE_UpdateTA_MIDPRICE_ValueTA_MINTA_MININDEXTA_MININDEX_CloneTA_MININDEX_OpenTA_MININDEX_OpenAndFillTA_MININDEX_PeekTA_MININDEX_UpdateTA_MININDEX_ValueTA_MINMAXTA_MINMAXINDEXTA_MINMAXINDEX_CloneTA_MINMAXINDEX_OpenTA_MINMAXINDEX_OpenAndFillTA_MINMAXINDEX_PeekTA_MINMAXINDEX_UpdateTA_MINMAXINDEX_ValueTA_MINMAX_CloneTA_MINMAX_OpenTA_MINMAX_OpenAndFillTA_MINMAX_PeekTA_MINMAX_UpdateTA_MINMAX_ValueTA_MINUS_DITA_MINUS_DI_CloneTA_MINUS_DI_OpenTA_MINUS_DI_OpenAndFillTA_MINUS_DI_PeekTA_MINUS_DI_UpdateTA_MINUS_DI_ValueTA_MINUS_DMTA_MINUS_DM_CloneTA_MINUS_DM_OpenTA_MINUS_DM_OpenAndFillTA_MINUS_DM_PeekTA_MINUS_DM_UpdateTA_MINUS_DM_ValueTA_MIN_CloneTA_MIN_OpenTA_MIN_OpenAndFillTA_MIN_PeekTA_MIN_UpdateTA_MIN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MULTTA_MULT_CloneTA_MULT_OpenTA_MULT_OpenAndFillTA_MULT_PeekTA_MULT_UpdateTA_MULT_ValueTA_NATRTA_NATR_CloneTA_NATR_OpenTA_NATR_OpenAndFillTA_NATR_PeekTA_NATR_UpdateTA_NATR_ValueTA_NVITA_NVI_CloneTA_NVI_OpenTA_NVI_OpenAndFillTA_NVI_PeekTA_NVI_UpdateTA_NVI_ValueTA_OBVTA_OBV_CloneTA_OBV_OpenTA_OBV_OpenAndFillTA_OBV_PeekTA_OBV_UpdateTA_OBV_ValueTA_OUTPUT_FLAGSTA_PERCENTBTA_PERCENTB_CloneTA_PERCENTB_OpenTA_PERCENTB_OpenAndFillTA_PERCE""NTB_PeekTA_PERCENTB_UpdateTA_PERCENTB_ValueTA_PERCENTILETA_PERCENTILE_CloneTA_PERCENTILE_OpenTA_PERCENTILE_OpenAndFillTA_PERCENTILE_PeekTA_PERCENTILE_UpdateTA_PERCENTILE_ValueTA_PERCENTRANKTA_PERCENTRANK_CloneTA_PERCENTRANK_OpenTA_PERCENTRANK_OpenAndFillTA_PERCENTRANK_PeekTA_PERCENTRANK_UpdateTA_PERCENTRANK_ValueTA_PLUS_DITA_PLUS_DI_CloneTA_PLUS_DI_OpenTA_PLUS_DI_OpenAndFillTA_PLUS_DI_PeekTA_PLUS_DI_UpdateTA_PLUS_DI_ValueTA_PLUS_DMTA_PLUS_DM_CloneTA_PLUS_DM_OpenTA_PLUS_DM_OpenAndFillTA_PLUS_DM_PeekTA_PLUS_DM_UpdateTA_PLUS_DM_ValueTA_PPOTA_PPO_CloneTA_PPO_OpenTA_PPO_OpenAndFillTA_PPO_PeekTA_PPO_UpdateTA_PPO_ValueTA_PSOTA_PSO_CloneTA_PSO_OpenTA_PSO_OpenAndFillTA_PSO_PeekTA_PSO_UpdateTA_PSO_ValueTA_PVITA_PVI_CloneTA_PVI_OpenTA_PVI_OpenAndFillTA_PVI_PeekTA_PVI_UpdateTA_PVI_ValueTA_PVOTA_PVO_CloneTA_PVO_OpenTA_PVO_OpenAndFillTA_PVO_PeekTA_PVO_UpdateTA_PVO_ValueTA_PVTTA_PVT_CloneTA_PVT_OpenTA_PVT_OpenAndFillTA_PVT_PeekTA_PVT_UpdateTA_PVT_ValueTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_QSTICK_CloneTA_QSTICK_OpenTA_QSTICK_OpenAndFillTA_QSTICK_PeekTA_QSTICK_UpdateTA_QSTICK_ValueTA_RMATA_RMA_CloneTA_RMA_OpenTA_RMA_OpenAndFillTA_RMA_PeekTA_RMA_UpdateTA_RMA_ValueTA_ROCTA_ROCPTA_ROCP_CloneTA_ROCP_OpenTA_ROCP_OpenAndFillTA_ROCP_PeekTA_ROCP_UpdateTA_ROCP_ValueTA_ROCRTA_ROCR100TA_ROCR100_CloneTA_ROCR100_OpenTA_ROCR100_OpenAndFillTA_ROCR100_PeekTA_ROCR100_UpdateTA_ROCR100_ValueTA_ROCR_CloneTA_ROCR_OpenTA_ROCR_OpenAndFillTA_ROCR_PeekTA_ROCR_UpdateTA_ROCR_ValueTA_ROC_CloneTA_ROC_OpenTA_ROC_OpenAndFillTA_ROC_PeekTA_ROC_UpdateTA_ROC_ValueTA_ROGERSSATCHELLTA_ROGERSSATCHELL_CloneTA_ROGERSSATCHELL_OpenTA_ROGERSSATCHELL_OpenAndFillTA_ROGERSSATCHELL_PeekTA_ROGERSSATCHELL_UpdateTA_ROGERSSATCHELL_ValueTA_RSITA_RSI_CloneTA_RSI_OpenTA_RSI_OpenAndFillTA_RSI_PeekTA_RSI_UpdateTA_RSI_ValueTA_RVITA_RVIRTA_RVIR_CloneTA_RVIR_OpenTA_RVIR_OpenAndFillTA_RVIR_PeekTA_RVIR_UpdateTA_RVIR_ValueTA_RVI_CloneTA_RVI_OpenTA_RVI_OpenAndFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_""RVOL_OpenAndFillTA_RVOL_PeekTA_RVOL_UpdateTA_RVOL_ValueTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SAREXT_CloneTA_SAREXT_OpenTA_SAREXT_OpenAndFillTA_SAREXT_PeekTA_SAREXT_UpdateTA_SAREXT_ValueTA_SAR_CloneTA_SAR_OpenTA_SAR_OpenAndFillTA_SAR_PeekTA_SAR_UpdateTA_SAR_ValueTA_SITA_SINTA_SINHTA_SINH_CloneTA_SINH_OpenTA_SINH_OpenAndFillTA_SINH_PeekTA_SINH_UpdateTA_SINH_ValueTA_SIN_CloneTA_SIN_OpenTA_SIN_OpenAndFillTA_SIN_PeekTA_SIN_UpdateTA_SIN_ValueTA_SI_CloneTA_SI_OpenTA_SI_OpenAndFillTA_SI_PeekTA_SI_UpdateTA_SI_ValueTA_SMATA_SMA_CloneTA_SMA_OpenTA_SMA_OpenAndFillTA_SMA_PeekTA_SMA_UpdateTA_SMA_ValueTA_SMITA_SMI_CloneTA_SMI_OpenTA_SMI_OpenAndFillTA_SMI_PeekTA_SMI_UpdateTA_SMI_ValueTA_SQRTTA_SQRT_CloneTA_SQRT_OpenTA_SQRT_OpenAndFillTA_SQRT_PeekTA_SQRT_UpdateTA_SQRT_ValueTA_SQZMOMTA_SQZMOM_CloneTA_SQZMOM_OpenTA_SQZMOM_OpenAndFillTA_SQZMOM_PeekTA_SQZMOM_UpdateTA_SQZMOM_ValueTA_STCTA_STC_CloneTA_STC_OpenTA_STC_OpenAndFillTA_STC_PeekTA_STC_UpdateTA_STC_ValueTA_STDDEVTA_STDDEV_CloneTA_STDDEV_OpenTA_STDDEV_OpenAndFillTA_STDDEV_PeekTA_STDDEV_UpdateTA_STDDEV_ValueTA_STOCHTA_STOCHFTA_STOCHF_CloneTA_STOCHF_OpenTA_STOCHF_OpenAndFillTA_STOCHF_PeekTA_STOCHF_UpdateTA_STOCHF_ValueTA_STOCHRSITA_STOCHRSI_CloneTA_STOCHRSI_OpenTA_STOCHRSI_OpenAndFillTA_STOCHRSI_PeekTA_STOCHRSI_UpdateTA_STOCHRSI_ValueTA_STOCH_CloneTA_STOCH_OpenTA_STOCH_OpenAndFillTA_STOCH_PeekTA_STOCH_UpdateTA_STOCH_ValueTA_SUBTA_SUB_CloneTA_SUB_OpenTA_SUB_OpenAndFillTA_SUB_PeekTA_SUB_UpdateTA_SUB_ValueTA_SUMTA_SUM_CloneTA_SUM_OpenTA_SUM_OpenAndFillTA_SUM_PeekTA_SUM_UpdateTA_SUM_ValueTA_SUPERTRENDTA_SUPERTREND_CloneTA_SUPERTREND_OpenTA_SUPERTREND_OpenAndFillTA_SUPERTREND_PeekTA_SUPERTREND_UpdateTA_SUPERTREND_ValueTA_SWAK_2PHPTA_SWAK_2PHP_CloneTA_SWAK_2PHP_OpenTA_SWAK_2PHP_OpenAndFillTA_SWAK_2PHP_PeekTA_SWAK_2PHP_UpdateTA_SWAK_2PHP_ValueTA_SWAK_BPTA_SWAK_BP_CloneTA_SWAK_BP_OpenTA_SWAK_BP_OpenAndFillTA_SWAK_BP_PeekTA_SWAK_BP_UpdateTA_SWAK_BP_ValueTA_SWAK_BUTTERTA_SWAK_BUTTER_CloneTA_SWAK_BUTTER_OpenTA_SWAK_BUTTER_OpenAndFil""lTA_SWAK_BUTTER_PeekTA_SWAK_BUTTER_UpdateTA_SWAK_BUTTER_ValueTA_SWAK_GAUSSTA_SWAK_GAUSS_CloneTA_SWAK_GAUSS_OpenTA_SWAK_GAUSS_OpenAndFillTA_SWAK_GAUSS_PeekTA_SWAK_GAUSS_UpdateTA_SWAK_GAUSS_ValueTA_SWAK_HPTA_SWAK_HP_CloneTA_SWAK_HP_OpenTA_SWAK_HP_OpenAndFillTA_SWAK_HP_PeekTA_SWAK_HP_UpdateTA_SWAK_HP_ValueTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_T3_CloneTA_T3_OpenTA_T3_OpenAndFillTA_T3_PeekTA_T3_UpdateTA_T3_ValueTA_TANTA_TANHTA_TANH_CloneTA_TANH_OpenTA_TANH_OpenAndFillTA_TANH_PeekTA_TANH_UpdateTA_TANH_ValueTA_TAN_CloneTA_TAN_OpenTA_TAN_OpenAndFillTA_TAN_PeekTA_TAN_UpdateTA_TAN_ValueTA_TEMATA_TEMA_CloneTA_TEMA_OpenTA_TEMA_OpenAndFillTA_TEMA_PeekTA_TEMA_UpdateTA_TEMA_ValueTA_TRANGETA_TRANGE_CloneTA_TRANGE_OpenTA_TRANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenTA_TRIMA_OpenAndFillTA_TRIMA_PeekTA_TRIMA_UpdateTA_TRIMA_ValueTA_TRIXTA_TRIX_CloneTA_TRIX_OpenTA_TRIX_OpenAndFillTA_TRIX_PeekTA_TRIX_UpdateTA_TRIX_ValueTA_TSFTA_TSF_CloneTA_TSF_OpenTA_TSF_OpenAndFillTA_TSF_PeekTA_TSF_UpdateTA_TSF_ValueTA_TSITA_TSI_CloneTA_TSI_OpenTA_TSI_OpenAndFillTA_TSI_PeekTA_TSI_UpdateTA_TSI_ValueTA_TYPPRICETA_TYPPRICE_CloneTA_TYPPRICE_OpenTA_TYPPRICE_OpenAndFillTA_TYPPRICE_PeekTA_TYPPRICE_UpdateTA_TYPPRICE_ValueTA_ULTOSCTA_ULTOSC_CloneTA_ULTOSC_OpenTA_ULTOSC_OpenAndFillTA_ULTOSC_PeekTA_ULTOSC_UpdateTA_ULTOSC_ValueTA_VARTA_VAR_CloneTA_VAR_OpenTA_VAR_OpenAndFillTA_VAR_PeekTA_VAR_UpdateTA_VAR_ValueTA_VHFTA_VHF_CloneTA_VHF_OpenTA_VHF_OpenAndFillTA_VHF_PeekTA_VHF_UpdateTA_VHF_ValueTA_VIDYATA_VIDYA_CloneTA_VIDYA_OpenTA_VIDYA_OpenAndFillTA_VIDYA_PeekTA_VIDYA_UpdateTA_VIDYA_ValueTA_VORTEXTA_VORTEX_CloneTA_VORTEX_OpenTA_VORTEX_OpenAndFillTA_VORTEX_PeekTA_VORTEX_UpdateTA_VORTEX_ValueTA_VWAPTA_VWAP_CloneTA_VWAP_OpenTA_VWAP_OpenAndFillTA_VWAP_PeekTA_VWAP_UpdateTA_VWAP_ValueTA_VWMATA_VWMA_CloneTA_VWMA_OpenTA_VWMA_OpenAndFillTA_VWMA_PeekTA_VWMA_UpdateTA_VWMA_ValueTA_WADTA_WAD""_CloneTA_WAD_OpenTA_WAD_OpenAndFillTA_WAD_PeekTA_WAD_UpdateTA_WAD_ValueTA_WAVETRENDTA_WAVETREND_CloneTA_WAVETREND_OpenTA_WAVETREND_OpenAndFillTA_WAVETREND_PeekTA_WAVETREND_UpdateTA_WAVETREND_ValueTA_WCLPRICETA_WCLPRICE_CloneTA_WCLPRICE_OpenTA_WCLPRICE_OpenAndFillTA_WCLPRICE_PeekTA_WCLPRICE_UpdateTA_WCLPRICE_ValueTA_WILLRTA_WILLR_CloneTA_WILLR_OpenTA_WILLR_OpenAndFillTA_WILLR_PeekTA_WILLR_UpdateTA_WILLR_ValueTA_WMATA_WMA_CloneTA_WMA_OpenTA_WMA_OpenAndFillTA_WMA_PeekTA_WMA_UpdateTA_WMA_ValueTA_ZIGZAGTA_ZIGZAG_CloneTA_ZIGZAG_OpenTA_ZIGZAG_OpenAndFillTA_ZIGZAG_PeekTA_ZIGZAG_UpdateTA_ZIGZAG_ValueTA_ZLEMATA_ZLEMA_CloneTA_ZLEMA_OpenTA_ZLEMA_OpenAndFillTA_ZLEMA_PeekTA_ZLEMA_UpdateTA_ZLEMA_ValueTEMATEMA_StreamTEMA_Stream.open_and_fillTRANGETRANGE_StreamTRANGE_Stream.open_and_fillTRIMATRIMA_StreamTRIMA_Stream.open_and_fillTRIXTRIX_StreamTRIX_Stream.open_and_fillTSFTSF_StreamTSF_Stream.open_and_fillTSITSI_StreamTSI_Stream.open_and_fillTYPPRICETYPPRICE_StreamTYPPRICE_Stream.open_and_fillULTOSCULTOSC_StreamULTOSC_Stream.open_and_fillUNSTABLE_AUTO_PREC_4UNSTABLE_AUTO_PREC_8VARVAR_StreamVAR_Stream.open_and_fillVHFVHF_StreamVHF_Stream.open_and_fillVIDYAVIDYA_StreamVIDYA_Stream.open_and_fillVORTEXVORTEX_StreamVORTEX_Stream.open_and_fillVWAPVWAP_StreamVWAP_Stream.open_and_fillVWMAVWMA_StreamVWMA_Stream.open_and_fillWADWAD_StreamWAD_Stream.open_and_fillWAVETRENDWAVETREND_StreamWAVETREND_Stream.open_and_fillWCLPRICEWCLPRICE_StreamWCLPRICE_Stream.open_and_fillWILLRWILLR_StreamWILLR_Stream.open_and_fillWMAWMA_StreamWMA_Stream.open_and_fillZIGZAGZIGZAG_StreamZIGZAG_Stream.open_and_fillZLEMAZLEMA_StreamZLEMA_Stream.open_and_fill_ARRAY_TYPES_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr_INPUT_ARRAYS_TYPES_INPUT_PRICE_SERIES_DEFAULTS_PANDAS_DATAFRAME_PANDAS_SERIES_POLARS_DATAFRAME_POLARS_SERIES_TA_ReadLease_TA_ReadLease.__enter___TA_ReadLease.__exit_""__TA_ReadLease.__reduce_cython___TA_ReadLease.__setstate_cython___TA_WriteLease_TA_WriteLease.__enter___TA_WriteLease.__exit___TA_WriteLease.__reduce_cython___TA_WriteLease.__setstate_cython____Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____copy____deepcopy____dict____doc____enter____exit____func____get_flags__get_opt_input_value__getitem____getstate____init____input_price_series_names__local__main____metaclass____module____mro_entries____name____new____prepare____pyx_checksum__pyx_result__pyx_state__pyx_type__pyx_unpickle__TA_ReadLease__pyx_unpickle__TA_WriteLease__pyx_vtable____qualname____reduce____reduce_cython____reduce_ex____repr____set_name____setstate____setstate_cython____str____ta_version____test____unicode___dict_get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_runtime_info_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdowna_closea_higha_lowa_opena_periodsa_reala_real0a_real1a_volumeaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortacquiredannualizationappendargargsarraysasciiastypeasyncio.coroutinesat_exitatrperiodaverageperiodavgperiodbbbperiodbegidxbitbytes2strc_keyc_periodc_valuecandlestickchannelperiodcline_in_tracebackcloneclosecmoperiodcollectionscolumn_stackcolumnscopycycleperiodddecodedefault_valuedefaultsdeltadescriptiondisplay_namedocsdocumentationemaperiodemptyencodeendidxendswithenumeratefactorfactornarrowfactornormalfactorwidefastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfun""ction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskkcperiodkeykeyskijunperiodkwargsleftbarslengthlimitmovelocallookbacklowlowerma1periodma2periodma3periodma4periodmatypemaximummaxperiodmemominperiodmintrendlengthmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetoffsetonreverseopenopenInterestopen_and_filloptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkoutfisherouthacloseouthahighouthalowouthaopenouthighstopoutinphaseoutintegeroutinteger_dataoutjoutkoutkijunsenoutkstoutkstsignaloutkvooutkvosignaloutleadsineoutlowerbandoutlowstopoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutmiddlebandoutminoutminidxoutminidx_dataoutminusvioutmomentumoutnbelementoutpivotidxoutpivotidx_dataoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsenkouspanaoutsenkouspanboutsineoutslowdoutslowkoutsmioutsmisignaloutsqueezeoutsupertrendoutswinghighoutswinglowouttenkansenouttrendouttriggeroutupperbandoutwt1outwt2outzigzagpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodspolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperankperiodrealreal0real1replaceresultsretretCoderet_coderightbarsroc1periodroc2periodroc3periodroc4periodrocmatyperocperiodrunsschemasecondperiodselfsenkoubperiodsensitivityseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesigmasignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodsma1periodsma2periodsma3periodsma4periodstacklevelstartvaluestatestaticmethodstddevperiodstopperi""odstr2bytesstreakperiodstreamsystabletalib._ta_libtenkanperiodthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytypetype_unst_idupdateupdate_infoupdatesupperuse_setstatevaluevaluesversionvfactorvolumevolumedivisorwarnwarningswmaperiod\200\001\330\004\005\340\t\027\220q\330\010\013\2104\210q\330\021\022\330\020\036\230n\250A\330\014\035\230Q\320\036/\250q\330\014\036\230a\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\014\320\014#\2409\250C\250x\260q\330\004\n\210%\210q\220\001\330\010\027\220z\240\021\200\001\330\004+\2501\250F\260!\200\001\330\004,\250A\250V\2601\200\001\340\004\025\220Q\330\004\027\220s\230\047\240\021\240!\330\004\031\230\021\330\t\026\220a\330\r\016\330\014\032\320\032,\250A\250S\260\001\260\021\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\340\004\027\220q\330\t\027\220q\330\r\016\330\014\032\320\032.\250a\250q\330\004\025\220Q\320\026-\250Q\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220=\240\010\250\001\250\021\330\004\007\200|\2207\230!\330\010/\250q\3200@\300\016\310a\330\004\013\2101\200\001\340""\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220>\240\030\250\021\250!\330\004\007\200|\2207\230!\330\0100\260\001\3201B\300.\320PQ\330\004\013\2101\200\001\340\t\026\220a\330\r\016\330\014\027\320\027+\2501\330\004\013\2101\200\001\340\t\027\220q\330\r\016\330\014\032\320\032/\250q\260\r\270[\310\013\320ST\330\004\025\220Q\320\026.\250a\200\001\340\t\027\220q\330\r\016\330\014\032\320\032:\270!\2701\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Z[\320[g\320gh\320hw\360\000\000x\001C\002\360\000\000C\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260M\300\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x""\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260M\300\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zd\320de\320eq\320qr\360\000\000s\001B\002\360\000\000B\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002\\\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260]\300!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[c\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001""\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260]\300!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[j\320jk\320kw\320wx\360\000\000y\001H\002\360\000\000H\002S\002\360\000\000S\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002b\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\320Q`\320`a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310}\320\\j\320jy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002f\002\360\000\000f\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002\177\002\360\000\000\177\002@\003\340\r\016\330\014\030""\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340%=\320=W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260m\300?\320RS\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310}\320\\k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340%>\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260l\300!\330\010\022\320\022#\2401\240H\250A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310|\320[g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002i\002\360\000\000i\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003B\003\360\000\000B\003C\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5""\260R\260q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P]\320]^\320^j\320jk\320kz\360\000\000{\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002T\002\360\000\000T\002U\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\270a\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260R\260}\300A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P]\320]i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\026\260q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260]\300-\310q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270&\300\006\300a\300y\320P]\320]j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330""\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\026\260q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2706\300\026\300q\310\t\320Q^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\001\330\010\021\320\021\"\240!\2408\2501\330\010\021\320\021\"\240!\2408\2501\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002M\002\360\000\000M\002S\002\360\000\000S\002T\002\360\000\000T\002_\002\360\000\000_\002j\002\360\000\000j\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000""\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\r\300Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q^\320^f\320fg\320gs\320st\360\000\000u\001D\002\360\000\000D\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002^\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\r\300Z\310z\320YZ\330\010\033\320\033,\250A\250X\260Q\330\010\034\320\034-\250Q\250h\260a\330\010\033\320\033,\250A\250X\260Q\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q^\320^h\320hr\320r{\320{|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002Y\002\360\000\000Y\002d\002\360\000\000d\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002F\003\360\000\000F\003Q\003\360\000\000Q\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003t\003\360\000\000t\003\177\003\360\000\000\177\003O\004\360\000\000O\004U\004\360\000\000U\004V\004\360\000\000V\004W\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340\047?\320?W\320Wo\360\000\000p\001H\002\360\000\000H\002_\002\360\000\000_\002v\002\360\000\000v\002M\003\360\000\000M\003d\003\360\000\000d\003~\003\360\000\000~\003P\004\360\000\000P""\004Q\004\360>\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\r\300]\320R_\320_l\320lx\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002]\002\360\000\000]\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\330\010\021\320\021\"\240!\2408\2501\330\010\027\320\027(\250\001\250\030\260\021\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q^\320^k\320kx\360\000\000y\001F\002\360\000\000F\002R\002\360\000\000R\002^\002\360\000\000^\002j\002\360\000\000j\002v\002\360\000\000v\002E\003\360\000\000E\003Q\003\360\000\000Q\003`\003\360\000\000`\003a\003\360\000\000a\003m\003\360\000\000m\003n\003\360\000\000n\003}\003\360\000\000}\003H\004\360\000\000H\004N\004\360\000\000N\004T\004\360\000\000T\004U\004\360\000\000U\004`\004\360\000\000`\004k\004\360\000\000k\004w\004\360\000\000w\004}\004\360\000\000}\004~\004\360\000\000~\004\177\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340()\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001""\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\021\330\010\022\320\022#\2401\240H\250A\330\010\030\320\030)\250\021\250(\260!\330\010\026\320\026\047\240q\250\010\260\001\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320Ra\320ab\320bn\320no\320o~\360\000\000\177\001J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002X\002\360\000\000X\002c\002\360\000\000c\002n\002\360\000\000n\002{\002\360\000\000{\002A\003\360\000\000A\003B\003\360\000\000B\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\034\300]\320RS\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R^\320^k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\300\001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r""\016\330\014\027\220w\230e\320#7\260r\270\035\300a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\035\300m\320S`\320`m\320m|\320|}\330\010\022\320\022#\2401\240H\250A\330\010\030\320\030)\250\021\250(\260!\330\010\026\320\026\047\240q\250\010\260\001\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_l\320ly\360\000\000z\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003~\003\360\000\000~\003D\004\360\000\000D\004E\004\360\000\000E\004P\004\360\000\000P\004[\004\360\000\000[\004f\004\360\000\000f\004l\004\360\000\000l\004m\004\360\000\000m\004n\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270!\330""\010\025\220^\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S`\320`a\320am\320mn\320n}\360\000\000~\001F\002\360\000\000F\002P\002\360\000\000P\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\t\n\330\010\014\210G\320\023#\2401\330\014\033\2301\230F\240!\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S`\320`a\320am\320mn\320n}\360\000\000~\001I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)A\320AX\320Xo\320op\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270-\300z\320Q[\320[\\\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S`\320`j\320jt\320t}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240""\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270-\300\177\320Ve\320ef\330\010\023\320\023$\240A\240X\250Q\330\010\023\320\023$\240A\240X\250Q\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S`\320`o\320o~\360\000\000\177\001N\002\360\000\000N\002O\002\360\000\000O\002[\002\360\000\000[\002\\\002\360\000\000\\\002k\002\360\000\000k\002v\002\360\000\000v\002~\002\360\000\000~\002D\003\360\000\000D\003E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#9\270\022\2701\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\035\240b\250\004\250I\260[\300\004\300F\310!\3109\320Ta\320ab\320bn\320no\320o~\360\000\000\177\001J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002X\002\360\000\000X\002Y\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340+,\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#:\270\"\270A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\036\240r\250\024\250Y\260k\300\024\300V\3101\310I\320Ub\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K""\002R\002\360\000\000R\002X\002\360\000\000X\002Y\002\360\000\000Y\002Z\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#:\270\"\270M\310\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\036\240r\250\024\250Y\260k\300\024\300V\3101\310I\320Ub\320bo\320op\320p|\320|}\360\000\000~\001M\002\360\000\000M\002X\002\360\000\000X\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002g\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#;\2702\270Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\037\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\024\240^\2601\260C\260q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#;\2702\270Q\330\010\024\220N\240!\2408\2501\330\010\024\220N\240!\2408\2501\330\r\016\330\014\031\230\037\250\002\250$\250i""\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002I\002\360\000\000I\002R\002\360\000\000R\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002l\002\360\000\000l\002u\002\360\000\000u\002{\002\360\000\000{\002|\002\360\000\000|\002}\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\t\n\330\010\014\210G\320\023#\2401\330\014\032\230!\2306\240\021\330\004\025\220V\2309\240A\330\t\n\330\010\014\210G\320\023#\2401\330\014\032\230!\2306\240\021\330\004\013\210<\220q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#?\270r\300\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\320\031,\250B\250d\260)\270;\300d\310&\320PQ\320QZ\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#C\3002\300Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\320\0310\260\002\260$\260i\270{\310$\310f\320TU\320U^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+""\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260M\300\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kx\360\000\000y\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002|\002\360\000\000|\002}\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260M\300\035\310a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kx\360\000\000y\001F\002\360\000\000F\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003K\003\360\000\000K\003L\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010""\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320ly\320yz\360\000\000{\001G\002\360\000\000G\002H\002\360\000\000H\002W\002\360\000\000W\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260]\300!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320ly\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002|\002\360\000\000|\002}\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260_\300A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320l{\360\000\000|\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002|\002\360\000\000|\002}\002\340\r\016\330\014\030\230""\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340?W\320WX\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260m\3001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z]\320]c\320cd\320dm\320mz\360\000\000{\001J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260R\260q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[^\320^d\320de\320en\320n{\320{|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002Y\002\360\000\000Y\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002r\002\360\000\000r\002s\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300u\310A\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016""\330\014\027\220w\230e\320#3\2602\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y^\320^d\320de\320en\320n{\320{|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002Y\002\360\000\000Y\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002r\002\360\000\000r\002s\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260R\260q\330\010\027\320\027(\250\001\250\030\260\021\330\010\025\320\025&\240a\240x\250q\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[^\320^d\320de\320en\320n{\320{|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002Y\002\360\000\000Y\002d\002\360\000\000d\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002B\003\360\000\000B\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260R\260}\300A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[^\320^d\320de\320en\320n{\360\000\000|\001I\002\360\000\000I\002J\002\360\000\000J\002V""\002\360\000\000V\002W\002\360\000\000W\002f\002\360\000\000f\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002\177\002\360\000\000\177\002@\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340AB\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\001\330\010\024\320\024%\240Q\240h\250a\330\010\025\320\025&\240a\240x\250q\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320o|\320|}\360\000\000~\001J\002\360\000\000J\002K\002\360\000\000K\002Z\002\360\000\000Z\002e\002\360\000\000e\002n\002\360\000\000n\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003K\003\360\000\000K\003U\003\360\000\000U\003[\003\360\000\000[\003\\\003\360\000\000\\\003]\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340AZ\320Z[\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\250\016\260a\260s\270$\270n\310A\310S\320PQ\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\016\300a\330\010\024\320\024%\240Q\240h\250a\330\010\023\220>\240\021\240(\250!\330\010\026\220n\240A\240X\250Q\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320o}\360\000\000~\001O\002\360\000\000O\002P\002\360\000\000P\002\\\002\360\000\000\\\002]\002\360\000\000]\002l\002\360\000\000l\002w\002\360\000\000w\002@\003""\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003R\003\360\000\000R\003Z\003\360\000\000Z\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003t\003\360\000\000t\003|\003\360\000\000|\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\027\220v\230[\250\001\330\t\n\330\010\014\210G\320\023#\2401\330\014\034\230A\230V\2401\330\004\013\210<\220{\240!\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\r\320EW\320Wn\360\000\000o\001B\002\360\000\000B\002X\002\360\000\000X\002p\002\360\000\000p\002D\003\360\000\000D\003E\003\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320o|\360\000\000}\001O\002\360\000\000O\002f\002\360\000\000f\002y\002\360\000\000y\002O\003\360\000\000O\003g\003\360\000\000g\003{\003\360\000\000{\003R\004\360\000\000R\004S\004\360\000\000S\004_\004\360\000\000_\004`\004\360\000\000`\004o\004\360\000\000o\004z\004\360\000\000z\004A\005\360\000\000A\005G\005\360\000\000G\005H\005\360\000\000H\005I\005\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330""\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]`\320`f\320fg\320gp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\025\260h\270j\310\006\310a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270%\270v\300Q\300i\310{\320Z`\320`f\320fg\320gp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300v\310Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z`\320`f\320fg\320gp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\340\r\016\330\014\030\230\001\330\004""\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\025\260h\270j\310\005\310Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2705\300\006\300a\300y\320P[\320[`\320`f\320fg\320gp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\024\240^\2601\260C\260q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\033\300A\330\010\027\220~\240Q\240h\250a\330\010\026\220n\240A\240X\250Q\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]`\320`f\320fg\320gp\320p{\360\000\000|\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002m\002\360\000\000m\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003K\003\360\000\000K\003S\003\360\000\000S\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000\000e\003f\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330""\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\320q~\320~\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002\\\002\360\000\000\\\002g\002\360\000\000g\002n\002\360\000\000n\002t\002\360\000\000t\002u\002\360\000\000u\002v\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300u\310A\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\a\320ag\320gh\320hq\320q~\320~\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002\\\002\360\000\000\\\002g\002\360\000\000g\002n\002\360\000\000n\002t\002\360\000\000t\002u\002\360\000\000u\002v\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270!\330\010\033\320\033,\250A\250X\260Q\330\010\034\320\034-\250Q\250h\260a\330\010\033\320\033,\250A\250X\260Q\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^""\320^a\320ag\320gh\320hq\320q~\320~\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002\\\002\360\000\000\\\002g\002\360\000\000g\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002I\003\360\000\000I\003T\003\360\000\000T\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300w\310a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260l\300,\310a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Za\320ag\320gh\320hq\320q}\360\000\000~\001J\002\360\000\000J\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340C]\320]v\320vw\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VZ\320Zk\320kl\320lo\320op\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270/\310\036\320WX\330\010\027\320\027(\250\001\250\030\260\021\330\010\026\320\026\047\240q\250\010\260\001\330\010\031\320\031*\250!\2508\2601\330""\010\031\320\031*\250!\2508\2601\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\360\000\000r\001A\002\360\000\000A\002O\002\360\000\000O\002_\002\360\000\000_\002`\002\360\000\000`\002l\002\360\000\000l\002m\002\360\000\000m\002|\002\360\000\000|\002G\003\360\000\000G\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003e\003\360\000\000e\003p\003\360\000\000p\003{\003\360\000\000{\003A\004\360\000\000A\004B\004\360\000\000B\004M\004\360\000\000M\004X\004\360\000\000X\004f\004\360\000\000f\004l\004\360\000\000l\004m\004\360\000\000m\004x\004\360\000\000x\004C\005\360\000\000C\005Q\005\360\000\000Q\005W\005\360\000\000W\005X\005\360\000\000X\005Y\005\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\210?\230.\320(9\270\021\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\025\260h\270j\310\005\310Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270U\300&\310\001\310\031\320R]\320]b\320bh\320hi\320ir\320r\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002w\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330""\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002f\002\360\000\000f\002g\002\360\000\000g\002v\002\360\000\000v\002A\003\360\000\000A\003H\003\360\000\000H\003N\003\360\000\000N\003O\003\360\000\000O\003P\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260M\300\034\310Q\330\010\033\320\033,\250A\250X\260Q\330\010\034\320\034-\250Q\250h\260a\330\010\033\320\033,\250A\250X\260Q\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002e\002\360\000\000e\002m\002\360\000\000m\002n\002\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003U\003\360\000\000U\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004S\004\360\000\000S\004Y\004\360\000\000Y\004Z\004\360\000\000Z\004e\004\360\000\000e\004p\004\360\000\000p\004@\005\360\000\000@\005F\005\360\000\000F\005G\005\360\000\000G\005H\005\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005""\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002Z\002\360\000\000Z\002[\002\360\000\000[\002g\002\360\000\000g\002h\002\360\000\000h\002w\002\360\000\000w\002B\003\360\000\000B\003I\003\360\000\000I\003O\003\360\000\000O\003P\003\360\000\000P\003Q\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010\027\320\027(\250\001\250\030\260\021\330\010\027\320\027(\250\001\250\030\260\021\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002Z\002\360\000\000Z\002[\002\360\000\000[\002g\002\360\000\000g\002h\002\360\000\000h\002w\002\360\000\000w\002B\003\360\000\000B\003N\003\360\000\000N\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003k\003\360\000\000k\003w\003\360\000\000w\003}\003\360\000\000}\003~\003\360\000\000~\003\177\003\340\r\016\330\014\030\230\001""\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260]\300-\310}\320\\]\330\010\021\320\021\"\240!\2408\2501\330\010\027\320\027(\250\001\250\030\260\021\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002Z\002\360\000\000Z\002g\002\360\000\000g\002t\002\360\000\000t\002C\003\360\000\000C\003D\003\360\000\000D\003P\003\360\000\000P\003Q\003\360\000\000Q\003`\003\360\000\000`\003k\003\360\000\000k\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003C\004\360\000\000C\004N\004\360\000\000N\004Z\004\360\000\000Z\004`\004\360\000\000`\004a\004\360\000\000a\004b\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\320tu\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260_\300A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002""\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003P\003\360\000\000P\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260_\300O\320Sb\320bq\320qr\330\010\017\320\017 \240\001\240\030\250\021\330\010\017\320\017 \240\001\240\030\250\021\330\010\017\320\017 \240\001\240\030\250\021\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002\\\002\360\000\000\\\002k\002\360\000\000k\002z\002\360\000\000z\002I\003\360\000\000I\003X\003\360\000\000X\003Y\003\360\000\000Y\003e\003\360\000\000e\003f\003\360\000\000f\003u\003\360\000\000u\003@\004\360\000\000@\004D\004\360\000\000D\004J\004\360\000\000J\004K\004\360\000\000K\004V\004\360\000\000V\004a\004\360\000\000a\004e\004\360\000\000e\004k\004\360\000\000k\004l\004\360\000\000l\004w\004\360\000\000w\004B\005\360\000\000B\005F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c""\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z]\320]c\320cd\320dm\320mx\320x}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002[\002\360\000\000[\002\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002x\002\360\000\000x\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003Q\003\360\000\000Q\003R\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340[s\320st\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\b\320bc\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260]\300!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002[\002\360\000\000[\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003S\003\360\000\000S\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340[s\360\000\000t\001L\002\360\000\000L\002M\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240""\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260B\260m\300=\320PQ\330\010\026\320\026\047\240q\250\010\260\001\330\010\025\320\025&\240a\240x\250q\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z]\320]c\320cd\320dm\320mx\320x}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002[\002\360\000\000[\002h\002\360\000\000h\002u\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003z\003\360\000\000z\003E\004\360\000\000E\004O\004\360\000\000O\004U\004\360\000\000U\004V\004\360\000\000V\004W\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\210>\230\021\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260R\260q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[^\320^d\320de\320en\320ny\320y~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002\\\002\360\000\000\\\002]\002\360\000\000]\002i\002\360\000\000i\002j\002\360\000\000j\002y\002\360\000\000y\002D\003\360\000\000D\003K\003\360\000\000K\003Q\003\360\000\000Q\003R\003\360\000\000R\003S\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002""\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260R\260\177\300o\320Ud\320ds\320st\330\010\023\320\023$\240A\240X\250Q\330\010\023\320\023$\240A\240X\250Q\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[^\320^d\320de\320en\320ny\320y~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002^\002\360\000\000^\002m\002\360\000\000m\002|\002\360\000\000|\002K\003\360\000\000K\003Z\003\360\000\000Z\003[\003\360\000\000[\003g\003\360\000\000g\003h\003\360\000\000h\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004\\\004\360\000\000\\\004g\004\360\000\000g\004o\004\360\000\000o\004u\004\360\000\000u\004v\004\360\000\000v\004w\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320oz\320z\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j""\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003T\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\001\330\010\024\320\024%\240Q\240h\250a\330\010\025\320\025&\240a\240x\250q\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320oz\320z\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E\003N\003\360\000\000N\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003k\003\360\000\000k\003u\003\360\000\000u\003{\003\360\000\000{\003|\003\360\000\000|\003}\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]s\360\000\000t\001I\002\360\000\000I\002_\002\360\000\000_\002y\002\360\000\000y\002U\003\360\000\000U\003V\003\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\250\016\260a\260s\270!\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\013\3008\310;\320Vc\320cr\320rs\330\010\026\320\026\047\240q\250\010\260\001\330\010\025\220^\2401""\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320oz\320z\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002c\002\360\000\000c\002n\002\360\000\000n\002{\002\360\000\000{\002J\003\360\000\000J\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003f\003\360\000\000f\003g\003\360\000\000g\003v\003\360\000\000v\003A\004\360\000\000A\004L\004\360\000\000L\004R\004\360\000\000R\004S\004\360\000\000S\004^\004\360\000\000^\004f\004\360\000\000f\004p\004\360\000\000p\004v\004\360\000\000v\004w\004\360\000\000w\004x\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\210>\230\021\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\016\300n\320TU\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320oz\320z\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002^\002\360\000\000^\002l\002\360\000\000l\002z\002\360\000\000z\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003W\003\360\000\000W\003b\003\360\000\000b\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003q\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320""\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260b\270\017\300\177\320VW\330\010\023\320\023$\240A\240X\250Q\330\010\023\320\023$\240A\240X\250Q\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320oz\320z\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002_\002\360\000\000_\002n\002\360\000\000n\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003e\003\360\000\000e\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003\177\003\360\000\000\177\003J\004\360\000\000J\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260r\270\021\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]`\320`f\320fg\320gp\320p{\360\000\000|\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002^\002\360\000\000^\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002{\002\360\000\000{\002F\003\360\000\000F\003M\003\360\000\000M\003S\003\360\000\000S\003T\003\360\000\000T\003U\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;""\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\320q|\360\000\000}\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002_\002\360\000\000_\002`\002\360\000\000`\002l\002\360\000\000l\002m\002\360\000\000m\002|\002\360\000\000|\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003U\003\360\000\000U\003V\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\002\270!\330\010\033\320\033,\250A\250X\260Q\330\010\034\320\034-\250Q\250h\260a\330\010\033\320\033,\250A\250X\260Q\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\320q|\360\000\000}\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002_\002\360\000\000_\002`\002\360\000\000`\002l\002\360\000\000l\002m\002\360\000\000m\002|\002\360\000\000|\002G\003\360\000\000G\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003i\003\360\000\000i\003t\003\360\000\000t\003E\004\360\000\000E\004K\004\360\000""\000K\004L\004\360\000\000L\004W\004\360\000\000W\004b\004\360\000\000b\004r\004\360\000\000r\004x\004\360\000\000x\004y\004\360\000\000y\004z\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340`{\360\000\000|\001W\002\360\000\000W\002X\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#9\270\022\320;K\320K[\320[\\\330\010\021\320\021\"\240!\2408\2501\330\010\021\320\021\"\240!\2408\2501\330\r\016\330\014\031\230\035\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_b\320bh\320hi\320ir\320r}\360\000\000~\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002c\002\360\000\000c\002s\002\360\000\000s\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003B\004\360\000\000B\004M\004\360\000\000M\004S\004\360\000\000S\004Y\004\360\000\000Y\004Z\004\360\000\000Z\004[\004\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026&\240a\330\004\013\2109\220A\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\250\016\260a\260s\270!\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#:\270\"\270M\310\021\330\010\030\320\030)\250\021\250(\260!\330\010\023""\220>\240\021\240(\250!\330\r\016\330\014\031\230\036\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`c\320ci\320ij\320js\320s~\360\000\000\177\001D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002a\002\360\000\000a\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003V\003\360\000\000V\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003u\003\360\000\000u\003}\003\360\000\000}\003E\004\360\000\000E\004K\004\360\000\000K\004L\004\360\000\000L\004M\004\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026\047\240q\330\004\013\320\013\033\2301\200\001\340tu\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260\"\260A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002D\003\360\000\000D\003E\003\360\000\000E\003T\003\360\000\000T\003_\003\360\000\000_\003f\003\360\000\000f\003l\003\360\000\000l\003m\003\360\000\000m\003n\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340uv\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\320\017 \240""\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002E\003\360\000\000E\003F\003\360\000\000F\003U\003\360\000\000U\003`\003\360\000\000`\003g\003\360\000\000g\003m\003\360\000\000m\003n\003\360\000\000n\003o\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ai\320is\320sy\320yz\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003j\003\360\000\000j\003p\003\360\000\000p\003q\003\360\000\000q\003r\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&""\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#:\270\"\270A\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\230\036\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#>\270b\300\001\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031+\2502\250T\260\031\270+\300T\310\026\310q\320PY\320Yd\320dh\320hn\320no\320ox\360\000\000y\001D\002\360\000\000D\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002W\002\360\000\000W\002b\002\360\000\000b\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002w\002\360\000\000w\002E\003\360\000\000E\003F\003\360\000\000F""\003R\003\360\000\000R\003S\003\360\000\000S\003b\003\360\000\000b\003j\003\360\000\000j\003t\003\360\000\000t\003z\003\360\000\000z\003{\003\360\000\000{\003|\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000A\002Y\002\360\000\000Y\002Z\002\360(\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#>\270b\300\r\310Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\320\031+\2502\250T\260\031\270+\300T\310\026\310q\320PY\320Yd\320dh\320hn\320no\320ox\360\000\000y\001D\002\360\000\000D\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002W\002\360\000\000W\002b\002\360\000\000b\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002w\002\360\000\000w\002D\003\360\000\000D\003T\003\360\000\000T\003U\003\360\000\000U\003a\003\360\000\000a\003b\003\360\000\000b\003q\003\360\000\000q\003|\003\360\000\000|\003C\004\360\000\000C\004I\004\360\000\000I\004J\004\360\000\000J\004K\004\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#@\300\002\300!\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031-\250R""\250t\2609\270K\300t\3106\320QR\320R[\320[f\320fj\320jp\320pq\320qz\360\000\000{\001F\002\360\000\000F\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Y\002\360\000\000Y\002d\002\360\000\000d\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002y\002\360\000\000y\002G\003\360\000\000G\003H\003\360\000\000H\003T\003\360\000\000T\003U\003\360\000\000U\003d\003\360\000\000d\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003~\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#A\300\022\3001\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031.\250b\260\004\260I\270[\310\004\310F\320RS\320S\\\320\\g\320gk\320kq\320qr\320r{\360\000\000|\001G\002\360\000\000G\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002e\002\360\000\000e\002j\002\360\000\000j\002p\002\360\000\000p\002q\002\360\000\000q\002z\002\360\000\000z\002H\003\360\000\000H\003I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003e\003\360\000\000e\003m\003\360\000\000m\003w\003\360\000\000w\003}\003\360\000\000}\003~\003\360\000\000~\003\177\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330""\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#B\300\"\300A\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031/\250r\260\024\260Y\270k\310\024\310V\320ST\320T]\320]h\320hl\320lr\320rs\320s|\360\000\000}\001H\002\360\000\000H\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002[\002\360\000\000[\002f\002\360\000\000f\002k\002\360\000\000k\002q\002\360\000\000q\002r\002\360\000\000r\002{\002\360\000\000{\002I\003\360\000\000I\003J\003\360\000\000J\003V\003\360\000\000V\003W\003\360\000\000W\003f\003\360\000\000f\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003\177\003\360\000\000\177\003@\004\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000x\001P\002\360\000\000P\002h\002\360\000\000h\002i\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ai\320is\320sy\320yz\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2602\260]\300-\310q\330\010\021\320\021\"\240!\2408\2501\330\010\027\320\027(\250\001\250\030\260\021\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002{\002\360\000\000{\002H\003\360\000\000H\003W\003\360\000\000W\003X\003\360\000\000X\003d\003\360\000\000d\003e\003\360\000\000e\003t\003\360\000\000t""\003\177\003\360\000\000\177\003E\004\360\000\000E\004K\004\360\000\000K\004L\004\360\000\000L\004W\004\360\000\000W\004b\004\360\000\000b\004n\004\360\000\000n\004t\004\360\000\000t\004u\004\360\000\000u\004v\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ai\320is\320sy\320yz\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260R\260}\300A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[^\320^d\320de\320en\320ny\320y~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002}\002\360\000\000}\002J\003\360\000\000J\003K\003\360\000\000K\003W\003\360\000\000W\003X\003\360\000\000X\003g\003\360\000\000g\003r\003\360\000\000r\003y\003\360\000\000y\003\177\003\360\000\000\177\003@\004\360\000\000@\004A\004\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\t\026\220a\330\r\016\330\014\030\320\030-\250Q\250a\330\004\013\2101\200\001\360\010\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\017\210q\330\t\027\220q\330\r\016\330\014\032\320\032/\250q\260\004\260A\330\004\025\220Q\320\026.\250a\200\001\360\010\000\n\033\230!\330\010\020\220\001\330\010\020\220\007\220q\230\006\230l\250!\330\004\007\200v\210W\220E""\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220q\330\004\007\200q\330\010\017\320\017.\250d\260!\2607\270+\300W\310A\340\010\017\320\017.\250d\260!\2607\270+\300Q\200\001\360\010\000\n\033\230!\330\010\020\220\001\330\010\020\220\007\220q\230\006\230l\250!\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220q\330\004\007\200q\330\010\017\320\017/\250t\2601\260G\270;\300g\310Q\340\010\017\320\017/\250t\2601\260G\270;\300a\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005,\320+=\270Q\270a\340\t\026\220a\330\r\016\330\014\031\230\037\250\001\250\030\260\021\260!\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230""\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\360\014\000\005,\320+=\270Q\270a\340\t\026\220a\330\r\016\330\014\031\320\0312\260!\2608\2705\300\001\300\021\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005,\320+=\270Q\270a\340\t\026\220a\330\r\016\330\014\031\320\0313\2601\260H\270E\300\021\300!\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000\005,\320+=\270Q\270a\340\t\026\220a\330\r\016\330\014\031\320\0315\260Q\260h\270e\3001\300A\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\014\000\n\027\220a\330\r\016\330\014\031\320\031+\2501\250G\2601\260A\330\010\031\230\021\320\032/\250q\330\010\t\330\014\030\230\001\330\014\020\220\005\220V\2301\230E\240\021\330\020\031\230\027\240\001\240\026\240q\250\005\250W\260A\260Q\340\021\022\330\020\035\320\035.\250a\250q\330\014\035\230Q\320\0362\260!\330\004\013\2101\200\001\360\014\000\n\027\220a\330\r\016\330\014\031\320\031,\250A\250Q\250a\330\010\031\230\021\320\0320\260\001\330\010\t\330\014\025\220Q\330\014\020\220\005\220V\2301\230E\240\021\330\020\026\220g\230Q\230f\240A\240U\250\047\260\021\260!\340\021\022\330\020\035""\320\035/\250q\260\001\330\014\035\230Q\320\0363\2601\330\004\013\2101\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ai\320is\320sy\320yz\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003U\003\360\000\000U\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ai\320is\320sy\320yz\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z]\320]c\320cd\320dm\320mx\320x}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000""\000N\002Y\002\360\000\000Y\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003W\003\360\000\000W\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000\000e\003f\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2601\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y\\\320\\b\320bc\320cl\320lw\320w|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\_\320_e\320ef\320fo\320oz\320z\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002Q\002\360\000\000Q\002]\002\360\000\000]\002^\002\360""\000\000^\002m\002\360\000\000m\002x\002\360\000\000x\002\177\002\360\000\000\177\002E\003\360\000\000E\003F\003\360\000\000F\003G\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\a\320ab\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\320q|\360\000\000}\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310(\320R\\\320\\b\320bc\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\320q|\360\000\000}\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\340\r\016\330\014""\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300s\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^a\320ag\320gh\320hq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260q\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026""\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#9\270\021\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\230\035\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#:\270!\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\230\036\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026\047\240q\330""\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#;\2701\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\230\037\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#<\270A\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031)\250\022\2504\250y\270\013\3004\300v\310Q\310i\320Wb\320bf\320fl\320lm\320mv\360\000\000w\001B\002\360\000\000B\002E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002U\002\360\000\000U\002`\002\360\000\000`\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002u\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C""\003R\003\360\000\000R\003Z\003\360\000\000Z\003d\003\360\000\000d\003j\003\360\000\000j\003k\003\360\000\000k\003l\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#=\270Q\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031*\250\"\250D\260\t\270\033\300D\310\006\310a\310y\320Xc\320cg\320gm\320mn\320nw\360\000\000x\001C\002\360\000\000C\002F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002V\002\360\000\000V\002a\002\360\000\000a\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002v\002\360\000\000v\002w\002\360\000\000w\002C\003\360\000\000C\003D\003\360\000\000D\003S\003\360\000\000S\003[\003\360\000\000[\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003m\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#>\270a\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031+\2502\250T\260\031\270+\300T\310\026\310q\320PY\320Yd\320dh\320hn\320no\320ox\360\000\000y\001D\002\360\000\000D\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002W\002""\360\000\000W\002b\002\360\000\000b\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002w\002\360\000\000w\002x\002\360\000\000x\002D\003\360\000\000D\003E\003\360\000\000E\003T\003\360\000\000T\003\\\003\360\000\000\\\003f\003\360\000\000f\003l\003\360\000\000l\003m\003\360\000\000m\003n\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#?\270q\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031,\250B\250d\260)\270;\300d\310&\320PQ\320QZ\320Ze\320ei\320io\320op\320py\360\000\000z\001E\002\360\000\000E\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002X\002\360\000\000X\002c\002\360\000\000c\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002x\002\360\000\000x\002y\002\360\000\000y\002E\003\360\000\000E\003F\003\360\000\000F\003U\003\360\000\000U\003]\003\360\000\000]\003g\003\360\000\000g\003m\003\360\000\000m\003n\003\360\000\000n\003o\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#@\300\001\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031-""\250R\250t\2609\270K\300t\3106\320QR\320R[\320[f\320fj\320jp\320pq\320qz\360\000\000{\001F\002\360\000\000F\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Y\002\360\000\000Y\002d\002\360\000\000d\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#A\300\021\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031.\250b\260\004\260I\270[\310\004\310F\320RS\320S\\\320\\g\320gk\320kq\320qr\320r{\360\000\000|\001G\002\360\000\000G\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002e\002\360\000\000e\002j\002\360\000\000j\002p\002\360\000\000p\002q\002\360\000\000q\002z\002\360\000\000z\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003W\003\360\000\000W\003_\003\360\000\000_\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003q\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw""\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#B\300!\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031/\250r\260\024\260Y\270k\310\024\310V\320ST\320T]\320]h\320hl\320lr\320rs\320s|\360\000\000}\001H\002\360\000\000H\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002[\002\360\000\000[\002f\002\360\000\000f\002k\002\360\000\000k\002q\002\360\000\000q\002r\002\360\000\000r\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003`\003\360\000\000`\003j\003\360\000\000j\003p\003\360\000\000p\003q\003\360\000\000q\003r\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#C\3001\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\0310\260\002\260$\260i\270{\310$\310f\320TU\320U^\320^i\320im\320ms\320st\320t}\360\000\000~\001I\002\360\000\000I\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002\\\002\360\000\000\\\002g\002\360\000\000g\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002|\002\360\000\000|\002}\002\360\000\000}\002I\003\360\000\000I\003J\003\360\000\000J\003Y\003\360\000\000Y\003a\003\360\000\000a\003k\003\360\000\000k\003q\003\360\000\000q\003r\003\360\000\000r\003s\003\340\r\016\330\014\030\230\001\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!""\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2601\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003T\003\360\000\000T\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#8\270\001\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\034\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003Y\003\360\000\000Y\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\340\r\016\330\014\030\230\001\330\004\025\220Q\220o\240Q""\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#<\270A\330\010\025\220^\2401\240H\250A\330\r\016\330\014\031\320\031)\250\022\2504\250y\270\013\3004\300v\310Q\310i\320WX\320Xd\320de\320et\320t|\360\000\000}\001G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2601\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240""\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#5\260Q\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\031\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320PQ\320Q]\320]^\320^m\320mx\320x\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002H\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#6\260a\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\032\2402\240T\250\031\260+\270T\300\026\300q\310\t\320QR\320R^\320^_\320_n\320ny\360\000\000z\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002I\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004""\005\330\r\016\330\014\027\220w\230e\320#:\270!\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\036\240r\250\024\250Y\260k\300\024\300V\3101\310I\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#;\2701\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\037\250\002\250$\250i\260{\300$\300f\310A\310Y\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#<\270A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\320\031)\250\022\2504\250y\270\013\3004\300v\310Q\310i\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\025\260h\270j\310\006\310a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2601""\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270%\270v\300Q\300i\310{\320Z`\320`f\320fg\320gp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300v\310Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2601\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y_\320_e\320ef\320fo\320op\320p|\320|}\360\000\000~\001M\002\360\000\000M\002X\002\360\000\000X\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002g\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\025\260h\270j\310\005\310Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#3\2601\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\027\240\002\240$\240i\250{\270%\270v\300Q\300i\310{\320Z_\320_e\320ef\320fo\320op\320p|\320|}\360\000\000~\001M\002\360\000\000M\002X\002\360\000\000X\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002g\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023""\240A\330\t\n\330\010\021\220\035\230a\230x\240z\260\025\260h\270j\310\005\310Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#4\260A\330\010\022\320\022#\2401\240H\250A\330\r\016\330\014\031\230\030\240\022\2404\240y\260\013\2705\300\006\300a\300y\320P[\320[`\320`f\320fg\320gp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#7\260q\330\010\022\320\022#\2401\240H\250A\330\010\026\320\026\047\240q\250\010\260\001\330\r\016\330\014\031\230\033\240B\240d\250)\260;\270d\300&\310\001\310\031\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002T\002\360\000\000T\002_\002\360\000\000_\002j\002\360\000\000j\002p\002\360\000\000p\002q\002\360\000\000q\002r\002\340\r\016\330\014\030\230\001\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260Q\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\320#9\270\021\330\010\025\320\025&\240a\240x\250q\330\010\030\320\030)\250\021\250(\260!\330\r\016\330\014\031\230\035\240b\250\004\250I\260[\300\004\300F\310!\3109\320TU\320Ua\320ab\320bq\320q|\360\000\000}\001G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002Y""\002\360\000\000Y\002d\002\360\000\000d\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002y\002\340\r\016\330\014\030\230\001\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VZ\320Zk\320kl\320lo\320op\330\t\n\330\010\021\220\035\230a\230x\240z\260\024\260X\270Z\300t\3108\320S]\320]`\320`h\320hr\320rw\320wx\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\024\220A\330\004\005\330\r\016\330\014\027\220w\230e\240?\260!\330\010\024\320\024%\240Q\240h\250a\330\010\024\320\024%\240Q\240h\250a\330\010\023\320\023$\240A\240X\250Q\330\010\025\320\025&\240a\240x\250q\330\r\016\330\014\031\230\026\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003S\003\360\000\000S\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003n\003\360\000\000n\003y\003\360\000\000y\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n\004\360\000\000n\004y\004\360\000\000y\004D\005\360\000\000D\005N\005\360\000\000N\005T\005\360\000\000T\005U\005\360\000\000U\005V\005\340\r\016\330\014\030\230\001\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!""\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\330\014\023\2208\2301\330\014\023\2207\230!\200A\330\010\016\210i\220q\330\014\r\33046\260d\270!\2705\300\001\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2205\230\001\200A\330\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\210\177\230g\240U\250!\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021 \240\007\240u\250A\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\330\010\030\230\001""\200A\330\r\016\330\014\030\230\001\200A\330\r\016\330\014\031\230\021\200A\330*A\320AX\320XY\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270K\300|\320ST\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Ye\320ep\320p|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T`\320`l\320lm\320mx\320xy\360\000\000z\001H\002\360\000\000H\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002a\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010""\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320am\320mn\320ny\320yz\360\000\000{\001I\002\360\000\000I\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002b\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\021\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320Vb\320bn\320no\320oz\320z{\360\000\000|\001J\002\360\000\000J\002S\002\360\000\000S\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002c\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270!\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320Wc\320co\320op\320p{\320{|\360\000\000}\001K\002\360\000\000K\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002d\002\330\020""\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\2701\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xd\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Ye\320eq\320qr\320r}\320}~\360\000\000\177\001M\002\360\000\000M\002V\002\360\000\000V\002]\002\360\000\000]\002c\002\360\000\000c\002e\002\360\000\000e\002f\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x""\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270Q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zf\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270Q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zf\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\340\010$\240F\250*\260A\330\010\014\210E\220\025\220a\220z\240\021\330\014\033\2301\230F\240!\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t,\2501\330\010\047\320\0477\260x\270q\300\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047=\270Q\270a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0322\260!\2601\260H\270I\300V\3106""\320QS\320S[\320[g\320gs\320st\320t\177\360\000\000@\002A\002\360\000\000A\002O\002\360\000\000O\002X\002\360\000\000X\002_\002\360\000\000_\002e\002\360\000\000e\002g\002\360\000\000g\002h\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t-\250A\330\010(\320(9\270\030\300\021\300!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047>\270a\270q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0323\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t.\250Q\330\010)\320);\2708\3001\300A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047?\270q\300\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0324\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020""\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t2\260\021\330\010-\320-C\3008\3101\310A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047C\3001\300A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0328\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\320yz\360\000\000{\001F\002\360\000\000F\002G\002\360\000\000G\002U\002\360\000\000U\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002m\002\360\000\000m\002n\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t6\260Q\330\0101\3201K\3108\320ST\320TU\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047G\300q\310\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t)\250""\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\2701\330\014\025\320\025&\240a\240x\250q\330\014\025\320\025&\240a\240x\250q\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xd\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002m\002\360\000\000m\002v\002\360\000\000v\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210y\230\014\240B\240h\250i\260|\3002\300X\310Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t.\250Q\330\010)\320);\2708\3001\300A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047?\270q\300\001\330\014\030\230\016\240a\240x\250q\330\014\030\230\016\240a\240x\250q\330\021\022\330\020\032\320\0324\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002W\002\360\000\000W\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002r\002\360\000\000r\002x\002\360\000\000x\002A\003\360\000\000A\003G\003\360\000\000G\003I\003\360\000\000I\003J\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\340\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010\017\210y\230\014\240B""\240h\250l\270,\300b\310\010\320PQ\200A\330+>\270a\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260|\3001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T`\320`l\320lt\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320am\320mt\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021""\022\330\020\033\2307\240%\320\047:\270!\270<\300q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xd\320dp\320pw\320wx\360\000\000y\001D\002\360\000\000D\002E\002\360\000\000E\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002l\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270L\310\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Ye\320eq\320qx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\320@S\320ST\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\034\300W\310A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320Vb\320bn\320nu\320u}\320}~\360\000\000\177\001J\002\360\000\000J""\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240X\250Q\200A\330+A\300\021\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270,\300a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320Wc\320co\320oz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\300!\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260|\3001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T`\320`l\320lu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330""\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BT\320Tk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270L\310\014\320T`\320`l\320lz\320z{\330\014\026\320\026\047\240q\250\010\260\001\330\014\034\320\034-\250Q\250h\260a\330\014\032\320\032+\2501\250H\260A\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Ye\320eq\320q}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002\177\002\360\000\000\177\002M\003\360\000\000M\003V\003\360\000\000V\003]\003\360\000\000]\003c\003\360\000\000c\003e\003\360\000\000e\003o\003\360\000\000o\003x\003\360\000\000x\003E\004\360\000\000E\004K\004\360\000\000K\004M\004\360\000\000M\004W\004\360\000\000W\004`\004\360\000\000`\004k\004\360\000\000k\004q\004\360\000\000q\004s\004\360\000\000s\004t\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+B\320BU\320UV\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300L\320PQ\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320am\320my\360\000\000z\001B\002\360\000""\000B\002C\002\360\000\000C\002N\002\360\000\000N\002O\002\360\000\000O\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002v\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300I\310Y\320VW\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320am\320mv\320v\177\360\000\000@\002H\002\360\000\000H\002I\002\360\000\000I\002T\002\360\000\000T\002U\002\360\000\000U\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002|\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270\\\310\031\320R[\320[\\\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zf\320fr\320r{\360\000\000|\001E\002\360\000\000E\002M\002\360\000\000M\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002h\002\360\000\000h\002q\002\360\000\000q\002x\002""\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003A\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\270<\300y\320PY\320YZ\330\014\033\320\033,\250A\250X\260Q\330\014\034\320\034-\250Q\250h\260a\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xd\320dp\320py\360\000\000z\001C\002\360\000\000C\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003M\003\360\000\000M\003V\003\360\000\000V\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003u\003\360\000\000u\003~\003\360\000\000~\003J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210y\230\014\240B\240h\250o\270\\\310\022\3108\320Sc\320co\320oq\320qy\320yz\200A\330+B\320BY\320Yp\360\000\000q\001G\002\360\000\000G\002]\002\360\000\000]\002s\002\360\000\000s\002I\003\360\000\000I\003b\003\360\000\000b\003x\003\360\000\000x\003L\004\360\000\000L\004M\004\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t)\250\001\330\010$\240M\260\030\270\021""\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\270<\300|\320S_\320_k\320kv\360\000\000w\001B\002\360\000\000B\002M\002\360\000\000M\002X\002\360\000\000X\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\330\014\025\320\025&\240a\240x\250q\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xd\320dp\320p|\360\000\000}\001I\002\360\000\000I\002U\002\360\000\000U\002`\002\360\000\000`\002k\002\360\000\000k\002v\002\360\000\000v\002A\003\360\000\000A\003O\003\360\000\000O\003Z\003\360\000\000Z\003h\003\360\000\000h\003i\003\360\000\000i\003t\003\360\000\000t\003u\003\360\000\000u\003C\004\360\000\000C\004L\004\360\000\000L\004R\004\360\000\000R\004X\004\360\000\000X\004Z\004\360\000\000Z\004d\004\360\000\000d\004m\004\360\000\000m\004y\004\360\000\000y\004\177\004\360\000\000\177\004A\005\360\000\000A\005B\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210y\230\014\240B\240h\250i\260|\3002\300X\310Q\200A\330+B\320BY\320Yp\360\000\000q\001H\002\360\000\000H\002_\002\360\000\000_\002v\002\360\000\000v\002M\003\360\000\000M\003f\003\360\000\000f\003g\003\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300L\320P\\\320\\h\320ht\360\000\000u\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\330\014\025\320\025&\240a\240x\250q\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320am\320my\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002^\002\360\000\000^\002j\002\360""\000\000j\002v\002\360\000\000v\002B\003\360\000\000B\003P\003\360\000\000P\003Q\003\360\000\000Q\003\\\003\360\000\000\\\003]\003\360\000\000]\003k\003\360\000\000k\003t\003\360\000\000t\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004L\004\360\000\000L\004U\004\360\000\000U\004a\004\360\000\000a\004g\004\360\000\000g\004i\004\360\000\000i\004j\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210y\230\014\240B\240h\250i\260|\3002\300X\310Q\200A\330+B\320BZ\320Z[\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300L\320PQ\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320am\320my\360\000\000z\001G\002\360\000\000G\002H\002\360\000\000H\002S\002\360\000\000S\002T\002\360\000\000T\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002{\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320B[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\034\300\\\320QR\330\014\026\320\026\047\240q\250\010\260\001\330\014\034\320\034-\250Q\250h\260a\330\014\032\320\032+\2501\250H\260A\330\021\022\330\020""\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320Vb\320bn\320nz\360\000\000{\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002F\003\360\000\000F\003O\003\360\000\000O\003\\\003\360\000\000\\\003b\003\360\000\000b\003d\003\360\000\000d\003n\003\360\000\000n\003w\003\360\000\000w\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+C\320C\\\320\\u\320uv\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\034\300]\320R`\320`a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320Vb\320bn\320n{\360\000\000|\001J\002\360\000\000J\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240X\250Q\200A\330+D\300A\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010""\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320am\320m{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002p\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240X\250Q\200A\330+D\320D[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\034\300^\320ST\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320Vb\320bn\320n|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240X\250Q\200A\330+D\320D]\320]v\320vw\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270\\\310\036\320We\320ef\330\014\027\320\027(\250\001\250\030\260\021\330\014\027\320\027(\250\001\250\030\260\021\330\021\022\330\020\032\320\0321\260\021\260!""\2608\2709\300F\310&\320PR\320RZ\320Zf\320fr\360\000\000s\001A\002\360\000\000A\002O\002\360\000\000O\002]\002\360\000\000]\002^\002\360\000\000^\002i\002\360\000\000i\002j\002\360\000\000j\002x\002\360\000\000x\002A\003\360\000\000A\003I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003[\003\360\000\000[\003d\003\360\000\000d\003l\003\360\000\000l\003r\003\360\000\000r\003t\003\360\000\000t\003u\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210y\230\014\240B\240h\250k\270\034\300R\300x\310q\200A\330+E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t-\250A\330\010(\320(9\270\030\300\021\300!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047>\270a\270|\3101\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0323\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002M\002\360\000\000M\002N\002\360\000\000N\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002u\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010\017\210x\220|\2402\240X\250Q\200A\330,E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\r\300Q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U""a\320an\320n|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240X\250Q\200A\330-.\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270A\330\014\026\320\026\047\240q\250\010\260\001\330\014\034\320\034-\250Q\250h\260a\330\014\032\320\032+\2501\250H\260A\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Ye\320es\320st\320t\177\360\000\000@\002A\002\360\000\000A\002O\002\360\000\000O\002X\002\360\000\000X\002_\002\360\000\000_\002e\002\360\000\000e\002g\002\360\000\000g\002q\002\360\000\000q\002z\002\360\000\000z\002G\003\360\000\000G\003M\003\360\000\000M\003O\003\360\000\000O\003Y\003\360\000\000Y\003b\003\360\000\000b\003m\003\360\000\000m\003s\003\360\000\000s\003u\003\360\000\000u\003v\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330-.\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\021\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a""\250x\260y\300\010\310\006\310b\320PX\320Xd\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240Z\250q\200A\330-D\320DW\320WX\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300L\320PQ\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270x\300v\310R\310x\320Wc\320co\320o{\360\000\000|\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240Z\250q\200A\330-E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\033\300A\330\014\026\320\026\047\240q\250\010\260\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320Vb\320bm\320mx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l""\002\360\000\000l\002v\002\360\000\000v\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\330.D\300A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270J\300a\330\014\033\230>\250\021\250(\260!\330\014\032\230.\250\001\250\030\260\021\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Yb\320bg\320gm\320mo\320ow\360\000\000x\001D\002\360\000\000D\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003X\003\360\000\000X\003^\003\360\000\000^\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003r\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v""\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270!\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320W`\320`e\320ek\320km\320mu\360\000\000v\001B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002Z\002\360\000\000Z\002[\002\360\000\000[\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003B\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Yb\320bg\320gm\320mo\320ow\360\000\000x\001D\002\360\000""\000D\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002]\002\360\000\000]\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003D\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270Q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270!\330\014\033\320\033,\250A\250X\260Q\330\014\031\320\031*\250!\2508\2601\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320W`\320`e\320ek\320km\320mu\360\000\000v\001B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002Z""\002\360\000\000Z\002[\002\360\000\000[\002i\002\360\000\000i\002r\002\360\000\000r\002~\002\360\000\000~\002D\003\360\000\000D\003F\003\360\000\000F\003P\003\360\000\000P\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003l\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\2701\330\014\030\320\030)\250\021\250(\260!\330\014\031\320\031*\250!\2508\2601\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\360\000\000w\001C\002\360\000\000C\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002\\\002\360\000\000\\\002j\002\360\000\000j\002s\002\360\000\000s\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003N\003\360\000\000N\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003j\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210y\230\014\240B\240f\250G\260<\270|\3102\310V\320SZ\320Z[\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<""\270A\270Q\330\014\033\320\033,\250A\250X\260Q\330\014\034\320\034-\250Q\250h\260a\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002A\003\360\000\000A\003G\003\360\000\000G\003I\003\360\000\000I\003S\003\360\000\000S\003\\\003\360\000\000\\\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003{\003\360\000\000{\003D\004\360\000\000D\004P\004\360\000\000P\004V\004\360\000\000V\004X\004\360\000\000X\004Y\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]m\320my\320y{\360\000\000|\001B\002\360\000\000B\002I\002\360\000\000I\002J\002\200A\3300F\300a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s\177\360\000\000@\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002c\002\360\000\000c\002d\002\360\000\000d\002r\002\360\000\000r\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003J\003\360\000\000J\003K\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x""\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260|\3001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T]\320]b\320bh\320hj\320jr\320r~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002c\002\360\000\000c\002d\002\360\000\000d\002r\002\360\000\000r\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003J\003\360\000\000J\003K\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270,\300a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320W`\320`e\320ek\320km\320mu\360\000\000v\001B\002\360\000\000B\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002f\002\360\000\000f\002g\002\360\000\000g\002u\002\360\000\000u\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003M\003\360\000\000M\003N\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210x\220|\2402\240V\2507\260!""\200A\3300G\320G`\320`a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260|\300<\310q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T]\320]b\320bh\320hj\320jr\320r~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003P\003\360\000\000P\003V\003\360\000\000V\003X\003\360\000\000X\003Y\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300I\310\021\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\034\300Q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320V_\320_d\320dj\320jl\320lt\360\000\000u\001A\002\360\000\000A\002M\002\360\000\000M\002[\002\360\000\000[\002\\\002\360\000\000\\\002g\002\360\000\000g\002h\002\360\000\000h\002v\002\360\000\000v\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402""\240V\2507\260!\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^e\320ek\320km\320mu\360\000\000v\001B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002Z\002\360\000\000Z\002[\002\360\000\000[\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003B\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2509\260A\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\2701\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320ah\320hn\320np\320px\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240V\2509\260A\200A\3302J\320Jd\320de\330\010!\240\035\250a""\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\020\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270^\310=\320XY\330\014\033\320\033,\250A\250X\260Q\330\014\032\320\032+\2501\250H\260A\330\014\035\320\035.\250a\250x\260q\330\014\035\320\035.\250a\250x\260q\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001E\002\360\000\000E\002S\002\360\000\000S\002`\002\360\000\000`\002o\002\360\000\000o\002p\002\360\000\000p\002{\002\360\000\000{\002|\002\360\000\000|\002J\003\360\000\000J\003S\003\360\000\000S\003_\003\360\000\000_\003e\003\360\000\000e\003g\003\360\000\000g\003q\003\360\000\000q\003z\003\360\000\000z\003E\004\360\000\000E\004K\004\360\000\000K\004M\004\360\000\000M\004W\004\360\000\000W\004`\004\360\000\000`\004n\004\360\000\000n\004t\004\360\000\000t\004v\004\360\000\000v\004@\005\360\000\000@\005I\005\360\000\000I\005W\005\360\000\000W\005]\005\360\000\000]\005_\005\360\000\000_\005`\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]k\320kw\320wy\320y\177\360\000\000@\002G\002\360\000\000G\002X\002\360\000\000X\002d\002\360\000\000d\002f\002\360\000\000f\002l\002\360\000\000l\002s\002\360\000\000s\002t\002\200A\33034\330\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\021\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020""\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320V_\320_g\320gm\320mo\320ow\360\000\000x\001D\002\360\000\000D\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002]\002\360\000\000]\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003D\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240V\250:\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\021\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\007\300v\310R\310x\320W`\320`g\320gm\320mo\320ow\360\000\000x\001D\002\360\000\000D\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002]\002\360\000\000]\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003D\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240W\250I\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\2701\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300\047\310\026\310r""\320QY\320Yb\320bi\320io\320oq\320qy\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002^\002\360\000\000^\002_\002\360\000\000_\002m\002\360\000\000m\002v\002\360\000\000v\002}\002\360\000\000}\002C\003\360\000\000C\003E\003\360\000\000E\003F\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240W\250I\260Q\200A\3303I\320I\\\320\\]\330\010!\240\035\250a\250q\330\010$\240M\260\021\260!\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\033\300K\310q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320V_\320_h\320hn\320np\320px\360\000\000y\001E\002\360\000\000E\002P\002\360\000\000P\002[\002\360\000\000[\002c\002\360\000\000c\002d\002\360\000\000d\002o\002\360\000\000o\002p\002\360\000\000p\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240V\250;\260a\200A\3303Q\320Qt\360\000\000u\001T\002\360\000\000T\002v\002\360\000\000v\002Z\003\360\000\000Z\003z\003\360\000\000z\003]\004\360\000\000]\004^\004\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%""\320\047:\270!\270<\320GX\320Xn\360\000\000o\001A\002\360\000\000A\002V\002\360\000\000V\002m\002\360\000\000m\002@\003\360\000\000@\003A\003\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\360\000\000w\001C\002\360\000\000C\002O\002\360\000\000O\002`\002\360\000\000`\002v\002\360\000\000v\002H\003\360\000\000H\003]\003\360\000\000]\003t\003\360\000\000t\003G\004\360\000\000G\004]\004\360\000\000]\004^\004\360\000\000^\004i\004\360\000\000i\004j\004\360\000\000j\004x\004\360\000\000x\004A\005\360\000\000A\005H\005\360\000\000H\005N\005\360\000\000N\005P\005\360\000\000P\005Q\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240V\2507\260!\200A\33045\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270w\300f\310B\310h\320V_\320_g\320gm\320mo\320ow\360\000\000x\001D\002\360\000\000D\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002]\002\360\000\000]\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003D\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240W\250J\260a\200A\3304L\310A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X""\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\270=\310\001\330\014\030\320\030)\250\021\250(\260!\330\014\027\220~\240Q\240h\250a\330\014\032\230.\250\001\250\030\260\021\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\360\000\000w\001C\002\360\000\000C\002P\002\360\000\000P\002`\002\360\000\000`\002a\002\360\000\000a\002l\002\360\000\000l\002m\002\360\000\000m\002{\002\360\000\000{\002D\003\360\000\000D\003M\003\360\000\000M\003S\003\360\000\000S\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003m\003\360\000\000m\003s\003\360\000\000s\003u\003\360\000\000u\003\177\003\360\000\000\177\003E\004\360\000\000E\004P\004\360\000\000P\004V\004\360\000\000V\004X\004\360\000\000X\004Y\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\340\010%\240V\250;\260a\330\010\014\210E\220\025\220a\220z\240\021\330\014\034\230A\230V\2401\330\010\017\210y\230\014\240B\240f\250G\260<\270|\3102\310V\320SZ\320Ze\320eq\320qs\320sy\360\000\000z\001A\002\360\000\000A\002B\002\200A\3305J\310!\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\016\300a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002X\002\360\000\000X\002c\002\360\000\000c\002d\002\360\000""\000d\002r\002\360\000\000r\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003J\003\360\000\000J\003K\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2507\260!\200A\3305J\320J^\320^x\360\000\000y\001T\002\360\000\000T\002o\002\360\000\000o\002p\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\270:\300W\310J\320Vb\320bp\320pq\330\014\032\320\032+\2501\250H\260A\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\320v\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002O\002\360\000\000O\002W\002\360\000\000W\002c\002\360\000\000c\002m\002\360\000\000m\002t\002\360\000\000t\002~\002\360\000\000~\002J\003\360\000\000J\003X\003\360\000\000X\003f\003\360\000\000f\003g\003\360\000\000g\003r\003\360\000\000r\003s\003\360\000\000s\003A\004\360\000\000A\004J\004\360\000\000J\004U\004\360\000\000U\004[\004\360\000\000[\004]\004\360\000\000]\004g\004\360\000\000g\004m\004\360\000\000m\004w\004\360\000\000w\004}\004\360\000\000}\004\177\004\360\000\000\177\004@\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210y\230\014\240B\240f\250E\260\031\270.\310\014\320TV\320V\\\320\\a\320aj\320jk\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035""\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T]\320]b\320bh\320hj\320jr\320r{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002K\002\360\000\000K\002S\002\360\000\000S\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L\002\360\000\000L\002T\002\360\000\000T\002`\002\360\000\000`\002l\002\360\000\000l\002m\002\360\000\000m\002x\002\360\000\000x\002y\002\360\000\000y\002G\003\360\000\000G\003P\003\360\000\000P\003W\003\360\000\000W\003]\003\360\000\000]\003_\003\360\000\000_\003`\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|""\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\021\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320V_\320_d\320dj\320jl\320lt\320t}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002M\002\360\000\000M\002U\002\360\000\000U\002a\002\360\000\000a\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270!\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320W`\320`e\320ek\320km\320mu\320u~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002N\002\360\000\000N\002V\002\360\000\000V\002b\002\360\000\000b\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002{\002\360\000\000{\002I\003\360\000\000I\003R\003\360\000\000R\003Y\003\360\000\000Y\003_\003\360\000\000_\003a\003\360""\000\000a\003b\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\2701\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\320v\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002O\002\360\000\000O\002W\002\360\000\000W\002c\002\360\000\000c\002o\002\360\000\000o\002p\002\360\000\000p\002{\002\360\000\000{\002|\002\360\000\000|\002J\003\360\000\000J\003S\003\360\000\000S\003Z\003\360\000\000Z\003`\003\360\000\000`\003b\003\360\000\000b\003c\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Yb\320bg\320gm\320mo\320ow\360\000\000x\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002P\002\360\000\000P\002X""\002\360\000\000X\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002|\002\360\000\000|\002}\002\360\000\000}\002K\003\360\000\000K\003T\003\360\000\000T\003[\003\360\000\000[\003a\003\360\000\000a\003c\003\360\000\000c\003d\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270Q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002Q\002\360\000\000Q\002Y\002\360\000\000Y\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002}\002\360\000\000}\002~\002\360\000\000~\002L\003\360\000\000L\003U\003\360\000\000U\003\\\003\360\000\000\\\003b\003\360\000\000b\003d\003\360\000\000d\003e\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\033\320\033,\250A\250X\260Q""\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L\002\360\000\000L\002T\002\360\000\000T\002`\002\360\000\000`\002l\002\360\000\000l\002m\002\360\000\000m\002x\002\360\000\000x\002y\002\360\000\000y\002G\003\360\000\000G\003P\003\360\000\000P\003\\\003\360\000\000\\\003b\003\360\000\000b\003d\003\360\000\000d\003n\003\360\000\000n\003w\003\360\000\000w\003C\004\360\000\000C\004I\004\360\000\000I\004K\004\360\000\000K\004L\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320kl\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\2701\330\014\030\320\030)\250\021\250(\260!\330\014\031\320\031*\250!\2508\2601\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\320v\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002O\002\360\000\000O\002W\002\360\000\000W\002c\002\360\000\000c\002o\002\360\000\000o\002p\002\360\000\000p\002{\002\360\000\000{\002|\002\360\000\000|\002J\003\360\000\000J\003S\003\360\000\000S\003\\\003\360\000\000\\\003b\003\360\000\000b\003d\003\360\000\000d\003n\003\360\000\000n\003w\003\360\000\000w\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004J\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034""\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210y\230\014\240B\240f\250E\260\031\270,\300l\320RT\320TZ\320Z_\320_h\320hi\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\270Q\330\014\033\320\033,\250A\250X\260Q\330\014\034\320\034-\250Q\250h\260a\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002Q\002\360\000\000Q\002Y\002\360\000\000Y\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002}\002\360\000\000}\002~\002\360\000\000~\002L\003\360\000\000L\003U\003\360\000\000U\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003s\003\360\000\000s\003|\003\360\000\000|\003I\004\360\000\000I\004O\004\360\000\000O\004Q\004\360\000\000Q\004[\004\360\000\000[\004d\004\360\000\000d\004p\004\360\000\000p\004v\004\360\000\000v\004x\004\360\000\000x\004y\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307M\320Mb\320bc\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\016\000\t%\240A\330\010 \240""\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260|\300;\310a\330\014\033\320\033,\250A\250X\260Q\330\014\034\320\034-\250Q\250h\260a\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T]\320]b\320bh\320hj\320jr\320r{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002K\002\360\000\000K\002S\002\360\000\000S\002_\002\360\000\000_\002k\002\360\000\000k\002v\002\360\000\000v\002}\002\360\000\000}\002~\002\360\000\000~\002I\003\360\000\000I\003J\003\360\000\000J\003X\003\360\000\000X\003a\003\360\000\000a\003m\003\360\000\000m\003s\003\360\000\000s\003u\003\360\000\000u\003\177\003\360\000\000\177\003H\004\360\000\000H\004U\004\360\000\000U\004[\004\360\000\000[\004]\004\360\000\000]\004g\004\360\000\000g\004p\004\360\000\000p\004|\004\360\000\000|\004B\005\360\000\000B\005D\005\360\000\000D\005E\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307N\320Ne\320e~\320~\177\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300L\320P\\\320\\]\330\014\025\320\025&\240a\240x\250q\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L""\002\360\000\000L\002T\002\360\000\000T\002`\002\360\000\000`\002l\002\360\000\000l\002x\002\360\000\000x\002D\003\360\000\000D\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004N\004\360\000\000N\004W\004\360\000\000W\004c\004\360\000\000c\004i\004\360\000\000i\004k\004\360\000\000k\004l\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210y\230\014\240B\240f\250E\260\031\270)\300<\310r\320QW\320W\\\320\\e\320ef\200A\3307Q\320QR\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t-\250A\330\010(\320(9\270\030\300\021\300!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047>\270a\270|\3101\330\014\034\320\034-\250Q\250h\260a\330\014\027\220~\240Q\240h\250a\330\021\022\330\020\032\320\0323\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003K\003\360\000\000K\003L\003\360\000\000L\003Z\003\360\000\000Z\003c\003\360\000\000c\003p\003\360\000\000p\003v\003\360\000\000v\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004P\004\360\000\000P\004V\004\360\000\000V\004X\004\360\000\000X\004Y\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010\017\210y\230""\014\240B\240f\250E\260\031\320:J\310,\320VX\320X^\320^c\320cl\320lm\200A\3307Q\320Qe\320ef\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\270\034\300\\\320QR\330\014\032\320\032+\2501\250H\260A\330\014\031\320\031*\250!\2508\2601\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320V_\320_d\320dj\320jl\320lt\320t}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002M\002\360\000\000M\002U\002\360\000\000U\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002E\003\360\000\000E\003F\003\360\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003i\003\360\000\000i\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003F\004\360\000\000F\004O\004\360\000\000O\004Y\004\360\000\000Y\004_\004\360\000\000_\004a\004\360\000\000a\004b\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210y\230\014\240B\240f\250E\260\031\270.\310\014\320TV\320V\\\320\\a\320aj\320jk\200A\3308P\320Ph\320hi\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\270=\310\r\320UV\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\320v\177\360\000\000@\002G\002\360\000\000G\002M""\002\360\000\000M\002O\002\360\000\000O\002W\002\360\000\000W\002c\002\360\000\000c\002p\002\360\000\000p\002}\002\360\000\000}\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\3308U\320UV\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001E\002\360\000\000E\002K\002\360\000\000K\002M\002\360\000\000M\002U\002\360\000\000U\002a\002\360\000\000a\002m\002\360\000\000m\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003I\003\360\000\000I\003W\003\360\000\000W\003`\003\360\000\000`\003g\003\360\000\000g\003m\003\360\000\000m\003o\003\360\000\000o\003p\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\3309O\310q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230""\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\016\300a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L\002\360\000\000L\002T\002\360\000\000T\002`\002\360\000\000`\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003m\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\3309R\320Rk\320kl\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\270>\310\036\320WX\330\014\027\320\027(\250\001\250\030\260\021\330\014\027\320\027(\250\001\250\030\260\021\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\320v\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002O\002\360\000\000O\002W\002\360\000\000W\002c\002\360\000\000c\002q\002\360\000\000q\002\177\002\360\000\000\177\002M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003q\003\360\000\000q\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004K\004\360\000\000K\004T\004\360\000\000T\004\\\004\360\000\000\\\004b\004\360\000\000b\004d\004\360\000\000d\004e\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032""\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270.\310\016\320Vd\320dr\320rs\330\014\027\320\027(\250\001\250\030\260\021\330\014\027\320\027(\250\001\250\030\260\021\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320W`\320`e\320ek\320km\320mu\320u~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002N\002\360\000\000N\002V\002\360\000\000V\002b\002\360\000\000b\002p\002\360\000\000p\002~\002\360\000\000~\002L\003\360\000\000L\003Z\003\360\000\000Z\003h\003\360\000\000h\003i\003\360\000\000i\003t\003\360\000\000t\003u\003\360\000\000u\003C\004\360\000\000C\004L\004\360\000\000L\004T\004\360\000\000T\004Z\004\360\000\000Z\004\\\004\360\000\000\\\004f\004\360\000\000f\004o\004\360\000\000o\004w\004\360\000\000w\004}\004\360\000\000}\004\177\004\360\000\000\177\004@\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\360\000\000l\001A\002\360\000\000A\002Z\002\360\000\000Z\002[\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360""\016\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\016\300n\320Tb\320bp\320pq\330\014\023\320\023$\240A\240X\250Q\330\014\023\320\023$\240A\240X\250Q\330\014\023\320\023$\240A\240X\250Q\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L\002\360\000\000L\002T\002\360\000\000T\002`\002\360\000\000`\002n\002\360\000\000n\002|\002\360\000\000|\002J\003\360\000\000J\003X\003\360\000\000X\003f\003\360\000\000f\003g\003\360\000\000g\003r\003\360\000\000r\003s\003\360\000\000s\003A\004\360\000\000A\004J\004\360\000\000J\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004`\004\360\000\000`\004i\004\360\000\000i\004m\004\360\000\000m\004s\004\360\000\000s\004u\004\360\000\000u\004\177\004\360\000\000\177\004H\005\360\000\000H\005L\005\360\000\000L\005R\005\360\000\000R\005T\005\360\000\000T\005U\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210y\230\014\240B\240f\250E\260\031\270\047\300\034\310R\310v\320UZ\320Zc\320cj\320jv\320vx\320x~\360\000\000\177\001D\002\360\000\000D\002M\002\360\000\000M\002N\002\200A\330:T\320Tm\320mn\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t,\2501\330\010\047\320\0477\260x\270q\300\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047=\270Q\270o\310_\320\\]\330\014\025\320\025&\240a\240x\250q\330\014\025\320\025&\240a\240x\250q\330\021\022\330\020\032\320\0322\260!\2601\260H\270I\300V\3106\320QS\320S[\320[d\320di\320io\320oq\320qy\360\000\000z\001C\002\360\000\000C\002J""\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002f\002\360\000\000f\002u\002\360\000\000u\002D\003\360\000\000D\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004N\004\360\000\000N\004W\004\360\000\000W\004]\004\360\000\000]\004c\004\360\000\000c\004e\004\360\000\000e\004f\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\017\210y\230\014\240B\240f\250E\260\031\270)\300<\310r\320QW\320W\\\320\\e\320ef\200A\330=Z\320Z[\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t1\260\001\330\010,\320,A\300\030\310\021\310!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047B\300!\300<\310q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0327\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320io\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003V\003\360\000\000V\003e\003\360\000\000e\003f\003\360\000\000f\003q\003\360\000\000q\003r\003\360\000\000r\003@\004\360\000\000@\004I\004\360\000\000I\004P\004\360\000\000P\004V\004\360\000\000V\004X\004\360\000\000X\004Y\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_""\320_a\320ah\320hj\320jk\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330?@\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L\002\360\000\000L\002T\002\360\000\000T\002]\002\360\000\000]\002e\002\360\000\000e\002k\002\360\000\000k\002m\002\360\000\000m\002u\002\360\000\000u\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003q\003\360\000\000q\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?@\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T]\320]c\320ci\320ik\320ks\320s|\360\000\000}\001B\002\360\000\000B\002H\002\360\000\000H\002J\002\360\000\000J\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h""\002\360\000\000h\002j\002\360\000\000j\002r\002\360\000\000r\002~\002\360\000\000~\002I\003\360\000\000I\003J\003\360\000\000J\003U\003\360\000\000U\003V\003\360\000\000V\003d\003\360\000\000d\003m\003\360\000\000m\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330?@\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^d\320dj\320jl\320lt\320t}\360\000\000~\001C\002\360\000\000C\002I\002\360\000\000I\002K\002\360\000\000K\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002s\002\360\000\000s\002\177\002\360\000\000\177\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330?V\320VW\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032""\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\270,\300a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320W`\320`e\320ek\320km\320mu\320u~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002N\002\360\000\000N\002V\002\360\000\000V\002_\002\360\000\000_\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002w\002\360\000\000w\002C\003\360\000\000C\003O\003\360\000\000O\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003\177\003\360\000\000\177\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?V\320Vo\320op\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\270\014\300L\320PQ\330\014\025\320\025&\240a\240x\250q\330\014\033\320\033,\250A\250X\260Q\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L\002\360\000\000L\002T\002\360\000\000T\002]\002\360\000\000]\002e\002\360\000\000e\002k\002\360\000\000k\002m\002\360\000\000m\002u\002\360\000\000u\002A\003\360\000\000A\003M\003\360\000\000M\003Y\003\360\000\000Y\003g\003\360\000\000g\003h\003\360""\000\000h\003s\003\360\000\000s\003t\003\360\000\000t\003B\004\360\000\000B\004K\004\360\000\000K\004Q\004\360\000\000Q\004W\004\360\000\000W\004Y\004\360\000\000Y\004c\004\360\000\000c\004l\004\360\000\000l\004x\004\360\000\000x\004~\004\360\000\000~\004@\005\360\000\000@\005A\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210y\230\014\240B\240f\250E\260\027\270\n\300)\310<\320WY\320Y_\320_d\320dk\320ku\320uv\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t-\250A\330\010(\320(9\270\030\300\021\300!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047>\270a\270q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0323\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003S\003\360\000\000S\003T\003\360\000\000T\003_\003\360\000\000_\003`\003\360\000\000`\003n\003\360\000\000n\003t\003\360\000\000t\003~\003\360\000\000~\003D\004\360\000\000D\004F\004\360\000\000F\004G\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A""\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t1\260\001\330\010,\320,A\300\030\310\021\310!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047B\300!\3001\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0327\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320io\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003W\003\360\000\000W\003X\003\360\000\000X\003c\003\360\000\000c\003d\003\360\000\000d\003r\003\360\000\000r\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t3\260!\330\010.\320.E\300X\310Q\310a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047D\300A\300Q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0329\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003e\003\360\000\000e\003f\003\360\000\000f""\003t\003\360\000\000t\003z\003\360\000\000z\003D\004\360\000\000D\004J\004\360\000\000J\004L\004\360\000\000L\004M\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t4\2601\330\010/\320/G\300x\310q\320PQ\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047E\300Q\300a\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\032:\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003g\003\360\000\000g\003u\003\360\000\000u\003{\003\360\000\000{\003E\004\360\000\000E\004K\004\360\000\000K\004M\004\360\000\000M\004N\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t5\260A\330\0100\3200I\310\030\320QR\320RS\340\010\030\230\001\330\010\t\330\021\022\330\020\033""\2307\240%\320\047F\300a\300q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\032;\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003|\003\360\000\000|\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+G\300q\310\001\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006""\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T`\320`a\320al\320lm\320m{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002U\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320Ua\320ab\320bm\320mn\320n|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002V\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q""\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320Vb\320bc\320cn\320no\320o}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002W\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t(\240q\330\010#\240<\250x\260q\270\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0479\270\021\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032.\250a\250q\260\010\270\t\300\026\300v\310R\310x\320Wc\320cd\320do\320op\320p~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002X\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xd\320de\320ep\320pq\320q\177\360\000\000@\002I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002Y\002\330\020""\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t-\250A\330\010(\320(9\270\030\300\021\300!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047>\270a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0323\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320hi\320it\320tu\360\000\000v\001D\002\360\000\000D\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002]\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t.\250Q\330\010)\320);\2708\3001\300A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047?\270q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0324\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320ij\320ju\320uv\360\000\000w\001E\002\360\000\000E\002N\002\360\000\000N\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002^\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t/\250a\330\010*""\320*=\270X\300Q\300a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047@\300\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0325\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t/\250a\330\010*\320*=\270X\300Q\300a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047@\300\001\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0325\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002L\002\360\000\000L\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\330\014\026\320\026\047\240q\250\010\260\001\330\014\032\320\032+\2501\250H\260A\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Ye\320ef\320fq\320qr\360\000\000s\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002""\360\000\000Y\002c\002\360\000\000c\002l\002\360\000\000l\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\014\000\t,\2501\330\010\047\320\0477\260x\270q\300\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047=\270Q\330\014\031\320\031*\250!\2508\2601\330\014\034\320\034-\250Q\250h\260a\330\021\022\330\020\032\320\0322\260!\2601\260H\270I\300V\3106\320QS\320S[\320[g\320gh\320hs\320st\360\000\000u\001C\002\360\000\000C\002L\002\360\000\000L\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002h\002\360\000\000h\002q\002\360\000\000q\002~\002\360\000\000~\002D\003\360\000\000D\003F\003\360\000\000F\003G\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\017\210y\230\014\240B\240h\250m\270<\300r\310\030\320QR\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002R\002\360\000\000R\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v""\002\360\000\000v\002x\002\360\000\000x\002y\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240V\2507\260!\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^c\320ci\320ik\320ks\320s|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002L\002\360\000\000L\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002l\002\360\000\000l\002m\002\360\000\000m\002{\002\360\000\000{\002D\003\360\000\000D\003K\003\360\000\000K\003Q\003\360\000\000Q\003S\003\360\000\000S\003T\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t)\250\001\330\010$\240M\260\030\270\021\270!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047:\270!\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032/\250q\260\001\260\030\270\031\300&\310\006\310b\320PX\320Xa\320af\320fl\320ln\320nv\320v\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002O\002\360\000\000O\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360""\000\000d\002o\002\360\000\000o\002p\002\360\000\000p\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002Q\002\360\000\000Q\002Y\002\360\000\000Y\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003P\003\360\000\000P\003V\003\360\000\000V\003X\003\360\000\000X\003Y\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T""]\320]b\320bh\320hj\320jr\320r{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002K\002\360\000\000K\002S\002\360\000\000S\002\\\002\360\000\000\\\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003L\003\360\000\000L\003M\003\360\000\000M\003[\003\360\000\000[\003d\003\360\000\000d\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003t\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\006\300f\310B\310h\320V_\320_d\320dj\320jl\320lt\320t}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002M\002\360\000\000M\002U\002\360\000\000U\002^\002\360\000\000^\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003N\003\360\000\000N\003O\003\360\000\000O\003]\003\360\000\000]\003f\003\360\000\000f\003m\003\360\000\000m\003s\003\360\000\000s\003u\003\360\000\000u\003v\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330""\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ch\320hn\320np\320px\360\000\000y\001B\002\360\000\000B\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002f\002\360\000\000f\002g\002\360\000\000g\002r\002\360\000\000r\002s\002\360\000\000s\002A\003\360\000\000A\003J\003\360\000\000J\003Q\003\360\000\000Q\003W\003\360\000\000W\003Y\003\360\000\000Y\003Z\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^d\320dj\320jl\320lt\320t}\360\000\000~\001C\002\360\000\000C\002I\002\360\000\000I\002K\002\360\000\000K\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003K\003\360\000\000K\003L\003\360\000\000L\003Z\003\360\000\000Z\003c\003\360\000\000c\003j\003\360\000\000j\003p\003\360\000\000p\003r\003\360\000\000r\003s\003\330\020\023\2208\2303\230a\330\024\032\230+\240W""\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t*\250\021\330\010%\240^\2608\2701\270A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047;\2701\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0320\260\001\260\021\260(\270)\3006\310\026\310r\320QY\320Yb\320bh\320hn\320np\320px\360\000\000y\001B\002\360\000\000B\002G\002\360\000\000G\002M\002\360\000\000M\002O\002\360\000\000O\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002w\002\360\000\000w\002C\003\360\000\000C\003D\003\360\000\000D\003O\003\360\000\000O\003P\003\360\000\000P\003^\003\360\000\000^\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003v\003\360\000\000v\003w\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t+\250!\330\010&\240o\260X\270Q\270a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047<\270A\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\0321\260\021\260!\2608\2709\300F\310&\320PR\320RZ\320Zc\320ci\320io\320oq\320qy\360\000\000z\001C\002\360\000\000C\002H\002\360""\000\000H\002N\002\360\000\000N\002P\002\360\000\000P\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002x\002\360\000\000x\002D\003\360\000\000D\003E\003\360\000\000E\003P\003\360\000\000P\003Q\003\360\000\000Q\003_\003\360\000\000_\003h\003\360\000\000h\003o\003\360\000\000o\003u\003\360\000\000u\003w\003\360\000\000w\003x\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t,\2501\330\010\047\320\0477\260x\270q\300\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047=\270Q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0322\260!\2601\260H\270I\300V\3106\320QS\320S[\320[d\320dj\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002I\002\360\000\000I\002O\002\360\000\000O\002Q\002\360\000\000Q\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002y\002\360\000\000y\002E\003\360\000\000E\003F\003\360\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003x\003\360\000\000x\003y\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330""\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t-\250A\330\010(\320(9\270\030\300\021\300!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047>\270a\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0323\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003R\003\360\000\000R\003S\003\360\000\000S\003a\003\360\000\000a\003g\003\360\000\000g\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003z\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t.\250Q\330\010)\320);\2708\3001\300A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047?\270q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0324\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003h\003\360\000\000h\003r\003\360\000\000r""\003x\003\360\000\000x\003z\003\360\000\000z\003{\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t/\250a\330\010*\320*=\270X\300Q\300a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047@\300\001\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0325\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003T\003\360\000\000T\003U\003\360\000\000U\003c\003\360\000\000c\003i\003\360\000\000i\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003|\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t0\250q\330\010+\320+?\270x\300q\310\001\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047A\300\021\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0326\260a\260q\270""\010\300\t\310\026\310v\320UW\320W_\320_h\320hn\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002}\002\360\000\000}\002I\003\360\000\000I\003J\003\360\000\000J\003U\003\360\000\000U\003V\003\360\000\000V\003d\003\360\000\000d\003j\003\360\000\000j\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 @\300\t\310\034\320U^\320^`\320`g\320gi\320ij\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t1\260\001\330\010,\320,A\300\030\310\021\310!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047B\300!\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0327\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320io\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003k\003\360\000\000k\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010\017\210x\220|\2402\240V\2506""\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t2\260\021\330\010-\320-C\3008\3101\310A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047C\3001\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0328\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003L\003\360\000\000L\003W\003\360\000\000W\003X\003\360\000\000X\003f\003\360\000\000f\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003~\003\360\000\000~\003\177\003\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t3\260!\330\010.\320.E\300X\310Q\310a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047D\300A\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\0329\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000""\000x\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003Y\003\360\000\000Y\003g\003\360\000\000g\003m\003\360\000\000m\003w\003\360\000\000w\003}\003\360\000\000}\003\177\003\360\000\000\177\003@\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t4\2601\330\010/\320/G\300x\310q\320PQ\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047E\300Q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\032:\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t5\260A\330\0100""\3200I\310\030\320QR\320RS\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047F\300a\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\032;\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003Z\003\360\000\000Z\003[\003\360\000\000[\003i\003\360\000\000i\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004B\004\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t6\260Q\330\0101\3201K\3108\320ST\320TU\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\047G\300q\330\014\031\230\036\240q\250\010\260\001\330\021\022\330\020\032\320\032<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320en\320nt\320tz\320z|\360\000\000}\001E\002\360\000\000E\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003[\003\360\000\000[\003\\\003\360\000\000\\\003j\003\360\000\000j\003p\003\360\000\000p\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004C\004\330\020\023\2208\2303\230a\330\024\032\230+\240W""\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\020\000\t%\240A\330\010 \240\t\250\030\260\021\260!\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\240\177\260a\330\014\030\320\030)\250\021\250(\260!\330\014\030\320\030)\250\021\250(\260!\330\014\027\320\027(\250\001\250\030\260\021\330\014\031\320\031*\250!\2508\2601\330\021\022\330\020\032\320\032+\2501\250A\250X\260Y\270f\300F\310\"\310H\320T]\320]c\320ci\320ik\320ks\320s|\360\000\000}\001B\002\360\000\000B\002H\002\360\000\000H\002J\002\360\000\000J\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h\002\360\000\000h\002j\002\360\000\000j\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002J\003\360\000\000J\003K\003\360\000\000K\003Y\003\360\000\000Y\003b\003\360\000\000b\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003}\003\360\000\000}\003F\004\360\000\000F\004O\004\360\000\000O\004U\004\360\000\000U\004W\004\360\000\000W\004a\004\360\000\000a\004j\004\360\000\000j\004r\004\360\000\000r\004x\004\360\000\000x\004z\004\360\000\000z\004D\005\360\000\000D\005M\005\360\000\000M\005W\005\360\000\000W\005]\005\360\000\000]\005_\005\360\000\000_\005`\005\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010\017\210y\230\014\240B\240f\250F\260%\260y\300\014\310L\320XZ\320Z`\320`f\320fk\320kt\360\000\000u\001A\002\360\000\000A\002M\002\360\000\000M\002O\002\360\000\000O\002U""\002\360\000\000U\002[\002\360\000\000[\002`\002\360\000\000`\002i\002\360\000\000i\002t\002\360\000\000t\002@\003\360\000\000@\003B\003\360\000\000B\003H\003\360\000\000H\003N\003\360\000\000N\003S\003\360\000\000S\003\\\003\360\000\000\\\003]\003\200A\340\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270v\300V\3102\310X\320U^\320^f\320fl\320ln\320nv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002O\002\360\000\000O\002P\002\360\000\000P\002^\002\360\000\000^\002g\002\360\000\000g\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002w\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240V\250:\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270w\300f\310B\310h\320V_\320_f\320fl\320ln\320nv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002O\002\360\000\000O\002P\002\360\000\000P\002^\002\360\000\000^\002g\002\360\000\000g\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002w\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037""\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t\047\240a\330\010\"\240+\250X\260Q\260a\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0478\270\001\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032-\250Q\250a\250x\260y\300\007\300v\310R\310x\320W`\320`g\320gm\320mo\320ow\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\360\n\000\t&\240Q\330\010!\240\032\2508\2601\260A\340\010\030\230\001\330\010\t\330\021\022\330\020\033\2307\240%\320\0477\260q\330\014\026\320\026\047\240q\250\010\260\001\330\021\022\330\020\032\320\032,\250A\250Q\250h\260i\270w\300f\310B\310h\320V_\320_g\320gm\320mo\320ow\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\020\023\2208\2303\230a\330\024\032\230+\240W\250A\330\024\032\230+\240Q\330\024)\250\021\340\021\022\330\020\034\230A\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010\017\210x\220|\2402\240W\250J\260a\200A\340\r\016\330\014\027\220\177\240a\330\010\013""\2104\210q\330\014\022\220,\230a\230q\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\035\230W\240A\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\n\000\t\017\210d\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330""\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\t\330\014\027\320\027\047\240q\250\001\340\014 \240\001\240\021\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\035\230W\240E\250\021\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250\021\250$\250f\260A\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)/\250q\330)1\260\024\260Q\330\r\037\230w\240e\2501\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250\021\250!\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)0\260\004\260A\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\035\230W\240A\330\020\024\220J""\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r\037\230w\240a\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\t\330\014\020\320\020\"\240\"\240H\250A\330\014\020\320\020 \240\001\360\006\000\r\021\220\014\230I\240Q\330\020\025\220[\240\001\240\033\250A\250[\270\001\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\021\220\014\230I\240Q\330\020\025\220\\\240\021\240+\250Q\320.@\300\001\330\020\025\220U\230!\230>\250\021\250.\270\001\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023%\240W\250A\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\000\021\220\021\330\004\005\360\006\000\n\013\330\010\023\220?\240!\330\004\007\200t\2101\330\010\013\2101\360\006\000\r\016\330\010\016\210l\230!\2301\330\004\005\330\010\013\2101\330\021\022\330\020\036\230l\250!\330\014\035\230Q\230o\250Q\330\014\036\230a\340\r\016\330\014\031\230\021\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\022\220\"\220G\2307\240$\240g\250Y""\260j\300\006\300a\330\023\026\220d\320\0322\260!\2607\270!\330\010\014\210G\2209\230A\330\014\021\220\033\230A\230V\2401\240K\250q\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; #endif PyObject *data = NULL; #define __Pyx_DecompressString_UNUSED @@ -459870,10 +540082,10 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 #endif PyObject **stringtab = __pyx_mstate->__pyx_string_tab; Py_ssize_t pos = 0; - for (int i = 0; i < 2603; i++) { + for (int i = 0; i < 3026; i++) { Py_ssize_t bytes_length = str_length_index[i].length; PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL); - if (likely(string) && i >= 136) PyUnicode_InternInPlace(&string); + if (likely(string) && i >= 138) PyUnicode_InternInPlace(&string); if (unlikely(!string)) { Py_XDECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) @@ -459881,8 +540093,8 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 stringtab[i] = string; pos += bytes_length; } - for (int i = 2603; i < 2882; i++) { - Py_ssize_t bytes_length = bytes_length_index[i-2603].length; + for (int i = 3026; i < 3358; i++) { + Py_ssize_t bytes_length = bytes_length_index[i-3026].length; PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length); stringtab[i] = string; pos += bytes_length; @@ -459892,15 +540104,15 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 } } Py_XDECREF(data); - for (Py_ssize_t i = 0; i < 2882; i++) { + for (Py_ssize_t i = 0; i < 3358; i++) { if (unlikely(PyObject_Hash(stringtab[i]) == -1)) { __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { - PyObject **table = stringtab + 2603; - for (Py_ssize_t i=0; i<279; ++i) { + PyObject **table = stringtab + 3026; + for (Py_ssize_t i=0; i<332; ++i) { #if PY_VERSION_HEX >= 0x030F0000 PyUnstable_SetImmortal(table[i]); #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING @@ -459923,27 +540135,27 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 } { PyObject **numbertab = __pyx_mstate->__pyx_number_tab; - double const c_constants[] = {0.2,0.3,0.5,3.0,0.02,-4e37,50.0}; - for (int i = 0; i < 7; i++) { + double const c_constants[] = {0.1,0.2,0.3,0.5,1.0,3.0,5.0,6.0,0.02,0.85,-4e37,50.0,252.0}; + for (int i = 0; i < 13; i++) { numbertab[i] = PyFloat_FromDouble(c_constants[i]); if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error) } } { - PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 7; - int8_t const cint_constants_1[] = {0,-1,1,2,3,4,8,12,13,14,16,32,64}; + PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 13; + int8_t const cint_constants_1[] = {0,-1,1,2,3,4,8,12,13,16,32,64}; int16_t const cint_constants_2[] = {128,256,512,1024,2048,4096,8192,16384}; int32_t const cint_constants_4[] = {32768L,16777216L,33554432L,67108864L,134217728L,238750788L,268435456L,536870912L,1073741824L}; int64_t const cint_constants_8[] = {-2147483648LL}; - for (int i = 0; i < 31; i++) { - numbertab[i] = PyLong_FromLongLong((i < 13 ? cint_constants_1[i - 0] : (i < 21 ? cint_constants_2[i - 13] : (i < 30 ? cint_constants_4[i - 21] : cint_constants_8[i - 30])))); + for (int i = 0; i < 30; i++) { + numbertab[i] = PyLong_FromLongLong((i < 12 ? cint_constants_1[i - 0] : (i < 20 ? cint_constants_2[i - 12] : (i < 29 ? cint_constants_4[i - 20] : cint_constants_8[i - 29])))); if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { PyObject **table = __pyx_mstate->__pyx_number_tab; - for (Py_ssize_t i=0; i<38; ++i) { + for (Py_ssize_t i=0; i<43; ++i) { #if PY_VERSION_HEX >= 0x030F0000 PyUnstable_SetImmortal(table[i]); #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING @@ -459977,7 +540189,7 @@ typedef struct { unsigned int num_kwonly_args : 1; unsigned int nlocals : 5; unsigned int flags : 10; - unsigned int first_line : 15; + unsigned int first_line : 16; } __Pyx_PyCode_New_function_description; #ifdef __cplusplus } /* anonymous namespace */ @@ -460057,2259 +540269,2624 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 189}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 191}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_type}; __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_getitem, __pyx_mstate->__pyx_kp_b_iso88591_A_t81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 238}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 253}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name}; __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_func_unst_id, __pyx_mstate->__pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 247}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 262}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_period, __pyx_mstate->__pyx_n_u_ret_code, __pyx_mstate->__pyx_n_u_id, __pyx_mstate->__pyx_n_u_c_period, __pyx_mstate->__pyx_n_u_unst_id}; __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_unstable_period, __pyx_mstate->__pyx_kp_b_iso88591_aq_xs_q_q_q_A_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 261}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 276}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_period, __pyx_mstate->__pyx_n_u_id, __pyx_mstate->__pyx_n_u_unst_id}; __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_get_unstable_period, __pyx_mstate->__pyx_kp_b_iso88591_aq_xs_q_a_Qa_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 273}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 288}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_ret_code, __pyx_mstate->__pyx_n_u_c_value}; __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_compatibility, __pyx_mstate->__pyx_kp_b_iso88591_q_q_aq_Q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 281}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 296}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_key, __pyx_mstate->__pyx_n_u_ret_code, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_c_key, __pyx_mstate->__pyx_n_u_k}; + __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_get_runtime_info, __pyx_mstate->__pyx_kp_b_iso88591_Q_s_a_AS_Q_1_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 307}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_value}; - __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_get_compatibility, __pyx_mstate->__pyx_kp_b_iso88591_a_1_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_get_compatibility, __pyx_mstate->__pyx_kp_b_iso88591_a_1_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 300}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 326}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_settingtype, __pyx_mstate->__pyx_n_u_rangetype, __pyx_mstate->__pyx_n_u_avgperiod, __pyx_mstate->__pyx_n_u_factor, __pyx_mstate->__pyx_n_u_ret_code}; - __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_candle_settings, __pyx_mstate->__pyx_kp_b_iso88591_q_q_ST_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_candle_settings, __pyx_mstate->__pyx_kp_b_iso88591_q_q_ST_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 307}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 333}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_settingtype, __pyx_mstate->__pyx_n_u_ret_code}; - __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_restore_candle_default_setti, __pyx_mstate->__pyx_kp_b_iso88591_q_1_Q_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_restore_candle_default_setti, __pyx_mstate->__pyx_kp_b_iso88591_q_1_Q_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 144}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AC, __pyx_mstate->__pyx_kp_b_iso88591_UUmmn_aq_Qa_6_wc_A_axz_XZs_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AC, __pyx_mstate->__pyx_kp_b_iso88591_UUmmn_aq_Qa_6_wc_A_axz_XZs_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 188}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACCBANDS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_TARRSSVVW, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACCBANDS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_TARRSSVVW, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 237}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACOS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACOS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 276}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R_aa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R_aa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 318}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADD, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADD, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 359}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADOSC, __pyx_mstate->__pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_wc_A_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADOSC, __pyx_mstate->__pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_wc_A_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 404}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_wc_A_axz_XZs_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_wc_A_axz_XZs_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 446}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADX, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADX, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 489}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADXR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADXR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 532}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AO, __pyx_mstate->__pyx_kp_b_iso88591_UUV_aq_Qa_6_wc_A_axz_XZs_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_sigma, __pyx_mstate->__pyx_n_u_offset, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ALMA, __pyx_mstate->__pyx_kp_b_iso88591_PPQ_aq_T_q_wc_A_axz_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 575}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AO, __pyx_mstate->__pyx_kp_b_iso88591_UUV_aq_Qa_6_wc_A_axz_XZs_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 618}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_APO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_axz_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_APO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_axz_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 618}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 661}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outaroondown, __pyx_mstate->__pyx_n_u_outaroonup}; - __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROON, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_6_wc_D_9_Q_axz_XZs_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROON, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_6_wc_D_9_Q_axz_XZs_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 663}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 706}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROONOSC, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_axz_XZs_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROONOSC, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_axz_XZs_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 748}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_limitmove, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ASI, __pyx_mstate->__pyx_kp_b_iso88591_uv_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 705}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 792}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ASIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ASIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 744}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 831}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 783}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 870}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATR, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[38] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATR, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[38])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 826}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 913}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGDEV, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_6b, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[39] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGDEV, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_6b, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[39])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 867}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 954}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZt8S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[40] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZt8S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[40])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 909}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 996}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[38] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BBANDS, __pyx_mstate->__pyx_kp_b_iso88591_VVmmn4_aq_T_q_wc_D_9_TARRSSVVW, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[38])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[41] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BBANDS, __pyx_mstate->__pyx_kp_b_iso88591_VVmmn4_aq_T_q_wc_D_9_TARRSSVVW, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[41])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1046}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[42] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BBW, __pyx_mstate->__pyx_kp_b_iso88591_SSjjk_aq_T_q_wc_A_axz_Q_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[42])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 959}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1090}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[39] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BETA, __pyx_mstate->__pyx_kp_b_iso88591_BC_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[39])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[43] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BETA, __pyx_mstate->__pyx_kp_b_iso88591_BC_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[43])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1002}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1133}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[40] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZt8S_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[40])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[44] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZt8S_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[44])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1044}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1175}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[41] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CCI, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[41])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[45] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CCI, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[45])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1087}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1218}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[42] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[42])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[46] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[46])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1129}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1260}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[43] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[43])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[47] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[47])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1171}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1302}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[44] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3INSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[44])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[48] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3INSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[48])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1213}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1344}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[45] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[45])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[49] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[49])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1255}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1386}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[46] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[46])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[50] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[50])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1297}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1428}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[47] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[47])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[51] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[51])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1339}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1470}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[48] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[48])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[52] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[52])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1381}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1512}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[49] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate->__pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_wc_Qc_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[49])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[53] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate->__pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_wc_Qc_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[53])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1425}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1556}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[50] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[50])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[54] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[54])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1467}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1598}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[51] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBELTHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[51])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[55] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBELTHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[55])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1509}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1640}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[52] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[52])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[56] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[56])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1551}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1682}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[53] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[53])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[57] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[57])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1593}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1724}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[54] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[54])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[58] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[58])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1635}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1766}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[55] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[55])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[59] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[59])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1677}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1808}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[56] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate->__pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_wc_Qc_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[56])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[60] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate->__pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_wc_Qc_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[60])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1721}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1852}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[57] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[57])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[61] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[61])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1763}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1894}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[58] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[58])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[62] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[62])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1805}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1936}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[59] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[59])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[63] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[63])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1847}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1978}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[60] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLENGULFING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[60])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[64] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLENGULFING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[64])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1889}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2020}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[61] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_wc_Qc_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[61])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[65] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_wc_Qc_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[65])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1933}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2064}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[62] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_wc_Qc_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[62])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[66] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_wc_Qc_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[66])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1977}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2108}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[63] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[63])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[67] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[67])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2019}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2150}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[64] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[64])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[68] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[68])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2061}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2192}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[65] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[65])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[69] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[69])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2103}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2234}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[66] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[66])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[70] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[70])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2145}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2276}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[67] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[67])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[71] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[71])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2187}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2318}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[68] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[68])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[72] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[72])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2229}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2360}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[69] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[69])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[73] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[73])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2271}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2402}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[70] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[70])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[74] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[74])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2313}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2444}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[71] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[71])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[75] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[75])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2355}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2486}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[72] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[72])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[76] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[76])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2397}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2528}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[73] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[73])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[77] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[77])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2439}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2570}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[74] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[74])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[78] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[78])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2481}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2612}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[75] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[75])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[79] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[79])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2523}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2654}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[76] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[76])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[80] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[80])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2565}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2696}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[77] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[77])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[81] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[81])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2607}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2738}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[78] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[78])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[82] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[82])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2649}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2780}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[79] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[79])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[83] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[83])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2691}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2822}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[80] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[80])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[84] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[84])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2733}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2864}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[81] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[81])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[85] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[85])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2775}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2906}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[82] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[82])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[86] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[86])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2817}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2948}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[83] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_13, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[83])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[87] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_13, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[87])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2861}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2992}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[84] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_wc_Qc_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[84])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[88] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_wc_Qc_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[88])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2905}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3036}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[85] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_wc_Qc_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[85])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[89] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_wc_Qc_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[89])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2949}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3080}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[86] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLONNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[86])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[90] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLONNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[90])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2991}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3122}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[87] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLPIERCING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[87])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[91] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLPIERCING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[91])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3033}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3164}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[88] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[88])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[92] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[92])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3075}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3206}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[89] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[89])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[93] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[93])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3117}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3248}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[90] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[90])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[94] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[94])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3159}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3290}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[91] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[91])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[95] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[95])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3201}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3332}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[92] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHORTLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[92])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[96] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHORTLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[96])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3243}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3374}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[93] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[93])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[97] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[97])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3285}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3416}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[94] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[94])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[98] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[98])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3327}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3458}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[95] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[95])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[99] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[99])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3369}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3500}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[96] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTAKURI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[96])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[100] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTAKURI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[100])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3411}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3542}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[97] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[97])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[101] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[101])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3453}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3584}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[98] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTHRUSTING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[98])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[102] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTHRUSTING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[102])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3495}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3626}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[99] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTRISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[99])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[103] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTRISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[103])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3537}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3668}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[100] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[100])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[104] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[104])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3579}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3710}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[101] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[101])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[105] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[105])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3621}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3752}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[102] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[102])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[106] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[106])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3663}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3794}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[103] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CEIL, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[103])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[107] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CEIL, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[107])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3833}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[108] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CG, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[108])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3874}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[109] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CHOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[109])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3917}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[110] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CHOPTR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[110])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3702}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3960}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_stopperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outhighstop, __pyx_mstate->__pyx_n_u_outlowstop}; + __pyx_mstate_global->__pyx_codeobj_tab[111] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CKSP, __pyx_mstate->__pyx_kp_b_iso88591_s_t_L_L_M_aq_Qa_Kq_6_a_wc_D_9_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[111])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4008}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[104] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMF, __pyx_mstate->__pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[104])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[112] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMF, __pyx_mstate->__pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[112])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3746}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4052}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[105] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMO, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[105])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[113] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMO, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[113])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3787}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4093}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[106] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMOU, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[106])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[114] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMOU, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[114])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3828}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4134}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_wmaperiod, __pyx_mstate->__pyx_n_u_roc1period, __pyx_mstate->__pyx_n_u_roc2period, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[107] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COPPOCK, __pyx_mstate->__pyx_kp_b_iso88591_WWX_aq_T_q_wc_A_axz_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[107])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[115] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COPPOCK, __pyx_mstate->__pyx_kp_b_iso88591_WWX_aq_T_q_wc_A_axz_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[115])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3871}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4177}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[108] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CORREL, __pyx_mstate->__pyx_kp_b_iso88591_DE_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[108])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[116] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CORREL, __pyx_mstate->__pyx_kp_b_iso88591_DE_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[116])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3914}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4220}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[109] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[109])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[117] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[117])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3953}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4259}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[110] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COSH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[110])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[118] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COSH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[118])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4298}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_streakperiod, __pyx_mstate->__pyx_n_u_rankperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[119] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CRSI, __pyx_mstate->__pyx_kp_b_iso88591_WWX_aq_T_q_wc_A_axz_Q_U_7_A_A_w_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[119])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3992}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4341}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[120] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CTI, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[120])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4382}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[111] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CUMSUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_6a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[111])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[121] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CUMSUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_6a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[121])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4031}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4421}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_rocperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[112] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CVI, __pyx_mstate->__pyx_kp_b_iso88591_VVW_aq_Qa_6_wc_A_axz_XZs_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[112])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[122] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CVI, __pyx_mstate->__pyx_kp_b_iso88591_VVW_aq_Qa_6_wc_A_axz_XZs_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[122])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4074}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4464}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[113] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[113])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[123] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[123])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4115}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4505}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[114] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DIV, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[114])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[124] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DIV, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[124])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4156}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4546}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[115] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DONCHIAN, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_wc_D_9_TARRSSVVW_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[115])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[125] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DONCHIAN, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_wc_D_9_TARRSSVVW_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[125])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4594}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_firstperiod, __pyx_mstate->__pyx_n_u_secondperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[126] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DOSC, __pyx_mstate->__pyx_kp_b_iso88591_VVppq_aq_T_q_wc_A_axz_Q_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[126])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4204}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4638}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[116] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DPO, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[116])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[127] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DPO, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[127])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4245}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4679}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[117] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DX, __pyx_mstate->__pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_wc_A_axz_XZs_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[117])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[128] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DX, __pyx_mstate->__pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_wc_A_axz_XZs_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[128])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4288}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4722}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[118] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EFI, __pyx_mstate->__pyx_kp_b_iso88591_BC_Kq_7_wc_A_axz_hj_a_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[118])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[129] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EFI, __pyx_mstate->__pyx_kp_b_iso88591_BC_Kq_7_wc_A_axz_hj_a_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[129])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4330}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4764}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[119] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[119])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[130] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[130])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4805}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_volumedivisor, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[131] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EMV, __pyx_mstate->__pyx_kp_b_iso88591_sst_aq_Qa_6_a_wc_A_axz_XZs_R_bb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[131])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4371}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4849}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[120] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ER, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[120])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[132] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ER, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[132])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4412}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4890}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outbullpower, __pyx_mstate->__pyx_n_u_outbearpower}; - __pyx_mstate_global->__pyx_codeobj_tab[121] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ERI, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_D_9_Q_axz_XZs, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[121])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[133] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ERI, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_D_9_Q_axz_XZs, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[133])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4458}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4936}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[122] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EXP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[122])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[134] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EXP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[134])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4975}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfisher, __pyx_mstate->__pyx_n_u_outtrigger}; + __pyx_mstate_global->__pyx_codeobj_tab[135] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FISHER, __pyx_mstate->__pyx_kp_b_iso88591_AB_aq_Qa_6_wc_D_9_Q_axz_XZs_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[135])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4497}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5020}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[123] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FLOOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[123])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[136] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FLOOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[136])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4536}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5059}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[124] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FOSC, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[124])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[137] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FOSC, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[137])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4577}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5100}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_leftbars, __pyx_mstate->__pyx_n_u_rightbars, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outswinghigh, __pyx_mstate->__pyx_n_u_outswinglow}; - __pyx_mstate_global->__pyx_codeobj_tab[125] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FRACTAL, __pyx_mstate->__pyx_kp_b_iso88591_BXXY_aq_Qa_6_wc_Qc_1Cq_axz_XZs, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[125])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[138] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FRACTAL, __pyx_mstate->__pyx_kp_b_iso88591_BXXY_aq_Qa_6_wc_Qc_1Cq_axz_XZs, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[138])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5146}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[139] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FRAMA, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_6_wc_A_axz_XZs_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[139])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4623}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5188}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outhaopen, __pyx_mstate->__pyx_n_u_outhahigh, __pyx_mstate->__pyx_n_u_outhalow, __pyx_mstate->__pyx_n_u_outhaclose}; - __pyx_mstate_global->__pyx_codeobj_tab[126] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HA, __pyx_mstate->__pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_wc_D_9_TARRS, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[126])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[140] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HA, __pyx_mstate->__pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_wc_D_9_TARRS, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[140])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4674}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5239}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[127] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[127])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[141] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[141])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4715}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5280}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[128] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPERIOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[128])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[142] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPERIOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[142])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4754}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5319}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[129] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPHASE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[129])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[143] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPHASE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[143])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4793}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5358}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinphase, __pyx_mstate->__pyx_n_u_outquadrature}; - __pyx_mstate_global->__pyx_codeobj_tab[130] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_PHASOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[130])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[144] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_PHASOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[144])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4835}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5400}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsine, __pyx_mstate->__pyx_n_u_outleadsine}; - __pyx_mstate_global->__pyx_codeobj_tab[131] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_SINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[131])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[145] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_SINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[145])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4877}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5442}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[132] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[132])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[146] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[146])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4916}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5481}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[133] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDMODE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[133])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[147] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDMODE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[147])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5520}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[148] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_IBS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[148])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5561}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_tenkanperiod, __pyx_mstate->__pyx_n_u_kijunperiod, __pyx_mstate->__pyx_n_u_senkoubperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outtenkansen, __pyx_mstate->__pyx_n_u_outkijunsen, __pyx_mstate->__pyx_n_u_outsenkouspana, __pyx_mstate->__pyx_n_u_outsenkouspanb}; + __pyx_mstate_global->__pyx_codeobj_tab[149] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ICHIMOKU, __pyx_mstate->__pyx_kp_b_iso88591_C_vvw6_aq_Qa_6_wc_D_9_TARRSSVVZ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[149])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4955}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5614}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[134] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_IMI, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Kq_6_wc_A_axz_XZuA_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[134])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[150] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_IMI, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Kq_6_wc_A_axz_XZuA_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[150])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4997}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5656}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[135] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KAMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[135])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[151] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KAMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[151])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5038}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5697}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_atrperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[136] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KC, __pyx_mstate->__pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_wc_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[136])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[152] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KC, __pyx_mstate->__pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_wc_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[152])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5089}; + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5748}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outk, __pyx_mstate->__pyx_n_u_outd, __pyx_mstate->__pyx_n_u_outj}; - __pyx_mstate_global->__pyx_codeobj_tab[137] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KDJ, __pyx_mstate->__pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_wc, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[137])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[153] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KDJ, __pyx_mstate->__pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_wc, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[153])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5801}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_roc1period, __pyx_mstate->__pyx_n_u_roc2period, __pyx_mstate->__pyx_n_u_roc3period, __pyx_mstate->__pyx_n_u_roc4period, __pyx_mstate->__pyx_n_u_sma1period, __pyx_mstate->__pyx_n_u_sma2period, __pyx_mstate->__pyx_n_u_sma3period, __pyx_mstate->__pyx_n_u_sma4period, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outkst, __pyx_mstate->__pyx_n_u_outkstsignal}; + __pyx_mstate_global->__pyx_codeobj_tab[154] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KST, __pyx_mstate->__pyx_kp_b_iso88591_TTl_m_E_E_u_u_M_M_e_e_f_aq_T_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[154])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {12, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5853}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_roc1period, __pyx_mstate->__pyx_n_u_roc2period, __pyx_mstate->__pyx_n_u_roc3period, __pyx_mstate->__pyx_n_u_roc4period, __pyx_mstate->__pyx_n_u_ma1period, __pyx_mstate->__pyx_n_u_ma2period, __pyx_mstate->__pyx_n_u_ma3period, __pyx_mstate->__pyx_n_u_ma4period, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_rocmatype, __pyx_mstate->__pyx_n_u_signalmatype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outkst, __pyx_mstate->__pyx_n_u_outkstsignal}; + __pyx_mstate_global->__pyx_codeobj_tab[155] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KSTEXT, __pyx_mstate->__pyx_kp_b_iso88591_WWo_p_H_H_____v_v_M_M_d_d_P_P_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[155])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5907}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[156] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KURTOSIS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[156])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5142}; + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5948}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outkvo, __pyx_mstate->__pyx_n_u_outkvosignal}; + __pyx_mstate_global->__pyx_codeobj_tab[157] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KVO, __pyx_mstate->__pyx_kp_b_iso88591_x_P_P_h_h_i_aq_Qa_Kq_6_gQ_wc_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[157])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5997}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[138] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[138])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[158] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[158])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5183}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6038}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[139] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[139])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[159] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[159])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5224}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6079}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[140] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate->__pyx_kp_b_iso88591_45_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[140])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[160] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate->__pyx_kp_b_iso88591_45_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[160])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5265}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6120}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[141] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[141])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[161] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[161])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5306}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6161}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[142] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1H_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[142])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[162] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1H_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[162])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5345}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6200}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[143] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LOG10, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[143])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[163] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LOG10, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[163])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5384}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6239}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[144] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MA, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[144])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[164] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MA, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[164])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5426}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6281}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[145] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACD, __pyx_mstate->__pyx_kp_b_iso88591_UUV2_aq_T_q_wc_D_9_TARRSSVVW_ax, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[145])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[165] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACD, __pyx_mstate->__pyx_kp_b_iso88591_UUV2_aq_T_q_wc_D_9_TARRSSVVW_ax, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[165])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5475}; + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6330}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_fastmatype, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_slowmatype, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_signalmatype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[146] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDEXT, __pyx_mstate->__pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_wc_D_9_TARR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[146])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[166] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDEXT, __pyx_mstate->__pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_wc_D_9_TARR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[166])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5527}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6382}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[147] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDFIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_D_9_TARRSSVVW_axz_Q_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[147])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[167] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDFIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_D_9_TARRSSVVW_axz_Q_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[167])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5574}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6429}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastlimit, __pyx_mstate->__pyx_n_u_slowlimit, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmama, __pyx_mstate->__pyx_n_u_outfama}; - __pyx_mstate_global->__pyx_codeobj_tab[148] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAMA, __pyx_mstate->__pyx_kp_b_iso88591_a_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[148])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[168] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAMA, __pyx_mstate->__pyx_kp_b_iso88591_a_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[168])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5619}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6474}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[149] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MARKETFI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_a_wc_A_axz_XZs_R_bbc_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[149])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[169] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MARKETFI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_a_wc_A_axz_XZs_R_bbc_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[169])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5660}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6515}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[150] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MASSI, __pyx_mstate->__pyx_kp_b_iso88591_XXY_aq_Qa_6_wc_A_axz_XZs_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[150])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[170] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MASSI, __pyx_mstate->__pyx_kp_b_iso88591_XXY_aq_Qa_6_wc_A_axz_XZs_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[170])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5703}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6558}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_periods, __pyx_mstate->__pyx_n_u_minperiod, __pyx_mstate->__pyx_n_u_maxperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[151] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAVP, __pyx_mstate->__pyx_kp_b_iso88591_CZZqqr_aq_k_6_wc_A_axz_XZwa_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[151])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[171] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAVP, __pyx_mstate->__pyx_kp_b_iso88591_CZZqqr_aq_k_6_wc_A_axz_XZwa_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[171])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5748}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6603}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[152] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[152])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[172] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[172])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5789}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6644}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outinteger_data, __pyx_mstate->__pyx_n_u_i}; - __pyx_mstate_global->__pyx_codeobj_tab[153] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[153])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[173] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[173])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6689}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[174] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MCGD, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[174])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6730}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[175] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MEDIAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_6b, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[175])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5834}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6771}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[154] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MEDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_wc_A_axz_XZs_U_7_A_A_we_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[154])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[176] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MEDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_wc_A_axz_XZs_U_7_A_A_we_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[176])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5874}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6811}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[155] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MFI, __pyx_mstate->__pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[155])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[177] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MFI, __pyx_mstate->__pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[177])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5918}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6855}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[156] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPOINT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[156])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[178] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPOINT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[178])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5959}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6896}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[157] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_axz_XZs_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[157])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[179] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_axz_XZs_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[179])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6001}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6938}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[158] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[158])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[180] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[180])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6042}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6979}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outinteger_data, __pyx_mstate->__pyx_n_u_i}; - __pyx_mstate_global->__pyx_codeobj_tab[159] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MININDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[159])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[181] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MININDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[181])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6087}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7024}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmin, __pyx_mstate->__pyx_n_u_outmax}; - __pyx_mstate_global->__pyx_codeobj_tab[160] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[160])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[182] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[182])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6131}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7068}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outminidx, __pyx_mstate->__pyx_n_u_outmaxidx, __pyx_mstate->__pyx_n_u_outminidx_data, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outmaxidx_data}; - __pyx_mstate_global->__pyx_codeobj_tab[161] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_Qc_1Cq_axz_Q_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[161])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[183] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_Qc_1Cq_axz_Q_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[183])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6183}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7120}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[162] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[162])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[184] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[184])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6226}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7163}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[163] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_axz_XZs_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[163])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[185] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_axz_XZs_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[185])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6268}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7205}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[164] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[164])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[186] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[186])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6309}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7246}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[165] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MULT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[165])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[187] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MULT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[187])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6350}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7287}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[166] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_NATR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[166])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[188] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_NATR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[188])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6393}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7330}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[167] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_NVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_wc_A_axz_hj_a_U_7_A_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[167])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[189] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_NVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_wc_A_axz_hj_a_U_7_A_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[189])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6433}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7370}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[168] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_OBV, __pyx_mstate->__pyx_kp_b_iso88591_aq_6_wc_A_axz_XZvQ_U_7_A_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[168])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[190] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_OBV, __pyx_mstate->__pyx_kp_b_iso88591_aq_6_wc_A_axz_XZvQ_U_7_A_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[190])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6474}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7411}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[191] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PERCENTB, __pyx_mstate->__pyx_kp_b_iso88591_AAXXoop_aq_T_q_wc_A_axz_Q_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[191])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7455}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_percentile, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[169] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PERCENTILE, __pyx_mstate->__pyx_kp_b_iso88591_C1_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[169])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[192] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PERCENTILE, __pyx_mstate->__pyx_kp_b_iso88591_C1_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[192])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6516}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7497}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[170] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PERCENTRANK, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[170])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[193] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PERCENTRANK, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[193])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6557}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7538}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[171] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[171])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[194] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[194])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6600}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7581}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[172] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_BC_aq_Qa_6_wc_A_axz_XZs_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[172])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[195] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_BC_aq_Qa_6_wc_A_axz_XZs_U_7_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[195])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6642}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7623}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[173] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PPO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_axz_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[173])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[196] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PPO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_axz_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[196])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6685}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7666}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_emaperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[197] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PSO, __pyx_mstate->__pyx_kp_b_iso88591_Zttu_aq_Qa_Kq_6_a_wc_A_axz_XZs, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[197])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7710}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[174] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_wc_A_axz_hj_a_U_7_A_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[174])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[198] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_wc_A_axz_hj_a_U_7_A_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[198])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6725}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7750}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[175] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVO, __pyx_mstate->__pyx_kp_b_iso88591_VVW_V6_wc_A_axz_q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[175])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[199] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVO, __pyx_mstate->__pyx_kp_b_iso88591_VVW_V6_wc_A_axz_q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[199])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6768}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7793}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[176] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_wc_A_axz_hj_a_U_7_A_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[176])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[200] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_wc_A_axz_hj_a_U_7_A_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[200])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6808}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7833}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[177] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_QSTICK, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Kq_6_wc_A_axz_XZuA_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[177])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[201] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_QSTICK, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Kq_6_wc_A_axz_XZuA_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[201])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6850}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7875}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[178] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[178])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[202] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[202])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6891}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7916}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[179] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROC, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[179])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[203] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROC, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[203])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6932}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7957}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[180] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[180])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[204] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[204])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6973}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7998}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[181] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[181])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[205] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[205])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7014}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8039}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[182] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR100, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_7r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[182])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[206] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR100, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_7r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[206])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8080}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_annualization, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[207] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROGERSSATCHELL, __pyx_mstate->__pyx_kp_b_iso88591_A_Y_Y_Z_aq_aq_Qa_Kq_6_uA_wc_A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[207])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7055}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8125}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[183] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RSI, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[183])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[208] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RSI, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[208])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7096}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8166}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_stddevperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[184] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RVI, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[184])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[209] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RVI, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[209])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7138}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8208}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_stddevperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[210] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RVIR, __pyx_mstate->__pyx_kp_b_iso88591_WWX_aq_Qa_6_wc_A_axz_XZs_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[210])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8251}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[185] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RVOL, __pyx_mstate->__pyx_kp_b_iso88591_V6_wc_A_axz_q_U_7_A_A_we_4Ba_1H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[185])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[211] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RVOL, __pyx_mstate->__pyx_kp_b_iso88591_V6_wc_A_axz_q_U_7_A_A_we_4Ba_1H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[211])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7179}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8292}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_acceleration, __pyx_mstate->__pyx_n_u_maximum, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[186] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SAR, __pyx_mstate->__pyx_kp_b_iso88591_YYZ_aq_Qa_6_wc_A_axz_XZs_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[186])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[212] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SAR, __pyx_mstate->__pyx_kp_b_iso88591_YYZ_aq_Qa_6_wc_A_axz_XZs_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[212])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7222}; + const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8335}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_startvalue, __pyx_mstate->__pyx_n_u_offsetonreverse, __pyx_mstate->__pyx_n_u_accelerationinitlong, __pyx_mstate->__pyx_n_u_accelerationlong, __pyx_mstate->__pyx_n_u_accelerationmaxlong, __pyx_mstate->__pyx_n_u_accelerationinitshort, __pyx_mstate->__pyx_n_u_accelerationshort, __pyx_mstate->__pyx_n_u_accelerationmaxshort, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[187] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SAREXT, __pyx_mstate->__pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[187])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[213] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SAREXT, __pyx_mstate->__pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[213])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8384}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_limitmove, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[214] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SI, __pyx_mstate->__pyx_kp_b_iso88591_tu_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[214])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7271}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8428}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[188] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[188])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[215] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[215])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7310}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8467}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[189] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SINH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[189])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[216] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SINH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[216])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7349}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8506}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[190] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[190])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[217] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[217])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7390}; + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8547}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsmi, __pyx_mstate->__pyx_n_u_outsmisignal}; - __pyx_mstate_global->__pyx_codeobj_tab[191] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SMI, __pyx_mstate->__pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[191])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[218] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SMI, __pyx_mstate->__pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[218])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7439}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8596}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[192] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SQRT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[192])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[219] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SQRT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[219])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {9, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8635}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_bbperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_kcperiod, __pyx_mstate->__pyx_n_u_factorwide, __pyx_mstate->__pyx_n_u_factornormal, __pyx_mstate->__pyx_n_u_factornarrow, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmomentum, __pyx_mstate->__pyx_n_u_outsqueeze}; + __pyx_mstate_global->__pyx_codeobj_tab[220] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SQZMOM, __pyx_mstate->__pyx_kp_b_iso88591_s_t_I_I_____y_y_U_U_V_4_aq_Qa_K, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[220])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8686}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_cycleperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[221] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STC, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_axz_Q_U_7_A_A_w_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[221])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7478}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8729}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[193] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STDDEV, __pyx_mstate->__pyx_kp_b_iso88591_q_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[193])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[222] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STDDEV, __pyx_mstate->__pyx_kp_b_iso88591_q_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[222])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7520}; + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8771}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outslowk, __pyx_mstate->__pyx_n_u_outslowd}; - __pyx_mstate_global->__pyx_codeobj_tab[194] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCH, __pyx_mstate->__pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_wc, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[194])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[223] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCH, __pyx_mstate->__pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_wc, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[223])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7570}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8821}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd}; - __pyx_mstate_global->__pyx_codeobj_tab[195] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHF, __pyx_mstate->__pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_wc_D_9_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[195])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[224] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHF, __pyx_mstate->__pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_wc_D_9_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[224])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7618}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8869}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd}; - __pyx_mstate_global->__pyx_codeobj_tab[196] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHRSI, __pyx_mstate->__pyx_kp_b_iso88591_AA_uuv0_aq_T_q_wc_D_9_Q_axz_Q_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[196])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[225] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHRSI, __pyx_mstate->__pyx_kp_b_iso88591_AA_uuv0_aq_T_q_wc_D_9_Q_axz_Q_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[225])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7665}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8916}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[197] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUB, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[197])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[226] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUB, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[226])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7706}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8957}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[198] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[198])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[227] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[227])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7747}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8998}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsupertrend, __pyx_mstate->__pyx_n_u_outtrend}; - __pyx_mstate_global->__pyx_codeobj_tab[199] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUPERTREND, __pyx_mstate->__pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_wc_D_as_axz_X, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[199])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[228] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUPERTREND, __pyx_mstate->__pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_wc_D_as_axz_X, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[228])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7794}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9045}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[229] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SWAK_2PHP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[229])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9086}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_delta, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[230] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SWAK_BP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_7r_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[230])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9128}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[231] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SWAK_BUTTER, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[231])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9169}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[232] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SWAK_GAUSS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[232])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9210}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[233] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SWAK_HP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_7r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[233])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9251}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_vfactor, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[200] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_T3, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[200])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[234] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_T3, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[234])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7836}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9293}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[201] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[201])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[235] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[235])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7875}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9332}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[202] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TANH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[202])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[236] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TANH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[236])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7914}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9371}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[203] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[203])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[237] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[237])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7955}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9412}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[204] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRANGE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[204])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[238] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRANGE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[238])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7996}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9453}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[205] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[205])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[239] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[239])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8037}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9494}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[206] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[206])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[240] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[240])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8078}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9535}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[207] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TSF, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[207])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[241] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TSF, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[241])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8119}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9576}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_firstperiod, __pyx_mstate->__pyx_n_u_secondperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[208] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TSI, __pyx_mstate->__pyx_kp_b_iso88591_Q_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[208])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[242] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TSI, __pyx_mstate->__pyx_kp_b_iso88591_Q_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[242])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8161}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9618}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[209] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TYPPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[209])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[243] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TYPPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[243])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8202}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9659}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod1, __pyx_mstate->__pyx_n_u_timeperiod2, __pyx_mstate->__pyx_n_u_timeperiod3, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[210] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ULTOSC, __pyx_mstate->__pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_wc_A_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[210])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[244] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ULTOSC, __pyx_mstate->__pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_wc_A_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[244])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8247}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9704}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[211] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VAR, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[211])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[245] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VAR, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[245])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8289}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9746}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[212] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VHF, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[212])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[246] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VHF, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[246])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9787}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_cmoperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[247] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VIDYA, __pyx_mstate->__pyx_kp_b_iso88591_a_aq_T_q_wc_A_axz_Q_U_7_A_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[247])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8330}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9829}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outplusvi, __pyx_mstate->__pyx_n_u_outminusvi}; - __pyx_mstate_global->__pyx_codeobj_tab[213] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VORTEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_Q_axz_XZs_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[213])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[248] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VORTEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_Q_axz_XZs_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[248])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8376}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9875}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[214] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VWAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R_aa_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[214])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[249] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VWAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R_aa_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[249])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8418}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9917}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[215] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VWMA, __pyx_mstate->__pyx_kp_b_iso88591_BC_aq_6_wc_A_axz_XZvQ_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[215])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[250] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VWMA, __pyx_mstate->__pyx_kp_b_iso88591_BC_aq_6_wc_A_axz_XZvQ_U_7_A_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[250])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8461}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9960}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[216] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WAD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[216])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[251] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WAD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[251])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10001}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_channelperiod, __pyx_mstate->__pyx_n_u_averageperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outwt1, __pyx_mstate->__pyx_n_u_outwt2}; + __pyx_mstate_global->__pyx_codeobj_tab[252] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WAVETREND, __pyx_mstate->__pyx_kp_b_iso88591_W_W_X_aq_Qa_Kq_6_a_wc_D_9_Q_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[252])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8502}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10049}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[217] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WCLPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[217])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[253] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WCLPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[253])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8543}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10090}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[218] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WILLR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[218])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[254] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WILLR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[254])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8586}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10133}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[219] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[219])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[255] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[255])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10174}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_sensitivity, __pyx_mstate->__pyx_n_u_mintrendlength, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outzigzag, __pyx_mstate->__pyx_n_u_outtrend, __pyx_mstate->__pyx_n_u_outpivotidx, __pyx_mstate->__pyx_n_u_outpivotidx_data, __pyx_mstate->__pyx_n_u_i}; + __pyx_mstate_global->__pyx_codeobj_tab[256] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ZIGZAG, __pyx_mstate->__pyx_kp_b_iso88591_AZZ_0_aq_Qa_6_wc_D_as_nASPQ_axz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[256])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8627}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10227}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[220] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ZLEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[220])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[257] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ZLEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[257])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 73}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_s}; - __pyx_mstate_global->__pyx_codeobj_tab[221] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str2bytes, __pyx_mstate->__pyx_kp_b_iso88591_A_uAS, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[221])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[258] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str2bytes, __pyx_mstate->__pyx_kp_b_iso88591_A_uAS, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[258])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 76}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_b}; - __pyx_mstate_global->__pyx_codeobj_tab[222] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_bytes2str, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[222])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[259] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_bytes2str, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[259])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 81}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_s}; - __pyx_mstate_global->__pyx_codeobj_tab[223] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str2bytes, __pyx_mstate->__pyx_kp_b_iso88591_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[223])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[260] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str2bytes, __pyx_mstate->__pyx_kp_b_iso88591_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[260])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 84}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_b}; - __pyx_mstate_global->__pyx_codeobj_tab[224] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_bytes2str, __pyx_mstate->__pyx_kp_b_iso88591_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[224])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[261] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_bytes2str, __pyx_mstate->__pyx_kp_b_iso88591_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[261])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 116}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_func_object, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_kwargs}; - __pyx_mstate_global->__pyx_codeobj_tab[225] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[225])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[262] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[262])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 129}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_param_name, __pyx_mstate->__pyx_n_u_output_name}; - __pyx_mstate_global->__pyx_codeobj_tab[226] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_local_2, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[226])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[263] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_local_2, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[263])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 171}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[227] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_kp_b_iso88591_A_t85_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[227])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[264] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_kp_b_iso88591_A_t85_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[264])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 178}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[228] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_function_flags, __pyx_mstate->__pyx_kp_b_iso88591_A_t85, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[228])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[265] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_function_flags, __pyx_mstate->__pyx_kp_b_iso88591_A_t85, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[265])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 185}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[229] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_output_flags, __pyx_mstate->__pyx_kp_b_iso88591_A_t85_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[229])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[266] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_output_flags, __pyx_mstate->__pyx_kp_b_iso88591_A_t85_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[266])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 192}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_input_name}; - __pyx_mstate_global->__pyx_codeobj_tab[230] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_input_names, __pyx_mstate->__pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[230])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[267] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_input_names, __pyx_mstate->__pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[267])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 203}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_names, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_price_series}; - __pyx_mstate_global->__pyx_codeobj_tab[231] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_input_names, __pyx_mstate->__pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[231])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[268] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_input_names, __pyx_mstate->__pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[268])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 215}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local}; - __pyx_mstate_global->__pyx_codeobj_tab[232] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A_A_WA_5_q_5_V1_5_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[232])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[269] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A_A_WA_5_q_5_V1_5_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[269])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 226}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_arrays, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_missing_keys, __pyx_mstate->__pyx_n_u_key, __pyx_mstate->__pyx_n_u_missing}; - __pyx_mstate_global->__pyx_codeobj_tab[233] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_WA_d_Q_d_1_q_s_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[233])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[270] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_WA_d_Q_d_1_q_s_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[270])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 275}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_opt_input}; - __pyx_mstate_global->__pyx_codeobj_tab[234] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_parameters, __pyx_mstate->__pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[234])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[271] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_parameters, __pyx_mstate->__pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[271])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS), 285}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_parameters, __pyx_mstate->__pyx_n_u_kwargs, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_updates, __pyx_mstate->__pyx_n_u_param, __pyx_mstate->__pyx_n_u_value}; - __pyx_mstate_global->__pyx_codeobj_tab[235] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_parameters, __pyx_mstate->__pyx_kp_b_iso88591_Q_A_1_G7_gYj_a_d_2_7_G9A_AV1Kq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[235])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[272] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_parameters, __pyx_mstate->__pyx_kp_b_iso88591_Q_A_1_G7_gYj_a_d_2_7_G9A_AV1Kq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[272])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 301}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_kwargs, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_update_info, __pyx_mstate->__pyx_n_u_key, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_skip_first, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_param_name}; - __pyx_mstate_global->__pyx_codeobj_tab[236] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_function_args, __pyx_mstate->__pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[236])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[273] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_function_args, __pyx_mstate->__pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[273])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 336}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_holder, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_opt_input, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_type, __pyx_mstate->__pyx_n_u_lookback}; - __pyx_mstate_global->__pyx_codeobj_tab[237] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[237])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[274] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[274])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 359}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_ret}; - __pyx_mstate_global->__pyx_codeobj_tab[238] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_output_names, __pyx_mstate->__pyx_kp_b_iso88591_A_d_q_4z_q_aq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[238])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[275] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_output_names, __pyx_mstate->__pyx_kp_b_iso88591_A_d_q_4z_q_aq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[275])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 369}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_index}; - __pyx_mstate_global->__pyx_codeobj_tab[239] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_outputs, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_WE_5_q_E_a_s, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[239])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[276] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_outputs, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_WE_5_q_E_a_s, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[276])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 401}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_arrays}; - __pyx_mstate_global->__pyx_codeobj_tab[240] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_run, __pyx_mstate->__pyx_kp_b_iso88591_N_1_A_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[240])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[277] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_run, __pyx_mstate->__pyx_kp_b_iso88591_N_1_A_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[277])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 413}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_kwargs, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_opt_input_values, __pyx_mstate->__pyx_n_u_price_series_name_values, __pyx_mstate->__pyx_n_u_input_arrays, __pyx_mstate->__pyx_n_u_input_price_series_names, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_arg, __pyx_mstate->__pyx_n_u_msg, __pyx_mstate->__pyx_n_u_no_existing_input_arrays, __pyx_mstate->__pyx_n_u_param_name, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_n}; - __pyx_mstate_global->__pyx_codeobj_tab[241] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_call, __pyx_mstate->__pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[241])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[278] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_call, __pyx_mstate->__pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[278])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 480}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_input_price_series_names, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_price_series, __pyx_mstate->__pyx_n_u_name}; - __pyx_mstate_global->__pyx_codeobj_tab[242] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_input_price_series_names_2, __pyx_mstate->__pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[242])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[279] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_input_price_series_names_2, __pyx_mstate->__pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[279])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 492}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_input_price_series_names, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_price_series, __pyx_mstate->__pyx_n_u_series, __pyx_mstate->__pyx_n_u_opt_input, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_results, __pyx_mstate->__pyx_n_u_keys, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_output}; - __pyx_mstate_global->__pyx_codeobj_tab[243] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_call_function, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_gU_axq_wgQa_uA_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[243])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[280] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_call_function, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_gU_axq_wgQa_uA_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[280])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 523}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_type}; - __pyx_mstate_global->__pyx_codeobj_tab[244] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_check_opt_input_value, __pyx_mstate->__pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[244])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[281] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_check_opt_input_value, __pyx_mstate->__pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[281])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 538}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_value}; - __pyx_mstate_global->__pyx_codeobj_tab[245] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_opt_input_value, __pyx_mstate->__pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[245])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[282] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_opt_input_value, __pyx_mstate->__pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[282])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 548}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[246] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_repr, __pyx_mstate->__pyx_kp_b_iso88591_A_uBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[246])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[283] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_repr, __pyx_mstate->__pyx_kp_b_iso88591_A_uBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[283])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 551}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[247] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_unicode, __pyx_mstate->__pyx_kp_b_iso88591_A_wat81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[247])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[284] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_unicode, __pyx_mstate->__pyx_kp_b_iso88591_A_wat81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[284])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 554}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[248] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str, __pyx_mstate->__pyx_kp_b_iso88591_A_Qd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[248])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[285] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str, __pyx_mstate->__pyx_kp_b_iso88591_A_Qd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[285])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 568}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_table, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_groups, __pyx_mstate->__pyx_n_u_i}; - __pyx_mstate_global->__pyx_codeobj_tab[249] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getGroupTable, __pyx_mstate->__pyx_kp_b_iso88591_a_AQa_0_Q_V1E_gQfAU_q_Q_31_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[249])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[286] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getGroupTable, __pyx_mstate->__pyx_kp_b_iso88591_a_AQa_0_Q_V1E_gQfAU_q_Q_31_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[286])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 588}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_group, __pyx_mstate->__pyx_n_u_table, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_functions, __pyx_mstate->__pyx_n_u_i}; - __pyx_mstate_global->__pyx_codeobj_tab[250] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getFuncTable, __pyx_mstate->__pyx_kp_b_iso88591_a_1G1A_q_V1E_q_WAQ_aq_Q_2_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[250])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[287] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getFuncTable, __pyx_mstate->__pyx_kp_b_iso88591_a_1G1A_q_V1E_q_WAQ_aq_Q_2_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[287])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 608}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_flag, __pyx_mstate->__pyx_n_u_flags_lookup_dict, __pyx_mstate->__pyx_n_u_bit, __pyx_mstate->__pyx_n_u_description}; - __pyx_mstate_global->__pyx_codeobj_tab[251] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_flags, __pyx_mstate->__pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[251])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[288] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_flags, __pyx_mstate->__pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[288])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 666}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[252] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getFuncInfo, __pyx_mstate->__pyx_kp_b_iso88591_Qa_a_Q_a_4q_a_Qd_c_a_Qd_s_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[252])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[289] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getFuncInfo, __pyx_mstate->__pyx_kp_b_iso88591_Qa_a_Q_a_4q_a_Qd_c_a_Qd_s_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[289])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 689}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_idx, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_name}; - __pyx_mstate_global->__pyx_codeobj_tab[253] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getInputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_Qa_a_2_85_Q_2_9AT_4q_1G6_wc_t81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[253])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[290] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getInputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_Qa_a_2_85_Q_2_9AT_4q_1G6_wc_t81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[290])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 714}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_idx, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_default_value}; - __pyx_mstate_global->__pyx_codeobj_tab[254] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getOptInputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_Qa_a_5Qhe1A_Q_5Q_9AT_4q_1JfA_Cq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[254])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[291] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getOptInputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_Qa_a_5Qhe1A_Q_5Q_9AT_4q_1JfA_Cq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[291])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 740}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_idx, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_name}; - __pyx_mstate_global->__pyx_codeobj_tab[255] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getOutputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_Qa_a_31HE_Q_31_9AT_4q_1HF_wc_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[255])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[292] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getOutputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_Qa_a_31HE_Q_31_9AT_4q_1HF_wc_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[292])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 764}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_func_info, __pyx_mstate->__pyx_n_u_defaults, __pyx_mstate->__pyx_n_u_func_line, __pyx_mstate->__pyx_n_u_func_args, __pyx_mstate->__pyx_n_u_docs, __pyx_mstate->__pyx_n_u_input_names, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_params, __pyx_mstate->__pyx_n_u_param, __pyx_mstate->__pyx_n_u_outputs, __pyx_mstate->__pyx_n_u_candlestick, __pyx_mstate->__pyx_n_u_output, __pyx_mstate->__pyx_n_u_documentation}; - __pyx_mstate_global->__pyx_codeobj_tab[256] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_defaults_and_docs, __pyx_mstate->__pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[256])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[293] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_defaults_and_docs, __pyx_mstate->__pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[293])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2542}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2974}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[257] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_copy_2, __pyx_mstate->__pyx_kp_b_iso88591_A_t5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[257])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[294] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_copy_2, __pyx_mstate->__pyx_kp_b_iso88591_A_t5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[294])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2545}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2977}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_memo}; - __pyx_mstate_global->__pyx_codeobj_tab[258] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_deepcopy, __pyx_mstate->__pyx_kp_b_iso88591_A_t5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[258])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[295] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_deepcopy, __pyx_mstate->__pyx_kp_b_iso88591_A_t5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[295])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2548}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2980}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[259] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_reduce, __pyx_mstate->__pyx_kp_b_iso88591_A_iq_46d_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[259])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[296] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_reduce, __pyx_mstate->__pyx_kp_b_iso88591_A_iq_46d_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[296])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2606}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3038}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[260] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0GG_a_aq_Qa_XQ_aq_axq_oQha_A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[260])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[297] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0GG_a_aq_Qa_XQ_aq_axq_oQha_A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[297])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2750}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3182}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outupperband, __pyx_mstate->__pyx_n_u_outmiddleband, __pyx_mstate->__pyx_n_u_outlowerband, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[261] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_oXQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[261])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[298] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_oXQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[298])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2897}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3329}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[262] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[262])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[299] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[299])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3035}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3467}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[263] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_A_7_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[263])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[300] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_A_7_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[300])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3175}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3607}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[264] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[264])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[301] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[301])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3317}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3749}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[265] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_VVW_aq_Qa_q_XWIQ_aq_axq_oQha_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[265])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[302] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_VVW_aq_Qa_q_XWIQ_aq_axq_oQha_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[302])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3458}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3890}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[266] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_Q_81A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[266])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[303] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_Q_81A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[303])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3598}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4030}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[267] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[267])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[304] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[304])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3739}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4171}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[268] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_a_XQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[268])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[305] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_a_XQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[305])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4312}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_sigma, __pyx_mstate->__pyx_n_u_offset, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[306] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_SST_aq_Q_aq_axq_oQha_a_XQa_7_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[306])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3880}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4451}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[269] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_A_7_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[269])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[307] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_A_7_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[307])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4020}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4591}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[270] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_Q_81A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[270])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[308] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_Q_81A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[308])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4160}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4731}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outaroondown, __pyx_mstate->__pyx_n_u_outaroonup, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[271] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_q_xq_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[271])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[309] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_q_xq_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[309])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4304}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4875}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[272] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[272])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[310] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[310])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4440}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5016}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_limitmove, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[311] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[311])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5154}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[273] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[273])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[312] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[312])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4575}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5289}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[274] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[274])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[313] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[313])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4714}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5428}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[275] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[275])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[314] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[314])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4853}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5567}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[276] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_1_q_q_bPX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[276])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[315] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_1_q_q_bPX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[315])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4991}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5705}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[277] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_oX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[277])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[316] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_oX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[316])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5138}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5852}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outupperband, __pyx_mstate->__pyx_n_u_outmiddleband, __pyx_mstate->__pyx_n_u_outlowerband, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[278] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_M_7_y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[278])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[317] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_M_7_y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[317])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6002}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[318] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_Q_81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[318])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5287}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6141}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[279] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_a_XQa_7_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[279])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[319] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_a_XQa_7_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[319])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5426}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6280}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[280] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[280])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[320] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[320])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5568}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6422}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[281] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[281])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[321] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[321])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5708}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6562}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[282] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[282])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[322] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[322])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5849}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6703}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[283] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[283])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[323] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[323])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5990}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6844}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[284] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[284])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[324] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[324])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6131}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6985}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[285] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[285])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[325] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[325])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6272}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7126}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[286] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[286])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[326] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[326])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6413}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7267}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[287] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[287])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[327] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[327])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6554}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7408}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[288] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[288])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[328] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[328])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6697}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7551}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[289] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[289])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[329] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[329])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6838}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7692}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[290] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[290])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[330] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[330])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6979}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7833}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[291] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[291])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[331] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[331])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7120}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7974}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[292] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[292])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[332] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[332])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7261}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8115}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[293] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[293])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[333] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[333])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7402}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8256}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[294] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_6Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[294])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[334] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_6Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[334])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7543}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8397}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[295] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[295])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[335] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[335])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7686}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8540}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[296] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[296])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[336] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[336])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7827}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8681}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[297] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[297])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[337] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[337])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7968}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8822}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[298] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[298])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[338] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[338])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8109}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8963}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[299] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[299])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[339] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[339])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8250}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9104}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[300] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[300])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[340] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[340])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8393}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9247}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[301] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[301])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[341] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[341])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8536}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9390}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[302] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[302])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[342] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[342])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8677}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9531}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[303] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_6Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[303])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[343] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_6Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[343])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8818}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9672}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[304] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[304])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[344] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[344])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8959}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9813}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[305] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[305])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[345] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[345])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9100}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9954}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[306] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_0q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[306])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[346] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_0q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[346])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9241}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10095}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[307] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[307])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[347] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[347])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9382}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10236}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[308] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[308])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[348] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[348])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9523}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10377}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[309] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[309])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[349] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[349])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9664}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10518}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[310] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[310])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[350] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[350])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9805}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10659}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[311] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_0q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[311])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[351] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_0q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[351])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9946}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10800}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[312] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[312])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[352] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[352])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10087}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10941}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[313] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[313])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[353] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[353])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10228}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11082}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[314] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[314])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[354] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[354])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10369}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11223}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[315] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[315])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[355] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[355])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10510}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11364}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[316] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[316])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[356] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[356])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10651}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11505}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[317] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[317])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[357] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[357])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10792}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11646}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[318] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[318])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[358] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[358])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10933}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11787}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[319] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[319])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[359] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[359])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11074}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11928}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[320] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[320])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[360] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[360])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11215}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12069}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[321] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[321])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[361] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[361])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11356}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12210}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[322] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[322])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[362] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[362])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11499}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12353}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[323] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[323])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[363] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[363])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11642}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12496}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[324] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[324])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[364] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[364])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11785}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12639}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[325] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[325])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[365] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[365])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11926}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12780}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[326] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[326])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[366] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[366])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12067}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12921}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[327] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[327])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[367] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[367])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12208}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13062}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[328] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[328])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[368] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[368])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12349}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13203}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[329] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_6Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[329])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[369] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_6Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[369])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12490}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13344}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[330] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[330])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[370] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[370])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12631}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13485}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[331] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[331])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[371] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[371])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12772}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13626}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[332] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[332])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[372] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[372])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12913}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13767}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[333] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[333])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[373] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[373])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13054}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13908}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[334] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[334])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[374] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[374])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13195}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14049}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[335] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[335])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[375] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[375])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13336}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14190}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[336] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[336])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[376] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[376])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13477}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14331}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[337] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[337])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[377] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[377])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13618}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14472}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[338] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[338])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[378] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[378])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13759}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14613}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[339] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[339])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[379] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[379])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13900}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14754}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[340] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[340])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[380] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[380])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14041}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14895}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[341] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[341])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[381] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[381])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14182}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15036}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[342] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_6Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[342])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[382] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_6Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[382])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14320}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15174}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[343] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[343])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[383] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[383])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15311}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[384] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_7_aq_q_1AXY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[384])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15450}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[385] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_a_XQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[385])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15591}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[386] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_M_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[386])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15736}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_stopperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outhighstop, __pyx_mstate->__pyx_n_u_outlowstop, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[387] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7QQeef_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[387])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14460}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15883}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[344] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_Q_81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[344])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[388] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_Q_81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[388])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14600}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16023}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[345] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[345])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[389] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[389])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14737}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16160}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[346] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[346])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[390] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[390])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14876}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16299}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_wmaperiod, __pyx_mstate->__pyx_n_u_roc1period, __pyx_mstate->__pyx_n_u_roc2period, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[347] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_81A_7_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[347])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[391] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_81A_7_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[391])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15015}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16438}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[348] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_M_7_1_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[348])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[392] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_M_7_1_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[392])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15151}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16574}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[349] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[349])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[393] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[393])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15286}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16709}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[350] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[350])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[394] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[394])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15421}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16848}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_streakperiod, __pyx_mstate->__pyx_n_u_rankperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[395] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DD_aq_Q_aq_axq_oQha_a_XQa_7_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[395])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16985}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[396] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[396])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17120}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[351] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_q_q_bPXXd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[351])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[397] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_q_q_bPXXd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[397])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15560}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17259}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_rocperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[352] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0Fa_aq_Qa_XQ_aq_axq_oQha_Q_81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[352])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[398] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0Fa_aq_Qa_XQ_aq_axq_oQha_Q_81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[398])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15698}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17397}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[353] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[353])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[399] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[399])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15835}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17534}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[354] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[354])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[400] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[400])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15978}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17677}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outupperband, __pyx_mstate->__pyx_n_u_outmiddleband, __pyx_mstate->__pyx_n_u_outlowerband, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[355] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[355])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[401] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[401])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17828}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_firstperiod, __pyx_mstate->__pyx_n_u_secondperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[402] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_CC_uuv_aq_Q_aq_axq_oQha_a_XQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[402])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16126}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17965}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[356] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[356])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[403] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[403])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16265}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18104}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[357] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[357])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[404] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[404])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16405}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18244}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[358] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A45_q_Ya_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[358])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[405] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A45_q_Ya_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[405])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16543}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18382}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[359] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[359])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[406] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[406])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18522}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_volumedivisor, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[407] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A8UUV_aq_Qa_XWA_aq_axq_oQha_Q_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[407])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16680}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18661}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[360] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_7_aq_q_1AXY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[360])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[408] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_7_aq_q_1AXY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[408])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16821}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18802}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outbullpower, __pyx_mstate->__pyx_n_u_outbearpower, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[361] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[361])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[409] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[409])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16963}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18944}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[362] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[362])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[410] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[410])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19084}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outfisher, __pyx_mstate->__pyx_n_u_outtrigger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[411] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_M_7_1_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[411])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17098}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19225}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[363] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[363])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[412] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[412])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17235}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19362}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[364] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[364])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[413] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[413])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17376}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19503}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_leftbars, __pyx_mstate->__pyx_n_u_rightbars, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outswinghigh, __pyx_mstate->__pyx_n_u_outswinglow, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[365] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DA_aq_Qa_XQ_aq_axq_oQha_81A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[365])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[414] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DA_aq_Qa_XQ_aq_axq_oQha_81A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[414])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17526}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19647}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[415] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_q_xq_7_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[415])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19792}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outhaopen, __pyx_mstate->__pyx_n_u_outhahigh, __pyx_mstate->__pyx_n_u_outhalow, __pyx_mstate->__pyx_n_u_outhaclose, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[366] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[366])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[416] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[416])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17681}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19947}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[367] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[367])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[417] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[417])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17816}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20082}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[368] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[368])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[418] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[418])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17951}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20217}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[369] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_9_7_a_q_31A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[369])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[419] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_9_7_a_q_31A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[419])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18088}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20354}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinphase, __pyx_mstate->__pyx_n_u_outquadrature, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[370] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_1_7xq_7_Q_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[370])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[420] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_1_7xq_7_Q_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[420])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18230}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20496}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outsine, __pyx_mstate->__pyx_n_u_outleadsine, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[371] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1_q_1HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[371])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[421] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1_q_1HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[421])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18370}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20636}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[372] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_q_5Qa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[372])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[422] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_q_5Qa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[422])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18505}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20771}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[373] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_q_5Qa_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[373])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[423] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_q_5Qa_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[423])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20908}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[424] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_Q_81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[424])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18643}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21056}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_tenkanperiod, __pyx_mstate->__pyx_n_u_kijunperiod, __pyx_mstate->__pyx_n_u_senkoubperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outtenkansen, __pyx_mstate->__pyx_n_u_outkijunsen, __pyx_mstate->__pyx_n_u_outsenkouspana, __pyx_mstate->__pyx_n_u_outsenkouspanb, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[425] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A2JJdde_aq_Qa_XQ_aq_axq_oQha_oXQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[425])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21210}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[374] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_Q_81A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[374])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[426] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_Q_81A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[426])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18781}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21348}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[375] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[375])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[427] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[427])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18926}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21493}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_atrperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outupperband, __pyx_mstate->__pyx_n_u_outmiddleband, __pyx_mstate->__pyx_n_u_outlowerband, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[376] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7MMbbc_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[376])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[428] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7MMbbc_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[428])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 24, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19085}; + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 24, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21652}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outk, __pyx_mstate->__pyx_n_u_outd, __pyx_mstate->__pyx_n_u_outj, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[377] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A9RRk_l_A_A_Z_Z_aq_Qa_q_XWA_aq_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[377])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[429] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A9RRk_l_A_A_Z_Z_aq_Qa_q_XWA_aq_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[429])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 23, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21811}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_roc1period, __pyx_mstate->__pyx_n_u_roc2period, __pyx_mstate->__pyx_n_u_roc3period, __pyx_mstate->__pyx_n_u_roc4period, __pyx_mstate->__pyx_n_u_sma1period, __pyx_mstate->__pyx_n_u_sma2period, __pyx_mstate->__pyx_n_u_sma3period, __pyx_mstate->__pyx_n_u_sma4period, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outkst, __pyx_mstate->__pyx_n_u_outkstsignal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[430] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBYYp_q_H_H_____v_v_M_M_f_f_g, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[430])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19234}; + const __Pyx_PyCode_New_function_description descr = {12, 0, 0, 25, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21965}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_roc1period, __pyx_mstate->__pyx_n_u_roc2period, __pyx_mstate->__pyx_n_u_roc3period, __pyx_mstate->__pyx_n_u_roc4period, __pyx_mstate->__pyx_n_u_ma1period, __pyx_mstate->__pyx_n_u_ma2period, __pyx_mstate->__pyx_n_u_ma3period, __pyx_mstate->__pyx_n_u_ma4period, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_rocmatype, __pyx_mstate->__pyx_n_u_signalmatype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outkst, __pyx_mstate->__pyx_n_u_outkstsignal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[431] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBYYp_q_G_G_s_s_I_I_b_b_x_x_L, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[431])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22107}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[378] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_1_7xq_7_Qa_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[378])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[432] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[432])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 23, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22251}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outkvo, __pyx_mstate->__pyx_n_u_outkvosignal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[433] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_VVoop_aq_Qa_q_XWIQ_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[433])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19371}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22396}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[379] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_2_C81A_7_C1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[379])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[434] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_1_7xq_7_Qa_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[434])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19508}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22533}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[380] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_6Q_11K8STTU_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[380])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[435] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_2_C81A_7_C1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[435])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19645}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22670}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[381] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_2_C81A_7_C1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[381])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[436] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_6Q_11K8STTU_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[436])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19780}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22807}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[437] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_2_C81A_7_C1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[437])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22942}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[382] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_7_a_q_1AXYf, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[382])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[438] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_7_a_q_1AXYf, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[438])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19915}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23077}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[383] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[383])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[439] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[439])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20053}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23215}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[384] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_a_aq_Q_aq_axq_oQha_A_7_a_1_q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[384])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[440] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_a_aq_Q_aq_axq_oQha_A_7_a_1_q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[440])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20196}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23358}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[385] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BB_aq_Q_aq_axq_oQha_a_XQa_7_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[385])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[441] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BB_aq_Q_aq_axq_oQha_a_XQa_7_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[441])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20352}; + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23514}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_fastmatype, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_slowmatype, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_signalmatype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[386] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBTTkk_Y_Y_Z_aq_Q_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[386])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[442] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBTTkk_Y_Y_Z_aq_Q_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[442])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20503}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23665}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[387] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1A_q_Qh, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[387])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[443] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1A_q_Qh, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[443])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20653}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23815}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastlimit, __pyx_mstate->__pyx_n_u_slowlimit, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmama, __pyx_mstate->__pyx_n_u_outfama, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[388] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_a_XQa_7_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[388])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[444] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_a_XQa_7_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[444])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20795}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23957}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[389] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_XWA_aq_axq_oQha_oXQa_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[389])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[445] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_XWA_aq_axq_oQha_oXQa_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[445])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20936}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24098}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[390] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_q_xq_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[390])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[446] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_q_xq_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[446])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21078}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24240}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_periods, __pyx_mstate->__pyx_n_u_minperiod, __pyx_mstate->__pyx_n_u_maxperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_a_periods, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[391] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A3II_aq_M_XQ_aq_axq_oQha_a_XQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[391])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[447] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A3II_aq_M_XQ_aq_axq_oQha_a_XQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[447])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21216}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24378}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[392] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[392])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[448] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[448])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21353}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24515}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outinteger_data}; - __pyx_mstate_global->__pyx_codeobj_tab[393] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[393])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[449] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[449])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24662}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[450] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[450])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24799}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[451] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_1_q_q_bPX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[451])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21499}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24935}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[394] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_XQ_aq_axq_oQha_oXQa_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[394])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[452] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_XQ_aq_axq_oQha_oXQa_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[452])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21640}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25076}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[395] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_Q_81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[395])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[453] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_Q_81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[453])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21780}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25216}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[396] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[396])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[454] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[454])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21918}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25354}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[397] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[397])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[455] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[455])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22056}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25492}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[398] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[398])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[456] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[456])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22193}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25629}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outinteger_data}; - __pyx_mstate_global->__pyx_codeobj_tab[399] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[399])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[457] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[457])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22342}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25778}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmin, __pyx_mstate->__pyx_n_u_outmax, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[400] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_1_axq_axq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[400])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[458] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_1_axq_axq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[458])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22486}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25922}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outminidx, __pyx_mstate->__pyx_n_u_outmaxidx, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outminidx_data, __pyx_mstate->__pyx_n_u_outmaxidx_data}; - __pyx_mstate_global->__pyx_codeobj_tab[401] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_axq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[401])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[459] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_axq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[459])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22643}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26079}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[402] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_oXQa_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[402])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[460] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_oXQa_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[460])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22783}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26219}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[403] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[403])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[461] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[461])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22921}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26357}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[404] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[404])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[462] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[462])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23058}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26494}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[405] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_a_XQa_7_8_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[405])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[463] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_a_XQa_7_8_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[463])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23198}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26634}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[406] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_a_XQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[406])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[464] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_a_XQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[464])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23336}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26772}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[407] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[407])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[465] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[465])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23474}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26910}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[408] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_XQ_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[408])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[466] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_XQ_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[466])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23613}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27051}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[467] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_oXQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[467])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27189}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_percentile, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[409] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_A_9_7_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[409])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[468] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_A_9_7_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[468])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23750}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27326}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[410] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_q_4_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[410])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[469] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_q_4_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[469])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 23889}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27465}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[411] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[411])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[470] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[470])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24029}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27605}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[412] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_81A_7_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[412])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[471] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_81A_7_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[471])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24169}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27745}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[413] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_Q_81A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[413])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[472] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_Q_81A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[472])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27885}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_emaperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[473] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A9Oq_aq_Qa_q_XWA_aq_axq_oQha_Q_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[473])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24305}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28023}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[414] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[414])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[474] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[474])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24445}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28163}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[415] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DDWWX_Q_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[415])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[475] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DDWWX_Q_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[475])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24581}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28299}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[416] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[416])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[476] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[476])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24720}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28438}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[417] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_M_7_1_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[417])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[477] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_M_7_1_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[477])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24858}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28576}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[418] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[418])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[478] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[478])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24995}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28713}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[419] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[419])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[479] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[479])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25132}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28850}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[420] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[420])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[480] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[480])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25269}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28987}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[421] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[421])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[481] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[481])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25406}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29124}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[422] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1A_q_0, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[422])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[482] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1A_q_0, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[482])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25543}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29265}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_annualization, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[483] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_ZZ_aq_aq_Qa_q_XXWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[483])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29405}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[423] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[423])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[484] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[484])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25681}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29543}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_stddevperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[424] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DA_aq_Q_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[424])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[485] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DA_aq_Q_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[485])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29682}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_stddevperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[486] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0I_aq_Qa_XQ_aq_axq_oQha_a_XQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[486])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25818}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29820}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[425] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_Q_aq_axq_oQha_a_XQa_7_8_q_Qaxy, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[425])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[487] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_Q_aq_axq_oQha_a_XQa_7_8_q_Qaxy, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[487])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25957}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29959}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_acceleration, __pyx_mstate->__pyx_n_u_maximum, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[426] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A5J_aq_Qa_XQ_aq_axq_oQha_Q_81A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[426])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[488] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A5J_aq_Qa_XQ_aq_axq_oQha_Q_81A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[488])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 23, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26103}; + const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 23, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30105}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_startvalue, __pyx_mstate->__pyx_n_u_offsetonreverse, __pyx_mstate->__pyx_n_u_accelerationinitlong, __pyx_mstate->__pyx_n_u_accelerationlong, __pyx_mstate->__pyx_n_u_accelerationmaxlong, __pyx_mstate->__pyx_n_u_accelerationinitshort, __pyx_mstate->__pyx_n_u_accelerationshort, __pyx_mstate->__pyx_n_u_accelerationmaxshort, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[427] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A3QQt_u_T_T_v_v_Z_Z_z_z_aq_Qa_XQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[427])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[489] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A3QQt_u_T_T_v_v_Z_Z_z_z_aq_Qa_XQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[489])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26239}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30246}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_limitmove, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[490] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[490])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30384}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[428] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[428])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[491] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[491])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26374}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30519}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[429] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[429])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[492] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[492])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26511}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30656}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[430] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[430])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[493] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[493])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26655}; + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30800}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outsmi, __pyx_mstate->__pyx_n_u_outsmisignal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[431] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7NNee_aq_Qa_q_XWA_aq_axq_oQha_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[431])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[494] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7NNee_aq_Qa_q_XWA_aq_axq_oQha_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[494])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26797}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30942}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[432] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[432])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[495] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[495])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26935}; + const __Pyx_PyCode_New_function_description descr = {9, 0, 0, 24, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 31088}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_bbperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_kcperiod, __pyx_mstate->__pyx_n_u_factorwide, __pyx_mstate->__pyx_n_u_factornormal, __pyx_mstate->__pyx_n_u_factornarrow, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmomentum, __pyx_mstate->__pyx_n_u_outsqueeze, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[496] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A5JJ_x_y_T_T_o_o_p_aq_Qa_q_XWA_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[496])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 31234}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_cycleperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[497] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBZZ_aq_Q_aq_axq_oQha_Q_81A_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[497])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 31372}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[433] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_q_q_q_bPX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[433])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[498] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_q_q_q_bPX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[498])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 23, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27080}; + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 23, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 31517}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outslowk, __pyx_mstate->__pyx_n_u_outslowd, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[434] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A9RRkk_Y_Y_Z_aq_Qa_q_XWA_aq_axq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[434])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[499] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A9RRkk_Y_Y_Z_aq_Qa_q_XWA_aq_axq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[499])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27230}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 31667}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[435] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A9RRkkl_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[435])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[500] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A9RRkkl_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[500])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27379}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 31816}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[436] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DD_vvw_aq_Q_aq_axq_oQha_oXQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[436])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[501] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DD_vvw_aq_Q_aq_axq_oQha_oXQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[501])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27521}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 31958}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[437] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[437])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[502] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[502])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27659}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 32096}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[438] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[438])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[503] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[503])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27801}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 32238}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outsupertrend, __pyx_mstate->__pyx_n_u_outtrend, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[439] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[439])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[504] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[504])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 32382}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[505] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_1_7xq_7_Qa_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[505])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 32520}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_delta, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[506] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1L_q_0, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[506])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 32657}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[507] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_q_4_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[507])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 32794}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[508] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_9_7_aq_q_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[508])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 27946}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 32931}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[509] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1A_q_0, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[509])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 33069}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_vfactor, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[440] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_Q_aq_axq_oQha_A_7_a_1_q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[440])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[510] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_Q_aq_axq_oQha_A_7_a_1_q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[510])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28081}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 33204}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[441] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[441])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[511] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[511])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28216}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 33339}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[442] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[442])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[512] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[512])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28353}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 33476}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[443] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[443])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[513] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[513])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28490}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 33613}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[444] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_M_7_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[444])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[514] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_M_7_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[514])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28629}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 33752}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[445] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[445])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[515] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[515])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28766}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 33889}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[446] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[446])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[516] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[516])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28903}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 34026}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[447] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[447])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[517] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[517])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29041}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 34164}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_firstperiod, __pyx_mstate->__pyx_n_u_secondperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[448] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[448])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[518] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_Q_81A_7_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[518])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29178}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 34301}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[449] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_oXQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[449])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[519] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_oXQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[519])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29321}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 34444}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod1, __pyx_mstate->__pyx_n_u_timeperiod2, __pyx_mstate->__pyx_n_u_timeperiod3, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[450] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A8PPhhi_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[450])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[520] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A8PPhhi_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[520])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29461}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 34584}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[451] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[451])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[521] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[521])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29598}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 34721}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[452] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[452])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[522] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[522])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 34859}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_cmoperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[523] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_A_aq_Q_aq_axq_oQha_q_xq_7_9_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[523])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29739}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 35000}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outplusvi, __pyx_mstate->__pyx_n_u_outminusvi, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[453] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_M_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[453])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[524] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_M_7_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[524])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 29884}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 35145}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[454] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_a_XQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[454])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[525] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_a_XQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[525])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30026}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 35287}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[455] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A34_aq_XQ_aq_axq_oQha_a_XQa_7_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[455])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[526] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A34_aq_XQ_aq_axq_oQha_a_XQa_7_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[526])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30164}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 35425}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[456] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_Q_81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[456])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[527] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_Q_81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[527])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30303}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 35570}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_channelperiod, __pyx_mstate->__pyx_n_u_averageperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outwt1, __pyx_mstate->__pyx_n_u_outwt2, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; + __pyx_mstate_global->__pyx_codeobj_tab[528] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_TTmmn_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[528])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 35714}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[457] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_oXQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[457])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[529] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_oXQa_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[529])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30444}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 35855}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[458] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_q_xq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[458])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[530] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_q_xq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[530])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30583}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 35994}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[459] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[459])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[531] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[531])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 36137}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_sensitivity, __pyx_mstate->__pyx_n_u_mintrendlength, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outzigzag, __pyx_mstate->__pyx_n_u_outtrend, __pyx_mstate->__pyx_n_u_outpivotidx, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outpivotidx_data}; + __pyx_mstate_global->__pyx_codeobj_tab[532] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A4LA_aq_Qa_XQ_aq_axq_oQha_M_7_Qh, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[532])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 30720}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 36295}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_stream, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[460] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[460])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[533] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[533])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result}; - __pyx_mstate_global->__pyx_codeobj_tab[461] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_pyx_unpickle__TA_ReadLease, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_q0_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[461])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[534] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_pyx_unpickle__TA_ReadLease, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_q0_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[534])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result}; - __pyx_mstate_global->__pyx_codeobj_tab[462] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_pyx_unpickle__TA_WriteLease, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_0_1B_PQ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[462])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[535] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_pyx_unpickle__TA_WriteLease, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_0_1B_PQ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[535])) goto bad; } Py_DECREF(tuple_dedup_map); return 0; @@ -470530,6 +551107,85 @@ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_FuncUnstId(TA_FuncUnstId val } } +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(unsigned int) < sizeof(long)) { + return PyLong_FromLong((long) value); + } else if (sizeof(unsigned int) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#if !CYTHON_COMPILING_IN_PYPY + } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(unsigned int) <= sizeof(long)) { + return PyLong_FromLong((long) value); + } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); + } + } + { + unsigned char *bytes = (unsigned char *)&value; +#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 + if (is_unsigned) { + return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); + } else { + return PyLong_FromNativeBytes(bytes, sizeof(value), -1); + } +#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 + int one = 1; int little = (int)*(unsigned char *)&one; + return _PyLong_FromByteArray(bytes, sizeof(unsigned int), + little, !is_unsigned); +#else + int one = 1; int little = (int)*(unsigned char *)&one; + PyObject *result = NULL, *kwds = NULL; + PyObject *py_bytes = NULL, *order_str = NULL, *from_bytes_str = NULL;; + py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(unsigned int)); + if (!py_bytes) goto limited_bad; + from_bytes_str = PyUnicode_FromStringAndSize("from_bytes", 10); + if (!from_bytes_str) goto limited_bad; + order_str = PyUnicode_FromString(little ? "little" : "big"); + if (!order_str) goto limited_bad; + { + PyObject *args[] = { (PyObject*)&PyLong_Type, py_bytes, order_str, Py_True }; + if (!is_unsigned) { + PyObject *signed_str = PyUnicode_FromStringAndSize("signed", 6); + if (!signed_str) goto limited_bad; +#if CYTHON_VECTORCALL + kwds = PyTuple_Pack(1, signed_str); +#else + { + PyObject *keys[] = {signed_str}; + PyObject *values[] = {Py_True}; + kwds = __Pyx_MakeKwargDict(keys, values, 1); + } +#endif + Py_DECREF(signed_str); + if (unlikely(!kwds)) goto limited_bad; + } + result = __Pyx_Object_VectorcallMethodKwds(from_bytes_str, args, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); + } + limited_bad: + Py_XDECREF(kwds); + Py_XDECREF(order_str); + Py_XDECREF(py_bytes); + Py_XDECREF(from_bytes_str); + return result; +#endif + } +} + /* CIntFromPy */ static int __Pyx_LargePyLong___Pyx_PyLong_As_int(PyObject *x); static int __Pyx_raise_neg_overflow___Pyx_PyLong_As_int(void) { @@ -471813,85 +552469,6 @@ static CYTHON_INLINE unsigned int __Pyx_PyLong_As_unsigned_int(PyObject *x) { } } -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value) { -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif - const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0; -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic pop -#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(unsigned int) < sizeof(long)) { - return PyLong_FromLong((long) value); - } else if (sizeof(unsigned int) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#if !CYTHON_COMPILING_IN_PYPY - } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(unsigned int) <= sizeof(long)) { - return PyLong_FromLong((long) value); - } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); - } - } - { - unsigned char *bytes = (unsigned char *)&value; -#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 - if (is_unsigned) { - return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); - } else { - return PyLong_FromNativeBytes(bytes, sizeof(value), -1); - } -#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 - int one = 1; int little = (int)*(unsigned char *)&one; - return _PyLong_FromByteArray(bytes, sizeof(unsigned int), - little, !is_unsigned); -#else - int one = 1; int little = (int)*(unsigned char *)&one; - PyObject *result = NULL, *kwds = NULL; - PyObject *py_bytes = NULL, *order_str = NULL, *from_bytes_str = NULL;; - py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(unsigned int)); - if (!py_bytes) goto limited_bad; - from_bytes_str = PyUnicode_FromStringAndSize("from_bytes", 10); - if (!from_bytes_str) goto limited_bad; - order_str = PyUnicode_FromString(little ? "little" : "big"); - if (!order_str) goto limited_bad; - { - PyObject *args[] = { (PyObject*)&PyLong_Type, py_bytes, order_str, Py_True }; - if (!is_unsigned) { - PyObject *signed_str = PyUnicode_FromStringAndSize("signed", 6); - if (!signed_str) goto limited_bad; -#if CYTHON_VECTORCALL - kwds = PyTuple_Pack(1, signed_str); -#else - { - PyObject *keys[] = {signed_str}; - PyObject *values[] = {Py_True}; - kwds = __Pyx_MakeKwargDict(keys, values, 1); - } -#endif - Py_DECREF(signed_str); - if (unlikely(!kwds)) goto limited_bad; - } - result = __Pyx_Object_VectorcallMethodKwds(from_bytes_str, args, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); - } - limited_bad: - Py_XDECREF(kwds); - Py_XDECREF(order_str); - Py_XDECREF(py_bytes); - Py_XDECREF(from_bytes_str); - return result; -#endif - } -} - /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC From f4bc21c98ebc6c13a1ac0da9d5327b340da2584c Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sun, 25 Oct 2026 13:30:07 -0400 Subject: [PATCH 6/7] Check every Math Transform function against numpy Within a tolerance, so a change in how TA-Lib C computes them is caught by every wheel job. Refs TA-Lib/ta-lib#516 --- tests/test_func.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/tests/test_func.py b/tests/test_func.py index 6f4b250bd..cebfef7cd 100644 --- a/tests/test_func.py +++ b/tests/test_func.py @@ -3,7 +3,7 @@ import textwrap import numpy as np -from numpy.testing import assert_array_equal, assert_array_almost_equal +from numpy.testing import assert_allclose, assert_array_equal, assert_array_almost_equal import pytest import talib @@ -367,6 +367,34 @@ def test_MAXINDEX(): assert_array_equal(e, [0,0,0]) +# TA-Lib C may compute these with a vectorized math library that differs from +# numpy's in the last bits, so compare within a tolerance, not bit for bit. +MATH_TRANSFORM_DOMAINS = { + 'ACOS': (np.arccos, -0.99, 0.99), + 'ASIN': (np.arcsin, -0.99, 0.99), + 'ATAN': (np.arctan, -50.0, 50.0), + 'CEIL': (np.ceil, -50.0, 50.0), + 'COS': (np.cos, -10.0, 10.0), + 'COSH': (np.cosh, -20.0, 20.0), + 'EXP': (np.exp, -20.0, 20.0), + 'FLOOR': (np.floor, -50.0, 50.0), + 'LN': (np.log, 0.01, 1000.0), + 'LOG10': (np.log10, 0.01, 1000.0), + 'SIN': (np.sin, -10.0, 10.0), + 'SINH': (np.sinh, -20.0, 20.0), + 'SQRT': (np.sqrt, 0.01, 1000.0), + 'TAN': (np.tan, -1.4, 1.4), + 'TANH': (np.tanh, -5.0, 5.0), +} + + +@pytest.mark.parametrize('name', sorted(MATH_TRANSFORM_DOMAINS)) +def test_math_transform_matches_numpy(name): + reference, low, high = MATH_TRANSFORM_DOMAINS[name] + x = np.linspace(low, high, 1001) + assert_allclose(getattr(func, name)(x), reference(x), rtol=1e-13) + + # The func API bakes each parameter's default into its own signature, while the # abstract API reads them from the library. They have to agree, for every function. def test_func_and_abstract_agree(): From d74cf8a40dd6743cbcdcf2d31ce7f0c6556c9c61 Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sun, 25 Oct 2026 13:30:18 -0400 Subject: [PATCH 7/7] Require vForce in the macOS arm64 wheel test Without it TA-Lib C falls back to its scalar loop and every test still passes. Refs TA-Lib/ta-lib#516 --- .github/workflows/wheels.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 429394205..00269740a 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -196,6 +196,7 @@ jobs: env: CIBW_TEST_COMMAND: > cd .. && + python -c "import talib; assert talib._ta_lib._ta_get_runtime_info('vmath.transcendental') == 1, 'TA-Lib C is not using vForce'" && pytest -k "not RSI and not threading" {project}/tests CIBW_ARCHS_MACOS: arm64 CIBW_ENVIRONMENT_MACOS : >